Qmail – istalace a konfigurace
http://www.debianusers.pl/print.php?aid=29
Instalacja i konfiguracja qmaila (ze źródeł)Od redakcjiZdecydowaliśmy się opublikować ten tekst, choć proponowane w nim rozwiązania nie są do końca zgodne z filozofią Debiana i mogą wyrabiać niewłaściwe nawyki zwłaszcza wśród jego początkujących użytkowników. Nie mamy jednak zamiaru cenzurować rozwiązań, które nie są „jedynie słusznymi“. Prawo wyboru pozostawiamy użytkownikom systemu. Uważamy, że artykuł ten poszerza tematykę poruszoną w artykule Qmail + maildir + maildrop + courier-imap (courier-pop) i może być interesujący również dla bardziej „ortodoksyjnych“ debianowców. WstępW artykule tym chciałbym pokazać w jaki sposób zainstalować qmaila ze źródeł, a nie z gotowej już paczki. Dlaczego robię to na przekór filozofii systemu? Moim zdaniem taka instalacja pomaga zrozumieć jego architekturę i jeśli qmail z jakiś powodow nie robi tego, co powinien, to łatwiej jest znaleźć błąd w trakcie instalowania niż potem w binariach. Proces instalacji jest także dokładnie omówiony w dołączonej do źródeł obszernej dokumentacji. Poza tym w trakcie konfiguracji ze źródeł program sprawdza nasz komputer i kompiluje się tylko z potrzebnymi opcjami, natomiast w przypadku binarnego pakietu dostajemy program skompilowany na innej maszynie niż nasza, z włączonymi wszystkimi opcjami, które nie zawsze są nam potrzebne. Spis treści
1. O qmailuQmail jest jednym z najbezpieczniejszych (o ile nie najbezpieczniejszym) serwerem SMTP. Jest on przeznaczony głównie dla użytkowników sendmaila, znanego z dużej ilości błędów. Więcej o historii i zaletach qmaila możesz przeczytać w dokumencie Life with qmail. 2. Instalacja2.1. Przed instalacjąNajpierw musisz zobaczyć jaki serwer pocztowy MTA (ang. Mail Transport Agent) jest zainstalowany w Twoim systemie. W Debianie domyślnie jest nim exim. Należy go więc zmienić na sendmaila, gdyż qmail został właśnie stworzony by zastępić znanengo z wielu „dziur“ sendmaila i powinno się go na nim instalować. Można oczywiście odinstalować wszystkie serwery MTA i zainstalować qmaila, ale z doświadczenia wiem, że dpkg będzie chciał usunąć niektóre pakiety związane z poczta i będą tworzyć się konflikty… Aby usunąć exima wystarczy zainstalować sendmaila, gdyż pakiet ten powoduje konflikt (?) z eximem i system sam zaproponuje jego usunięcie. Najprościej to zrobić korzystając oczywiście z APT-a: apt-get install sendmail UWAGA: sprawdź również czy w Twoim pliku /etc/services znajduje się poniższa linijka: smtp 25/tcp mail Jeśli jej nie ma, to należy ją dopisać samemu. 2.2. Instalowanie źródełNajpierw pobieramy źródła qmaila. Możemy je ściągnąć stąd. Następnie rozpakowujemy je za pomocą komendy tar xzvf qmail-1.0.3.tar.gz i tworzymy katalog /var/qmail. Potem tworzymy grupy i użytkowników potrzebnych do prawidłowego skompilowania i działania programu: groupadd nofiles Teraz przy pomocy polecenia cd qmail-1.0.3 wchodzimy do źródeł i wydajemy komendę make setup check. Po jej pomyślnym zakończeniu wydajemy polecenie ./config, gdy korzystamy z serwera DNS lub ./config-fast pełna.nazwa.hosta, gdy …wpp (co to jest wpp?). Więcej szczegółów na ten temat znaleźć można w pliku INSTALL.ctl. Kolejnym krokiem jest stworzenie aliasów: cd /var/qmail Jeśli do nowo utworzonych plików znajdujących się w katalogu /var/qmail/alias niczego nie wpiszemy, to wszystkie wiadomości przeznaczone do użytkowników, których nazwy są podane w postaci alias/.qmail-użytkownik (gdzie użytkownik to alias, który definiujemy) będa składowane w pliku /var/qmail/alias/Mailbox lub katalogu /var/qmail/alias/Maildir. Aby wiadomości były dostarczane do innego użytkownika (bezpieczniejsza opcja), należy wpisać do pliku .qmail-użytkownik adres użytkownika, do którego mają być one przesyłane. Dla przykładu, jeśli stworzymy plik alias/.qmail-luser i wpiszemy do niego user, to wiadomości przeznaczone dla lusera będą przychodziły na konto user. Ja osobiście dodałem jeszcze użytkowników webmaster, admin, administrator, postmaster, qmail, sendmail, np.: touch /var/qmail/alias/.qmail-webmaster Następnie należy usunąć wywołanie sendmaila ze skryptów startowych. W tym celu robimy kopię wykonywalego pliku sendmail: mv /usr/sbin/sendmail /usr/sbin/sendmail.old i tworzymy link symboliczny do qmailowej wersji sendmaila: ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail 3. Konfiguracja3.1. Metody dostarczania pocztyTeraz zajmiemy się dostarczaniem poczty. Mamy tutaj do wyboru jedną spośród trzech możliwości:
W dalszej części artykułu będziemy rozważali tylko przypadek 2. i 3. 3.1.1. Dostarczanie poczty do pliku $HOME/MailboxAby qmail obsługiwał dostarczanie poczty do katalogu domowego użytkownika należy przekopiować plik /var/qmail/boot/home (lub plik /var/qmail/home+df, gdy chcemy mieć obsługę forwardingu) do pliku /var/qmail/rc: cp /var/qmail/boot/home /var/qmail/rc Teraz tworzymy skrypt startowy /etc/init.d/qmail-start o takiej treści: csh -cf '/var/qmail/rc &' i nadajemy mu prawa wykonywania chmod 755 /etc/init.d/qmail-start oraz tworzymy link symboliczny ln -s /etc/init.d/qmail-start /etc/rc.boot/qmail-start. Teraz do pliku /etc/profiles dopisujemy następujący kod: if [ "$SHELL"=="/bin/bash" ]; then 3.1.2. Dostarczanie poczty do katalogu $HOME/Maildir/Domyślnie qmail obsługuje dostarczanie poczty do pliku $HOME/Mailbox. Aby nadchodzące wiadomości trafiały do katalogu $HOME/Maildir/ należy przeedytować plik /var/qmail/rc i zmienić wywołanie ./Mailbox na ./Maildir/. Następnie musimy w katalogu domowym każdego użytkownika utworzyć katalog ./Maildir/. Możemy w tym celu posłużyć się poniższym poleceniem: /var/qmail/bin/maildirmake $HOME/Maildir Aby przyspieszyć całą procedurę można to zrobić w pliku /etc/skel. Na koniec wpisujemy do pliku /etc/inetd.conf: smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env \ restartujemy demon inetd: killall -HUP inetd i uruchamiamy qmaila poleceniem /etc/rc.boot/qmail-start. Następnie otwieramy plik /etc/login.defs i zmieniamy w nim opcje dotyczące dostarczania poczty (aby zmiany zadziałały musisz się wylogować i zalogować ponownie). QMAIL_DIR Maildir Teraz do pliku /etc/profiles dopisujemy następujący kod: if [ "$SHELL"=="/bin/bash" ]; then 3.2. RelayowanieRelayowanie polega na odbieraniu wiadomości, które nie są przeznaczone dla lokalnego odbiorcy, ani nie pochodzą od lokalnego nadawcy. Jest ono często używane przez spamerów. Aby je wyłączyć należy stworzyć plik /var/qmail/control/rcpthosts i wpisać tam wszystkie adresy z plików konfiguracyjnych locals i virtualdomains. Więcej informacji na temat relayowania można znaleźć w dokumencie Life with qmail. 3.3. Pliki konfiguracyjnePrawie wszystkie pliki konfiguracyjne qmaila znajdują się w katalogu /var/qmail/control/. Oto najważniejsze z nich:
4. TestowanieW tym momencie możemy już przetestować qmaila: mail użytkownik gdzie użytkownik to nazwa lokalnego użytkownika. W logach qmaila (jak się nazywa plik?) powinna pokazać się informacja podobna do poniższej: Apr 4 13:21:06 extreme qmail: 1017919266.913601 new msg 129442 Jeśli wiadomość nie doszła, to sprawdź czy zrobiłeś wszystko dobrze i w razie konieczności przejrzyj dokumentacje dołączoną do programu. Jeśli Twoim oczom ukazały się takie komunikaty, to znaczy, że qmail jest już zainstalowany! 🙂 5. Serwery POP3 i IMAP5.1. Serwer qmail-pop3dUWAGA: przed instalacja serwera qmail-pop3d sprawdź czy w Twoim pliku /etc/services znajdują się wpisy: pop3 110/tcp pop-3 Jeśli go tam nie ma, to wpisz go samodzielnie. Wraz z qmailem dostarczany jest także serwer pop3 (qmail-pop3d). Obsługuje on dostarczanie poczty do katalogu ./Maildir/. Do jego poprawnego działania potrzebny jest program checkpassword. Należy go więc ściągnąć i zainstalować (przy pomocy polecenia make; make install), a następnie zrobić następujący wpis do pliku /etc/inetd.conf (wszystko w jednej linii): pop3 stream tcp nowait root /var/qmail/bin/qmail-popup qmail-popup \ W miejsce twój.host wpisujemy oczywiście nazwę swojego hosta. Teraz restartujemy demona inetd poleceniem: killall -HUP inetd … i to już wszystko – serwer pop3 działa (a przynajmniej powinien :-)). 5.2. Serwer solid-pop3dLepszym rozwiązaniem od serwera qmail-pop3d jest serwer solid-pop3d. Obsługuje on oba standardy dostarczania poczty (Mailbox i Maildir). Jego instalacja sprowadza się do wydania następujących poleceń: # Gdy wybieramy ./Mailbox Następnie wpisujemy następującą linijkę do pliku /etc/inetd.conf: pop3 stream tcp nowait root /usr/sbin/tcpd \ Teraz tworzymy plik konfiguracyjny /etc/spop3d.conf. U mnie ma on następującą treść (używam opcji Mailbox):
Dla opcji Maildir wyglądałby on następująco:
UWAGA: przedstawiony plik konfiguracyjny jest zubożony, aby za bardzo nie komplikować przykładu. Spróbuj przeczytać dokumentację i dodać do niego dodatkowe opcje potrzebne do prawidłowej pracy serwera. Po utworzeniu pliku konfiguracyjnego restartujemy demona inetd dobrze już znanym poleceniem: killall -HUP inetd 5.3. Serwer uw-imapdZ serwerem imap jest taki problem, że standardowy serwer dostępny w Debianie „potato“ o nazwie imap obsługuje tylko opcję Maildir. Jeśli zdecydowałeś się na tą opcję, to zainstaluj go, przeczytaj dokumentację i ciesz się nim 🙂 Jeśli jednak wybrałeś opcję Mailbox, to będziesz musiał ściągnąć program uw-imapd (koniecznie źródła! – ale skąd?). UWAGA: przed instalacją należy sprawdzić czy w Twoim pliku /etc/services znajduje się następująca linia: imap2 143/tcp Jeśli jej tam nie ma, to należy ją dopisać samemu. Instalacja serwera jest banalna. Należy tylko wydać polecenie make slx. Jednak przed tym musimy dokonać jednej poprawki w kodzie źródłowym serwera. Otwórz plik ./src/osdep/unix/env_unix.c, znajdź funkcje char *sysinbox () i zmień linijkę (u mnie w wersji 2001a linijka nr 794) z: sprintf (tmp,"%s/%s",MAILSPOOL,myusername ()); na sprintf (tmp,"%s/Mailbox",myhomedir ()); Następnie przekopiuj plik imapd z podkatalogu src/imapd/ do katalogu /usr/local/sbin i zrób następujący wpis do pliku /etc/inetd.conf: imap2 stream tcp nowait root /usr/local/sbin/imapd imapd Na koniec trzeba zrestartować demona inetd (metoda restartu była już wielokrotnie ćwiczona :-)). Szukanie pomocyQmail posiada doskonałą dokumentację. Jeśli natrafisz na jakieś kłopoty, to radzę z niej skorzystać w pierwszej kolejności. Oprócz tego w Sieci dostępnych jest wiele miejsc opisujących qmaila:
Artykuł opisujący integrację RBL z qmailem znajduje się również w kwietniowym (04/2002) numerze LinuxPlusa. ZakończenieMam nadzieję, że mój tekst pomógł zrozumieć Ci instalację qmaila i związanych z nim serwerów imap i pop3. Jest jeszcze wiele kwestii, o których nie wspomniałem. Zachęcam więc do czytania podręczników, dokumentów HOWTO i innych materiałów opisujących qmaila. Przedstawione serwery pop3 i imap sa tylko przykładowe, jeśli z jakiś względów któryś Ci nie odpowiada, to zachęcam do szukania i eksperymentowania z innymi. Zachęcam szczególnie do przetestowania courier-imap, świetnego serwera imap i pop3, ale niestety tylko dla opcji Maildir. Za wszystkie błędy z góry przepraszam i proszę o kontakt ze mną. Copyleft sendmail. All rights reversed. Ostatnia modyfikacja: Pt 30.05.2003 16:38:29 Ten artykuł został opublikowany pod adresem http://www.debianusers.pl/article.php?aid=29. Pro překlad: http://www.komsta.net/teksty/qmail.txt |