Spis Treści
Konfiguracja amavisd-new
Nadal jest niezastąpiony jeśli chodzi o globalną ochronę antyspamową (np. na bramce pocztowej). Oczywiście alternatywą jest dspam, ale jest bardziej pod "indywidualne" potrzeby oraz dostrojenia.
Ustawienia firewall
Przed przystąpieniem do konfiguracji należy upewnić się, że amavisd ma dostęp do następujących usług:
Najpierw dcc
/usr/local/bin/cdcc 'info'
Konfiguracja użytkowników
for u in postfix spamd vscan clamav; do id $u; done
uid=125(postfix) gid=125(postfix) groups=125(postfix),6(mail)
uid=58(spamd) gid=58(spamd) groups=58(spamd)
uid=110(vscan) gid=110(vscan) groups=110(vscan)
uid=106(clamav) gid=106(clamav) groups=106(clamav),6(mail),110(vscan)
W razie konieczności wykonujemy polecenie:
pw mod user clamav -G clamav,mail,vscan
sa-spamd
Konfiguracja spamassassina jest opisana w oddzielnym dokumencie
Konfiguracja razor-agents
Historycznie katalog dla użytkownika vscan to /var/amavis. Obecnie jest to /var/maiad/. Tak więc należy pamiętać o odpowiednich zmianach w konfiguracji /usr/local/etc/amavisd.conf.
su - vscan
razor-admin -create
razor-admin -register -user postmaster@example.com
touch blacklist whitelist spam-lovers
mkdir .spamassassin/ tmp/
Dodatkowo należy wykonać analogiczną konfigurację w katalogu /var/amavis:
cd /var/amavis
su -m vscan
touch blacklist whitelist spam-lovers
mkdir tmp/
amavisd.conf
Przed wykonaniem zmian należy również pamiętać o uwzględnieniu konfiguracji panelu kwarantanny.
Ustawienia gniazd sieciowych (socketów)
Chodzi o precyzyjne określenie, jak mają powstać gniazda sieciowe samego amavisd. Odpowiadają za to dwie zmienne:
# to jest tylko warto/s/c portu
$inet_socket_port = [10024,9998];
# --- przypisanie si/e do wszystkich interfejs/ow, aby dobrze dzia/la/l MailZu
#
$inet_socket_bind = [ '127.0.0.6', '10.2.2.1' ];
# domy/slnie ma si/e "podczepi/c" do wszystkich interfejs/ow
#
# $inet_socket_bind = undef;
Wykorzystanie lokalnego clamd
Domyślnie amavisd współpracuje z lokalnie uruchomionym demonem ClamAV. W takiej konfiguracji:
@av_scanners = (
['ClamAV-clamd',
\&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd"],
qr/\bOK$/, qr/\bFOUND$/,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
);
amavisd wystawia pliki lokalnie do clamd
Wykorzystanie zdalnego clamd
Nie jest to nigdzie jasno powiedziane, ale jest możliwe do wykonania. Chodzi o wykorzystanie zdalnego (inny serwer, inny jail) clamd.
Zainstalowanie potrzebnych pakietów
Z wykorzystaniem własnego repozytorium pakietów należy zainstalować:
pkg install -y security/clamd-stream-client
av_scanners
Wykorzystujemy "strumieniowe" przesyłanie plików do sprawdzania antywirusowego:
# --- lista skaner/ow antywirusowych ------------------------------------------
#
@av_scanners = (
['ClamAV-clamd-stream-cl', '/usr/local/bin/clamd-stream-client',
"-d 192.168.1.152 -p 3310 -t 120 < {}",
[0], qr/:.*\sFOUND$/m, qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ],
};
Wymaga sprawdzenie jeszcze "w boju", aby poprawnie napisać wyrażenie regularne dla braku wirusa oraz gdy zostanie znaleziony. Być może warto napisać własny wrapper, który odpowiednio będzie zwracać w/w komunikaty.
Następnie aplikujemy (odpowiednio zmieniając domeny) aplikujemy konfigurację Amavisd oraz Spam Assassina.
Uruchomienie
Po ustawieniu stosownych zmiennych w /etc/rc.conf lub /etc/rc.conf.d/ pozostaje wystartować usługi:
/usr/local/etc/rc.d/clamav-freshaclam start
/usr/local/etc/rc.d/clamav-clamd start
/usr/local/etc/rc.d/spamd start
/usr/local/etc/rc.d/amavis-p0fanalyzer start
/usr/local/etc/rc.d/amavisd start
Konfiguracja postfixa
master.cf
cyrus unix - n n - - pipe
flags=R user=cyrus argv=/usr/local/cyrus/bin/deliver -r ${sender} ${user}
spamassassin
unix - n n - - pipe
user=spamd argv=/usr/local/bin/spamc -f -e /usr/local/sbin/sendmail -oi -f ${sender} ${recipient}
# amavisd
#
smtp-amavis unix - - n - 4 smtp
-o smtp_data_done_timeout=2400
-o disable_dns_lookups=yes
smtp-no-uce unix - - n - 4 smtp
-o smtp_data_done_timeout=2400
-o content_filter=
localhost.domain.tld:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_authorized_xforward_hosts=127.0.0.0/8
-o smtpd_milters=
main.cf
# --- amavisd -------------------------------------------------------
#
# schemat dzia/lania content_filter:
# FILTER:NETX_HOP
#
# NEXT_HOP definiuje transport: host:port
#
# to jest domy/slny content_filter, czyli ka/zdy wysy/lacz (r/ownie/z po SASL)
# jest czesany przez FILTER (domy/slnie smtp-amavis)
#
#content_filter = smtp-amavis:[localhost.ath.pl]:10024
# je/zeli chcemy zbudowa/c filtrowanie r/o/zne per domena, albo dla SASL/ow, to
#
# 1. trzeba ustawi/c domy/slny filtering mocno odpuszczony
# 2. utworzy/c regexp:filter_all, w kt/orymjest w/la/sciwy filtering
# 3. [127.0.0.1]:10025 to jest transport dla powrot/ow z AMaVisd-new
#
content_filter = smtp-no-uce:[localhost.domain.tld]:10025
/etc/mail/mailer.conf
Obecnie konfiguracja tego pliku jest utrzymywana w repozytorium skryptów, tak więc pozostaje odpowiednio ustawić komentarze dotyczące ssmtp:
sendmail /usr/local/sbin/sendmail
send-mail /usr/local/sbin/sendmail
mailq /usr/local/sbin/sendmail
newaliases /usr/local/sbin/sendmail
Dokonfigurowanie postfixa
cp ~wtp/scrtipts/Makefiles/Makefile.postfix /usr/local/etc/mail/Makefile
cp ~wtp/scripts/postfix/ldap-query.cf /usr/local/etc/postfix/
cd /usr/local/etc/mail/
ln -s ../postfix/main.cf
ln -s ../postfix/master.cf
make ONLY_ONCE=yes .init
cp ~wtp/scripts/postfix/* .
cp /etc/mail/aliases .
Uruchomienie całości
Następnie po dostowaniu baz postfixa, można wykonać ich zbudowanie oraz uruchomić sam serwer:
cd /usr/local/etc/mail/
make all
make start
make log
(c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.
