Sendmail - создание сервера отправки почты для небольшого офиса

  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:e8d38fe23d66f6260cddfee0658b8ea3' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><img alt=\"Sendmail\" width=\"140\" height=\"51\" src=\"http://muff.kiev.ua/files/Sendmail_logo.gif\" /></p>\n<p class=\"rtejustify\">На днях опять вспоминал порядок настройки почтового сервера Sendmail... Это старый некоммерческий проэкт, имеющий довольно сомнительную репутацию, но тем не менее, он присутствует и установлен на огромном количестве серверов, обслуживающих почту. Действительно,&nbsp;уже довольно давно,&nbsp;в случае необходимости настройки почтового сервера,&nbsp; мой выбор останавливается на exim. Но что делать,&nbsp;если нужно организовать сервер отправки почты для небольшой компании на 5-10 рабочих мест? Вот здесь и пригодится старый добрый Sendmail, который уже идет в базовой поставке FreeBSD.</p>\n<p class=\"rtejustify\">Все конфигурационные файлы Sendmail размещены в директории /etc/mail/. По умолчанию Sendmail уже запущен и готов отправлять корреспонденцию, вот только &quot;слушает&quot; он только на loopback-интерфейсе. Удостовериться в этом очень просто:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td><strong># netstat -a | grep smtp</strong><br />\n tcp4 0 0 localhost.smtp *.* LISTEN</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Чтобы &quot;запустить&quot; Sendmail и на остальных интерфейсах,&nbsp;нужно сделать несколько манипуляций. Предположим,&nbsp;адресация локальной&nbsp;сети 192.168.168.0/24. Отредактируем файл /etc/mail/access до состояния (примеры записей можно &quot;подсмотреть&quot; в файле /etc/mail/access.sample):</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p><strong># cat /etc/mail/access</strong></p>\n<p>Connect:192.168.168 RELAY<br />\n Connect:[127.0.0.1] OK</p>\n</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">&nbsp;Чтобы изменения вступили в силу, необходимо выполнить команду &quot;make&quot; в директории /etc/mail:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p><strong># cd /etc/mail/ &amp;&amp; make</strong></p>\n<p>cp freebsd.mc mail.muff.kiev.ua.mc<br />\n /usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/ /usr/share/sendmail/cf/m4/cf.m4 mail.muff.kiev.ua.mc &gt; mail.muff.kiev.ua.cf<br />\n cp freebsd.submit.mc mail.muff.kiev.ua.submit.mc<br />\n /usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/ /usr/share/sendmail/cf/m4/cf.m4 mail.muff.kiev.ua.submit.mc &gt; mail.muff.kiev.ua.submit.cf<br />\n /usr/sbin/makemap hash access.db &lt; access<br />\n chmod 0640 access.db</p>\n</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Вторым шагом является добавление строки sendmail_enable=&quot;YES&quot; в rc.conf:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p># <strong>echo \'# MailServer\' &gt;&gt; /etc/rc.conf</strong><br />\n # <strong>echo \'sendmail_enable=&quot;YES&quot;\' &gt;&gt; /etc/rc.conf</strong></p>\n</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Перезапустим Sendmail и проверим результат:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td><strong># sh /etc/rc.d/sendmail restart</strong><br />\n Stopping sendmail.<br />\n Starting sendmail.<br />\n <strong># netstat -a | grep smtp</strong><br />\n tcp4 0 0 *.smtp *.* LISTEN</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Как видим,&nbsp;Sendmail теперь ожидает подключений на всех доступных интерфейсах. Поскольку была поставлена задача настроить сервер на только на отправку, на этом статью заканчиваю. Возможно немножко позже появится вариант настройки с поддержкой возможности приема входящей кореспонденции.</p>\n', created = 1767340952, expire = 1767427352, headers = '', serialized = 0 WHERE cid = '2:e8d38fe23d66f6260cddfee0658b8ea3' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a class=\"thickbox\" href=\"/files/imagepicker/1/wake_up_ua.png\"><img alt=\"Вставай, Україно!\" class=\"imgp_img\" src=\"/files/imagepicker/1/thumbs/wake_up_ua.png\" style=\"height:200px; width:150px\" /></a></p>\n', created = 1767340952, expire = 1767427352, headers = '', serialized = 0 WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:cc913d232116f0426090404133377d88' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a href=\"http://muff.kiev.ua/rss.xml\"><img alt=\"RSS\" width=\"160\" height=\"60\" src=\"http://muff.kiev.ua/files/muf-rss.png\" /></a></p>\n', created = 1767340952, expire = 1767427352, headers = '', serialized = 0 WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:39649256b636e3d5ded656bc52bd8c01' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
Версия для печатиОтправить другуPDF version

Sendmail

На днях опять вспоминал порядок настройки почтового сервера Sendmail... Это старый некоммерческий проэкт, имеющий довольно сомнительную репутацию, но тем не менее, он присутствует и установлен на огромном количестве серверов, обслуживающих почту. Действительно, уже довольно давно, в случае необходимости настройки почтового сервера,  мой выбор останавливается на exim. Но что делать, если нужно организовать сервер отправки почты для небольшой компании на 5-10 рабочих мест? Вот здесь и пригодится старый добрый Sendmail, который уже идет в базовой поставке FreeBSD.

Все конфигурационные файлы Sendmail размещены в директории /etc/mail/. По умолчанию Sendmail уже запущен и готов отправлять корреспонденцию, вот только "слушает" он только на loopback-интерфейсе. Удостовериться в этом очень просто:

# netstat -a | grep smtp
tcp4 0 0 localhost.smtp *.* LISTEN

Чтобы "запустить" Sendmail и на остальных интерфейсах, нужно сделать несколько манипуляций. Предположим, адресация локальной сети 192.168.168.0/24. Отредактируем файл /etc/mail/access до состояния (примеры записей можно "подсмотреть" в файле /etc/mail/access.sample):

# cat /etc/mail/access

Connect:192.168.168 RELAY
Connect:[127.0.0.1] OK

 Чтобы изменения вступили в силу, необходимо выполнить команду "make" в директории /etc/mail:

# cd /etc/mail/ && make

cp freebsd.mc mail.muff.kiev.ua.mc
/usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/ /usr/share/sendmail/cf/m4/cf.m4 mail.muff.kiev.ua.mc > mail.muff.kiev.ua.cf
cp freebsd.submit.mc mail.muff.kiev.ua.submit.mc
/usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/ /usr/share/sendmail/cf/m4/cf.m4 mail.muff.kiev.ua.submit.mc > mail.muff.kiev.ua.submit.cf
/usr/sbin/makemap hash access.db < access
chmod 0640 access.db

Вторым шагом является добавление строки sendmail_enable="YES" в rc.conf:

# echo '# MailServer' >> /etc/rc.conf
# echo 'sendmail_enable="YES"' >> /etc/rc.conf

Перезапустим Sendmail и проверим результат:

# sh /etc/rc.d/sendmail restart
Stopping sendmail.
Starting sendmail.
# netstat -a | grep smtp
tcp4 0 0 *.smtp *.* LISTEN

Как видим, Sendmail теперь ожидает подключений на всех доступных интерфейсах. Поскольку была поставлена задача настроить сервер на только на отправку, на этом статью заканчиваю. Возможно немножко позже появится вариант настройки с поддержкой возможности приема входящей кореспонденции.

Ваша оценка: Нет Средняя: 3.2 (6 голосов)

Вставай, Україно!

Литература

- Слушай, если килобайт - 1024 байт, то килобаб - 1024 бабы?