This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
протокол_smtp_и_mail_transfer_agent [2009/06/17 15:01] val |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Протокол SMTP и Mail Transfer Agent ====== | ||
- | |||
- | ===== Пример SMTP диалога ===== | ||
- | <code> | ||
- | [gate:~] # telnet gate.isp.un 25 | ||
- | ... | ||
- | HELO gate.corpX.un | ||
- | ... | ||
- | MAIL FROM: root@gate.corpX.un | ||
- | ... | ||
- | RCPT TO: root@gate.isp.un | ||
- | ... | ||
- | DATA | ||
- | ... | ||
- | To: root@gate.isp.un | ||
- | Subject: test | ||
- | |||
- | test | ||
- | . | ||
- | |||
- | QUIT | ||
- | </code> | ||
- | |||
- | ===== Конфигурация службы MTA ===== | ||
- | |||
- | ==== Установка и настройка MTA на обработку почты домена hostname ==== | ||
- | |||
- | === FreeBSD (sendmail) === | ||
- | <code> | ||
- | [gate:~] # more /usr/share/sendmail/cf/README | ||
- | |||
- | [gate:~] # cd /etc/mail | ||
- | |||
- | [gate:/etc/mail] # cat gate.corpX.un.mc | ||
- | OSTYPE(freebsd6) | ||
- | MAILER(local) | ||
- | MAILER(smtp) | ||
- | |||
- | [gate:/etc/mail] # make cf | ||
- | [gate:/etc/mail] # make install | ||
- | |||
- | [gate:/etc/mail] # cat /etc/rc.conf | ||
- | ... | ||
- | sendmail_enable="YES" | ||
- | |||
- | [gate:/etc/mail] # /etc/rc.d/sendmail restart | ||
- | </code> | ||
- | |||
- | === Ubuntu (postfix) === | ||
- | <code> | ||
- | root@gate:~# apt-get install postfix mailx | ||
- | General type of mail configuration: Internet Site | ||
- | System mail name: gate.corpX.un | ||
- | |||
- | root@gate:~# man 5 postconf | ||
- | |||
- | root@gate:~# cat /etc/aliases | ||
- | # Added by installer for initial user | ||
- | # root: student | ||
- | |||
- | root@gate:~# newaliases | ||
- | </code> | ||
- | |||
- | ==== Использование UA mail ==== | ||
- | |||
- | === Отправка почты === | ||
- | <code> | ||
- | gate# mail root | ||
- | |||
- | gate# mail root@gate.corpX.un | ||
- | </code> | ||
- | |||
- | === Чтение почты === | ||
- | <code> | ||
- | gate# mail | ||
- | Mail version 8.1 6/6/93. Type ? for help. | ||
- | "/var/mail/root": 2 messages 2 new | ||
- | >N 1 user@server.corpX.un Wed Oct 26 16:33 22/814 "w" | ||
- | N 2 root@server.corpX.un Wed Oct 26 16:35 12/425 | ||
- | </code> | ||
- | |||
- | === Команды UA mail === | ||
- | <code> | ||
- | h - список писем | ||
- | номер - читать письмо с указанным номером | ||
- | d 1-4 - удалить письма с 1 по 4 | ||
- | d * - удалить все письма | ||
- | r номер - написать ответ на письмо с указанным номером | ||
- | ? - help | ||
- | q - выход | ||
- | </code> | ||
- | |||
- | ==== Настройка MTA на обработку почты домена corpX.un ==== | ||
- | |||
- | === Настройка DNS === | ||
- | |||
- | == FreeBSD == | ||
- | <code> | ||
- | [gate:~] # cd /etc/namedb/master/ | ||
- | </code> | ||
- | |||
- | == Ubuntu == | ||
- | <code> | ||
- | root@gate:~# cd /var/cache/bind/ | ||
- | </code> | ||
- | |||
- | == FreeBSD/Ubuntu == | ||
- | <code> | ||
- | gate# cat corpX.un | ||
- | $TTL 3h | ||
- | corp13.un. SOA ns root.gate 1 1d 12h 1w 3h | ||
- | NS ns | ||
- | A 172.16.1.13 | ||
- | ... | ||
- | |||
- | gate# nslookup -q=A corpX.un | ||
- | </code> | ||
- | |||
- | === Настройка MTA sendmail (FreeBSD) === | ||
- | <code> | ||
- | [gate:/etc/mail] # cat gate.corpX.un.mc | ||
- | OSTYPE(freebsd6) | ||
- | FEATURE(use_cw_file) | ||
- | MAILER(local) | ||
- | MAILER(smtp) | ||
- | |||
- | [gate:/etc/mail] # cat local-host-names | ||
- | corpX.un | ||
- | |||
- | [gate:/etc/mail] # make cf | ||
- | [gate:/etc/mail] # make install | ||
- | |||
- | [gate:/etc/mail] # /etc/rc.d/sendmail restart | ||
- | </code> | ||
- | |||
- | === Настройка MTA postfix (Ubuntu) === | ||
- | <code> | ||
- | root@gate:~# rcsdiff /etc/postfix/main.cf | ||
- | < mydestination = gate.corpX.un, localhost.corpX.un, , localhost | ||
- | --- | ||
- | > mydestination = gate.corpX.un, localhost.corpX.un, corpX.un, localhost | ||
- | |||
- | root@gate:~# /etc/init.d/postfix force-reload | ||
- | </code> | ||
- | |||
- | ==== Настройка MTA на использование MTA провайдера ==== | ||
- | |||
- | === sendmail (FreeBSD) === | ||
- | <code> | ||
- | [server:/etc/mail] # cat server.corpX.un.mc | ||
- | OSTYPE(freebsd6) | ||
- | define(`SMART_HOST', `gate.corpX.un') | ||
- | MAILER(local) | ||
- | MAILER(smtp) | ||
- | |||
- | [server:/etc/mail] # make cf | ||
- | [server:/etc/mail] # make install | ||
- | [server:/etc/mail] # /etc/rc.d/sendmail restart | ||
- | </code> | ||
- | |||
- | === postfix (Ubuntu) === | ||
- | <code> | ||
- | root@server:~# apt-get install postfix mailx | ||
- | General type of mail configuration: Internet Site | ||
- | System mail name: server.corpX.un | ||
- | |||
- | root@gate:~# cat /etc/aliases | ||
- | # Added by installer for initial user | ||
- | # root: student | ||
- | |||
- | root@gate:~# newaliases | ||
- | |||
- | root@server:~# rcsdiff /etc/postfix/main.cf | ||
- | 35c35 | ||
- | < relayhost = | ||
- | --- | ||
- | > relayhost = gate.corpX.un | ||
- | </code> | ||
- | |||
- | ==== Настройка MTA на релеинг почты из локальной сети ==== | ||
- | |||
- | === sendmail (FreeBSD) === | ||
- | <code> | ||
- | [gate:/etc/mail] # cat gate.corpX.un.mc | ||
- | OSTYPE(freebsd6) | ||
- | FEATURE(`use_cw_file') | ||
- | FEATURE(access_db, `hash -o -T<TMPF> /etc/mail/access') | ||
- | MAILER(local) | ||
- | MAILER(smtp) | ||
- | |||
- | [gate:/etc/mail] # cat access | ||
- | 192.168.X RELAY | ||
- | |||
- | [gate:/etc/mail] # make maps | ||
- | [gate:/etc/mail] # make cf | ||
- | [gate:/etc/mail] # make install | ||
- | [gate:/etc/mail] # /etc/rc.d/sendmail restart | ||
- | </code> | ||
- | |||
- | === postfix (Ubuntu) === | ||
- | <code> | ||
- | root@gate:~# rcsdiff /etc/postfix/main.cf | ||
- | 36c36 | ||
- | < mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 | ||
- | --- | ||
- | > mynetworks = 127.0.0.0/8 192.168.13.0/24 | ||
- | </code> | ||
- | |||
- | ==== Настройка MTA на релеинг почты домена server.corpX.un ==== | ||
- | |||
- | === Настройка в DNS MX записей домена server.corpX.un === | ||
- | <code> | ||
- | gate# cat corpX.un | ||
- | … | ||
- | server A 192.168.X.10 | ||
- | MX 2 gate | ||
- | MX 1 server | ||
- | … | ||
- | </code> | ||
- | |||
- | Примечание: | ||
- | Использование DNS View позволяет для внешних хостов указывать один почтовый сервер, а внутри другой. Это позволит обойтись без задержек при отправке почты. | ||
- | |||
- | === Запуск MTA почтового домена server.corpX.un (FreeBSD) === | ||
- | <code> | ||
- | [server:~] # cat /etc/rc.conf | ||
- | ... | ||
- | sendmail_enable="YES" | ||
- | |||
- | [server:~] # /etc/rc.d/sendmail restart | ||
- | </code> | ||
- | |||
- | === Настройка MTA релея sendmail (FreeBSD) === | ||
- | <code> | ||
- | [gate:/etc/mail] # cat access | ||
- | server.corpX.un RELAY | ||
- | |||
- | [gate:/etc/mail] # make maps | ||
- | </code> | ||
- | |||
- | === Настройка MTA релея postfix (Ubuntu) === | ||
- | <code> | ||
- | root@gate:~# rcsdiff /etc/postfix/main.cf | ||
- | 40a41 | ||
- | > permit_mx_backup = server.corpX.un | ||
- | </code> | ||
- | |||
- | ==== Настройка MTA на релеинг почты на основе аутентификации ==== | ||
- | [[http://www.freebsd.org/doc/en/books/handbook/smtp-auth.html]] | ||
- | |||
- | ==== Использование почтовых псевдонимов ==== | ||
- | |||
- | === FreeBSD === | ||
- | <code> | ||
- | [gate:~] # cat /etc/mail/aliases | ||
- | </code> | ||
- | |||
- | === Ubuntu === | ||
- | <code> | ||
- | root@gate:~# cat /etc/aliases | ||
- | </code> | ||
- | |||
- | === FreeBSD/Ubuntu === | ||
- | <code> | ||
- | ... | ||
- | root: root, root@gate.isp.un | ||
- | ... | ||
- | </code><code> | ||
- | gate# newaliases | ||
- | |||
- | gate# mail root | ||
- | </code> | ||
- | |||
- | ==== Использование виртуальных почтовых доменов ==== | ||
- | |||
- | Домен server.corpX.un | ||
- | |||
- | === Настройка DNS === | ||
- | <code> | ||
- | gate# cat corpX.un | ||
- | ... | ||
- | server A 192.168.X.10 | ||
- | MX 2 gate.corpX.un. | ||
- | ... | ||
- | </code> | ||
- | |||
- | === Добавление учетных записей пользователей виртуального домена === | ||
- | |||
- | == FreeBSD == | ||
- | <code> | ||
- | [gate:/etc/mail] # adduser | ||
- | Username: mailuser | ||
- | … | ||
- | shell: nologin | ||
- | … | ||
- | </code> | ||
- | |||
- | == Ubuntu == | ||
- | <code> | ||
- | root@gate:~# adduser mailuser | ||
- | ... | ||
- | |||
- | root@gate:~# chsh mailuser | ||
- | ... | ||
- | Login Shell [/bin/bash]: /usr/sbin/nologin | ||
- | </code> | ||
- | |||
- | === Настройка MTA на поддержку виртуального домена === | ||
- | |||
- | == sendmail (FreeBSD) == | ||
- | <code> | ||
- | [gate:/etc/mail] # cat access | ||
- | 192.168.X RELAY | ||
- | # server.corpX.un RELAY | ||
- | |||
- | [gate:/etc/mail] # cat local-host-names | ||
- | corpX.un | ||
- | server.corpX.un | ||
- | |||
- | [gate:/etc/mail] # grep virt freebsd.mc | ||
- | |||
- | [gate:/etc/mail] # cat gate.corpX.un.mc | ||
- | OSTYPE(freebsd6) | ||
- | FEATURE(`use_cw_file') | ||
- | FEATURE(access_db, `hash -o -T<TMPF> /etc/mail/access') | ||
- | FEATURE(virtusertable, `hash -o /etc/mail/virtusertable') | ||
- | MAILER(local) | ||
- | MAILER(smtp) | ||
- | |||
- | [gate:/etc/mail] # cat virtusertable | ||
- | root@server.corpX.un mailuser | ||
- | |||
- | [gate:/etc/mail] # make maps | ||
- | [gate:/etc/mail] # make cf | ||
- | [gate:/etc/mail] # make install | ||
- | [gate:/etc/mail] # /etc/rc.d/sendmail restart | ||
- | </code> | ||
- | |||
- | == postfix (Ubuntu) == | ||
- | <code> | ||
- | root@gate:~# rcsdiff /etc/postfix/main.cf | ||
- | 41c41,42 | ||
- | < permit_mx_backup = server.corpX.un | ||
- | --- | ||
- | > virtual_alias_domains = server.corpX.un | ||
- | > virtual_alias_maps = hash:/etc/postfix/virtual | ||
- | |||
- | root@gate:~# cat /etc/postfix/virtual | ||
- | root@server.corpX.un mailuser | ||
- | |||
- | root@gate:~# postmap /etc/postfix/virtual | ||
- | |||
- | root@gate:~# /etc/init.d/postfix force-reload | ||
- | </code> | ||
- | |||
- | === Тестирование === | ||
- | <code> | ||
- | gate# mail root@server.corpX.un | ||
- | |||
- | gate# mail –u mailuser | ||
- | </code> | ||