Sendmail+sasl+tls+milter+antyvir HOWTO
czyli sendmail z autentykacją, szyfrowanym połączeniem i skanerem antywirusowym.
wersja: 2004-02-10
status: raczej nieaktualne :)

Z ostatniej chwili: Przesiadłem się na postfixa i nie żałuję. Tobie też radzę (opis postfixa na hip.ipadmin.info ).

o czym jest ten dokument?

Niniejszy dokument opisuje stworzenie systemu pocztowego oferującego takie możliwości jak autentykacja poczty wychodzącej hasłem, szyfrowane połączenie i ochrona antywirusowa. Klocki z których to zbudowałem to Linux Slackware, sendmail, cyrus-sasl, amavis, clamav (darmowy antywirus).
Ponieważ dokument się wydłuża i już sam się gubię co gdzie jest, dokładam spis treści i numerację wersji.

po co?

Zabezpieczenie hasłem poczty wychodzącej to chyba najlepszy sposób na walkę ze spamem. Niewielkim kosztem - trochę czasu poświęconego na instalację i przygotowanie opisu zmiany ustawień klienta pocztowego (chyba że nie masz użytkowników na serwerku lub lubisz jak do Ciebie dzwonią) i zyskujesz pewne zabezpieczenie przed spamerami (przynajmniej spamerami którzy nie mają u Ciebie konta pocztowego, ale z tymi co mają łatwo zrobić porządek).
Z kolei TSL da ci zabezpieczenie przed sniferami (normalnie hasło do sendmaila idzie plain textem), a ochrona antywirusowa wiadomo co daje.

spis treści

- instalacja SASL
- instalacja sendmaila
- wstępna konfiguracja sendmaila (bez antywira)
- testowanie sendmaila (AUTH, TLS, bez antywira)
- instalacja amavisa
- instalacja ClamAntiVirus
- konfiguracja sendmaila do pracy z amavisem
- testy końcowe
- automatyczny update bazy wirusów
- skrypty startowe

jak to zrobić?

  • instalacja SASL

    - pobieramy, rozpakowujemy i instalujemy cyrusa
    $ cd ~
    $ wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.18.tar.gz && tar -xzf cyrus-sasl-2.1.18.tar.gz
    $ cd cyrus-sasl-2.1.18
    $ ./configure --with-pwcheck --enable-login --enable-plain --prefix=/usr --without-pam \
                  --disable-gssapi --disable-anon --with-openssl
    $ make
    # make install
    $ cd ../
    
    Jeśli nie lubisz bałaganu w systemie polecam zapoznanie z programem checkinstall.

    - czynności dodatkowe
    # mkdir -p /var/state/saslauthd
    # echo "pwcheck_method: saslauthd" > /usr/lib/sasl2/Sendmail.conf
    # echo "mech_list: login plain" >> /usr/lib/sasl2/Sendmail.conf
    
    - teraz weryfikacja
    # ldd /usr/lib/sasl2/libdigestmd5.so*
    /usr/lib/sasl2/libdigestmd5.so:
            libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0x49d48000)
            libresolv.so.2 => /lib/libresolv.so.2 (0x49e46000)
            libc.so.6 => /lib/libc.so.6 (0x49e57000)
            libdl.so.2 => /lib/libdl.so.2 (0x49f8a000)
            /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x0e0c5000)
    /usr/lib/sasl2/libdigestmd5.so.2:
            libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0x41975000)
            libresolv.so.2 => /lib/libresolv.so.2 (0x41a73000)
            libc.so.6 => /lib/libc.so.6 (0x41a84000)
            libdl.so.2 => /lib/libdl.so.2 (0x41bb7000)
            /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x087eb000)
    /usr/lib/sasl2/libdigestmd5.so.2.0.15:
            libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0x4f12c000)
            libresolv.so.2 => /lib/libresolv.so.2 (0x4f22a000)
            libc.so.6 => /lib/libc.so.6 (0x4f23b000)
            libdl.so.2 => /lib/libdl.so.2 (0x4f36e000)
            /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x1333a000)
    
    Jak nie wyrzuciło errorów tylko coś podobnego jak u mnie to OK.

    - i uruchomienie demona
    (w przeciwieństwie do sasl1 sasl2 działa jako oddzielny demon)
    # /usr/sbin/saslauthd -n 10 -c -a shadow
    
    nie zapomnij dodać tego do skryptów startowych serwera! Przykład jest tu (FIX ME).

  • instalacja sendmaila

    - pobranie i rozpakowanie
    $ wget ftp://ftp.sendmail.org/pub/sendmail/sendmail.8.12.11.tar.gz && tar -xzf sendmail.8.12.11.tar.gz
    $ cd sendmail-8.12.11
    
    - do pliku ./devtools/Site/site.config.m4 dopisać: (jak nie ma takiego pliku to go stworzyć)
    # MILTER (mimedefang, amavis, etc.)
    APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')
    APPENDDEF(`conf_libmilter_ENVDEF', `-D_FFR_MILTER_ROOT_UNSAFE ')
    #
    # SASL2 (smtp authentication)
    APPENDDEF(`confENVDEF', `-DSASL=2')
    APPENDDEF(`conf_sendmail_LIBS', `-lsasl2')
    #
    # STARTTLS (smtp + tls/ssl)
    APPENDDEF(`conf_sendmail_ENVDEF', `-DSTARTTLS')
    APPENDDEF(`conf_sendmail_ENVDEF', `-D_FFR_SMTP_SSL')
    APPENDDEF(`conf_sendmail_LIBS', `-lssl -lcrypto')
    
    - kompilujemy i instalujemy sendmaila
    $ sh ./Build
    # sh ./Build install
    
    - kompilujemy i instalujemy biblioteki miltera (niezbędne później)
    $ cd ./libmilter
    $ sh ./Build
    # sh ./Build install
    $ cd ../
    
  • konfiguracja sendmaila (na razie bez antywirusa)

    - generowanie kluczy do STARTTLS
    # mkdir /etc/mail/certs
    # cd /etc/mail/certs
    # openssl req -new -x509 -keyout cakey.pem -out cacert.pem -days 365
    # openssl req -nodes -new -x509 -keyout sendmail.pem -out sendmail.pem -days 365
    # openssl x509 -noout -text -in sendmail.pem
    # chmod 600 ./sendmail.pem
    
    To na razie wystarczy żeby działało. Później opiszę dokładnie generowanie, podpisywanie i testowanie klucza i zrobimy porządny klucz.

    - tworzenie pliku sendmail.cf
    $ cd ~/sendmail-8.12.11/cf/cf
    
    tworzymy plik sendmail.mc zawierający interesujące nas funkcjonalności. Poniżej przykład z obsługą STARTTLS i AUTH , ale jeszcze bez miltera i amavisa.
    divert(0)dnl
    VERSIONID(`$Id: hip.mc,v 8.1x september 2003 Exp $')
    OSTYPE(linux)dnl
    DOMAIN(generic)dnl
    
    dnl ### do SMTPAUTH
    define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
    TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
    
    dnl ### do STARTTLS
    define(`confCACERT_PATH', `/etc/mail/certs')dnl
    define(`confCACERT', `/etc/mail/certs/cacert.pem')dnl
    define(`confSERVER_CERT', `/etc/mail/certs/sendmail.pem')dnl
    define(`confSERVER_KEY', `/etc/mail/certs/sendmail.pem')dnl
    define(`confCLIENT_CERT', `/etc/mail/certs/sendmail.pem')dnl
    define(`confCLIENT_KEY', `/etc/mail/certs/sendmail.pem')dnl
    DAEMON_OPTIONS(`Family=inet, Port=465, Name=MTA-SSL, M=s')dnl
    
    dnl ### pozostałe
    define(`confDEF_CHAR_SET', `iso-8859-2')dnl
    define(`confMAX_MESSAGE_SIZE', `15000000')dnl Denial of Service Attacks
    define(`confMAX_DAEMON_CHILDREN', `30')dnl Denial of Service Attacks
    define(`confCONNECTION_RATE_THROTTLE', `2')dnl Denial of Service Attacks
    define(`confMAXRCPTSPERMESSAGE', `50')dnl Denial of service Attacks
    define(`confSINGLE_LINE_FROM_HEADER', `True')dnl
    define(`confSMTP_LOGIN_MSG', `$j')dnl
    define(`confDONT_PROBE_INTERFACES', `True')dnl
    define(`confRELAY_MSG', `550 Przekazywanie poczty zabronione. UZYJ AUTORYZACJI. Kontakt .')dnl
    define(`confREJECT_MSG', `550 Twoj mail zostal odrzucony.Kontakt .')dnl
    define(`confTO_INITIAL', `6m')dnl
    define(`confTO_CONNECT', `20s')dnl
    define(`confTO_HELO', `5m')dnl
    define(`confTO_HOSTSTATUS', `2m')dnl
    define(`confTO_DATAINIT', `6m')dnl
    define(`confTO_DATABLOCK', `35m')dnl
    define(`confTO_DATAFINAL', `35m')dnl
    define(`confDIAL_DELAY', `20s')dnl
    define(`confNO_RCPT_ACTION', `add-apparently-to')dnl
    define(`confALIAS_WAIT', `0')dnl
    define(`confMAX_HOP', `35')dnl
    define(`confQUEUE_LA', `5')dnl
    define(`confREFUSE_LA', `12')dnl
    define(`confSEPARATE_PROC', `False')dnl
    define(`confCON_EXPENSIVE', `true')dnl
    define(`confWORK_RECIPIENT_FACTOR', `1000')dnl
    define(`confWORK_TIME_FACTOR', `3000')dnl
    define(`confQUEUE_SORT_ORDER', `Time')dnl
    define(`confPRIVACY_FLAGS', `authwarnings,goaway,restrictmailq,restrictqrun,needmailhelo')dnl
    
    FEATURE(`delay_checks')dnl
    FEATURE(`generics_entire_domain')dnl
    FEATURE(`local_procmail')dnl
    FEATURE(`masquerade_envelope')dnl
    FEATURE(`nouucp',`reject')dnl
    FEATURE(`redirect')dnl
    FEATURE(`relay_entire_domain')dnl
    FEATURE(`use_cw_file')dnl
    FEATURE(`virtuser_entire_domain')dnl
    
    FEATURE(dnsbl,`blackholes.mail-abuse.org',
    ` Mail from $&{client_addr} rejected; see http://mail-abuse.org/cgi-bin/lookup?$& {client_addr}')dnl
    FEATURE(dnsbl,`relays.mail-abuse.org',
    ` Mail from $&{client_addr} rejected; see http://work-rss.mail-abuse.org/cgi-bin/nph-rss?$& {client_addr}')dnl
    FEATURE(dnsbl,`dialups.mail-abuse.org',
    ` Mail from dial-up rejected; see http://mail-abuse.org/dul/enduser.htm')dnl
    
    FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')dnl
    FEATURE(access_db)dnl
    FEATURE(lookupdotdomain)dnl
    FEATURE(`blacklist_recipients')dnl
    FEATURE(`no_default_msa')dnl
    DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
    MAILER(local)dnl
    MAILER(smtp)dnl
    MAILER(procmail)dnl
    
    następny krok to stworzenie pliku /etc/mail/sendmail.cf poprzez wydanie komend:
    $ sh Build sendmail.cf
    # sh Build install-cf
    $ cd ../../
    
    - teraz kilka drobnostek: prawa plików itp., czyli kosmetyka
    # touch /etc/mail/local-host-names        	(tworzymy plik z nazwami obsługiwanych domen)
    # touch /etc/mail/virtusertable           	(tworzymy plik wirtualnych użytkowników)
    # mkdir -p /var/spool/mqueue              	(tworzymy katalog kolejki)
    # chmod 700 /var/spool/mqueue             	(ustawiamy mu właściciela i prawa)
    # chown root.wheel /var/spool/mqueue
    # chown root.wheel /etc/mail/sendmail.cf  	(ustawiamy właściciela i prawa dla sendmail.cf)
    # chmod 444 /etc/mail/sendmail.cf
    # chown root.wheel /etc/mail/submit.cf
    # chmod 444 /etc/mail/submit.cf
    
    przeładowanie baz aliasów. Musisz to robić po każdej zmianie zawartości plików access lub virtusertable.
    # /usr/sbin/makemap hash access <access	(tworzymy bazę danych access i virtusertable)
    # /usr/sbin/makemap hash virtusertable <virtusertable
    
    można też to robić tak:
    # cd /etc/mail
    # make
    
    - teraz czas na restart sendmaila
    # killall -9 sendmail
    # sendmail -bd -q15m
    
    i koniec (o ile wszystko działa poprawnie, a to zaraz sprawdzimy)
    Można (a nawet trzeba) stworzyć skrytp startowy. Przykład jest tu (FIX ME). Wtedy restart serwera wygląda tak:
    # /etc/rc.d/rc.sendmail stop
    # /etc/rc.d/rc.sendmail start
    


  • testowanie sendmaila

    oczywiście można odpalić mozillę i powysyłać sobie pocztę, ale ja opiszę kilka testów jakie można wykonać z poziomu serwera.
    proponuję zacząć od sprawdzenia, czy mamy skompilowanego sendmaila z tym co chcemy
    # /usr/sbin/sendmail -d0.1 -bv root
    Version 8.12.11
     Compiled with: DNSMAP LOG MATCHGECOS MILTER MIME7TO8 MIME8TO7
                    NAMED_BIND NETINET NETUNIX NEWDB PIPELINING SASLv2 SCANF
                    STARTTLS USERDB XDEBUG
    
    teraz można sprawdzić działanie samego sendmaila odpytując go poprzez telnet
    $ telnet 0 25
    Trying 0.0.0.0...
    Connected to 0.
    Escape character is '^]'.
    220 ipadmin.info ESMTP
    EHLO localhost
    250-ipadmin.info Hello localhost [127.0.0.1], pleased to meet you
    250-ENHANCEDSTATUSCODES
    250-PIPELINING
    250-8BITMIME
    250-SIZE 15000000
    250-DSN
    250-ETRN
    250-AUTH LOGIN PLAIN
    250-DELIVERBY
    250 HELP
    QUIT
    221 2.0.0 ipadmin.info closing connection
    Connection closed by foreign host.
    $
    
    kolejny test to sprawdzenie poprawności autoryzacji.
    Do wygenerowania hasła służy polecenie printf 'user\0user\0hasło'|mimencode , gdzie "user" i "hasło" są rzeczywistym loginemen i hasłem jakiegoś konta na serwerze.
    $ printf 'hip\0hip\0supertajne'|mimencode
    aGlwAGhpcABzdXBlcnRham5l
    $ telnet 0 25
    Trying 0.0.0.0...
    Connected to 0.
    Escape character is '^]'.
    220 ipadmin.info ESMTP
    HELO localhost
    250 ipadmin.info Hello localhost [127.0.0.1], pleased to meet you
    AUTH PLAIN aGlwAGhpcABzdXBlcnRham5l
    235 2.0.0 OK Authenticated
    QUIT
    221 2.0.0 ipadmin.info closing connection
    Connection closed by foreign host.
    $
    

  • amavis

    - pobieramy i rozpakowujemy
    $ wget http://www.ijs.si/software/amavisd/amavisd-new-20030616-p6.tar.gz && tar -xzf amavisd-new-20030616-p6.tar.gz
    $ cd amavisd-new-20030616
    
    - istalujemy potrzebne moduły

    Amavis jest programem perlowym, który do poprawnego działania potrzebuje szeregu modułów (szczegóły w INSTALL). Najprostszym sposobem ich instalacji jest skorzystanei z modułu CPAN, który pobierze i zainstaluje moduły bezpośrednio z archiwum CPAN. Spokojnie - mimo pokaźnej listy nie zaśmieci to nam systemu, wszystko instaluje się w drzewku perla. Wystarczy wykonać poniższe komendy i potem klikać na domyślne odpowiedzi.
    perl -MCPAN -e shell
    wszystkie opcje domyślnie (enter) dopóki ne spyta o kraj z mirrorem. Wybieramy Europę i Polskę a potem wg. uznania (ja wybieram sunsite.icm.edu.pl)
    potem znowu entery dopóki nie dostaniemy linni poleceń cpan (cpan> ), wtedy dajemy komendy:
    install Archive::Tar
    install Archive::Zip
    install Compress::Zlib
    install Convert::TNEF
    install Convert::UUlib
    install MIME::Base64
    install Net::Server
    install Net::SMTP
    install Digest::MD5
    install Time::HiRes
    install Unix::Syslog
    install Mail::SpamAssassin to tylko jeśli interesuje nas ochrona przeciwspamowa
    quit
    
    Po każdej z tych opcji jest sporo komunikatów, ale na ogół wystarczą domyślne odpowiedzi.

    - instalujemy samego amavisa
    # groupadd amavis
    # useradd -g amavis -s /bin/bash -c "amavis user" amavis
    # mkdir /var/amavis
    # chown amavis.amavis /var/amavis
    # chmod 750 /var/amavis
    # cp amavisd /usr/local/sbin/
    # chown root /usr/local/sbin/amavisd
    # chmod 755  /usr/local/sbin/amavisd
    # cp amavisd.conf /etc/
    # chown root /etc/amavisd.conf
    # chmod 644  /etc/amavisd.conf
    # mkdir /var/virusmails
    # chown amavis.amavis /var/virusmails
    # chmod 750 /var/virusmails
    
    Kolejny etap to edycja /etc/amavisd.conf , ustawiam tam:
    $mydomain
    $daemon_user  = 'amavis';
    $daemon_group = 'amavis';
    #$DO_SYSLOG = 1;
    $LOGFILE = "/var/log/amavis.log";
    
    oraz odhashowuję opcje dla "Clam Antivirus-clamd" i "Clam Antivirus - clamscan"
    (w pliku jest to jasno zaznaczone),
    dla clamd poprawiamy
       \&ask_daemon, ["CONTSCAN {}\n", '/var/amavis/clamd'], na
       \&ask_daemon, ["CONTSCAN {}\n", '/var/amavis/clamd.sock'],
    i ustawiam:
    # SENDMAIL MILTER, using amavis-milter.c helper program:
    $forward_method = undef;  # no explicit forwarding, sendmail does it by itself
    # milter; option -odd is needed to avoid deadlocks
    $notify_method = 'pipe:flags=q argv=/usr/sbin/sendmail -Ac -i -odd -f ${sender} -- ${recipient}';
    # just a thought: can we use use -Am instead of -odd ?
    
    - odpalamy amavisa
    /usr/local/sbin/amavisd
    - instalujemy amavis-milter (pośrednika pomiędzy sendmailem a amavisem)
    $ cd helper-progs
    $ ./configure
    $ make
    # make install
    $ cd ../../
    
    oraz uruchamiamy poleceniem
    su - amavis -c 'nohup /usr/local/sbin/amavis-milter -p local:/var/amavis/amavis-milter.sock >/dev/null 2>&1 &'
    
  • instalacja Clam AntiVirus

    - pobieramy, rozpakowujemy i instalujemy (jeśli nie działa link to wejdź przez przeglądarkę i pobierz z mirrora)
    $ cd ~
    $ wget http://prdownloads.sourceforge.net/clamav/clamav-0.65.tar.gz && tar -xzf clamav-0.65.tar.gz
    $ cd clamav-0.65
    # groupadd clamav
    # useradd -g clamav -s /bin/false -c "clamav user" clamav
    $ ./configure
    $ make
    # make install
    $ cd ../
    
    - edytujemy plik konfiguracyjny /usr/local/etc/clamav.conf ustawiając takie opcje jak poniżej (reszta bez zmian)
      #Example
      LogFile /var/log/clamd.log
      LogVerbose
      PidFile /var/amavis/clamd.pid
      LocalSocket /var/amavis/clamd.sock
      StreamSaveToDisk
      User amavis    (User amavis a nie clamav żeby uniknąć problemów na styku amavis-clamd.)
      ScanMail
    
    - tworzymy katalog i uruchamiamy demona
    /usr/local/sbin/clamd
    chown amavis /var/log/clamd.log
    
    pozostaje sprawdzić czy wszystko OK (zobaczyć czy chodzi proces clamd, obejrzeć clamd.log, zrestartować amavisa i sprawdzić w jego logach czy wykrył clamd) i stworzyć skrypty startowe (FIX ME).


  • przygotowanie sendmaila do pracy z antywirusem

    - musimy ponownie wygenerować sendmail.cf
    divert(0)dnl
    VERSIONID(`$Id: hip.mc,v 8.1x september 2003 Exp $')
    OSTYPE(linux)dnl
    DOMAIN(generic)dnl
    
    dnl ### do SMTPAUTH
    define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
    TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
    
    dnl ### do STARTTLS
    define(`confCACERT_PATH', `/etc/mail/certs')dnl
    define(`confCACERT', `/etc/mail/certs/cacert.pem')dnl
    define(`confSERVER_CERT', `/etc/mail/certs/sendmail.pem')dnl
    define(`confSERVER_KEY', `/etc/mail/certs/sendmail.pem')dnl
    define(`confCLIENT_CERT', `/etc/mail/certs/sendmail.pem')dnl
    define(`confCLIENT_KEY', `/etc/mail/certs/sendmail.pem')dnl
    DAEMON_OPTIONS(`Family=inet, Port=465, Name=MTA-SSL, M=s')dnl
    
    dnl ### do AMAVIS-MILTER
    define(`MILTER', 1)dnl
    INPUT_MAIL_FILTER(`milter-amavis', `S=local:/var/amavis/amavis-milter.sock, F=T, T=S:10m;R:10m;E:10m')dnl
    
    dnl ### pozostałe
    define(`confDEF_CHAR_SET', `iso-8859-2')dnl
    define(`confMAX_MESSAGE_SIZE', `15000000')dnl Denial of Service Attacks
    define(`confMAX_DAEMON_CHILDREN', `30')dnl Denial of Service Attacks
    define(`confCONNECTION_RATE_THROTTLE', `2')dnl Denial of Service Attacks
    define(`confMAXRCPTSPERMESSAGE', `50')dnl Denial of service Attacks
    define(`confSINGLE_LINE_FROM_HEADER', `True')dnl
    define(`confSMTP_LOGIN_MSG', `$j')dnl
    define(`confDONT_PROBE_INTERFACES', `True')dnl
    define(`confRELAY_MSG', `550 Przekazywanie poczty zabronione. UZYJ AUTORYZACJI. Kontakt .')dnl
    define(`confREJECT_MSG', `550 Twoj mail zostal odrzucony.Kontakt .')dnl
    define(`confTO_INITIAL', `6m')dnl
    define(`confTO_CONNECT', `20s')dnl
    define(`confTO_HELO', `5m')dnl
    define(`confTO_HOSTSTATUS', `2m')dnl
    define(`confTO_DATAINIT', `6m')dnl
    define(`confTO_DATABLOCK', `35m')dnl
    define(`confTO_DATAFINAL', `35m')dnl
    define(`confDIAL_DELAY', `20s')dnl
    define(`confNO_RCPT_ACTION', `add-apparently-to')dnl
    define(`confALIAS_WAIT', `0')dnl
    define(`confMAX_HOP', `35')dnl
    define(`confQUEUE_LA', `5')dnl
    define(`confREFUSE_LA', `12')dnl
    define(`confSEPARATE_PROC', `False')dnl
    define(`confCON_EXPENSIVE', `true')dnl
    define(`confWORK_RECIPIENT_FACTOR', `1000')dnl
    define(`confWORK_TIME_FACTOR', `3000')dnl
    define(`confQUEUE_SORT_ORDER', `Time')dnl
    define(`confPRIVACY_FLAGS', `authwarnings,goaway,restrictmailq,restrictqrun,needmailhelo')dnl
    
    FEATURE(`delay_checks')dnl
    FEATURE(`generics_entire_domain')dnl
    FEATURE(`local_procmail')dnl
    FEATURE(`masquerade_envelope')dnl
    FEATURE(`nouucp',`reject')dnl
    FEATURE(`redirect')dnl
    FEATURE(`relay_entire_domain')dnl
    FEATURE(`use_cw_file')dnl
    FEATURE(`virtuser_entire_domain')dnl
    
    FEATURE(dnsbl,`blackholes.mail-abuse.org',
    ` Mail from $&{client_addr} rejected; see http://mail-abuse.org/cgi-bin/lookup?$& {client_addr}')dnl
    FEATURE(dnsbl,`relays.mail-abuse.org',
    ` Mail from $&{client_addr} rejected; see http://work-rss.mail-abuse.org/cgi-bin/nph-rss?$& {client_addr}')dnl
    FEATURE(dnsbl,`dialups.mail-abuse.org',
    ` Mail from dial-up rejected; see http://mail-abuse.org/dul/enduser.htm')dnl
    
    FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')dnl
    FEATURE(access_db)dnl
    FEATURE(lookupdotdomain)dnl
    FEATURE(`blacklist_recipients')dnl
    FEATURE(`no_default_msa')dnl
    DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
    MAILER(local)dnl
    MAILER(smtp)dnl
    MAILER(procmail)dnl
    
    i tworzymy plik .cf jak wcześniej

    - restartujemy sendmaila i sprawdzamy czy wszystko działa.

  • testy końcowe

    - sprawdzamy działanie sendmaila (tak jak wcześniej)
    - sprawdzamy czy chodzą procesy sendmail, amavisd, amavis-milter, clamd
    - sprawdzamy w /var/log pliki maillog amavis.log clamd.log

  • update baz antywirusowych

    (wkrótce zrobię)

  • skrypty startowe

    (wkrótce zrobię)

bibliografia

sendmail homepage http://www.sendmail.org
cyrrus homepage http://asg.web.cmu.edu/sasl
Clam AntiVirus homepage http://clamav.elektrapro.com
artykuł na którym wzorowałem swój plik .mc http://www.gtllot.com.pl/~dwinnicki/sendmail-auth.txt
niniejszy dokument http://hip.ipadmin.info/tips/sendmail_full.htm

pliki konfiguracyjne

FIX ME

thx'y:

Mariusz Menoo Głębocki - porady, przykłady gotowych rozwiązań.
osoby odwiedzające tę stronę - motywacja do dalszej pisaniny.

posłowie:

autor
        Grzegorz Jemielity       06.11.2003



Valid HTML 4.01!