Ćwiczenie 7
Administracja
sieciami LAN
Laboratorium 5ED - sem.
9
Materiały
pomocnicze
Temat ćwiczenia:
Instalacja i konfiguracja bezpiecznego
serwera SMTP na przykładzie programu
Postfix.
Instalacja programu Postfix
1. Należy zainstalować pakiet postfix:
root@debian# aptitude install postfix
W czasie konfiguracji wybrać:
General Type of Configuration: Internet Site
Mail for root should go to: student
Mail name: debian.prz.edu.pl
Other destination to accept mail for: debian.prz.edu.pl
Synchronous update: off (Nie)
2. Sprawdzenie, czy program Postfix jest uruchomiony, sprawdzenie możliwości serwera:
root@debian# telnet debian.prz.edu.pl 25
Trying 10.0.2.15...
Connected to debian.prz.edu.pl.
Escape character is '^]'.
220 debian.prz.edu.pl ESMTP Postfix (Debian/GNU)
ehlo localhost
250-debian.prz.edu.pl
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250 8BITMIME
quit
221 Bye
Connection closed by foreign host.
3. Pliki konfiguracyjne programu Postfix znajdują się w katalogu /etc/postfix
Instalacja systemu uwierzytelniania klientów SASL
1. Należy zainstalować pakiety: postfix-tls libsasl2-modules sasl2-bin
root@debian# aptitude install postfix-tls libsasl2-modules sasl2-bin
2. Do pliku konfiguracyjnego /etc/postfix/main.cf należy dopisać następujące opcje:
# SASL SUPPORT FOR CLIENTS
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions =
reject_unauth_pipelining,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
permit
3. Poprawić konfigurację w pliku /etc/postfix/master.cf:
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
4. Konfiguracja demona SASL. W pliku /etc/postfix/sasl/smtpd.conf należy wpisać:
pwcheck_method: saslauthd
auto_transition: false
mech_list: PLAIN
5. Przygotowanie do uruchomienia demona SASL (saslauthd). Należy usunąć komentarz w pliku
/etc/default/saslauthd oraz włączyć metodę uwierzytelniania na podstawie haseł
systemowych (shadow):
# This needs to be uncommented before saslauthd will be run automatically
START=yes
...
MECHANISMS="shadow"
6. Uruchomienie demona SASL:
root@debian# /etc/init.d/saslauthd start
Starting SASL Authentication Daemon: saslauthd.
7. Sprawdzenie, czy demon poprawnie się uruchomił:
root@debian# ps aux |grep saslauthd
root 4305 0.0 0.1 6736 540 ? Ss Nov06 0:00 /usr/sbin/saslauthd -a shadow
root 4306 0.0 0.1 6736 556 ? S Nov06 0:00 /usr/sbin/saslauthd -a shadow
root 4307 0.0 0.2 6736 668 ? S Nov06 0:00 /usr/sbin/saslauthd -a shadow
root 4308 0.0 0.1 6736 560 ? S Nov06 0:00 /usr/sbin/saslauthd -a shadow
root 4309 0.0 0.1 6736 540 ? S Nov06 0:00 /usr/sbin/saslauthd -a shadow
root 19054 0.0 0.2 1936 728 pts/2 S+ 20:19 0:00 grep saslauthd
8. Aby demon pocztowy poprawnie korzystał z usług demona uwierzytelniania SSL, należy dodać
użytkownika, który uruchamia system pocztowy (użytkownik postfix) do grupy, która jest właścicielem
demona saslauthd (grupa sasl). Po tej operacji należy zrestartować demon pocztowy:
root@debian# usermod -G sasl postfix
root@debian# /etc/init.d/postfix restart
9. Sprawdzenie, czy serwer obsługuje uwierzytelnianie:
root@debian# telnet debian.prz.edu.pl 25
Trying 10.0.2.15...
Connected to debian.prz.edu.pl.
Escape character is '^]'.
220 debian.prz.edu.pl ESMTP Postfix (Debian/GNU)
ehlo localhost
250-debian.prz.edu.pl
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250 AUTH PLAIN
250 AUTH=PLAIN
250 8BITMIME
quit
221 Bye
Connection closed by foreign host.
Instalacja szyfrowanych połączeń SMTP (TLS)
1. Zainstalować brakujące pakiety: openssl:
root@debian# aptitude install openssl
2. Do pliku konfiguracyjnego /etc/postfix/main.cf należy dopisać następujące opcje:
# TLS
smtpd_use_tls = yes
smtpd_tls_key_file = /etc/postfix/ssl/postfix-key.pem
smtpd_tls_cert_file = /etc/postfix/ssl/postfix-cert.pem
smtpd_tls_received_header = yes
tls_random_source = dev:/dev/urandom
3. W pliku konfiguracyjnym /etc/postfix/master.cf należy odkomentować następujące opcje:
# only used by postfix-tls
tlsmgr fifo - - n 300 1 tlsmgr
smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes \
-o smtpd_sasl_auth_enable=yes
587 inet n - n - - smtpd -o smtpd_enforce_tls=yes \
-o smtpd_sasl_auth_enable=yes
4. Należy wgrać do katalogu /etc/postfix/ssl pliki z kluczem prywatnym (postfix-key.pem) i certyfikatem
SSL (postfix-cert.pem)
5. Odświeżenie konfiguracji programu Postfix:
root@debian# /etc/init.d/postfix reload
6. Sprawdzenie, czy serwer obsługuje połączenia szyfrowane TLS:
root@debian# telnet debian.prz.edu.pl 25
Trying 10.0.2.15...
Connected to debian.prz.edu.pl.
Escape character is '^]'.
220 debian.prz.edu.pl ESMTP Postfix (Debian/GNU)
ehlo localhost
250-debian.prz.edu.pl
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250 STARTTLS
250 AUTH PLAIN
250 AUTH=PLAIN
250 8BITMIME
quit
221 Bye
Connection closed by foreign host.
Instalacja skanera antywirusowego sprzężonego z serwerem
pocztowym Postfix
1. Zainstalować brakujące pakiety: clamav-daemon, amavisd-new:
root@debian# aptitude install clamav-daemon amavisd-new
W konfiguracji wybrać:
Virus database update method: daemon
Mirror: dowolny
HTTP Proxy: http://w3cache.prz.edu.pl:8080
Clamd notified about update: Tak
2. Sprawdzić, czy działa demon antywirusowy (clamd) oraz demon pośredniczący w komunikacji serwera
pocztowego z programem antywirusowym (amavisd):
root@debian# ps aux |grep clamd
clamav 19465 0.0 5.4 29656 17668 ? Ss Nov07 3:32 /usr/sbin/clamd
root 19552 0.0 0.2 1932 720 pts/2 S+ 21:40 0:00 grep clamd
root@debian# ps aux |grep amavisd
amavis 2095 0.0 0.3 16376 1172 ? Ss Nov06 0:00 amavisd (master)
amavis 600 0.0 2.7 17056 8904 ? S Dec11 0:04 amavisd (child)
amavis 1263 0.0 2.8 17028 9008 ? S Dec11 0:08 amavisd (child)
root 19586 0.0 0.2 1932 728 pts/2 S+ 21:45 0:00 grep amavisd
3. Aby demon amavisd poprawnie korzystał z usług demona clamd, należy dodać użytkownika, który
uruchamia skaner antywirusowy clamd (użytkownik clamav) do grupy, która jest właścicielem demona
amavisd (grupa amavis). Po tej operacji należy zrestartować oba demony:
root@debian# usermod -G amavis clamav
root@debian# /etc/init.d/clamav-daemon restart
root@debian# /etc/init.d/amavis restart
4. Do pliku konfiguracyjnego /etc/postfix/main.cf należy dopisać następujące opcje:
# Clamav
content_filter = smtp-amavis:[127.0.0.1]:10024
5. Do pliku konfiguracyjnego /etc/postfix/master.cf należy dopisać następujące opcje:
# Amavis
smtp-amavis unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o disable_dns_lookups=yes
127.0.0.1:10025 inet n - 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
6. Odświeżenie konfiguracji programu Postfix:
root@debian# /etc/init.d/postfix reload
7. Należy sprawdzić, czy demon amavisd nasłuchuje na zdefiniowanym wcześniej porcie 10024:
root@debian# telnet localhost 10024
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 [127.0.0.1] ESMTP amavisd-new service ready
quit
221 2.0.0 [127.0.0.1] (amavisd) closing transmission channel
Connection closed by foreign host.
8. Należy sprawdzić, czy działa sprzężenie zwrotne pomiędzy amavisem a serwerem pocztowym na
porcie 10025:
root@debian# telnet localhost 10025
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 debian.prz.edu.pll ESMTP Postfix (Debian/GNU)
quit
221 Bye
Connection closed by foreign host.
Opracował:
Krzysztof Raczkowski