LINUX-BG Адрес : http://www.linux-bg.org |
Postfix - бърз, сигурен и лесен за управление |
От: Н. Антонов Публикувана на: 17-11-2003 Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=programs&key=356351842 |
Postfix - бърз, сигурен и лесен за управление
В тази статия ще се опитам да насоча вниманието ви към Postfix - приложение, което се ползва с репутацията на един от най-сигурните, бързи и лесни за администрация пощенски сървъри. Статията не цели да бъде пълноценно HowTo, по-скоро - кратко описание на някои от най-често използваните възможности на Postfix. Специалистите казват, че освен всичко Postfix е съвместим със Sendmail, което гарантира лесната миграция от единия към другия сървър. Това е добра новина за администраторите, които се притесняват от проблемите със сигурността, които понякога се появяват при Sendmail. Предполага се, че можете да си инсталирате Postfix на системата и вече сте го сторили. Конфигурацията на Postfix обикновено се намира в /etc/postfix, а пощенската опашка по подразбиране можете да откриете във /var/spool/postfix. Най-важна за нас е директорията /etc/postfix. Тя съдържа два конфигурационни файла и различните видове таблици (maps) като aliases, virtual, transport, access и т.н. Таблиците са едно понятие, което трябва да изясним. Таблиците представляват файлове, бази от данни, които сървърът чете и на базата на които определя поведението си. Съществуват няколко формата, в които могат да се създават таблици - hash, dbm, nis и файлове с регулярни изрази в ASCII. Таблицита се създават с командата postmap. Подразбиращият се формат е hash.
Почти всяка дистрибуция идва по подразбиране с таблицата aliases, където се описват псевдонимите на потребителите съм дадена система. Postfix също ползва тази таблица. За целта в конфигурационният му файл трябва да има ред от този тип:
alias_maps = hash:/etc/postfix/aliases
Твърде възможно е по подразбиране да чете в /etc/aliases от съображения за съвместимост.
Форматът на тази таблица е идентичен на формата при Sendmail. Логиката е следната:
local-user: alias user@[some-machine, some-machine@somedomain] root: pete@guardiandigital.com
Ако домейнът на машината е например domain.com, съгласно тази таблица писмата до root@domain.com ще се препращат към pete@guardiandigital.com. След всяко редактиране на /etc/postfix/aliases трябва да регенерираме базата от данни във формата hash.
postalias hash:/etc/postfix/aliases
Това е единствената таблица, която се управлява не с командата postmap, а с командата postalias. Вместо да пишем горната команда, можем да постигнем същото и с:
newalises
С тази таблица можем да дефинираме виртуалните домейни и техните потребители, като инструктираме сървъра да препраща писмата, изпратени примерно до user1@domain.com в друга посока, която може да бъде друг локален потребител или потребител на друг домейн, както и цяла комбинация от потребители. Типичният формат при описанието на виртуалните домейни е този:
DOMAINNAME1 XXXXXXX user1@DOMAINNAME local-user user2@DOMAINNAME user@someotherdomain user3@DOMAINNAME user@someotherdomain, user@anotherdomain, ... . . @DOMAINNAME local-user or user@somedomain (OPTIONAL)
Ето и конкретен пример:
linuxseclabs.net VIRTUALDOMAIN bill@linuxseclabs.net bill joe@linuxseclabs.net joe@guardiandigital.com @linuxseclabs.net pete@guardiandigital.com
В случая, няма значение какво ще напишем на мястото на ХХХХХХХ. След редактиране на тази таблица, освен задължителното регенериране с командата postmap, трябва да презаредим и конфигурацията на сървъра:
postfix reload
Тук казваме на сървъра какво да прави със съобщения, изпратени до домейн, пощата на който например се обработва на друга машина или посредством друг протокол, TCP-порт... С една дума, Postfix просто трябва да ги транспортира.
Типичен пример:
demo.guardiandigital.com smtp:smtp.demo.guardiandigital.com
Сега писмата до домейна вляво ще отиват към домейна вдясно през протокол SMTP. Различните видове транспортиране са описани в /etc/postfix/master.cf. В този файл можете да описвате собствени видове транспортиране. Например, ако искате всички писма да минават през антивирусна проверка от Amavis, който слуша на порт 10025, в този файл можете да дефинирате как става транспортирането. Това обаче не е предмет на този материал.
Конфигурацията
Това е главният конфигурационен файл. В него могат да бъдат описани повече от 200 конфигурационни параметъра! Тъй като повечето от тях са настроени по подразбиране, тук ще обърнем внимание само на тези, които най-често пъти се налага да пипнем сами.
myorigin = $myhostname
mydestination = $myhostname, localhost.$mydomain, $mydomain
Ако имаме само този параметър, сървърът ще отхвърля автоматично всички писма, които не са адресирани до горепосочените дестинации.
alias_maps = hash:/etc/postfix/aliases alias_database = hash:/etc/postfix/aliases virtual_maps = hash:/etc/postfix/virtual transport_maps = hash:/etc/postfix/transport
relay_domains = $mydestination, linuxseclabs.com, linuxseclabs.net
mynetworks = 127.0.0.0/8, 192.168.0.0/24, 194.135.73.15
relayhost = 175.210.73.117
Управление на сървъра
/etc/init.d/postfix start /etc/init.d/postfix stop /etc/init.d/postfix restart
postfix flush
postmap -q keymap
Например:
[root@demo postfix]# postmap -q linuxseclabs.com transport smtp:orion-t.secure.linuxseclabs.com [root@demo postfix]#
mailq
Например:
[root@juggernaut postfix]# mailq -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- BF09A11D315 1125 Mon May 21 14:30:24 vuln-newsletter-admins@linuxsecurity.com (Name service error for ec.ucdb.br: Host not found, try again) SOMEHOST@SOMEDOMAIN.COM
postcat queuefile
Например:
root@demo ]# find /var/spool/postfix/active -type f active/B/8/B8E7611D302 [root@demo ]# postcat active/B/8/B8E7611D302
Можем да потърсим писмата, които са обозначени по специфичен начин и едва след това да ги изтрием. Например, застояват в опашката, защото не могат да бъдат изпратени поради някаква грешка (грешен адрес в To:).
find /var/spool/postfix -name "IDENTIFIER" -exec rm {} \;
След като сме изтрили дадено писмо, трябва да стартираме командата mailq.
Ако искаме да премахнем цяла опашка, можем да го направим така:
postsuper -d queueID
След като разгледахме някои основни аспекти в настройката и управлението на Postfix, за по-любознателните бих препоръчал документацията. Postfix притежава, разбира се, и много други възможности, които не са предмет на този материал и изискват по-задълбочено изучаване на този бърз, сигурен и лесен за управление пощенски сървър. |
Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук,
но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора,
както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.
All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
|