background image

  

Ć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

background image

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ł:

background image

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:

background image

# 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

background image

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.

background image

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

raczkow@prz.edu.pl


Document Outline