Serwer pocztowy na OpenWrt
Konfiguracja serwera pocztowego w OpenWrt/KamikazeOstatnia zmiana: 2010-03-23 19:39
1. Instalacja
2. Konfiguracja
2.1. Odblokowanie portów
2.2. Konfiguracja systemu plików
2.3. Konfiguracja XMail
3. Konfiguracja domeny i kont pocztowych
4. Dalsza konfiguracja
4.1. Domyślna konfiguracja serwera
4.2. Sprawdzenie stanu użytkownika
5. Zakończenie
Changelog
2010-03-22
- modyfikacja sposobu rozpakowania szablonów
Poniższy poradnik prezentuje sposób instalacji i konfiguracji serwera pocztowego XMail w OpenWrt Kamikaze (8.09.x/trunk). Ze względu na ilość danych które XMail zapisuje niezbędne jest posiadanie zewnętrznego nośnika - pendrive lub dysku USB, chociaż ze względów na częste zapisy raczej to drugie.
UWAGA 1: Źle skonfigurowany serwer pocztowy może posłużyć do wysyłania spamu przez złych ludzi. Więc jeżeli nie musisz - nie udostępniaj serwera w internecie, tylko i wyłączenie w sieci lokalnej.
UWAGA 2: Niezbędny jest oczywiście adres publiczny (lub przekierowane porty z rutera brzegowego) oraz rekord MX danej domeny wskazujący na ten adres lub po prostu skonfigurowana domena na ten adres. Ten poradnik zakłada że już tak jest zrobione i w szczególności nie tłumaczy w ogóle jak to zrobić.
UWAGA 3: Niektóre serwery pocztowe odmawiają przyjęcia poczty jeżeli domena jest niezaufana, jest na czarnej liście lub pochodzi z niepewnej klasy adresowej. Z tego też względu w większości przypadków odrzucane są mejle pochodzące z neostrady, która uważana jest za sieć spamerską.
Założenia:
- obsługujemy domenę moja_domena.pl
- zakładamy administratora o nazwie postmaster z hasłem admin
- zakładamy użytkownika user1 z hasłem 1234567890 w w/w domenie
- udostępniamy tylko smtp/pop3
- dysk podmontowany jest w katalogu /hdd. System plików może być dowolny, działa poprawnie nawet z vfat (ciekawostka!)
UWAGA: ten poradnik w żaden sposób nie wyczerpuje możliwości konfiguracyjnych programu.
Instalacja
# opkg update
# opkg install xmail
Konfiguracja
Odblokowanie portów
Jeżeli chcemy aby nasz serwer był widoczny w sieci internet, należy umożliwić światu komunikację z nim. W tym celu należy odblokować porty 25 (smtp) i 110 (pop3) w standardowy sposób poprzez dopisanie odpowiednich reguł do firewalla:
# uci add firewall rule
# uci set firewall.@rule[-1]._name=smtp
# uci set firewall.@rule[-1].src=wan
# uci set firewall.@rule[-1].target=ACCEPT
# uci set firewall.@rule[-1].proto=tcp
# uci set firewall.@rule[-1].dest_port=25
# uci add firewall rule
# uci set firewall.@rule[-1]._name=pop3
# uci set firewall.@rule[-1].src=wan
# uci set firewall.@rule[-1].target=ACCEPT
# uci set firewall.@rule[-1].proto=tcp
# uci set firewall.@rule[-1].dest_port=110
# uci commit firewall
# /etc/init.d/firewall start
Konfiguracja systemu plików
Najważniejsza sprawa to określenie gdzie będzie tzw. MAIL_ROOT czyli miejsce przechowywania plików konfiguracyjnych oraz poczty użytkowników. Jeżeli dysk mamy podmontowany w /hdd to określmy katalog roboczy na /hdd/poczta, czyli
# mkdir -p /hdd/poczta
# uci set xmail.@xmail[0].mail_root=/hdd/poczta
# uci commit xmail
Następnie należy utworzyć odpowiednie pliki i katalogi niezbędne do działania serwera e-mail. Szablon dostępny w pliku /etc/MailRoot.tar.bz2. I teraz uwaga: samo archiwum można później skasować w celu oszczędności miejsca. Ale można je zostawić jeżeli chcemy mieć szablon pod ręką.
# cd /hdd/poczta
# bzcat /etc/MailRoot.tar.bz2 > MailRoot.tar
# tar xvf MailRoot.tar
# rm /etc/MailRoot.tar.bz2
Konfiguracja XMail
W pierwszym kroku należy wygenerować hasło administratora. Robi się to przy pomocy programu XMCrypt
# XMCrypt admin
0401080c0b
"user"<TAB>"pass"
# cat /hdd/poczta/ctrlaccounts.tab
"postmaster" "0401080c0b"
# /etc/init.d/xmail enable
# /etc/init.d/xmail start
Konfiguracja domeny i kont pocztowych
Serwer XMail udostępnia specjalny protokół komunikacyjny i nasłuchuje w tym celu na porcie 6017. Aby skonfigurować go wystarczy więc zwykły program telnet (obojętnie już czy z rutera czy z komputera w sieci lokalnej), który połączy się z portem 6017 a następnie wyda polecenia w określonym formacie. Polecenia zawsze mają identyczną budowę: polecenie, następnie znak tabulacji, parametr (lub ich wiele oddzielone tabulacją) i Enter.Połączenie administracyjne z serwerem
Najpierw należy podłączyć się do serwera i zalogować się jako administrator (w tym celu poprzednio były modyfikowany plik ctrlaccounts.tab). Poniżej telnet wykonano z poziomu rutera, dlatego też adres to 127.0.0.1 czyli odwołujemy się do rutera.
# telnet 127.0.0.1 6017
+00000 <1255799280.18451@127.0.0.1> XMail 1.26 CTRL Server; Sat, 17 Oct 2009 19:08:00 +0200
postmaster admin
+00000 OK
Dodanie nowej obsługiwanej domeny
domainadd moja_domena.pl
+00000 OK
domainlist
+00100 OK
"xmailserver.test"
"moja_domena.pl"
.
domaindel xmailserver.test
+00000 OK
Dodanie użytkownika do domeny
useradd moja_domena.pl user1 1234567890 U
+00000 OK
Zamknięcie połączenia
quit
+00000 OK
Connection closed by foreign host
Oczywiście możliwości konfiguracyjnych jest o wiele więcej - listy wysyłkowe, aliasy i wszystkie inne sprawy normalnie spotykane w serwerach pocztowych. Po szczegóły odsyłam do dokumentacji projektu (http://www.xmailserver.org/Readme.html) lub na inne strony użytkowników (http://www.geocities.com/xmailearn/).
Jak sprawdzić czy działa? Należy utworzyć w dowolnym programie pocztowym nowe konto o parametrach:
- serwer smtp/pop3: moja_domena.pl
- nazwa użytkownika: user1@moja_domena.pl
- hasło: 1234567890
bez ssl/tls. Jeżeli serwer obsługuje tylko jedną domenę można pominąć w loginie domenę, w przeciwnym przypadku należy ja podać w w/w sposób. A następnie po prostu wysłać mejla z tego konta.
Dalsza konfiguracja
Domyślna konfiguracja serwera
Czyli nazwy serwera itd. zawarte są w pliku server.tab. Opcje są raczej czytelne; należy je zmienić na odpowiednią domenę (w szczególności RootDomain/SmtpServerDomain/POP3Domain/HeloDomain).Sprawdzenie stanu użytkownika
# telnet 127.0.0.1 6017
+00000 <1255799819.25619@127.0.0.1> XMail 1.26 CTRL Server; Sat, 17 Oct 2009 19:16:59 +0200
postmaster admin
+00000 OK
userstat moja_domena.pl user1
+00100 OK
"RealAddress" "user1@moja_domena.pl"
"MailboxSize" "848"
"MailboxMessages" "1"
"LastLoginTimeDate" "Sat, 17 Oct 2009 19:16:19 +0200"
"LastLoginIP" "192.168.1.155"
.
quit
+00000 OK
Connection closed by foreign host
Zakończenie
Docelowo należy pamiętać o modyfikacji pliku /etc/config/xmail - wyłączyć zbędne usługi, zmniejszyć ilość poszczególnych procesów (szczególne niezbędne przy słabej maszynie jakiej jest ruter). Należy też pamiętać o właściwej konfiguracji samego xmail, wpisaniu parametrów serwera. Przede wszystkim należy zabezpieczyć go przed spamem (czyli żeby nie był open relay - plik smtprelay.tab). Sam XMail może dość poważnie obciążyć ruter, zwłaszcza jeżeli mamy tam mało ramu i niezbyt silny procesor.Samą konfigurację można także wykonać edytując określone pliki (jak się wie co) lub wykorzytsać program CtrlClnt czy MkUsers dostępne standardowo w paczce.
Informacje o filtrach i zabezpieczeniach xmail można znaleźć pod adresem http://xmail.nomadcf.com/ (znalezione przez macmus, dziękujemy!)