W tym wpisie postaram się Wam przedstawić w jaki sposób, krok po kroku można postawić własny serwer mailowy na swoim VPSie. Cały tutorial zostanie podzielony na kilka części, które sukcesywnie będą się pojawiać na tym blogu.
Po pierwsze postawienie serwera mailowego nie jest rzeczą łatwą. Należy zainstalować rzeczy, które trzeba odpowiednio skonfigurować, dlatego postępuj po kolei bardzo uważnie i nie pomijaj żadnego kroku.
Na wstępie zaprezentuje ustawienia mojego serwera, którymi będę posługiwał się we wszystkich częściach tego tutoriala.
hostname : example.centos.local
IP address: 192.168.0.2
Netmask: 255.255.255.0
Gateway: 192.168.0.1
Ponadto moim celem będzie założenie dwóch skrzynek mailowych, w dwóch różnych domenach, a mianowicie:
domena: abc.local
user: alex@abc.local
domena: xyz.local
user: yasmin@xyz.local
Do dzieła zatem. Na wstępie zainstalujemy potrzebne nam programy:
1 | yum -y install system-switch-mail, dovecot, squirrelmail, mysql-server, php-imap |
Teraz zrobimy kopię Sendmail’a, który jest domyślnie instalowany. Utworzę w tym celu folder backup i przeniosę do niego pliki konfiguracyjne Sendmaila:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | mkdir /backup touch /backup/sendmail.config.location.txt which sendmail mailq newaliases > /backup/sendmail.config.location.txt which sendmail mailq newaliases /usr/sbin/sendmail /usr/bin/mailq /usr/bin/newaliases cp -var /usr/sbin/sendmail /backup cp -var /usr/bin/mailq /backup cp -var /usr/bin/newaliases /backup |
Ponieważ będziemy chcieli, aby nasz Postfix przechowywał w bazie MySQL konta naszych użytkowników, to musimy zainstalować odpowiednią jego wersję. Domyślne repozytorium nie instaluje paczki z Postfix’em wspierającym obsługę MySQL, dlatego musimy dokonać kilku zmian. Naszego Postfix’a będziemy musieli zainstalować z repozytorium CentOsPlus, ale zanim to zrobimy musimy zablokować instalację Postfix’a z domyślnego repozytorium. W tym celu edytujemy plik:
1 | vi /etc/yum.repos.d/CentOS-Base.repo |
gdzie dodajemy exclude=postfix-*
Plik powinien wyglądać tak:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5[base] includepkgs=postfix-* [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 exclude=postfix-* #released updates [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 exclude=postfix-* |
Domyślnie zainstalowana paczka jak już pisałem nie zawiera możliwości tworzenia virtualnych hostów, więc jeśli zainstalować wcześniej Postfix’a, to musisz go odinstalować:
1 | yum remove postfix-* |
Czas na instalację Postfix’a z repozytorium CentOsPlus:
1 | yum install -y --enablerepo=centosplus postfix |
Sprawdzamy czy został on poprawnie zainstalowany:
1 | rpm -qa postfix |
Co powinno dać efekt:
1 | postfix-2.3.3-2.1.centos.mysql_pgsql |
Widzimy, że nasz Postfix wspiera MySQL, jeżeli chcemy uzyskać bardziej szczegółowe informacje wpisujemy:
1 | rpm -qi postfix |
Zanim przejdziemy do konfiguracji Postfix’a upewnijmy się czy na pewno wspiera on MySQL:
1 | postconf -m |
Na liście jaka się pojawi powinna się znaleźć w jednym z wierszy fraza mysql.
Następnie instalujemy jeszcze kilka potrzebnych rzeczy:
1 | yum -y install php-mysql php-imap, php-ldap, php-mbstring |
Tak jak pisałem CentOs domyślnie korzysta z Sendmail’a do obsługi poczty, więc zanim przejdziemy do konfiguracji Postfix’a musimy zmienić obsługę maili na nasz nowy program:
1 | system-switch-mail |
Naszym oczom ukaże się konsola i musimy przełączyć obsługę maili na Postfix’a. Upewnijmy się jeszcze czy zmiana się powiodła:
1 | alternatives --display mta |
Powinniśmy zobaczyć:
1 2 | mta - status is manual. link currently points to /usr/sbin/sendmail.postfix |
Sprawdźmy jeszcze, czy pozostałe linkowania są poprawne i kierują do Postfix’a:
1 | ls -l /etc/alternatives/mta-* |
Co powinno pokazać:
1 2 3 4 5 6 7 8 9 | lrwxrwxrwx 1 root root 40 Mar 13 14:08 /etc/alternatives/mta-aliasesman -> /usr/share/man/man5/aliases.postfix.5.gz lrwxrwxrwx 1 root root 22 Mar 13 14:08 /etc/alternatives/mta-mailq -> /usr/bin/mailq.postfix lrwxrwxrwx 1 root root 38 Mar 13 14:08 /etc/alternatives/mta-mailqman -> /usr/share/man/man1/mailq.postfix.1.gz lrwxrwxrwx 1 root root 27 Mar 13 14:08 /etc/alternatives/mta-newaliases -> /usr/bin/newaliases.postfix lrwxrwxrwx 1 root root 43 Mar 13 14:08 /etc/alternatives/mta-newaliasesman -> /usr/share/man/man1/newaliases.postfix.1.gz lrwxrwxrwx 1 root root 23 Mar 13 14:08 /etc/alternatives/mta-pam -> /etc/pam.d/smtp.postfix lrwxrwxrwx 1 root root 22 Mar 13 14:08 /etc/alternatives/mta-rmail -> /usr/bin/rmail.postfix lrwxrwxrwx 1 root root 25 Mar 13 14:08 /etc/alternatives/mta-sendmail -> /usr/lib/sendmail.postfix lrwxrwxrwx 1 root root 41 Mar 13 14:08 /etc/alternatives/mta-sendmailman -> /usr/share/man/man1/sendmail.postfix.1.gz |
Mimo, że Sendmail i Posfix są kompatybilne, to lepiej na wszelki wypadek usunąć Sendmail’a:
1 | yum -y remove sendmail |
W kolejnym wpisie pokażę m.in. w jaki sposób skonfigurować Postfix’a.
Popularity: unranked
[...] którego celem jest postawienie na CentOs’ie serwera poczty opartego na Postfix’ie. W poprzednim wpisie zainstalowaliśmy wszystkie potrzebne rzeczy, czas na ich konfigurację. Na wstępie musimy [...]