====== Сервис MTA ====== * [[https://ru.wikipedia.org/wiki/Почтовый_сервер|Почтовый сервер]] ===== Протокол SMTP ===== * [[https://www.ndchost.com/wiki/mail/test-smtp-auth-telnet|How to Test SMTP AUTH using Telnet]] * [[Средства программирования shell#Отправка email с вложениями]] из bash gate# telnet server.corpX.un 25 ... HELO gate.corpX.un ... MAIL FROM: root@gate.corpX.un ... RCPT TO: user1@server.corpX.un ... DATA ... From: root@gate.corpX.un To: user1@server.corpX.un Subject: test test . QUIT ===== Настройка MTA ===== ==== Установка и настройка MTA на обработку почты домена hostname ==== === Debian/Ubuntu (postfix) === root@server:~# debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'" root@server:~# debconf-set-selections <<< "postfix postfix/mailname string corpX.un" root@server:~# apt install postfix root@server:~# debconf-show postfix | grep destinations root@server:~# man 1 postconf root@server:~# man 5 postconf root@server:~# postconf -n root@server:~# postconf -d === Exim === !!! В конфигурации остается запрет отправлять почту на сервера с "серыми" ip (на курсах) # dpkg-reconfigure exim4-config ... intenet site, все остальное по умолчанию ... === FreeBSD (sendmail) === [server:~] # cat /etc/rc.conf ... sendmail_enable="YES" [server:~] # /etc/rc.d/sendmail restart [server:~] # more /etc/mail/sendmail.cf [server:~] # more /usr/share/sendmail/cf/README ==== Настройка MTA на обработку почты домена corpX.un ==== === Настройка DNS === [[Сервис DNS#Настройка мастер сервера зоны corpX.un]] server# nslookup -q=A corpX.un === Настройка MTA postfix (Debian/Ubuntu) === root@server:~# cat /etc/postfix/main.cf ... mydestination = server.corpX.un, localhost.corpX.un, , localhost, corpX.un ... root@server:~# postconf root@server:~# service postfix check root@server:~# service postfix reload === Настройка MTA sendmail (FreeBSD) === [server:~] # cd /etc/mail [server:/etc/mail] # cat server.corpX.un.mc OSTYPE(freebsd6) FEATURE(use_cw_file) MAILER(local) MAILER(smtp) [server:/etc/mail] # cat local-host-names corpX.un [server:/etc/mail] # make cf [server:/etc/mail] # make install [server:/etc/mail] # /etc/rc.d/sendmail restart ==== Настройка MTA на релеинг почты из LAN ==== === postfix (Debian/Ubuntu) === root@gate:~# cat /etc/postfix/main.cf ... mynetworks = ... 192.168.X.0/24 ... root@gate:~# service postfix reload === sendmail (FreeBSD) === [server:/etc/mail] # cat server.corpX.un.mc OSTYPE(freebsd6) ... FEATURE(access_db, `hash -o -T /etc/mail/access') ... MAILER(local) MAILER(smtp) [server:/etc/mail] # cat access 192.168.X RELAY [server:/etc/mail] # make maps [server:/etc/mail] # make install [server:/etc/mail] # /etc/rc.d/sendmail restart ==== Настройка MTA на использование MTA провайдера ==== === postfix (Debian/Ubuntu) === root@server:~# cat /etc/postfix/main.cf ... relayhost = gate.corpX.un ... root@server:~# service postfix reload === sendmail (FreeBSD) === [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 ==== Настройка MTA на релеинг почты домена corpX.un ==== === Debian/Ubuntu === root@gate:~# cat /etc/postfix/main.cf ... relay_domains = $mydestination, corpX.un root@gate:~# service postfix reload root@gate:~# tail -f /var/log/mail.log === FreeBSD === [gate:/etc/mail] # cat gate.corpX.un.mc OSTYPE(freebsd6) FEATURE(access_db, `hash -o -T /etc/mail/access') MAILER(local) MAILER(smtp) [gate:/etc/mail] # make install [gate:/etc/mail] # /etc/rc.d/sendmail restart [gate:/etc/mail] # cat access corpX.un RELAY [gate:/etc/mail] # make maps [gate:~] # tail -f /var/log/maillog ==== Настройка MTA на релеинг почты на основе аутентификации ==== === Postfix === * Сервер dovecot [[Сервер dovecot#Аутентификация для postfix]] # cat /etc/postfix/main.cf ... smtpd_tls_cert_file = /root/server.crt smtpd_tls_key_file = /root/server.key smtpd_use_tls = yes ... smtpd_relay_restrictions = ... permit_sasl_authenticated ... ... smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot #for kerberos gssapi line_length_limit = 8192 [[Thunderbird]] и [[Web интерфейс к почте#Roundcube]] используют 587-й порт # cat /etc/postfix/master.cf ... smtp inet n - y - - smtpd 587 inet n - y - - smtpd ... ==== Использование почтовых псевдонимов ==== * [[Регистрация событий в Linux]] === Debina/Ubuntu === # cat /etc/aliases ... root: userX@isp.un # root: "|logger -t mail-to-root -p mail.info" #nagios: userX@isp.un #nagios: student@corpX.un support: user1, user2 ... # newaliases # apt install logwatch ... # mail root ==== Использование виртуальных почтовых доменов ==== === Настройка DNS === Запись A или MX для домена compX.un настраивает преподаватель server# host compX.un ... === Добавление учетных записей пользователей виртуальных доменов === [[Управление учетными записями в Linux]] === Настройка MTA на поддержку виртуального домена === == postfix (Debian/Ubuntu) == root@server:~# cat /etc/postfix/main.cf ... mydestination = server.corpX.un, localhost.corpX.un, corpX.un, compX.un, localhost virtual_alias_maps = hash:/etc/postfix/virtual ... root@server:~# cat /etc/postfix/virtual info@corpX.un user1 info@compX.un user2 root@server:~# postmap /etc/postfix/virtual root@server:~# service postfix reload gate.isp.un$ mail info@corpX.un gate.isp.un$ mail info@compX.un server# mail -u user1 server# mail -u user2 == sendmail (FreeBSD) == [server:/etc/mail] # cat local-host-names corpX.un compX.un [server:/etc/mail] # cat server.corpX.un.mc OSTYPE(freebsd6) ... FEATURE(virtusertable, `hash -o /etc/mail/virtusertable') ... MAILER(local) MAILER(smtp) [server:/etc/mail] # cat virtusertable info@corpX.un user1 info@compX.un user2 [server:/etc/mail] # make maps [server:/etc/mail] # make install [server:/etc/mail] # /etc/rc.d/sendmail restart ==== Сокрытие названия сервиса ==== === Debian/Ubuntu (postfix) === # postconf -d | grep mail_name # postconf -e "mail_name = Exchange" # postconf -e 'smtpd_banner = $myhostname ESMTP $mail_name (Windows 2008R2)' # service postfix reload === FreeBSD (sendmail) === [server:/etc/mail] # cat server.corpX.un.mc OSTYPE(freebsd6) ... define(`confSMTP_LOGIN_MSG', `$j Exchange (Windows 2008R2)') ... MAILER(local) MAILER(smtp) [server:/etc/mail] # make cf [server:/etc/mail] # make install [server:/etc/mail] # /etc/rc.d/sendmail restart ===== Управление очередью сообщений ===== ==== Postfix ==== # mailq | grep apache@hoster.bmstu.ru | grep '*' | cut -d'*' -f 1 | postsuper -d -