26.10. Uwierzytelnianie SMTP

Autor James Gorham.

Uruchomienie uwierzytelniania SMTP na serwerze pocztowym przynosi wiele korzyści. Uwierzytelnianie SMTP stanowi dodatkową warstwę bezpieczeństwa sendmaila oraz umożliwia korzystanie z serwera poczty użytkownikom mobilnym często zmieniającym adres źródłowy bez konieczności rekonfiguracji za każdym razem ich klientów pocztowych.

  1. Należy zainstalować port security/cyrus-sasl. Program ten ma wiele opcji kompilacji, należy się upewnić, że zaznaczyliśmy opcję pwcheck.

  2. Po zainstalowaniu security/cyrus-sasl należy zmodyfikować plik /usr/local/lib/sasl/Sendmail.conf (lub stworzyć nowy jeżeli taki nie istnieje) i dodać poniższy wiersz:

    pwcheck_method: passwd
    

    W ten sposób umożliwimy programowi sendmail uwierzytelnianie użytkowników na podstawie bazy passwd systemu FreeBSD. Oszczędza to problemów z towrzeniem i ustawianiem nowych użytkowników i haseł za każdym razem gdy chcemy udostępnić uwierzytelnianie SMTP oraz pozwala na wykorzystanie jednej i tej samej nazwy użytkownika oraz hasła.

  3. Kolejnym krokiem jest edycja pliku /etc/make.conf i dodanie poniższego:

    SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL
    SENDMAIL_LDFLAGS=-L/usr/local/lib
    SENDMAIL_LDADD=-lsasl
    

    Dodane wiersze stanowią opcje kompilacji sendmaila powodujące zlinkowanie bibliotek cyrus-sasl w czasie kompilacji. Należy się upewnić że program cyrus-sasl został zainstalowany przed rekompilacją sendmaila.

  4. Następnie rekompilujemy sendmaila za pomocą poniższych poleceń:

    # cd /usr/src/usr.sbin/sendmail
    # make cleandir
    # make obj
    # make
    # make install
    

    Kompilacja sendmaila powinna odbyć się bez problemów jeżeli zawartośc katalogu /usr/src nie była zbytnio modyfikowana oraz są dostępne wymagane biblioteki współdzielone.

  5. Po kompilacji i reinstalacji sendmaila musimy zmienić nasz plik /etc/mail/freebsd.mc (lub ten który używamy jako nasz plik kofiguracyjny .mc. Wielu administratorów jako nazwę pliku .mc ustawia wynik polecenia hostname(1) w celu uzyskania unikalnej nazwy). Dodajemy do niego poniższe wiersze:

    dnl ustawienie opcji SASL
    TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
    define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
    define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnl
    

    Opcje te konfigurują różne metody dostępne dla sendmaila potrzebne do uwierzytelnienia użytkowników. Jeżeli chcemy użyć innej metody niż pwcheck powinniśmy zapoznać się z załączoną dokumentacją.

  6. Ostatnim krokiem jest uruchomienie programu make(1) w katalogu /etc/mail. Spowoduje to utworzenie pliku freebsd.cf (lub innego pliku .cf w zależności od nazwy użytej dla pliku .mc). Następnie wywołujemy polecenie make install restart, które skopiuje nasz plik .cf do pliku sendmail.cf i poprawnie zrestartuje program sendmail. Więcej informacji o tym etapie można uzyskać zapoznając się z plikiem /etc/mail/Makefile.

Jeżeli wszystko poszło sprawnie powinniśmy mieć możliwość podania naszej nazwy użytkownika oraz hasła do klienta poczty i wysłania wiadomości testowej. W przypadku napotkania problemów należy ustawić poziom logowania (LogLevel) sendmaila na wartość 13 i sprawdzić zawartość pliku /var/log/maillog.

Warto również dodać poniższy wiersz do pliku /etc/rc.conf aby udostępnić usługę uwierzytelniania po każdym starcie systemu:

cyrus_pwcheck_enable="YES"

Zapewni to inicjalizację SMTP_AUTH podczas uruchamiania systemu.

Więcej informacji dostępnych jest na stronach sendmaila dotyczących uwierzytleniania SMTP ( authentication).

Ten i inne dokumenty można pobrać z ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

W przypadku pytań o FreeBSD prosimy przeczytać dostępną dokumentację przed kontaktem z <questions@FreeBSD.org>.
W sprawie zapytań o tę dokumentację prosimy o kontakt z <doc@FreeBSD.org>.