Wydruk tę dokumentację

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:

Usługa protokół port
cdcc udp 6277
razor-agents tcp 2703
pyzor udp 24441

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


{i}  (c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.

AmavisdNew (ostatnio edytowane 2018-10-07 15:00:02 przez wtps0n)