-
Konfiguracja Postfixa od podstaw
Postfix to jeden z najbardziej popularnych serwerów pocztowych (MTA) na rynku. W porównaniu do np. Sendmail-a, nie działa jako jeden proces, tylko kilka (odpowiedzialnych za różne czynności aż do dostarczenia wiadomości do skrzynki odbiorczej). Poprawne skonfigurowanie serwera pocztowego jest bardzo ważną sprawą. Postaram się wyjaśnić wszelkie niejasności z tym związane krótkim tutorialem.
1.Musimy zainstalować kilka niezbędnych pakietów, wydając polecenie:
yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain postffix
2. Edytujemy plik „/etc/postfix/main.cf”. Dodajemy następujące linie, chyba że już są:
smtpd_sasl_local_domain =centos.com.pl #domena, którą będziemy używać do wysyłania wiadomości
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous #osoby niezalogowane nie będą mogły wysyłać poczty
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination #ograniczenia poczty wychodzącej (zabezpieczenia)
inet_interfaces = all #interfejsy na których ma nasłuchiwać demon
mynetworks = 127.0.0.0/8 #adres i maska naszej sieci
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
myhostname = smtp.centos.com.pl #nazwa naszego serwera
home_mailbox = Maildir/ #ustawienie dla Dovecot-a
mailbox_command = #ustawienie dla Dovecot-a
3. Powinniśmy wygenerować certyfikaty TLS
mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 730 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 730
4. Edytujemy plik „/etc/postfix/master.cf”. Następujące linijki tego pliku powinny mieć taką treść:
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject_unauth_destination
smtps inet n – n – – smtpd-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject_unauth_destination
5. Edytujemy plik „/usr/lib/sasl2/smtpd.conf” w wersji 32 bit systemu lub plik „/usr/lib64/sasl2/smtpd.conf” dla systemów 64 bit., plik powinien wyglądać tak:
pwcheck_method: saslauthd
mech_list: plain login
6. Startujemy SASL i Postfix
/etc/init.d/saslauthd start
/etc/init.d/postfix start
W razie problemów proszę pisać w komentarzach lub na forum.
Witam,
czy konfiguracja postfixa jest aż tak skomplikowana? Bo 2 „informatyków” <- w cudzysłowie nie potrzfiło sobie poradzić. Aż mnie to irytuje. Może Ty będziesz zainteresowany skonfigurowaniem serwera pocztowego. Bo już nie mam dość szukania osoby, która w końcu poprawnie mi to wszystko skonfiguruje.
Jeżeli będziesz zainteresowny to napisz do mnie maila:
lukasz.gabrysiak@wp.pl
Witam. Skonfigurowałem postfixa wg twoich wskazówek, na firewalu odblokowałem poczte, usługa startuje, w logu brak wiadomosci ze cos jest nie tak. Niestety nie potrafie sie połaczyć z serwerem pocztowym.
Wykonanie polecenia na serwerze telnet localhost 25 konczy sie niepowodzeniem. Gdzie szukać błędu ?
Witam
Tomek sprawdź, czy przede wszystkim nasłuchuje postfix na 25 porcie (netstat –listen | less | egrep *:smtp).
podane polecenie netstat –listen | less | egrep *:smtp u mnie nie działa. Modyfikując składnie wywalając less oraz poprawiając bo zapewne chodziło o grep a nie egrep doszedłem ze parametr -listen powoduje jakiś błąd składni u mnie. Nie niej polecenie netstat |grep smtp zwraca pustą listę. Poza tym skoro wykonane lokalnie na serwerze telnet localhost 25 nie łączy to wnioskuję że nie nasłuchuje. Jutro zrobię jeszcze próbę przeniesienia wszystkiego i przetestowania na drugim serwerze tym razem fedora. Puki co na centosie to nie działa. Czy może chodzić o jakiś wpis w dns ? Sprawdzę tez jeszcze firewalla. Dzisiaj już nie dam rady.
Nie nasłuchuje. sprawdziłem na serwerze poleceniem telnet localhost 25.
Na pewno to nie DNS. Jak możesz to wyślij mi całą konfigurację. Proponuję przenieść rozmowę na forum, ponieważ tam więcej osób mogłoby się wypowiedzieć i coś doradzić.
Mówiłeś, że logi nie wskazują błędu. Jak możesz to też podeślij mi kilka ostatnich linijek mailloga. To na pewno jakaś literówka lub inny błąd w tym stylu, ale póki co za mało wiem o Twoim serwerze i konfiguracji.
Obecnie w systemie CentOS wersja 5.x i 6.x nie trzeba używać Courier-a tylko Postfix + Dovecot.
Dovecot zapewni autoryzację SMTP Auth i obsługę POP3(S) i IMAP(S).
zlecenia-it@10g.pl
Cudowny post, humor i dystans! Plus ogolnie bardzo fajny blog 🙂 Gratuluje! 🙂