Konfiguracja serwera pocztowego w OpenWrt/Kamikaze
Ostatnia zmiana: 2013-11-26 18:43
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!)
ten poradnik w żaden sposób nie wyczerpuje możliwości konfiguracyjnych programu.
Instalacja
# opkg update
# opkg install xmail
Filozofii tu nie ma. Wraz z pakietem zainstalują się zależności - uclibcxx, zlib, libopenssl oraz libpthread. Należy więc upewnić się, że mamy dostatecznie dużo wolnego miejsca do instalacji.
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
Tworzymy ten katalog na dysku, a następnie w pliku konfiguracyjnym /etc/config/xmail (składnia zgodna z UCI) ustawiamy ten katalog. Plik /etc/config/xmail definiuje jakie usługi można włączyć przez xmail, można zostawić go na razie w takiej postaci jakiej jest.
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
Wygenerowaliśmy sobie zakodowane hasło z
admin. Teraz należy to wpisać do pliku
/hdd/poczta/ctrlaccounts.tab w postaci
Gdzie <TAB> oznacza znak tabulacji,
user to nazwa administratora a
pass to wygenerowane wcześniej hasło. Można to zrobić np. edytorem vi. Czyli sam plik ma wyglądać następująco:
# cat /hdd/poczta/ctrlaccounts.tab
"postmaster" "0401080c0b"
Uruchamiamy teraz XMail poleceniem
# /etc/init.d/xmail enable
# /etc/init.d/xmail start
Przy pierwszym uruchomieniu tworzone są pewne katalogi więc może chwilę potrwać zanim będzie działać na prawdę. Jeżeli wszystko jest w porządku to po wydaniu polecenia
ps powinien być widoczny proces XMail (a raczej kilka, w zależności od konfiguracji)
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 serweremNajpierw 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
Pierwsza linia to zgłoszenie się serwera pocztowego, +00000 oznacza poprawnie wykonanie polecenia. Następnie wprowadzamy użytkownika (
postmaster), naciskamy Tab, następnie hasło (
admin) i Enter. Odpowiedź +00000 oznacza poprawnie zalogowanie się jako administrator.
Dodanie nowej obsługiwanej domeny
domainadd moja_domena.pl
+00000 OK
domainlist
+00100 OK
"xmailserver.test"
"moja_domena.pl"
.
domaindel xmailserver.test
+00000 OK
Dodana została domena
moja_domena.pl, następnie wyświetlone wszystkie obsługiwane domeny i usunięta
xmailserver.test (to domena domyślna, zawarta w plikach konfiguracyjnych).
Dodanie użytkownika do domeny
useradd moja_domena.pl user1 1234567890 U
+00000 OK
Dodajemy (
useradd) do domeny (
moja_domena.pl) użytkownika (
user1) z hasłem (
1234567890). I jest to zwykły (
U) użytkownik, nie lista.
Zamknięcie połączenia
quit
+00000 OK
Connection closed by foreign host
To wszystko!
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!)