CentOs: Postfix Mail Server cz. II

Autor: Arkadiusz Tobiasz 20 października 2011

Kontynuujemy nasz tutorial, 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 jeszcze zainstalować obsługę MySQL, o ile nie ma jej jeszcze na naszym serwerze. Dodatkowo konfigurujemy ją tak, aby uruchamiała się wraz z restartem systemu.

1
2
service mysqld start
chkconfig mysqld on

Tworzymy użytkownika root, któremu ustawiamy odpowiednie hasło:

1
mysqladmin -u root password 'hasło'

Teraz logujemy się do MySQL’a:

1
mysql -u root -p

Musimy teraz wpisać hasło, które wcześniej ustawiliśmy.

Stworzymy odpowiednią bazę danych i tabele, z których będzie korzystał nasz Postfix.

1
2
3
mysql> CREATE DATABASE postfix;
mysql> CREATE USER mail@localhost IDENTIFIED BY 'your_password';
mysql> GRANT ALL PRIVILEGES ON postfix.* TO mail;

Sprawdzamy, czy nasza baza została utworzona:

1
2
3
4
5
6
7
8
9
10
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| postfix            |
| test               |
+--------------------+
4 rows in set (0.00 sec)

Teraz musimy stworzyć użytkownika, który będzie obsługiwał nasz serwer poczty, ponieważ lepiej aby nie był to root:

1
useradd vmail  -s /sbin/nologin

Sprawdźmy jakie id użytkownika, grupy zostało przydzielone naszemu użytkownikowi poczty:

1
2
id vmail
uid=501(vmail) gid=501(vmail) groups=501(vmail)

Czas na konfigurację Posfix’a. W tym celu edytujemy plik /etc/postfix/main.cf

1
vim /etc/postfix/main.cf

Zmienna myorigin powinna wyglądać tak:

1
myorigin = $mydomain

Zmienna inet_interfaces:

1
inet_interfaces = all

Zmienna mydestination:

1
mydestination = $myhostname, localhost.$mydomain, localhost

Zmienna mynetworks powinna przyjąć IP naszego serwera:

1
mynetworks = 192.168.0.0/24, 127.0.0.0/8

W tym pliku musisz znaleźć poniższe zmienne i sprawdzić czy mają odpowiednie wartości, szczególnie id użytkownika i grupy, które wcześniej sprawdziliśmy:

1
2
3
4
5
6
virtual_mailbox_domains = mysql:/etc/postfix/mysql-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-users.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-aliases.cf
virtual_mailbox_base = /home/vmail
virtual_uid_maps = static:501
virtual_gid_maps = static:501

Teraz czas na konfigurację Postfix’a tak, aby korzystał z naszej bazy MySQL. Na wstępie stworzymy plik odpowiedzialny za tworzenie wirtualnych domen. Tworzymy plik /etc/postfix/mysql-domains.cf

1
vim /etc/postfix/mysql-domains.cf

Ustawiamy odpowiednie nazwę użytkownika, hasło, nazwę bazy naszego serwera poczty:

1
2
3
4
5
6
7
8
host = localhost
user = mail
password = <haslo>
dbname = postfix
table = domain
select_field = domain
where_field = domain
additional_conditions = and backupmx = '0' and active = '1'

Podobnie postępujemy z plikiem odpowiedzialnym za tworzenie wirtualnych użytkowników. Tworzymy plik: /etc/postfix/mysql-users.cf

1
vim /etc/postfix/mysql-users.cf

Podajemy również dane dostępowe do naszej bazy danych:

1
2
3
4
5
6
7
8
9
host = localhost
user = mail
password = <haslo>
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
additional_conditions = and active = '1'
result_format = %sMaildir/

Ostatnią rzeczą jaką musimy zrobić to analogiczna rzecz dla aliasów poczty. Tworzymy plik: /etc/postfix/mysql-aliases.cf

1
vim /etc/postfix/mysql-aliases.cf

Podając odpowiednie dane do bazy danych:

1
2
3
4
5
6
7
8
host = localhost
user = mail
password = <haslo>
dbname = postfix
table = alias
select_field = goto
where_field = address
additional_conditions = and active = '1'

Teraz uruchamiamy naszego Postfix’a i konfigurujemy go tak, aby uruchamiał się automatycznie przy restarcie systemu:

1
2
3
service postfix start
chkconfig postfix on
chkconfig --level postfix

W kolejnej części skonfigurujemy Dovecot’a 😉

Jeden komentarz

  1. […] i użytkownikami, czyli będzie się komunikował z tabelami bazy danych, które stworzyliśmy w poprzedniej części. Na początku sprawdźmy czy nasz Dovecot jest zainstalowany: 1rpm -qa […]

Odpowiedz

 

Arkadiusz Tobiasz student Akademii Ekonomicznej im. Karola Adamieckiego w Katowicach na specjalnościach informatyka ekonomiczna oraz rachunkowość. Więcej...

jQuery Validation i funkcja remote

Jakiś czas temu zwrócił się do mnie użytkownik z problemem. Chodzi o to, że korzysta on z pluginu walidacji jQuery, […]

Zend Framework: integracja z Uploadify

W tym wpisie postaram się przedstawić Wam w jaki sposób zintegrować skrypt Uploadify z Zend Frameworkiem. Dzięki temu będziemy mogli […]

Javascript: Czasowe wyświetlanie reklamy

Czasami chcemy, aby na pewnym elemencie naszej strony wyświetlała się reklama przez jakiś czas, a następnie zniknęła. W tym wpisie […]

Linux: backup wszystkich baz danych MySQL

Swego czasu pisałem o tym jak z poziomu konsoli można szybko i przyjemnie zrobić backup bazy MySQL. Wszystko jest ładnie […]