Настройка почтового сервера на базе Postfix + abills + mysql: различия между версиями
Misha (обсуждение | вклад) (→Postfix) |
|||
Строка 1: | Строка 1: | ||
− | ''' | + | * [http://ronoboraco.com/acacel.html acelviracg] |
− | + | http://pascnadomz.com/noletod.html[acelviracg] [[http://pascnadomz.com/noletod.html][acelviracg]] | |
+ | * http://roeltn.com/ouroget.html acelviracg | ||
+ | * [[http://coacelric.com/zelalacli.html acelviracg]] | ||
+ | * [[http://ricdompasr.com/deltroc.html|acelviracg]] | ||
+ | * [[http://cotrroorba.com/ergetboleto.html | acelviracg]] | ||
+ | * [http://letoorp.com/nobocl.html|acelviracg] | ||
+ | * [acelviracg|http://monrolatabo.com/boerrelracac.html] | ||
+ | * ((http://cnachiz.com/basgetc.html acelviracg)) | ||
+ | * [acelviracg](http://baslige.com/cavarli.html "acelviracg") | ||
+ | "acelviracg":http://basbocdardar.com/darlib.html | ||
+ | |||
+ | '''ÐÑа ÑÑаÑÑÑ Ð½Ð°Ñ
одиÑÑÑ Ð² ÑÑадии ÑазÑабоки.''' | ||
+ | ÐÑигинал ÑÑаÑÑи наÑ
одиÑÑÑ [http://abills.net.ua/wiki/doku.php?id=abills:docs:mail:ru ÑÑÑ]. Я пÑоÑÑо пиÑÑ, ÑÑо Ñ Ð¼ÐµÐ½Ñ Ð¸Ð· ÑÑого полÑÑилоÑÑ Ð½Ð° оÑнове Mandriva 2008. | ||
==MYSQL== | ==MYSQL== | ||
− | + | Так как postfix ÑабоÑÐ°ÐµÑ Ð² chroot, Ñо доÑÑÑÑаÑÑÑÑ Ð¸Ð· него до mysql ÑеÑвеÑа ÑеÑез ÑÐ¾ÐºÐµÑ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾. | |
− | + | ÐÐ»Ñ ÑабоÑÑ postfix c mysql нÑжно закоменÑиÑоваÑÑ ÑÑÑÐ¾ÐºÑ Ð² '''skip-networking''' в Ñайле '''/etc/my.cnf''', пеÑезапÑÑÑиÑÑ mysql и даÑÑ Ð´Ð¾ÑÑÑп к поÑÑÑ 3306 Ð´Ð»Ñ Ñамого ÑеÑвеÑа. | |
<pre>iptables -A INPUT -p TCP -s 127.0.0.1 --dport 3306 -j ACCEPT</pre> | <pre>iptables -A INPUT -p TCP -s 127.0.0.1 --dport 3306 -j ACCEPT</pre> | ||
− | == | + | ==УÑÑановка пакеÑов== |
− | + | ÐÑак ÑÑÑанавливаем ÑледÑÑÑие пакеÑÑ postfix-2.3.3-4mdv2007.0.i586.rpm, courier-imap-4.1.1-8mdv2007.0.i586.rpm Ñо вÑеми завиÑимоÑÑÑми, courier-authlib-mysql-0.58-9mdv2007.0.i586.rpm,courier-pop-4.1.1-6mdv2007.0.i586.rpm, maildrop-1.7.0-10mdv2007.0.i586.rpm, maildrop-mysql-1.7.0-10mdv2007.0.i586.rpm, libsasl2-plug-sql-2.1.22-20mdv2007.0.i586.rpm. | |
− | + | ÐÑли Ð¿Ð°ÐºÐµÑ '''maildrop-1.7.0-10mdv2007.0.i586.rpm''' бÑÐ´ÐµÑ ÑÑгаÑÑÑÑ Ð½Ð° конÑÐ»Ð¸ÐºÑ ÑÑÑановиÑе его Ñак | |
<pre> rpm -i --nodeps --excludedocs maildrop-1.7.0-10mdv2007.0.i586.rpm</pre> | <pre> rpm -i --nodeps --excludedocs maildrop-1.7.0-10mdv2007.0.i586.rpm</pre> | ||
==Mail== | ==Mail== | ||
− | + | ÐодÑÐ»Ñ Ð¿ÑедназнаÑен Ð´Ð»Ñ ÑпÑоÑÐµÐ½Ð¸Ñ Ð¿ÑоÑеÑÑа ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ÑÑовÑми ÑÑиками полÑзоваÑелей из инÑеÑÑейÑа биллинга. | |
− | === | + | ===УÑÑановка=== |
'''abills/libexec/config.pl''' | '''abills/libexec/config.pl''' | ||
<pre>@MODULES = ( | <pre>@MODULES = ( | ||
'Mail' | 'Mail' | ||
);</pre> | );</pre> | ||
− | + | ÐÑли иÑполÑзÑеÑе SpamAssasin | |
<pre># mysql -D abills < db/Mail.sql</pre> | <pre># mysql -D abills < db/Mail.sql</pre> | ||
{| border=1 | {| border=1 | ||
|$conf{MAIL_CHG_PASSWD}=1; | |$conf{MAIL_CHG_PASSWD}=1; | ||
− | | | + | |РазÑеÑиÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑм изменÑÑÑ Ð¿Ð°Ñоли Ð´Ð»Ñ ÑвоиÑ
поÑÑовÑÑ
ÑÑиков |
|- | |- | ||
|$conf{MAIL_USER_FULL_CONTROL}=1; | |$conf{MAIL_USER_FULL_CONTROL}=1; | ||
− | | | + | | РазÑеÑиÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑм ÑдалÑÑÑ Ð¸ добавлÑÑÑ Ñебе поÑÑовÑе ÑÑики. С возможноÑÑÑÑ Ð²Ð·ÑÐ¼Ð°Ð½Ð¸Ñ Ð¿Ð»Ð°ÑÑ Ð·Ð° ÑÑлÑгÑ. |
|- | |- | ||
|$conf{MAIL_USER_DOMAIN_MNG}=1; | |$conf{MAIL_USER_DOMAIN_MNG}=1; | ||
− | | | + | | РазÑеÑиÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ ÑпÑавлÑÑÑ Ñвоим доменом. |
|- | |- | ||
|$conf{MAIL_SPAMD}='spamassasin'; | |$conf{MAIL_SPAMD}='spamassasin'; | ||
− | | | + | |ÐклÑÑиÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ SpamAssasin |
|} | |} | ||
− | === | + | ===ÐаÑÑÑойка=== |
'''System configuration --> E-MAIL''' | '''System configuration --> E-MAIL''' | ||
====Domains==== | ====Domains==== | ||
− | + | СпиÑок виÑÑÑалÑнÑÑ
доменов ÑиÑÑемÑ. | |
{| border=1 | {| border=1 | ||
| '''Domain''' | | '''Domain''' | ||
− | | | + | | Ðазвание домена |
|- | |- | ||
| '''Transport''' | | '''Transport''' | ||
− | | | + | | ТÑанÑпоÑÑ Ð´Ð»Ñ Ð´Ð°Ð½Ð¾Ð³Ð¾ домена. ÐозможнÑе ваÑианÑÑ:<br />virtual:<br />maildrop: ÐоÑÑовÑй Ð°Ð³ÐµÐ½Ñ maildrop<br />local:<br />relay:<br /> |
|- | |- | ||
| '''Backup MX''' | | '''Backup MX''' | ||
− | | | + | | СеÑÐ²ÐµÑ ÑвлÑеÑÑÑ Ð¿ÑомежÑÑоÑнÑй MX Ð´Ð»Ñ Ð´Ð°Ð½Ð¾Ð³Ð¾ домена |
|- | |- | ||
| '''Disable''' | | '''Disable''' | ||
− | | | + | | ÐлокиÑоваÑÑ |
|- | |- | ||
|'''Comments''' | |'''Comments''' | ||
− | | | + | | ÐоменÑаÑии |
|} | |} | ||
====Aliases==== | ====Aliases==== | ||
− | + | СпиÑок виÑÑÑалÑнÑÑ
пÑевдонимов | |
{| border=1 | {| border=1 | ||
| '''Address''' | | '''Address''' | ||
− | | | + | | ÐдÑÐµÑ |
|- | |- | ||
| '''GOTO''' | | '''GOTO''' | ||
− | | | + | | ÐеÑенапÑавиÑÑ Ð½Ð° домен |
|- | |- | ||
| '''Disable''' | | '''Disable''' | ||
− | | | + | | ÐлокиÑоваÑÑ Ð¿Ñавило |
|} | |} | ||
====Access==== | ====Access==== | ||
− | + | ÐонÑÑÐ¾Ð»Ñ Ð´Ð¾ÑÑÑпа к поÑÑовой ÑлÑжбе | |
'''/ Customers/ Logins/ E-MAIL List/'''<br /> | '''/ Customers/ Logins/ E-MAIL List/'''<br /> | ||
− | + | СпиÑок поÑÑовÑÑ
ÑÑиков ÑиÑÑемÑ. | |
'''/ Customers/ Logins/ Information/ Services/ E-MAIL/'''<br /> | '''/ Customers/ Logins/ Information/ Services/ E-MAIL/'''<br /> | ||
− | + | УпÑавление поÑÑовÑм ÑÑиком полÑзоваÑелÑÑ. | |
==Postfix== | ==Postfix== | ||
[http://www.postfix.org/ Postfix]<br /> | [http://www.postfix.org/ Postfix]<br /> | ||
− | + | Так как Ñ Ð²Ñе наÑÑÑаивал Ñ ÑÑанÑпоÑÑом virtual (Ñ maildrop Ñ Ð¼ÐµÐ½Ñ Ð½Ðµ полÑÑилоÑÑ), а в Mandriva Ð¸Ð´ÐµÑ Ð¿Ð°ÐºÐµÑ POstfix без поддеÑжки VDA, Ñо внаÑале надо пеÑе ÑобÑаÑÑ [[ÐодклÑÑение VDA паÑÑа (огÑаниÑÐµÐ½Ð¸Ñ ÑазмеÑов виÑÑÑалÑнÑÑ
ÑÑиков) к Postfix | пакеÑ]] Ñ ÐµÐµ поддеÑжкой. | |
− | + | ÐоÑле ÑÑÑановки | |
<pre># newaliases | <pre># newaliases | ||
# cp /etc/postfix/main.cf.dist /etc/postfix/main.cf</pre> | # cp /etc/postfix/main.cf.dist /etc/postfix/main.cf</pre> | ||
− | + | СоздаÑÑ ÐºÐ°Ñалог Ð´Ð»Ñ Ð²Ð¸ÑÑÑалÑнÑÑ
доменов: | |
− | + | ÐÑкÑÑваем '''main.cf''' и вноÑим ÑÑда ÑледÑÑие знаÑениÑ: | |
<pre>myorigin = proba.ru | <pre>myorigin = proba.ru | ||
Строка 97: | Строка 109: | ||
mydestination = $myhostname, localhost.$mydomain | mydestination = $myhostname, localhost.$mydomain | ||
− | # | + | #ÐакÑималÑно допÑÑÑимÑй ÑÐ°Ð·Ð¼ÐµÑ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ 20Ðб |
message_size_limit = 20971520 | message_size_limit = 20971520 | ||
− | # | + | # ÑпиÑок подÑеÑей, коÑоÑÑм ÑазÑеÑена оÑпÑавка пиÑем, и на |
− | # | + | # пиÑÑма Ñ ÐºÐ¾ÑоÑÑÑ
многие пÑовеÑки не ÑаÑпÑоÑÑÑанÑÑÑÑÑ. |
− | # | + | # здеÑÑ Ð½Ðµ должно бÑÑÑ Ð¿Ð¾Ð´ÑеÑей, коÑоÑÑе не ÑвлÑÑÑÑÑ âвнеÑнимиâ |
mynetworks = 127.0.0.0/8, 172.16.130.0/24, 172.16.131.0/24, 172.16.137.0/24, 172.16.132.0/24 | mynetworks = 127.0.0.0/8, 172.16.130.0/24, 172.16.131.0/24, 172.16.137.0/24, 172.16.132.0/24 | ||
relay_domains = proba.ru, miac35.ru | relay_domains = proba.ru, miac35.ru | ||
− | # | + | #УказÑваем ÑеÑез какой ÑеÑÐ²ÐµÑ Ð¿Ð¾ÑÑа бÑÐ´ÐµÑ Ð¿Ð¾ÑÑлаÑÑÑÑ Ð½Ð°ÑÑÐ¶Ñ |
relayhost = [192.168.1.54] | relayhost = [192.168.1.54] | ||
Строка 122: | Строка 134: | ||
virtual_mailbox_domains = mysql:/etc/postfix/sql/virtual_domains.cf | virtual_mailbox_domains = mysql:/etc/postfix/sql/virtual_domains.cf | ||
virtual_mailbox_maps = mysql:/etc/postfix/sql/virtual_mailbox.cf | virtual_mailbox_maps = mysql:/etc/postfix/sql/virtual_mailbox.cf | ||
− | # | + | # ÐгÑаниÑение ÑазмеÑа под поÑÑÑ 500 Ðб |
virtual_mailbox_limit = 524288000 | virtual_mailbox_limit = 524288000 | ||
virtual_minimum_uid = 1001 | virtual_minimum_uid = 1001 | ||
Строка 140: | Строка 152: | ||
queue_directory = /var/spool/postfix | queue_directory = /var/spool/postfix | ||
mail_owner = postfix</pre> | mail_owner = postfix</pre> | ||
− | + | ÐополниÑелÑнÑй наÑÑÑойки Postfix можно поÑмоÑÑеÑÑ Ð² ÑÑаÑÑе [[ÐоÑÑба Ñо Ñпамом, ÑÑедÑÑвами Ñамого Postfix]] | |
− | + | ÐÐ»Ñ TLS авÑоÑизаÑии ÑоздаÑм ÑеÑÑиÑÐ¸ÐºÐ°Ñ x509: | |
<pre>mkdir /usr/abills/Certs | <pre>mkdir /usr/abills/Certs | ||
cd /usr/abills/Certs | cd /usr/abills/Certs | ||
openssl req -x509 -newkey rsa:1024 -keyout smtpd.pem -out smtpd.pem -nodes -days 3650</pre> | openssl req -x509 -newkey rsa:1024 -keyout smtpd.pem -out smtpd.pem -nodes -days 3650</pre> | ||
− | + | Ðлавное в поле '''Common Name (eg, YOUR name) [mail.domain.ru]''': | |
− | + | ÑказаÑÑ FQDN ваÑего поÑÑового ÑеÑвеÑа, в данном пÑимеÑе: '''mail.domain.ru'''. ÐÑли Ð¸Ð¼Ñ ÑеÑвеÑа Ð´Ð»Ñ Ð¾ÑпÑавки/пÑиема поÑÑÑ Ð² наÑÑÑойкаÑ
поÑÑовой пÑогÑÐ°Ð¼Ð¼Ñ Ð½Ðµ ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñ ÑказаннÑм в ÑеÑÑиÑикаÑе â поÑÑÐ¾Ð²Ð°Ñ Ð¿ÑогÑамма бÑÐ´ÐµÑ Â«ÑÑгаÑÑÑÑ». | |
− | + | РдобавлÑем в конÑиг '''main.cf''': | |
<pre># tls config | <pre># tls config | ||
smtp_use_tls = yes | smtp_use_tls = yes | ||
Строка 162: | Строка 174: | ||
tls_random_source = dev:/dev/urandom | tls_random_source = dev:/dev/urandom | ||
smtpd_tls_auth_only = yes</pre> | smtpd_tls_auth_only = yes</pre> | ||
− | + | ÐпÑÐ¸Ñ '''smtpd_tls_auth_only = yes''' позволÑÐµÑ Ð¿ÑоизводиÑÑ SMTP авÑоÑизаÑÐ¸Ñ ÑолÑко в Ñежиме TLS. | |
− | + | ÐбÑаÑиÑе внимание ÑÑо virtual uid и gid имеÑÑ ÑÑаÑиÑеÑкÑÑ Ð¿ÑивÑÐ·ÐºÑ Ð¸ ÑÑи знаÑÐµÐ½Ð¸Ñ ÑледÑÐµÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð½Ð° uid и gid ÑзеÑа Ð¾Ñ ÐºÐ¾ÑоÑого бÑдеÑÑ ÑабоÑаÑÑ maildrop. | |
− | + | Рмоем ÑлÑÑае ÑÑо ÑÐ·ÐµÑ vmail Ñ uid и gid 1001. | |
− | + | ТÑанÑпоÑÑ virtual не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÐºÐ²Ð¾ÑÑ, в оÑлиÑии Ð¾Ñ maildrop, поÑÑÐ¾Ð¼Ñ ÐµÑли Ð²Ñ Ñ
оÑиÑе вклÑÑиÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ ÐºÐ²Ð¾Ñ Ð´Ð»Ñ virtual, ÑÑÑановиÑе паÑÑ [http://www.oav.net/vda/ VDA] | |
− | + | ТепеÑÑ Ñоздадим полÑзоваÑелÑ, Ð¾Ñ ÐºÐ¾ÑоÑого бÑÐ´ÐµÑ ÑабоÑаÑÑ Ð²ÑÑ Ð½Ð°Ñа виÑÑÑалÑÐ½Ð°Ñ Ð¿Ð¾ÑÑа '''vmail''' Ñ UID 1001 и GID 1001: | |
<pre># groupadd vmail -g 1001 | <pre># groupadd vmail -g 1001 | ||
# useradd vmail -u 1001 -g 1001 -d /var/mail/virtuals -s /dev/null \ | # useradd vmail -u 1001 -g 1001 -d /var/mail/virtuals -s /dev/null \ | ||
-c 'Virtual Mail User' -M </pre> | -c 'Virtual Mail User' -M </pre> | ||
− | + | ÐаÑалог Ð´Ð»Ñ Ð²Ð¸ÑÑÑалÑнÑÑ
Ñ
оÑÑов | |
<pre># mkdir /var/spool/virtual | <pre># mkdir /var/spool/virtual | ||
# chown -R vmail:vmail /var/spool/virtual | # chown -R vmail:vmail /var/spool/virtual | ||
Строка 178: | Строка 190: | ||
</pre> | </pre> | ||
− | abills - | + | abills - Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð² MySQL<br /> |
− | dbpassword - | + | dbpassword - паÑÐ¾Ð»Ñ Ð² MySQL<br /> |
− | abills - | + | abills - база MySQL<br /> |
− | 127.0.0.1 - | + | 127.0.0.1 - Ñ
оÑÑ MySQL<br /> |
− | + | Создаем ÑÐ°Ð¹Ð»Ñ Ð² диÑекÑоÑии /etc/postfix/sql | |
'''transport.cf''' | '''transport.cf''' | ||
Строка 221: | Строка 233: | ||
hosts = 127.0.0.1 | hosts = 127.0.0.1 | ||
query = SELECT box_size * 1048576 FROM mail_boxes mb, mail_domains md WHERE CONCAT(mb.username, '@', md.domain)='%s' and mb.domain_id=md.id and mb.status = '0'</pre> | query = SELECT box_size * 1048576 FROM mail_boxes mb, mail_domains md WHERE CONCAT(mb.username, '@', md.domain)='%s' and mb.domain_id=md.id and mb.status = '0'</pre> | ||
− | + | Также Ñледим за пÑавами доÑÑÑпа: | |
<pre># chown -R root:postfix /etc/postfix/sql | <pre># chown -R root:postfix /etc/postfix/sql | ||
# chmod -R 640 /etc/postfix/sql | # chmod -R 640 /etc/postfix/sql | ||
# chmod 750 /etc/postfix/sql | # chmod 750 /etc/postfix/sql | ||
</pre> | </pre> | ||
− | === | + | ===ÐаÑÑÑойка SASL=== |
− | + | Создаем Ñайл '''/etc/sasl2/smtpd.conf''' | |
<pre>pwcheck_method: saslauthd auxprop | <pre>pwcheck_method: saslauthd auxprop | ||
mech_list: login plain | mech_list: login plain | ||
Строка 237: | Строка 249: | ||
mysql_hostnames: 127.0.0.1 | mysql_hostnames: 127.0.0.1 | ||
mysql_statement: SELECT DECODE(mb.password, 'test12345678901234567890') FROM mail_boxes mb, mail_domains md WHERE CONCAT(mb.username, '@', md.domain)='%u@%r' and mb.domain_id=md.id and mb.status = '0' and (mb.expire = '0000-00-00' or mb.expire > curdate())</pre> | mysql_statement: SELECT DECODE(mb.password, 'test12345678901234567890') FROM mail_boxes mb, mail_domains md WHERE CONCAT(mb.username, '@', md.domain)='%u@%r' and mb.domain_id=md.id and mb.status = '0' and (mb.expire = '0000-00-00' or mb.expire > curdate())</pre> | ||
− | + | Также Ñледим за пÑавами доÑÑÑпа: | |
<pre>chown root:postfix /etc/sasl2/smtpd.conf | <pre>chown root:postfix /etc/sasl2/smtpd.conf | ||
chmod 640 /etc/sasl2/smtpd.conf | chmod 640 /etc/sasl2/smtpd.conf | ||
Строка 243: | Строка 255: | ||
===courier-authlib=== | ===courier-authlib=== | ||
− | + | Ðемон авÑоÑизаÑии Ð´Ð»Ñ dropmail, courier-imap, courier-pop3d<br /> | |
− | + | ÐÐ»Ñ Ð´Ð¾ÑÑÑпа к ÑпÑÐ»Ñ Ð¿Ð¾ÑÑÑ /var/spool/virtual courier ÑабоÑÐ°ÐµÑ Ð¾Ñ ÑзеÑа vmail (uid 1001,gid 1001)<br /> | |
− | + | ÐÑавим конÑигÑÑаÑионнÑй Ñайл Ð´Ð»Ñ courier-authlib '''/etc/courier/authmysqlrc''' | |
<pre>MYSQL_CLEAR_PWFIELD DECODE(mb.password, '%secretkey%') | <pre>MYSQL_CLEAR_PWFIELD DECODE(mb.password, '%secretkey%') | ||
MYSQL_DATABASE abills | MYSQL_DATABASE abills | ||
Строка 262: | Строка 274: | ||
MYSQL_USER_TABLE mail_boxes mb, mail_domains md | MYSQL_USER_TABLE mail_boxes mb, mail_domains md | ||
MYSQL_WHERE_CLAUSE mb.status='0'</pre> | MYSQL_WHERE_CLAUSE mb.status='0'</pre> | ||
− | + | УбедиÑеÑÑ ÑÑо иÑполÑзована ÑабÑлÑÑÐ¸Ñ Ð° не пÑобелÑ, инаÑе конÑиг не бÑÐ´ÐµÑ ÑабоÑаÑÑ.<br /> | |
− | '''%secretkey%''' - | + | '''%secretkey%''' - ÑÑо код из Ñайла '''/usr/abills/libexec/config.pl''', по ÑмолÑÐ°Ð½Ð¸Ñ '''test12345678901234567890''' |
− | + | ÐÑавим Ñайл /etc/courier/autodaemonrc<br /> | |
<pre>#authmodulelist="authpam authpwd authshadow" | <pre>#authmodulelist="authpam authpwd authshadow" | ||
authmodulelist="authmysql"</pre> | authmodulelist="authmysql"</pre> | ||
− | + | РедакÑиÑÑем ÑÐ°Ð¹Ð»Ñ pop3d, imapd, pop3d-ssl, imapd-ssl в /etc/courier-imap. Ðезде впиÑÑваем нÑжнÑй нам ADDRESS и менÑем ÑÑÑоÑки вида POP3DSTART=no на POP3DSTART=yes | |
− | + | запÑÑкаем authdaemon и дÑÑгие: | |
<pre>service courier-authdaemon start | <pre>service courier-authdaemon start | ||
service courier-pop3d start | service courier-pop3d start | ||
Строка 276: | Строка 288: | ||
service courier-imapd start | service courier-imapd start | ||
service courier-imapd-ssl start</pre> | service courier-imapd-ssl start</pre> | ||
− | ==== | + | ====ÐÑовеÑка:==== |
# '''telnet 127.0.0.1 110''' | # '''telnet 127.0.0.1 110''' | ||
Trying 127.0.0.1... | Trying 127.0.0.1... | ||
Строка 289: | Строка 301: | ||
+OK Bye-bye. | +OK Bye-bye. | ||
Connection closed by foreign host. | Connection closed by foreign host. | ||
− | + | ÐÑделенное жиÑнÑм ÑÑиÑÑом набиÑаÑÑ Ñ ÐºÐ¾Ð½Ñоли | |
− | + | ÐÑедваÑиÑелÑно нÑжно ÑоздаÑÑ Ð¿Ð¾ÑÑовÑй ÑÑик и паÑÐ¾Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð² http://host/abills/admin , а Ñам ÐлиенÑÑ --> ÐÐ¾Ð³Ð¸Ð½Ñ --> Dialup / VPN --> ÐолÑзоваÑели | |
− | === | + | ===УÑÑановка Courier-imap=== |
[http://www.courier-mta.org/imap/ courier-imap] | [http://www.courier-mta.org/imap/ courier-imap] | ||
[http://www.courier-mta.org/authlib/ Courier Authentication Library] | [http://www.courier-mta.org/authlib/ Courier Authentication Library] | ||
− | + | Создаем SSL ÑеÑÑиÑÐ¸ÐºÐ°Ñ | |
<pre># cp /etc/pki/tls/courier-imapd.cnf /etc/courier/imapd.cnf | <pre># cp /etc/pki/tls/courier-imapd.cnf /etc/courier/imapd.cnf | ||
# mkimapdcert</pre> | # mkimapdcert</pre> | ||
− | === | + | ===ТеÑÑиÑование TLS=== |
− | + | ÐÐ»Ñ ÑеÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð¾ÑполÑзÑемÑÑ telnet-ом на 25 поÑÑ Ð»Ð¾ÐºÐ°Ð»Ñной маÑинÑ. ÐиÑнÑм ÑÑиÑÑом вÑделен ввод Ñ ÐºÐ»Ð°Ð²Ð¸Ð°ÑÑÑÑ. | |
# telnet localhost 25 | # telnet localhost 25 | ||
Trying ::1... | Trying ::1... | ||
Строка 322: | Строка 334: | ||
Connection closed by foreign host. | Connection closed by foreign host. | ||
− | + | ÐбÑаÑаем внимание на поÑвивÑÑÑÑÑ ÑÑÑÐ¾ÐºÑ '''250-STARTTLS''', ÑÑо обознаÑаеÑ, ÑÑо ÑеÑÐ²ÐµÑ Ð³Ð¾Ñов ÑабоÑаÑÑ Ñ Ð¸ÑполÑзованием пÑоÑокола TLS. ÐÑо Ñак назÑваемое '''«безопаÑное Ñоединение на ÑÑандаÑÑном поÑÑÑ»'''. | |
===maildrop=== | ===maildrop=== | ||
[http://www.courier-mta.org/maildrop/maildrop maildrop]<br /> | [http://www.courier-mta.org/maildrop/maildrop maildrop]<br /> | ||
− | + | У Ð¼ÐµÐ½Ñ Ñак и не полÑÑилоÑÑ Ð½Ð°ÑÑÑоиÑÑ maildrop. Ðо Ñк ÑÑанÑпоÑÑ virtual, поÑле ÑÑÑановки паÑÑа VDA, ноÑмалÑно ÑабоÑÐ°ÐµÑ Ñ ÐºÐ²Ð¾Ñами на ÑÐ°Ð·Ð¼ÐµÑ ÑÑиков, Ñо Ñ Ñак его и оÑÑавил. | |
− | maildrop | + | maildrop ÑвлÑеÑÑÑ Ð°Ð»ÑÑеÑнаÑивой ÑиÑоко иÑполÑзÑÐµÐ¼Ð¾Ð¼Ñ procmail и Ð¸Ð¼ÐµÐµÑ Ð³Ð¾Ñаздо болÑÑие возможноÑÑи - поддеÑжка mysql и ldap, поддеÑжка квоÑ, более моÑнÑй ÑзÑк ÑилÑÑÑаÑии, повÑÑÐµÐ½Ð½Ð°Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑÑ, поддеÑжка ÑоÑмаÑа Maildir++. |
− | + | Ðолее подÑÐ¾Ð±Ð½Ð°Ñ Ð´Ð¾ÐºÑменÑаÑии в диÑекÑоÑии /usr/share/doc/maildrop | |
− | + | ÐоÑле ÑÑÑановки запÑÑÑиÑе maildrop -v. ÐÐ¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑледÑÑÑие ÑÑÑоки | |
<pre>Courier Authentication Library extension enabled. | <pre>Courier Authentication Library extension enabled. | ||
Maildir quota extension enabled.</pre> | Maildir quota extension enabled.</pre> | ||
− | + | Ð '''/etc/postfix/master.cf''' измениÑе конÑиг maildrop на | |
<pre>maildrop unix - n n - - pipe | <pre>maildrop unix - n n - - pipe | ||
flags=Rhu user=vmail argv=/usr/bin/maildrop -w 90 -d ${recipient}</pre> | flags=Rhu user=vmail argv=/usr/bin/maildrop -w 90 -d ${recipient}</pre> | ||
− | + | Создаем Ñайл '''/var/spool/virtual/.mailfilter''' Ñо ÑледÑÑÑим ÑодеÑжанием | |
<pre>SHELL=/bin/sh | <pre>SHELL=/bin/sh | ||
Строка 364: | Строка 376: | ||
to "$MAILDIR"</pre> | to "$MAILDIR"</pre> | ||
− | + | СÑавим пÑава на запиÑÑ Ð¸ ÑÑение ÑолÑко полÑзоваÑÐµÐ»Ñ Ð¸Ð½Ð°Ñе maildrop оÑкажеÑÑÑ ÑабоÑаÑÑ. | |
<pre># chmod 600 /var/spool/virtual/.mailfilter | <pre># chmod 600 /var/spool/virtual/.mailfilter | ||
# chown vmail:vmail /var/spool/virtual/.mailfilter</pre> | # chown vmail:vmail /var/spool/virtual/.mailfilter</pre> | ||
− | + | Создаем диÑекÑоÑÐ¸Ñ /var/spool/virtual.mailfilters | |
<pre># mkdir -m 700 /var/spool/virtual/.mailfilters | <pre># mkdir -m 700 /var/spool/virtual/.mailfilters | ||
# chown vmail:vmail /var/spool/virtual/.mailfilters</pre> | # chown vmail:vmail /var/spool/virtual/.mailfilters</pre> | ||
− | + | Создаем include Ñайл в ÑоÑмаÑе user@domain ÑооÑвеÑÑвÑÑÑÐµÐ¼Ñ Ð¿ÐµÑеменной $LOGNAME /var/spool/virtual/.mailfilters/user@test.local.net Ñо ÑледÑÑÑим ÑодеÑжанием | |
<pre>if ( /^X-Spam-Status: Yes/:h ) | <pre>if ( /^X-Spam-Status: Yes/:h ) | ||
{ | { | ||
to "$HOME/$LOGNAME/.Spam" | to "$HOME/$LOGNAME/.Spam" | ||
− | # | + | # или оÑпÑавлÑем в /dev/null |
# to "| cat - >/dev/null" | # to "| cat - >/dev/null" | ||
} | } | ||
to "$HOME/$LOGNAME"</pre> | to "$HOME/$LOGNAME"</pre> | ||
− | NB! | + | NB! РоÑлиÑии Ð¾Ñ virtual maildrop Ñам не ÑÐ¾Ð·Ð´Ð°ÐµÑ maildir, поÑÑÐ¾Ð¼Ñ ÑледÑÐµÑ ÑоздаÑÑ Ð½ÑжнÑй вам maildir и subfolders иÑполÑзÑÑ ÑÑилиÑÑ maildirmake |
<pre># su -fm vmail -c 'maildirmake /var/spool/virtual/test.local.net/user' | <pre># su -fm vmail -c 'maildirmake /var/spool/virtual/test.local.net/user' | ||
# su -fm vmail -c 'maildirmake -f Spam /var/spool/virtual/test.local.net/user'</pre> | # su -fm vmail -c 'maildirmake -f Spam /var/spool/virtual/test.local.net/user'</pre> | ||
− | + | Файл .mailfilter - ÑÑо Ñайл Ð´Ð°ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ maildrop вÑбÑаÑÑ Ð½ÑжнÑй конÑиг Ð´Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, иÑполÑзÑÑ ÐµÐ³Ð¾ логин, коÑоÑÑй беÑеÑÑÑ Ð¸Ð· пеÑеменной $LOGNAME (user@domain). | |
− | + | РдиÑекÑоÑии .mailfilters Ñ
ÑанÑÑÑÑ ÐºÐ¾Ð½Ñиги Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ виÑÑÑалÑного ÑзеÑа. | |
− | Maildrop | + | Maildrop бÑÐ´ÐµÑ Ð¸ÑкаÑÑ ÐºÐ¾Ð½Ñиг в ÑоÑмаÑе user@domain и иÑполÑзоваÑÑ ÐµÐ³Ð¾. |
− | + | Ðожно напиÑаÑÑ ÑкÑипÑ, коÑоÑÑй пÑи Ñоздании maildir, авÑомаÑиÑеÑки ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð½ÑжнÑй конÑиг Ñ Ð´ÐµÑолÑнÑми опÑиÑми mailfilters. | |
− | + | Рданном пÑимеÑе maildrop оÑбиÑÐ°ÐµÑ Ð¿Ð¾ÑÑÑ Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¾Ð¼ X-Spam-Status: Yes, коÑоÑÑй генеÑиÑÑÐµÑ spamassassin, ÑÑÑановка коÑоÑого бÑÐ´ÐµÑ ÑаÑÑмоÑÑена ниже, и ÐºÐ»Ð°Ð´ÐµÑ ÐµÐµ в Ð¿Ð°Ð¿ÐºÑ Spam. ÐÑÑалÑÐ½Ð°Ñ Ð¿Ð¾ÑÑа напÑавлÑеÑÑÑ Ð² INBOX. | |
− | + | ÐÑимеÑÑ ÑилÑÑÑов Ð´Ð»Ñ maildrop можно найÑи на | |
http://sourceforge.net/projects/mdropspammailfilter | http://sourceforge.net/projects/mdropspammailfilter | ||
− | + | Создаем Ñайл '''/usr/local/etc/quotawarnmsg''' | |
==DB-Mail== | ==DB-Mail== | ||
− | == | + | ==ÐомпилÑÑÐ¸Ñ Postfix Ñ Ð¿Ð¾Ð´Ð´ÐµÑжкой MYSQL SASL2 и TLS и VDA== |
− | + | СнаÑала надо ÑÑÑановиÑÑ Ð¿Ð°ÐºÐµÑÑ db*-devel*.i586.rpm, libdb*-devel*.i586.rpm, libmysql*-devel*.i586.rpm. | |
− | + | ÐоÑом каÑаем patch [http://vda.sourceforge.net/ VDA] | |
− | + | Ðба Ñайла кладем в '''/usr/local/src''' и далее: | |
<pre># tar zxvf postfix-2.3.7.tar.gz | <pre># tar zxvf postfix-2.3.7.tar.gz | ||
# cp postfix-2.3.7-vda.patch.gz postfix-2.3.7 | # cp postfix-2.3.7-vda.patch.gz postfix-2.3.7 | ||
# cd postfix-2.3.7 | # cd postfix-2.3.7 | ||
# patch -p1 < postfix-2.3.7-vda.patch.gz </pre> | # patch -p1 < postfix-2.3.7-vda.patch.gz </pre> | ||
− | + | Создаем Ñайл make_config.sh | |
<pre>make -f Makefile.init makefiles 'CCARGS=-DDEF_SAMPLE_DIR=\"/etc/mail/sample\" -DHAS_MYSQL \ | <pre>make -f Makefile.init makefiles 'CCARGS=-DDEF_SAMPLE_DIR=\"/etc/mail/sample\" -DHAS_MYSQL \ | ||
-I/usr/include/mysql -DUSE_SASL_AUTH -I/usr/include/sasl -DUSE_SSL \ | -I/usr/include/mysql -DUSE_SASL_AUTH -I/usr/include/sasl -DUSE_SSL \ | ||
-I/usr/include/ssl' 'AUXLIBS=-L/usr/lib/mysql -lmysqlclient \ | -I/usr/include/ssl' 'AUXLIBS=-L/usr/lib/mysql -lmysqlclient \ | ||
-L/usr/lib -lsasl2 -lz -lm -L/usr/lib/ssl -lssl -lcrypto'</pre> | -L/usr/lib -lsasl2 -lz -lm -L/usr/lib/ssl -lssl -lcrypto'</pre> | ||
− | + | Ðалее | |
<pre># sh make_config.sh | <pre># sh make_config.sh | ||
# make | # make | ||
# make install</pre> | # make install</pre> |
Версия 00:26, 12 ноября 2009
http://pascnadomz.com/noletod.html[acelviracg] [[1][acelviracg]]
- http://roeltn.com/ouroget.html acelviracg
- [acelviracg]
- [[2]]
- [| acelviracg]
- [3]
- [acelviracg|http://monrolatabo.com/boerrelracac.html]
- ((http://cnachiz.com/basgetc.html acelviracg))
- [acelviracg](http://baslige.com/cavarli.html "acelviracg")
"acelviracg":http://basbocdardar.com/darlib.html
ÐÑа ÑÑаÑÑÑ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² ÑÑадии ÑазÑабоки. ÐÑигинал ÑÑаÑÑи Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ ÑÑÑ. Я пÑоÑÑо пиÑÑ, ÑÑо Ñ Ð¼ÐµÐ½Ñ Ð¸Ð· ÑÑого полÑÑилоÑÑ Ð½Ð° оÑнове Mandriva 2008.
Содержание
MYSQL
Так как postfix ÑабоÑÐ°ÐµÑ Ð² chroot, Ñо доÑÑÑÑаÑÑÑÑ Ð¸Ð· него до mysql ÑеÑвеÑа ÑеÑез ÑÐ¾ÐºÐµÑ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾. ÐÐ»Ñ ÑабоÑÑ postfix c mysql нÑжно закоменÑиÑоваÑÑ ÑÑÑÐ¾ÐºÑ Ð² skip-networking в Ñайле /etc/my.cnf, пеÑезапÑÑÑиÑÑ mysql и даÑÑ Ð´Ð¾ÑÑÑп к поÑÑÑ 3306 Ð´Ð»Ñ Ñамого ÑеÑвеÑа.
iptables -A INPUT -p TCP -s 127.0.0.1 --dport 3306 -j ACCEPT
УÑÑановка пакеÑов
ÐÑак ÑÑÑанавливаем ÑледÑÑÑие пакеÑÑ postfix-2.3.3-4mdv2007.0.i586.rpm, courier-imap-4.1.1-8mdv2007.0.i586.rpm Ñо вÑеми завиÑимоÑÑÑми, courier-authlib-mysql-0.58-9mdv2007.0.i586.rpm,courier-pop-4.1.1-6mdv2007.0.i586.rpm, maildrop-1.7.0-10mdv2007.0.i586.rpm, maildrop-mysql-1.7.0-10mdv2007.0.i586.rpm, libsasl2-plug-sql-2.1.22-20mdv2007.0.i586.rpm.
ÐÑли Ð¿Ð°ÐºÐµÑ maildrop-1.7.0-10mdv2007.0.i586.rpm бÑÐ´ÐµÑ ÑÑгаÑÑÑÑ Ð½Ð° конÑÐ»Ð¸ÐºÑ ÑÑÑановиÑе его Ñак
rpm -i --nodeps --excludedocs maildrop-1.7.0-10mdv2007.0.i586.rpm
ÐодÑÐ»Ñ Ð¿ÑедназнаÑен Ð´Ð»Ñ ÑпÑоÑÐµÐ½Ð¸Ñ Ð¿ÑоÑеÑÑа ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ÑÑовÑми ÑÑиками полÑзоваÑелей из инÑеÑÑейÑа биллинга.
УÑÑановка
abills/libexec/config.pl
@MODULES = ( 'Mail' );
ÐÑли иÑполÑзÑеÑе SpamAssasin
# mysql -D abills < db/Mail.sql
$conf{MAIL_CHG_PASSWD}=1; | РазÑеÑиÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑм изменÑÑÑ Ð¿Ð°Ñоли Ð´Ð»Ñ ÑÐ²Ð¾Ð¸Ñ Ð¿Ð¾ÑÑовÑÑ ÑÑиков |
$conf{MAIL_USER_FULL_CONTROL}=1; | РазÑеÑиÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑм ÑдалÑÑÑ Ð¸ добавлÑÑÑ Ñебе поÑÑовÑе ÑÑики. С возможноÑÑÑÑ Ð²Ð·ÑÐ¼Ð°Ð½Ð¸Ñ Ð¿Ð»Ð°ÑÑ Ð·Ð° ÑÑлÑгÑ. |
$conf{MAIL_USER_DOMAIN_MNG}=1; | РазÑеÑиÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ ÑпÑавлÑÑÑ Ñвоим доменом. |
$conf{MAIL_SPAMD}='spamassasin'; | ÐклÑÑиÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ SpamAssasin |
ÐаÑÑÑойка
System configuration --> E-MAIL
Domains
СпиÑок виÑÑÑалÑнÑÑ Ð´Ð¾Ð¼ÐµÐ½Ð¾Ð² ÑиÑÑемÑ.
Domain | Ðазвание домена |
Transport | ТÑанÑпоÑÑ Ð´Ð»Ñ Ð´Ð°Ð½Ð¾Ð³Ð¾ домена. ÐозможнÑе ваÑианÑÑ: virtual: maildrop: ÐоÑÑовÑй Ð°Ð³ÐµÐ½Ñ maildrop local: relay: |
Backup MX | СеÑÐ²ÐµÑ ÑвлÑеÑÑÑ Ð¿ÑомежÑÑоÑнÑй MX Ð´Ð»Ñ Ð´Ð°Ð½Ð¾Ð³Ð¾ домена |
Disable | ÐлокиÑоваÑÑ |
Comments | ÐоменÑаÑии |
Aliases
СпиÑок виÑÑÑалÑнÑÑ Ð¿Ñевдонимов
Address | ÐдÑÐµÑ |
GOTO | ÐеÑенапÑавиÑÑ Ð½Ð° домен |
Disable | ÐлокиÑоваÑÑ Ð¿Ñавило |
Access
ÐонÑÑÐ¾Ð»Ñ Ð´Ð¾ÑÑÑпа к поÑÑовой ÑлÑжбе
/ Customers/ Logins/ E-MAIL List/
СпиÑок поÑÑовÑÑ
ÑÑиков ÑиÑÑемÑ.
/ Customers/ Logins/ Information/ Services/ E-MAIL/
УпÑавление поÑÑовÑм ÑÑиком полÑзоваÑелÑÑ.
Postfix
Postfix
Так как Ñ Ð²Ñе наÑÑÑаивал Ñ ÑÑанÑпоÑÑом virtual (Ñ maildrop Ñ Ð¼ÐµÐ½Ñ Ð½Ðµ полÑÑилоÑÑ), а в Mandriva Ð¸Ð´ÐµÑ Ð¿Ð°ÐºÐµÑ POstfix без поддеÑжки VDA, Ñо внаÑале надо пеÑе ÑобÑаÑÑ Ð¿Ð°ÐºÐµÑ Ñ ÐµÐµ поддеÑжкой.
ÐоÑле ÑÑÑановки
# newaliases # cp /etc/postfix/main.cf.dist /etc/postfix/main.cf
СоздаÑÑ ÐºÐ°Ñалог Ð´Ð»Ñ Ð²Ð¸ÑÑÑалÑнÑÑ Ð´Ð¾Ð¼ÐµÐ½Ð¾Ð²:
ÐÑкÑÑваем main.cf и вноÑим ÑÑда ÑледÑÑие знаÑениÑ:
myorigin = proba.ru #mydomain = proba.ru debug_peer_level = 2 mydestination = $myhostname, localhost.$mydomain #ÐакÑималÑно допÑÑÑимÑй ÑÐ°Ð·Ð¼ÐµÑ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ 20Ðб message_size_limit = 20971520 # ÑпиÑок подÑеÑей, коÑоÑÑм ÑазÑеÑена оÑпÑавка пиÑем, и на # пиÑÑма Ñ ÐºÐ¾ÑоÑÑÑ Ð¼Ð½Ð¾Ð³Ð¸Ðµ пÑовеÑки не ÑаÑпÑоÑÑÑанÑÑÑÑÑ. # здеÑÑ Ð½Ðµ должно бÑÑÑ Ð¿Ð¾Ð´ÑеÑей, коÑоÑÑе не ÑвлÑÑÑÑÑ âвнеÑнимиâ mynetworks = 127.0.0.0/8, 172.16.130.0/24, 172.16.131.0/24, 172.16.137.0/24, 172.16.132.0/24 relay_domains = proba.ru, miac35.ru #УказÑваем ÑеÑез какой ÑеÑÐ²ÐµÑ Ð¿Ð¾ÑÑа бÑÐ´ÐµÑ Ð¿Ð¾ÑÑлаÑÑÑÑ Ð½Ð°ÑÑÐ¶Ñ relayhost = [192.168.1.54] disable_vrfy_command = yes smtpd_helo_required = yes smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous transport_maps = mysql:/etc/postfix/sql/transport.cf virtual_alias_maps = mysql:/etc/postfix/sql/aliases.cf virtual_gid_maps = static:1001 virtual_mailbox_base = /var/spool/virtual virtual_mailbox_domains = mysql:/etc/postfix/sql/virtual_domains.cf virtual_mailbox_maps = mysql:/etc/postfix/sql/virtual_mailbox.cf # ÐгÑаниÑение ÑазмеÑа под поÑÑÑ 500 Ðб virtual_mailbox_limit = 524288000 virtual_minimum_uid = 1001 virtual_uid_maps = static:1001 local_recipient_maps = unix:passwd.byname $alias_maps # Additional for quota support for virtual transport virtual_create_maildirsize = yes virtual_mailbox_extended = yes virtual_mailbox_limit_maps = mysql:/etc/postfix/sql/virtual_mailbox_limits.cf virtual_mailbox_limit_override = yes virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later. virtual_overquota_bounce = yes setgid_group = postdrop queue_directory = /var/spool/postfix mail_owner = postfix
ÐополниÑелÑнÑй наÑÑÑойки Postfix можно поÑмоÑÑеÑÑ Ð² ÑÑаÑÑе ÐоÑÑба Ñо Ñпамом, ÑÑедÑÑвами Ñамого Postfix
ÐÐ»Ñ TLS авÑоÑизаÑии ÑоздаÑм ÑеÑÑиÑÐ¸ÐºÐ°Ñ x509:
mkdir /usr/abills/Certs cd /usr/abills/Certs openssl req -x509 -newkey rsa:1024 -keyout smtpd.pem -out smtpd.pem -nodes -days 3650
Ðлавное в поле Common Name (eg, YOUR name) [mail.domain.ru]: ÑказаÑÑ FQDN ваÑего поÑÑового ÑеÑвеÑа, в данном пÑимеÑе: mail.domain.ru. ÐÑли Ð¸Ð¼Ñ ÑеÑвеÑа Ð´Ð»Ñ Ð¾ÑпÑавки/пÑиема поÑÑÑ Ð² наÑÑÑÐ¾Ð¹ÐºÐ°Ñ Ð¿Ð¾ÑÑовой пÑогÑÐ°Ð¼Ð¼Ñ Ð½Ðµ ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñ ÑказаннÑм в ÑеÑÑиÑикаÑе â поÑÑÐ¾Ð²Ð°Ñ Ð¿ÑогÑамма бÑÐ´ÐµÑ Â«ÑÑгаÑÑÑÑ».
РдобавлÑем в конÑиг main.cf:
# tls config smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /usr/abills/Certs/smtpd.pem smtpd_tls_cert_file = /usr/abills/Certs/smtpd.pem smtpd_tls_CAfile = /usr/abills/Certs/smtpd.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom smtpd_tls_auth_only = yes
ÐпÑÐ¸Ñ smtpd_tls_auth_only = yes позволÑÐµÑ Ð¿ÑоизводиÑÑ SMTP авÑоÑизаÑÐ¸Ñ ÑолÑко в Ñежиме TLS.
ÐбÑаÑиÑе внимание ÑÑо virtual uid и gid имеÑÑ ÑÑаÑиÑеÑкÑÑ Ð¿ÑивÑÐ·ÐºÑ Ð¸ ÑÑи знаÑÐµÐ½Ð¸Ñ ÑледÑÐµÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð½Ð° uid и gid ÑзеÑа Ð¾Ñ ÐºÐ¾ÑоÑого бÑдеÑÑ ÑабоÑаÑÑ maildrop. Рмоем ÑлÑÑае ÑÑо ÑÐ·ÐµÑ vmail Ñ uid и gid 1001. ТÑанÑпоÑÑ virtual не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÐºÐ²Ð¾ÑÑ, в оÑлиÑии Ð¾Ñ maildrop, поÑÑÐ¾Ð¼Ñ ÐµÑли Ð²Ñ Ñ Ð¾ÑиÑе вклÑÑиÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ ÐºÐ²Ð¾Ñ Ð´Ð»Ñ virtual, ÑÑÑановиÑе паÑÑ VDA
ТепеÑÑ Ñоздадим полÑзоваÑелÑ, Ð¾Ñ ÐºÐ¾ÑоÑого бÑÐ´ÐµÑ ÑабоÑаÑÑ Ð²ÑÑ Ð½Ð°Ñа виÑÑÑалÑÐ½Ð°Ñ Ð¿Ð¾ÑÑа vmail Ñ UID 1001 и GID 1001:
# groupadd vmail -g 1001 # useradd vmail -u 1001 -g 1001 -d /var/mail/virtuals -s /dev/null \ -c 'Virtual Mail User' -M
ÐаÑалог Ð´Ð»Ñ Ð²Ð¸ÑÑÑалÑнÑÑ Ñ Ð¾ÑÑов
# mkdir /var/spool/virtual # chown -R vmail:vmail /var/spool/virtual # chmod -R 771 /var/spool/virtual
abills - Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð² MySQL
dbpassword - паÑÐ¾Ð»Ñ Ð² MySQL
abills - база MySQL
127.0.0.1 - Ñ
оÑÑ MySQL
Создаем ÑÐ°Ð¹Ð»Ñ Ð² диÑекÑоÑии /etc/postfix/sql
transport.cf
user = abills password = dbpassword dbname = abills hosts = 127.0.0.1 query = SELECT transport FROM mail_domains WHERE domain='%d'
access.cf
user = abills password = dbpassword dbname = abills hosts = 127.0.0.1 query = SELECT action FROM mail_access WHERE pattern='%s'
aliases.cf
user = abills password = dbpassword dbname = abills hosts = 127.0.0.1 query = SELECT goto FROM mail_aliases WHERE address='%s'
virtual_domains.cf
user = abills password = dbpassword dbname = abills hosts = 127.0.0.1 query = SELECT domain FROM mail_domains WHERE domain='%d' AND backup_mx='0' AND status='0'
virtual_mailbox.cf
user = abills password = dbpassword dbname = abills hosts = 127.0.0.1 query = SELECT CONCAT(md.domain,'/',mb.username,'/') FROM mail_boxes mb, mail_domains md WHERE CONCAT(mb.username, '@', md.domain)='%s' and mb.domain_id=md.id and mb.status = '0' and (mb.expire = '0000-00-00' or mb.expire > curdate())
virtual_mailbox_limits.cf
user = abills password = dbpassword dbname = abills hosts = 127.0.0.1 query = SELECT box_size * 1048576 FROM mail_boxes mb, mail_domains md WHERE CONCAT(mb.username, '@', md.domain)='%s' and mb.domain_id=md.id and mb.status = '0'
Также Ñледим за пÑавами доÑÑÑпа:
# chown -R root:postfix /etc/postfix/sql # chmod -R 640 /etc/postfix/sql # chmod 750 /etc/postfix/sql
ÐаÑÑÑойка SASL
Создаем Ñайл /etc/sasl2/smtpd.conf
pwcheck_method: saslauthd auxprop mech_list: login plain auxprop_plugin: sql sql_engine: mysql mysql_user: abills mysql_passwd: dbpassword mysql_database: abills mysql_hostnames: 127.0.0.1 mysql_statement: SELECT DECODE(mb.password, 'test12345678901234567890') FROM mail_boxes mb, mail_domains md WHERE CONCAT(mb.username, '@', md.domain)='%u@%r' and mb.domain_id=md.id and mb.status = '0' and (mb.expire = '0000-00-00' or mb.expire > curdate())
Также Ñледим за пÑавами доÑÑÑпа:
chown root:postfix /etc/sasl2/smtpd.conf chmod 640 /etc/sasl2/smtpd.conf
courier-authlib
Ðемон авÑоÑизаÑии Ð´Ð»Ñ dropmail, courier-imap, courier-pop3d
ÐÐ»Ñ Ð´Ð¾ÑÑÑпа к ÑпÑÐ»Ñ Ð¿Ð¾ÑÑÑ /var/spool/virtual courier ÑабоÑÐ°ÐµÑ Ð¾Ñ ÑзеÑа vmail (uid 1001,gid 1001)
ÐÑавим конÑигÑÑаÑионнÑй Ñайл Ð´Ð»Ñ courier-authlib /etc/courier/authmysqlrc
MYSQL_CLEAR_PWFIELD DECODE(mb.password, '%secretkey%') MYSQL_DATABASE abills MYSQL_PASSWORD dbpassword MYSQL_USERNAME abills MYSQL_SERVER 127.0.0.1 MYSQL_GID_FIELD '1001' MYSQL_HOME_FIELD CONCAT('/var/spool/virtual/') MYSQL_LOGIN_FIELD CONCAT(mb.username, '@', md.domain) MYSQL_MAILDIR_FIELD CONCAT('/var/spool/virtual/', md.domain,'/',mb.username,'/') MYSQL_NAME_FIELD CONCAT(mb.username, '@', md.domain) MYSQL_OPT 0 MYSQL_PORT 3306 MYSQL_QUOTA_FIELD CONCAT(mb.box_size * 1048576,'S') MYSQL_UID_FIELD '1001' MYSQL_USER_TABLE mail_boxes mb, mail_domains md MYSQL_WHERE_CLAUSE mb.status='0'
УбедиÑеÑÑ ÑÑо иÑполÑзована ÑабÑлÑÑÐ¸Ñ Ð° не пÑобелÑ, инаÑе конÑиг не бÑÐ´ÐµÑ ÑабоÑаÑÑ.
%secretkey% - ÑÑо код из Ñайла /usr/abills/libexec/config.pl, по ÑмолÑÐ°Ð½Ð¸Ñ test12345678901234567890
ÐÑавим Ñайл /etc/courier/autodaemonrc
#authmodulelist="authpam authpwd authshadow" authmodulelist="authmysql"
РедакÑиÑÑем ÑÐ°Ð¹Ð»Ñ pop3d, imapd, pop3d-ssl, imapd-ssl в /etc/courier-imap. Ðезде впиÑÑваем нÑжнÑй нам ADDRESS и менÑем ÑÑÑоÑки вида POP3DSTART=no на POP3DSTART=yes
запÑÑкаем authdaemon и дÑÑгие:
service courier-authdaemon start service courier-pop3d start service courier-pop3d-ssl start service courier-imapd start service courier-imapd-ssl start
ÐÑовеÑка:
# telnet 127.0.0.1 110 Trying 127.0.0.1... Connected to proba (127.0.0.1). Escape character is '^]'. +OK Hello there. user misha@proba.ru +OK Password required. pass password +OK logged in. quit +OK Bye-bye. Connection closed by foreign host.
ÐÑделенное жиÑнÑм ÑÑиÑÑом набиÑаÑÑ Ñ ÐºÐ¾Ð½Ñоли
ÐÑедваÑиÑелÑно нÑжно ÑоздаÑÑ Ð¿Ð¾ÑÑовÑй ÑÑик и паÑÐ¾Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð² http://host/abills/admin , а Ñам ÐлиенÑÑ --> ÐÐ¾Ð³Ð¸Ð½Ñ --> Dialup / VPN --> ÐолÑзоваÑели
УÑÑановка Courier-imap
courier-imap Courier Authentication Library
Создаем SSL ÑеÑÑиÑикаÑ
# cp /etc/pki/tls/courier-imapd.cnf /etc/courier/imapd.cnf # mkimapdcert
ТеÑÑиÑование TLS
ÐÐ»Ñ ÑеÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð¾ÑполÑзÑемÑÑ telnet-ом на 25 поÑÑ Ð»Ð¾ÐºÐ°Ð»Ñной маÑинÑ. ÐиÑнÑм ÑÑиÑÑом вÑделен ввод Ñ ÐºÐ»Ð°Ð²Ð¸Ð°ÑÑÑÑ.
# telnet localhost 25 Trying ::1... Trying 127.0.0.1... Connected to localhost.domain.ru. Escape character is '^]'. 220 new.domain.ru Mail Server ehlo domain.ru 250-onix.domain.ru 250-PIPELINING 250-SIZE 10240000 250-ETRN 250-STARTTLS 250 8BITMIME starttls 220 Ready to start TLS quit quit Connection closed by foreign host.
ÐбÑаÑаем внимание на поÑвивÑÑÑÑÑ ÑÑÑÐ¾ÐºÑ 250-STARTTLS, ÑÑо обознаÑаеÑ, ÑÑо ÑеÑÐ²ÐµÑ Ð³Ð¾Ñов ÑабоÑаÑÑ Ñ Ð¸ÑполÑзованием пÑоÑокола TLS. ÐÑо Ñак назÑваемое «безопаÑное Ñоединение на ÑÑандаÑÑном поÑÑÑ».
maildrop
maildrop
У Ð¼ÐµÐ½Ñ Ñак и не полÑÑилоÑÑ Ð½Ð°ÑÑÑоиÑÑ maildrop. Ðо Ñк ÑÑанÑпоÑÑ virtual, поÑле ÑÑÑановки паÑÑа VDA, ноÑмалÑно ÑабоÑÐ°ÐµÑ Ñ ÐºÐ²Ð¾Ñами на ÑÐ°Ð·Ð¼ÐµÑ ÑÑиков, Ñо Ñ Ñак его и оÑÑавил.
maildrop ÑвлÑеÑÑÑ Ð°Ð»ÑÑеÑнаÑивой ÑиÑоко иÑполÑзÑÐµÐ¼Ð¾Ð¼Ñ procmail и Ð¸Ð¼ÐµÐµÑ Ð³Ð¾Ñаздо болÑÑие возможноÑÑи - поддеÑжка mysql и ldap, поддеÑжка квоÑ, более моÑнÑй ÑзÑк ÑилÑÑÑаÑии, повÑÑÐµÐ½Ð½Ð°Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑÑ, поддеÑжка ÑоÑмаÑа Maildir++. Ðолее подÑÐ¾Ð±Ð½Ð°Ñ Ð´Ð¾ÐºÑменÑаÑии в диÑекÑоÑии /usr/share/doc/maildrop
ÐоÑле ÑÑÑановки запÑÑÑиÑе maildrop -v. ÐÐ¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑледÑÑÑие ÑÑÑоки
Courier Authentication Library extension enabled. Maildir quota extension enabled.
Ð /etc/postfix/master.cf измениÑе конÑиг maildrop на
maildrop unix - n n - - pipe flags=Rhu user=vmail argv=/usr/bin/maildrop -w 90 -d ${recipient}
Создаем Ñайл /var/spool/virtual/.mailfilter Ñо ÑледÑÑÑим ÑодеÑжанием
SHELL=/bin/sh UMASK=077 mail=tolower($mail) LOGNAME=tolower($LOGNAME) VERBOSE=7 user=`echo $LOGNAME|sed s/\@/\ /| awk '{print $1}'` domain=`echo $LOGNAME|sed s/\@/\ /| awk '{print $2}'` MAILDIR="$HOME/$domain/$user/" #Make maildir if not exists `test -d $MAILDIR` if ($RETURNCODE!=0) { `test -d $HOME/$domain/` if ($RETURNCODE!=0) { `mkdir "$HOME/$domain/"` } `/usr/local/bin/maildirmake $MAILDIR` } to "$MAILDIR"
СÑавим пÑава на запиÑÑ Ð¸ ÑÑение ÑолÑко полÑзоваÑÐµÐ»Ñ Ð¸Ð½Ð°Ñе maildrop оÑкажеÑÑÑ ÑабоÑаÑÑ.
# chmod 600 /var/spool/virtual/.mailfilter # chown vmail:vmail /var/spool/virtual/.mailfilter
Создаем диÑекÑоÑÐ¸Ñ /var/spool/virtual.mailfilters
# mkdir -m 700 /var/spool/virtual/.mailfilters # chown vmail:vmail /var/spool/virtual/.mailfilters
Создаем include Ñайл в ÑоÑмаÑе user@domain ÑооÑвеÑÑвÑÑÑÐµÐ¼Ñ Ð¿ÐµÑеменной $LOGNAME /var/spool/virtual/.mailfilters/user@test.local.net Ñо ÑледÑÑÑим ÑодеÑжанием
if ( /^X-Spam-Status: Yes/:h ) { to "$HOME/$LOGNAME/.Spam" # или оÑпÑавлÑем в /dev/null # to "| cat - >/dev/null" } to "$HOME/$LOGNAME"
NB! РоÑлиÑии Ð¾Ñ virtual maildrop Ñам не ÑÐ¾Ð·Ð´Ð°ÐµÑ maildir, поÑÑÐ¾Ð¼Ñ ÑледÑÐµÑ ÑоздаÑÑ Ð½ÑжнÑй вам maildir и subfolders иÑполÑзÑÑ ÑÑилиÑÑ maildirmake
# su -fm vmail -c 'maildirmake /var/spool/virtual/test.local.net/user' # su -fm vmail -c 'maildirmake -f Spam /var/spool/virtual/test.local.net/user'
Файл .mailfilter - ÑÑо Ñайл Ð´Ð°ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ maildrop вÑбÑаÑÑ Ð½ÑжнÑй конÑиг Ð´Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, иÑполÑзÑÑ ÐµÐ³Ð¾ логин, коÑоÑÑй беÑеÑÑÑ Ð¸Ð· пеÑеменной $LOGNAME (user@domain).
РдиÑекÑоÑии .mailfilters Ñ ÑанÑÑÑÑ ÐºÐ¾Ð½Ñиги Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ виÑÑÑалÑного ÑзеÑа.
Maildrop бÑÐ´ÐµÑ Ð¸ÑкаÑÑ ÐºÐ¾Ð½Ñиг в ÑоÑмаÑе user@domain и иÑполÑзоваÑÑ ÐµÐ³Ð¾.
Ðожно напиÑаÑÑ ÑкÑипÑ, коÑоÑÑй пÑи Ñоздании maildir, авÑомаÑиÑеÑки ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð½ÑжнÑй конÑиг Ñ Ð´ÐµÑолÑнÑми опÑиÑми mailfilters.
Рданном пÑимеÑе maildrop оÑбиÑÐ°ÐµÑ Ð¿Ð¾ÑÑÑ Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¾Ð¼ X-Spam-Status: Yes, коÑоÑÑй генеÑиÑÑÐµÑ spamassassin, ÑÑÑановка коÑоÑого бÑÐ´ÐµÑ ÑаÑÑмоÑÑена ниже, и ÐºÐ»Ð°Ð´ÐµÑ ÐµÐµ в Ð¿Ð°Ð¿ÐºÑ Spam. ÐÑÑалÑÐ½Ð°Ñ Ð¿Ð¾ÑÑа напÑавлÑеÑÑÑ Ð² INBOX.
ÐÑимеÑÑ ÑилÑÑÑов Ð´Ð»Ñ maildrop можно найÑи на http://sourceforge.net/projects/mdropspammailfilter
Создаем Ñайл /usr/local/etc/quotawarnmsg
DB-Mail
ÐомпилÑÑÐ¸Ñ Postfix Ñ Ð¿Ð¾Ð´Ð´ÐµÑжкой MYSQL SASL2 и TLS и VDA
СнаÑала надо ÑÑÑановиÑÑ Ð¿Ð°ÐºÐµÑÑ db*-devel*.i586.rpm, libdb*-devel*.i586.rpm, libmysql*-devel*.i586.rpm.
ÐоÑом каÑаем patch VDA
Ðба Ñайла кладем в /usr/local/src и далее:
# tar zxvf postfix-2.3.7.tar.gz # cp postfix-2.3.7-vda.patch.gz postfix-2.3.7 # cd postfix-2.3.7 # patch -p1 < postfix-2.3.7-vda.patch.gz
Создаем Ñайл make_config.sh
make -f Makefile.init makefiles 'CCARGS=-DDEF_SAMPLE_DIR=\"/etc/mail/sample\" -DHAS_MYSQL \ -I/usr/include/mysql -DUSE_SASL_AUTH -I/usr/include/sasl -DUSE_SSL \ -I/usr/include/ssl' 'AUXLIBS=-L/usr/lib/mysql -lmysqlclient \ -L/usr/lib -lsasl2 -lz -lm -L/usr/lib/ssl -lssl -lcrypto'
Ðалее
# sh make_config.sh # make # make install