Руководство по Ubuntu Server



Pdf просмотр
страница9/16
Дата17.11.2016
Размер1.78 Mb.
Просмотров3749
Скачиваний3
ТипРуководство
1   ...   5   6   7   8   9   10   11   12   ...   16
Глава 14. Файл-серверы
Если у вас в одной сети более одного компьютера, то в какой-то момент вы наверняка захотите обмениваться файлами между ними. В этой секции рассмотрена установка и настройка серверов FTP, NFS и CUPS.

Файл-серверы
256
1. FTP-сервер
Протокол передачи файлов (FTP) — это протокол TCP для передачи файлов между компьютерами. В прошлом он использовался также для загрузки файлов на сервер в интернете, но, поскольку этот метод не использует шифрование, пользовательские данные и содержимое файлов передаются в открытую и легко перехватываются. Поэтому, если вы здесь ищете способ безопасно передавать и загружать файлы, лучше обратитесь к статье по
OpenSSH в разделе Глава 6, Удалённое администрирование [93].
FTP работает на основе модели клиент/сервер. Серверный компонент называется сервисом FTP. Он постоянно слушает FTP-запросы от удалённых клиентов. При получении запроса он управляет входом и установкой соединения. На протяжении сессии он выполняет любые команды,
переданные клиентом FTP.
Доступ к FTP-серверу может быть установлен двумя путями:
• Анонимный
• Авторизованный
В анонимном режиме удалённый клиент может получить доступ к FTP- серверу, используя учётную запись пользователя по умолчанию с именем
«anonymous» или «ftp» и передав адрес электронной почты в качестве пароля. В авторизованном режиме пользователь должен иметь учётное имя и пароль. Этот последний вариант крайне небезопасный и не должен использоваться за исключением специальных обстоятельств. Если вы хотите передавать файлы безопасно, смотрите SFTP в разделе по
OpenSSH серверу. Пользовательский доступ к каталогам и файлам FTP
сервера зависит от прав доступа пользователя, указанного при входе. Как правило, сервис FTP скрывает корневой каталог FTP сервера, подменяя его на домашний каталог FTP. Это скрывает корень файловой системы от удалённых сессий.
1.1. vsftpd — установка FTP-сервера vsftpd — это демон FTP, доступный в Ubuntu. Его легко устанавливать,
настраивать и поддерживать. Для установки vsftpd вы можете выполнить следующую команду:
sudo apt-get install vsftpd

Файл-серверы
257 1.2. Настройка анонимного доступа по FTP
Настройка vsftpd по умолчанию не разрешает анонимную загрузку. Если вы хотите разрешить анонимную загрузку, измените в
/etc/vsftpd.conf следующее:
anonymous_enable=Yes
В процессе установки создается пользователь ftp с домашним каталогом
/
srv/ftp
. Это каталог по умолчанию для FTP.
Если вы желаете поменять его расположение, например, на
/srv/files/
ftp
, просто создайте новый каталог и измените домашний каталог пользователя ftp:
sudo mkdir /srv/files/ftp
sudo usermod -d /srv/files/ftp ftp
После изменений перезапустите vsftpd:
sudo restart vsftpd
Под конец скопируйте все файлы и каталоги, которые вы хотите сделать доступными для анонимного FTP, в
/srv/files/ftp
, или
/srv/ftp
, если вы хотите оставить настройки по умолчанию.
1.3. Настройка авторизованного доступа по FTP
По умолчанию vsftpd настроен на аутентификацию системных пользователей с возможностью скачивать файлы. Если вы хотите разрешить пользователям загружать файлы на сервер, измените в
/etc/
vsftpd.conf
:
write_enable=YES
после чего перезагрузите vsftpd:
sudo restart vsftpd
Теперь при входе системных пользователей по FTP они будут попадать в свои домашние каталоги, где они смогут скачивать и загружать файлы,
создавать каталоги и т.д.
Аналогично, по умолчанию анонимный пользователь не имеет возможности загружать файлы на FTP-сервер. Для изменения этой настройки уберите комментарий на следующей строке и перезапустите vsftpd:

Файл-серверы
258
anon_upload_enable=YES
Разрешение анонимному пользователю загружать файлы на сервер может оказаться серьёзной угрозой безопасности. Лучше не разрешать анонимную загрузку файлов на серверы с прямым доступом из интернета.
Конфигурационный файл содержит много параметров настройки.
Информация по каждому параметру доступна в этом же файле. В качестве альтернативы вы можете посмотреть системное руководство по команде
man 5 vsftpd.conf для уточнения деталей по каждому параметру.
1.4. Защита FTP
В
/etc/vsftpd.conf существуют опции, помогающие сделать vsftpd более безопасным. Например, пользователи могут быть ограничены своими домашними каталогами, если раскомментировать:
chroot_local_user=YES
Вы также можете определить список пользователей, имеющих доступ только в домашний каталог:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
После снятия комментариев с этих опций, создайте
/etc/vsftpd.chroot_list
,
содержащий список пользователей по одному на строку. Затем перезапустите vsftpd:
sudo restart vsftpd
Аналогично, файл
/etc/ftpusers содержит список пользователей, которым
запрещён доступ по FTP. По умолчанию он включает root, daemon, nobody и т.п. Для запрета доступа по FTP для дополнительных пользователей,
просто добавьте их в этот список.
FTP может быть зашифрованным при использовании FTPS. В отличие от
SFTP, FTPS — это FTP поверх SSL. SFTP — это сессия, подобная FTP, по зашифрованному SSH соединению. Основное отличие заключается в том,
что пользователи SFTP должны иметь учётную запись с собственным окружением shell вместо оболочки nologin. Предоставление всем пользователям доступа к оболочке может оказаться не лучшим решением для некоторых систем, таких как веб-сервер общего доступа. Однако

Файл-серверы
259
есть возможность ограничить такие учетные записи только SFTP и запретить взаимодействие с оболочкой. Смотрите раздел по OpenSSH для дополнительной информации.
Для настройки FTPS, добавьте в конец файла
/etc/vsftpd.conf следующее:
ssl_enable=Yes
Также обратите внимание на опции сертификата и ключа:
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
По умолчанию эти опции установлены в значения, предоставленные пакетом ssl-cert. Для рабочей среды они должны быть заменены на сертификат и ключ, созданные для определённого компьютера.
Для дополнительной информации смотрите раздел Раздел 5,
«Сертификаты» [194].
Теперь перегрузите vsftpd и неанонимные пользователи будут использовать FTPS:
sudo restart vsftpd
Чтобы позволить пользователям с оболочкой
/usr/sbin/nologin получить доступ к FTP, но не предоставлять shell доступ, отредактируйте
/etc/shells
,
добавив к оболочке nologin:
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen
/usr/sbin/nologin
Это необходимо, поскольку по умолчанию vsftpd использует аутентификацию PAM, а файл настроек
/etc/pam.d/vsftpd содержит:

Файл-серверы
260
auth required pam_shells.so
Модуль PAM shells ограничивает доступ к оболочкам, перечисленным в файле
/etc/shells
Наиболее популярные клиенты FTP могут быть настроены на использование
FTPS. FTP-клиент командной строки lftp также имеет возможность использовать FTPS.
1.5. Ссылки
• Обратитесь к сайту vsftpd website
1
для дополнительной информации.
• Подробности по опциям
/etc/vsftpd.conf доступны в man-странице
vsftpd.conf
2 1
http://vsftpd.beasts.org/vsftpd_conf.html
2
http://manpages.ubuntu.com/manpages/precise/en/man5/vsftpd.conf.5.html

Файл-серверы
261
2. Сетевая файловая система (NFS)
NFS позволяет системе предоставлять в общий сетевой доступ каталоги и файлы. Посредством NFS, пользователи и программы могут получать доступ к файлам на удаленных машинах так же легко, как будто это файлы на их локальном компьютере.
Некоторые из преимуществ, которые может обеспечить NFS:
• Рабочие станции используют меньше локального дискового пространства, так как общие данные могут содержаться на одной машине и оставаться доступными по сети для всех остальных.
• У пользователей отпадает необходимость в использовании отдельных домашних каталогов на каждой машине, подключенной в сеть. Можно разместить домашние каталоги пользователей на сервере NFS и сделать их доступными с помощью сети.
• Устройства хранения информации, такие как флоппи-дисководы,
приводы компакт-дисков и USB-диски, могут использоваться другими компьютерами в сети. Это может уменьшить общее число накопителелей со сменными носителями в сети.
2.1. Установка
Введите следующую команду в терминале для установки NFS сервера:
sudo apt-get install nfs-kernel-server
2.2. Конфигурация
Вы можете настроить каталоги для экспорта, добавляя их в файл
/etc/
exports
. Например:
/ubuntu *(ro,sync,no_root_squash)
/home *(rw,sync,no_root_squash)
Вы можете заменить * одним из форматов записи имени хоста. Сделайте объявление хоста настолько необычным, насколько это возможно, чтобы нежеланные системы не могли получить доступа к монтированию NFS.
Для запуска NFS сервера выполните следующую команду в терминале:
sudo /etc/init.d/nfs-kernel-server start

Файл-серверы
262 2.3. Настройка клиента NFS
Используйте команду mount для монтирования каталога NFS, доступ к которому открыт на другом компьютере. Наберите в терминале команду,
схожую со следующим примером.
sudo mount example.hostname.com:/ubuntu /local/ubuntu
Точка монтирования
/local/ubuntu должна существовать. В каталоге
/
local/ubuntu не должно быть никаких файлов или подкаталогов.
Другой способ монтирования ресурса NFS, открытого на другом компьютере, состоит в добавлении соответствующей строчки в файл
/
etc/fstab
. Строчка должна содержать имя хоста NFS-сервера, название каталога, открытого на сервере, и название каталога на локальном компьютере, куда будет монтироваться совместно используемый ресурс
NFS.
Общий синтаксис строки файла
/etc/fstab следующий:
example.hostname.com:/ubuntu /local/ubuntu nfs rsize=8192,wsize=8192,timeo=14,intr
Если вы испытываете сложности с монтированием NFS-ресурса, убедитесь,
что пакет nfs-common установлен на вашем клиенте. Для установки пакета nfs-common введите следующую команду в терминале:
sudo apt-get install nfs-common
2.4. Ссылки
Линукс NFS FAQ
3
Ubuntu Wiki NFS Howto
4 3
http://nfs.sourceforge.net/
4
https://help.ubuntu.com/community/NFSv4Howto

Файл-серверы
263
3. iSCSI-инициатор
iSCSI (Internet Small Computer System Interface) — это протокол, который разрешает передавать команды SCSI по сети. Обычно iSCSI реализуется для сетевых дисковых массивов (Storage Area Network — SAN), чтобы позволить серверам иметь доступ к большим объемам дискового пространства.
Протокол iSCSI считает клиентов инициаторами, а сервера iSCSI — целью.
Сервер Ubuntu может быть настроен как в качестве инициатора iSCSI, так и в качестве целевого объекта (сервера). Это руководство описывает команды и опции настройки по установке инициатора iSCSI.
Это предполагает, что у вас есть iSCSI-устройство в вашей сети и вы обладаете необходимыми правами для подключения к нему. Инструкции по установке iSCSI-устройств очень сильно зависят от производителя,
поэтому обратитесь к документации производителя для настройки вашего конкретного iSCSI-устройства.
3.1. Установка инициатора iSCSI
Для настройки сервера Ubuntu в качестве инициатора iSCSI установите пакет open-iscsi. Введите в терминале:
sudo apt-get install open-iscsi
3.2. Настройка инициатора iSCSI
Как только пакет open-iscsi установлен, отредактируйте
/etc/iscsi/
iscsid.conf
, изменив следующее:
node.startup = automatic
Вы можете определить, какие целевые объекты вам доступны, с помощью утилиты iscsiadm. Введите следующую команду в терминале:
sudo iscsiadm -m discovery -t st -p 192.168.0.10
-m: определяет режим, в котором работает iscsiadm.
-t: определяет тип поиска.
-p: опция, определяющая IP-адрес целевого объекта.
Замените 192.168.0.10 в примере на IP-адрес вашего объекта в сети.
Если целевой объект доступен, вы увидите вывод, подобный следующему:

Файл-серверы
264 192.168.0.10:3260,1 iqn.1992-05.com.emc:sl7b92030000520000-2
Номер iqn и IP-адрес могут быть другими, в зависимости от вашего оборудования.
Теперь вы можете соединиться с iSCSI сервером и, в зависимости от его настроек, вам, возможно, придётся ввести данные учетной записи пользователя. Подключитесь к узлу iSCSI:
sudo iscsiadm -m node --login
Убедитесь, что новый диск определяется с помощью dmesg:
dmesg | grep sd
[ 4.322384] sd 2:0:0:0: Attached scsi generic sg1 type 0
[ 4.322797] sd 2:0:0:0: [sda] 41943040 512-byte logical blocks: (21.4 GB/20.0 GiB)
[ 4.322843] sd 2:0:0:0: [sda] Write Protect is off
[ 4.322846] sd 2:0:0:0: [sda] Mode Sense: 03 00 00 00
[ 4.322896] sd 2:0:0:0: [sda] Cache data unavailable
[ 4.322899] sd 2:0:0:0: [sda] Assuming drive cache: write through
[ 4.323230] sd 2:0:0:0: [sda] Cache data unavailable
[ 4.323233] sd 2:0:0:0: [sda] Assuming drive cache: write through
[ 4.325312] sda: sda1 sda2 < sda5 >
[ 4.325729] sd 2:0:0:0: [sda] Cache data unavailable
[ 4.325732] sd 2:0:0:0: [sda] Assuming drive cache: write through
[ 4.325735] sd 2:0:0:0: [sda] Attached SCSI disk
[ 2486.941805] sd 4:0:0:3: Attached scsi generic sg3 type 0
[ 2486.952093] sd 4:0:0:3: [sdb] 1126400000 512-byte logical blocks: (576 GB/537 GiB)
[ 2486.954195] sd 4:0:0:3: [sdb] Write Protect is off
[ 2486.954200] sd 4:0:0:3: [sdb] Mode Sense: 8f 00 00 08
[ 2486.954692] sd 4:0:0:3: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 2486.960577] sdb: sdb1
[ 2486.964862] sd 4:0:0:3: [sdb] Attached SCSI disk
В приведённом выводе sdb — это новый iSCSI диск. Помните, что это всего лишь пример; вывод на вашем экране может сильно отличаться.
Далее создадим раздел, отформатируем файловую систему и подсоединим новый iSCSI диск. Введите в терминале:
sudo fdisk /dev/sdb
n
p

Файл-серверы
265
enter
w
Команды, приведённые выше, выполняются внутри утилиты fdisk;
смотрите man fdisk для дополнительных подробностей. Также утилита cfdisk иногда более дружелюбна к пользователям.
Теперь форматируем файловую систему и монтируем её, например, в
/srv
:
sudo mkfs.ext4 /dev/sdb1
sudo mount /dev/sdb1 /srv
Наконец добавим запись в
/etc/fstab для монтирования iSCSI устройства в процесе загрузки:
/dev/sdb1 /srv ext4 defaults,auto,_netdev 0 0
Хорошей идеей будет убедиться, что всё работает как надо, перегрузив сервер.
3.3. Ссылки
Сайт Open-iSCSI
5
Страница Debian Open-iSCSI
6 5
http://www.open-iscsi.org/
6
http://wiki.debian.org/SAN/iSCSI/open-iscsi

Файл-серверы
266
4. CUPS — сервер печати
Основным механизмом печати в Ubuntu служит Common UNIX Printing
System (CUPS). Эта система печати — свободно доступный, переносимый уровень абстракции печати, который является стандартом печати для большинства дистрибутивов Linux.
CUPS управляет заданиями на печать и очередями, а также обеспечивает печать по сети, используя стандартный протокол печати интернета,
(Internet Printing Protocol, IPP). В то же время он поддерживает большое количество принтеров, от матричных до лазерных. CUPS также поддерживает файлы описания принтеров PostScript (PostScript Printer
Description, PPD) и авто-определение сетевых принтеров, и имеет простой веб-ориентированный инструмент настройки и администрирования.
4.1. Установка
Для того, чтобы установить CUPS на ваш компьютер, используйте sudo с командой apt-get указав в качестве первого параметра название пакета для установки. Полная установка CUPS зависит от множества пакетов, но все они могут быть указаны в той же командной строке. Для установки
CUPS наберите в командной строке следующее:
sudo apt-get install cups
После аутентификации вас по паролю, пакеты должны загрузиться и установиться без ошибок. В заключении установки сервер CUPS будет запущен автоматически.
При необходимости решения проблем, вы можете получить доступ к ошибкам сервера CUPS через файл журнала:
/var/log/cups/error_log
. Если журнал ошибок не даёт достаточно информации для решения какой-либо проблемы, уровень журналирования CUPS можно повысить изменением директивы LogLevel в файле настроек (описывается ниже) до debug или даже debug2 со стандартного info, что будет сохранять в журнал абсолютно всё. Если вы провёдете такое изменение, не забудьте вернуть всё обратно после решения проблемы, чтобы избежать излишнего разрастания файла журнала.
4.2. Конфигурация
Поведение сервера CUPS настраивается с помощью инструкций,
содержащихся в файле
/etc/cups/cupsd.conf
. Файл настроек CUPS использует такой же синтаксис, как и основной файл настроек HTTP сервера Apache,

Файл-серверы
267
то есть пользователи, знакомые с модификацией файлов настроек Apache,
должны спокойно ориентироваться при работе с настройками CUPS.
Примеры некоторых настроек, которые вы, возможно, захотите изменить с самого начала, будут представлены здесь.
Перед изменением конфигурационного файла сделайте копию с оригинала и защитите её от записи, чтобы использовать файл оригинальных настроек в качестве справки, а также иметь возможность использовать его снова.
Скопируйте файл
/etc/cups/cupsd.conf и защитите копию от записи с помощью следующих команд, выполненных в командной строке терминала:
sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.original
sudo chmod a-w /etc/cups/cupsd.conf.original
ServerAdmin: Чтобы настроить адрес электронной почты для назначенного администратора сервера CUPS, просто откройте файл
/etc/cups/cupsd.conf в своём любимом текстовом редакторе и добавьте или измените строку ServerAdmin соответствующим образом.
Например, если вы администратор сервера CUPS и ваш почтовый адрес 'bjoy@somebigco.com', вам следует изменить строку ServerAdmin следующим образом:
ServerAdmin bjoy@somebigco.com
Listen: В Ubuntu по умолчанию установленный сервер CUPS слушает только интерфейс обратной петли по адресу 127.0.0.1.Чтобы заставить сервер CUPS прослушивать актуальный IP-адрес сетевого адаптера,
вы должны указать сетевое имя или пару IP-адрес/порт добавочной директивой Listen. Например, если ваш сервер находится в локальной сети с IP-адресом 192.168.10.250, и вы хотите сделать его доступным для других систем в этой подсети, отредактируйте
/etc/cups/cupsd.conf
,
добавив директиву Listen, как показано ниже:
Listen 127.0.0.1:631 # существующий Listen интерфейса loopback
Listen /var/run/cups/cups.sock # существующий Listen для сокетов
Listen 192.168.10.250:631 # Listen на интерфейсе LAN, Порт 631 (IPP)
В вышепривёденном примере вы можете закомментировать или удалить ссылки на loopback-адрес (127.0.0.1), если желаете, чтобы cupsd вместо этого интерфейса использовал только Ethernet-интерфейсы локальной сети. Для разрешения использования всех интерфейсов, включая

Файл-серверы
268
loopback, к которым привязано определенное имя хоста, создайте запись
Listen для имени хоста socrates следующим образом:
Listen socrates:631 # Listen on all interfaces for the hostname 'socrates'
или опустив директиву Listen и используя вместо неё Port, как в
Port 631 # Listen on port 631 on all interfaces
Если вам необходимо большее количество примеров директив конфигурационного файла сервера CUPS, обратитесь к соответствующей странице руководства системы, введя следующую команду в терминале:
man cupsd.conf
Если вы внесёте изменения в файл конфигурации
/etc/cups/cupsd.conf
,
вам будет необходимо перезапустить CUPS сервер, выполнив следующую команду в терминале:
sudo /etc/init.d/cups restart
4.3. Веб-интерфейс
Настраивать CUPS и отслеживать его состояние можно через веб- интерфейс, который по умолчанию доступен по адресу http://
localhost:631/admin. Веб-интерфейс можно использовать для выполнения любых задач управления принтером.
Чтобы выполнить административную задачу через веб-интерфейс, вы должны либо разрешить учётную запись root на своем сервере, либо авторизоваться как пользователь из группы lpadmin. По соображениям безопасности CUPS не авторизует пользователей с пустыми паролями.
Чтобы добавить пользователя в группу lpadmin, выполните в терминале следующую команду:
sudo usermod -aG lpadmin username
Дальнейшая документация доступна через закладку Documentation/Help
веб-интерфейса.
7
http://www.cups.org/

Файл-серверы
269 4.4. Ссылки
Сайт CUPS
7
Страница Debian Open-iSCSI
8 8
http://wiki.debian.org/SAN/iSCSI/open-iscsi

270
Глава 15. Сервисы
электронной почты
Процесс доставки электронных писем от одного человека к другому через локальную сеть или Интернет включает в себя взаимодействие множества систем. Каждая из этих систем должна быть правильно настроена,
чтобы выполнять свою работу. Оправитель использует почтовый агент
пользователя (Mail User Agent, MUA) или клиент электронной почты, чтобы отправлять сообщения через один или несколько агентов передачи почты
(Mail Transfer Agents, MTA), последний из которых передаст сообщение
агенту доставки почты (Mail Delivery Agent, MDA) для доставки почты в почтовый ящик получателя, откуда оно может быть доставлено получателю с помощью его почтового клиента, обычно через сервер POP3 или IMAP.

Сервисы электронной почты
271
1. Postfix
В Ubuntu агент передачи почты (Mail Transfer Agent (MTA)) по умолчанию —
Postfix. Он считается безопасным, быстрым и лёгким в администрировании.
Он совместим с MTA sendmail. Данный раздел объяснит, как установить и настроить postfix. Так же будет описано, как настроить SMTP-сервер с использованием безопасного соединения (для безопасной передачи почты).
Это руководство не рассматривает настройку виртуальных
доменов postfix. Для получения информации по виртуальным доменам и другим расширенным настройкам смотрите Раздел 1.7.3,
«Ссылки» [277].
1.1. Установка
Чтобы установить postfix, запустите следующую команду:
sudo apt-get install postfix
Просто нажимайте ввод, когда процесс установки задает вопросы, более детальная настройка будет выполнена на следующем этапе.
1.2. Базовая конфигурация
Чтобы настроить postfix, выполните следующую команду:
sudo dpkg-reconfigure postfix
Будет запущен пользовательский интерфейс. На каждом экране выбирайте следующие значения:
• Сайт в интернете
• mail.example.com
• steve
• mail.example.com, localhost.localdomain, localhost
• No
• 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24
• 0
• +
• все
Замените mail.example.com на домен, для которого вы настраиваете email, 192.168.0.0/24 на актуальную подсеть и маску для вашего почтового сервера и steve на соответствующее имя пользователя.

Сервисы электронной почты
272
Теперь самое время решить, какой формат почтового ящика вы хотите использовать. По умолчанию, Postfix будет использовать mbox, как формат почтового ящика. Вместо прямого редактирования конфигурационного файла, вы можете использовать команду postconf для настройки всех параметров postfix. Параметры конфигурации будут храниться в файле
/etc/postfix/main.cf
. Позже, если вы захотите перенастроить отдельный параметр, вы можете либо запустить команду, либо изменить его в файле вручную.
Для настройки формата почтового ящика в Maildir:
sudo postconf -e 'home_mailbox = Maildir/'
Это поместит новую почту в /home/username/Maildir, поэтому вам потребуется настроить вашего агента доставки почты (MDA) на использование этого же каталога.
1.3. Аутентификация SMTP
SMTP-AUTH позволяет клиенту идентифицировать себя через механизм аутентификации (SASL). Транспортный уровень безопасности (TLS) будет использоваться для шифрования процесса аутентификации. После аутентификации SMTP сервер позволит клиенту передавать почту.
1. Настройте Postfix на SMTP-AUTH с использованием SASL (Dovecot SASL):
sudo postconf -e 'smtpd_sasl_type = dovecot'
sudo postconf -e 'smtpd_sasl_path = private/auth-client'
sudo postconf -e 'smtpd_sasl_local_domain ='
sudo postconf -e 'smtpd_sasl_security_options = noanonymous'
sudo postconf -e 'broken_sasl_auth_clients = yes'
sudo postconf -e 'smtpd_sasl_auth_enable = yes'
sudo postconf -e 'smtpd_recipient_restrictions = \
permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
Настройка smtpd_sasl_path является путём, относительным к каталогу запросов Postfix.
2. Далее создайте или получите цифровой сертификат для TLS. Смотрите подробности в разделе Раздел 5, «Сертификаты» [194]. Этот пример также использует Центр сертификации (CA). Для информации по созданию сертификатов CA смотрите раздел Раздел 5.5, «Центр
Сертификации» [197].
Почтовым агентам пользователей (MUA), подключающимся к вашему почтовому серверу через TLS, потребуется распознать

Сервисы электронной почты
273
сертификат, используемый для TLS. Это может быть сделано либо с использованием сертификата от коммерческого центра сертификации, либо с самоподписанным сертификатом,
который пользователи установили вручную. Для TLS между
MTA (агентами передачи почты) сертификаты никогда не подтверждаются без дополнительного соглашения с контролирующими организациями. Поэтому для таких соединений, если локальные политики этого не требуют,
нет резона не использовать самоподписанные сертификаты.
Смотрите подробности в разделе Раздел 5.3, «Создание
сертификата со своей подписью» [197].
3. Как только у вас появился сертификат, настройте Postfix на использование TLS-шифрования как для входящей, так и для исходящей почты:
sudo postconf -e 'smtp_tls_security_level = may'
sudo postconf -e 'smtpd_tls_security_level = may'
sudo postconf -e 'smtp_tls_note_starttls_offer = yes'
sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/server.key'
sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/server.crt'
sudo postconf -e 'smtpd_tls_loglevel = 1'
sudo postconf -e 'smtpd_tls_received_header = yes'
sudo postconf -e 'myhostname = mail.example.com'
4. Если вы используете собственный Центр сертификации, для подписи сертификата введите:
sudo postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'
Опять же, для подробностей смотрите раздел Раздел 5,
«Сертификаты» [194].
После выполнения всех команд Postfix настроен на SMTP-AUTH и самоподписанный сертификат создан для TLS шифрования.
Теперь, файл
/etc/postfix/main.cf должен выглядеть подобным
1
образом.
Начальная настройка postfix закончена. Выполните следующую команду для перезапуска сервиса postfix:
sudo /etc/init.d/postfix restart
1
../sample/postfix_configuration

Сервисы электронной почты
274
Postfix поддерживает SMTP-AUTH как описано в RFC2554
2
. Он основан на
SASL
3
. Однако все-таки необходимо настроить аутентификацию перед тем,
как вы сможете использовать SMTP-AUTH.
1.4. Настройка SASL
Postfix поддерживает две реализации SASL: Cyrus SASL и Dovecot SASL.
Чтобы разрешить Dovecot SASL, требуется установить пакет dovecot- common. Для этого из терминала введите следующее:
sudo apt-get install dovecot-common
Далее вам потребуется отредактировать
/etc/dovecot/dovecot.conf
. В секции
auth default снимите комментарий с опции socket listen и измените её
следующим образом:
socket listen {
#master {
# Master socket provides access to userdb information. It's typically
# used to give Dovecot's local delivery agent access to userdb so it
# can find mailbox locations.
#path = /var/run/dovecot/auth-master
#mode = 0600
# Default user/group is the one who started dovecot-auth (root)
#user =
#group =
#}
client {
# The client socket is generally safe to export to everyone. Typical use
# is to export it to your SMTP server so it can do SMTP AUTH lookups
# using it.
path = /var/spool/postfix/private/auth-client mode = 0660
user = postfix group = postfix
}
}
Чтобы позволить использовать SMTP-AUTH клиентам Outlook, в секции auth
default файла /etc/dovecot/dovecot.conf добавьте "login":
mechanisms = plain login
После того, как Dovecot настроен, перезапустите его:
2
http://www.ietf.org/rfc/rfc2554.txt
3
http://www.ietf.org/rfc/rfc2222.txt

Сервисы электронной почты
275
sudo /etc/init.d/dovecot restart
1.5. Почтовый стек доставки
Другой опцией настройки Postfix для SMTP-AUTH является использование пакета mail-stack-delivery (ранее он назывался dovecot-postfix). Этот пакет установит Dovecot и настроит Postfix для его использования совместно с
SASL аутентификацией и как агента доставки почты (MDA). Пакет также настроит Dovecot для IMAP, IMAPS, POP3 и POP3S.
Вы можете захотеть или не захотеть использовать IMAP, IMAPS,
POP3, или POP3S на вашем почтовом сервере. Например, если вы настраиваете свой сервер в качестве почтового шлюза, фильтра спама и вирусов и т.п. В этом случае возможно будет проще использовать вышеприведенные команды для настройки Postfix на
SMTP_AUTH.
Чтобы установить пакет, введите в терминале:
sudo apt-get install mail-stack-delivery
У вас теперь рабочий почтовый сервер, но существует несколько опций,
которые вы, возможно, захотите изменить в дальнейшем. Например, пакет использует сертификат и ключ от ssl-cert пакета, и в рабочей среде, вы должны использовать сертификат и ключ, сгенерированный для хоста.
Смотрите радел Раздел 5, «Сертификаты» [194] для дополнительных деталей.
После того, как вы получили заказанный сертификат для сервера, замените следующую опцию в
/etc/postfix/main.cf
:
smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key
Перезапустите Postfix:
sudo /etc/init.d/postfix restart
1.6. Тестирование
Настройка SMTP-AUTH завершена. Теперь самое время проверить настройки.
Чтобы убедиться, что SMTP-AUTH и TLS работают правильно, выполните следующую команду:

Сервисы электронной почты
276
telnet mail.example.com 25
После установления соединения с почтовым сервером postfix введите:
ehlo mail.example.com
Если среди прочего вы увидите следующие строки, всё работает замечательно. Введите quit для выхода.
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME
1.7. Устранение проблем
Этот раздел описывает несколько общих способов определения причин возникающих проблем.
1.7.1. Отказ от режима chroot
Пакет postfix в Ubuntu по умолчанию устанавливается в окружении chroot
из соображений безопасности. Это может дополнительно усложнить процесс поиска решения проблем.
Для отключения функционирования chroot, найдите следующую строку в файле настроек
/etc/postfix/master.cf
:
smtp inet n - - - - smtpd и измените на:
smtp inet n - n - - smtpd
После этого вам придётся перезапустить Postfix для использования новых настроек. В терминале введите следующее:
sudo /etc/init.d/postfix restart
1.7.2. Файлы журналов
Postfix посылает все сообщения в журнал
/var/log/mail.log
. Однако сообщения об ошибках и предупреждения могут иногда теряться в нормальном журнале, поэтому они отдельно сохраняются в
/var/log/mail.err и
/var/log/mail.warn
, соответственно.
Для просмотра сообщений журнала в режиме реального времени вы можете использовать команду tail -f:

Сервисы электронной почты
277
tail -f /var/log/mail.err
Количество деталей, записываемых в журнал, может быть увеличено. Ниже приведено несколько опций настройки для увеличения уровня детализации некоторых областей, описанных выше.
• Для увеличения TLS активности журнала, установите опции
smtpd_tls_loglevel значение от 1 до 4.
sudo postconf -e 'smtpd_tls_loglevel = 4'
• Если вы испытываете трудности с отправкой или приёмом почты из отдельного домена, вы можете включить его в параметр debug_peer_list.
sudo postconf -e 'debug_peer_list = problem.domain'
• Вы можете увеличить детализацию любого сервиса Postfix редактированием
/etc/postfix/master.cf
, добавив -v после соответствующей записи. Для примера изменим запись smtp:
smtp unix - - - - - smtp -v
Важно помнить, что после внесения изменений настроек журналирования процессов, Postfix требуется перезапустить для восприятия новой конфигурации: sudo /etc/init.d/postfix reload
• Для увеличения количества информации в журнале при поиске проблем с
SASL, вы можете установить следующие опции в
/etc/dovecot/dovecot.conf auth_debug=yes auth_debug_passwords=yes
Как и в случае с Postfix, если вы изменяете настройки Dovecot,
процесс требуется перезапустить: sudo /etc/init.d/dovecot reload.
Некоторые опции выше могут серьёзно увеличить объем информации, передаваемой в файлы журналов. Не забывайте возвращать уровень детализации журналов к нормальному значению после решения проблем. Затем перезапустите соответствующий сервис, чтобы изменения настройки вступили в силу.
1.7.3. Ссылки
Администрирование сервера Postfix может быть очень сложной задачей. В
какой-то момент вам может потребоваться обратиться к сообществу Ubuntu для более квалифицированной помощи.

Сервисы электронной почты
278
Хорошее место, чтобы задать вопрос по сопровождению Postfix и влиться в сообщество Ubuntu Server community — это IRC-канал #ubuntu-server на
freenode
4
. Вы также можете отправить сообщение на один из веб-форумов
5
Для всесторонней информации Postfix разработчики Ubuntu очень рекомендуют прочитать The Book of Postfix
6
Наконец, веб-сайт Postfix
7
также содержит много информации по всем возможным опциям настройки.
Кроме того, страница Ubuntu Wiki Postifx
8
содержит дополнительную информацию.
4
http://freenode.net
5
http://www.ubuntu.com/support/community/webforums
6
http://www.postfix-book.com/
7
http://www.postfix.org/documentation.html
8
https://help.ubuntu.com/community/Postfix

Сервисы электронной почты
279
2. Exim4
Exim4 — это почтовый транспортный агент (MTA), разработанный в университете Кембриджа для использования в системах Unix,
подключённых к Интернету. Exim можно установить вместо sendmail, хотя процедура настройки exim сильно отличается от настройки sendmail.
2.1. Установка
Чтобы установить exim4, выполните следующую команду:
sudo apt-get install exim4
2.2. Конфигурация
Для настройки Exim4 выполните следующую команду:
sudo dpkg-reconfigure exim4-config
Появится пользовательский интерфейс. Этот интерфейс позволит вам настроить множество параметров. Например, в Exim4 файлы настроек разделены между различными файлами. Если вы решите объединить их в один файл, вы можете настроить это в данном пользовательском интерфейсе.
Все параметры, которые вы настроите в пользовательском интерфейсе будут сохранены в файле
/etc/exim4/update-exim4.conf
. Если вы захотите что-то перенастроить, то либо перезапустите мастера настройки, либо вручную поправьте данный файл любым редактором. После настройки вам потребуется выполнить следующую команду для создания главного файла настроек:
sudo update-exim4.conf
Главный файл настроек будет создан и сохранён в
/var/lib/exim4/
config.autogenerated
Вы не должны, ни при каких обстоятельствах, редактировать вручную основной файл настроек
/var/lib/exim4/config.autogenerated
Он обновляется автоматически каждый раз, когда вы запускаете команду update-exim4.conf
Вы можете воспользоваться следующей командой для запуска сервиса
Exim4.

Сервисы электронной почты
280
sudo /etc/init.d/exim4 start
2.3. Аутентификация SMTP
Этот раздел раскрывает, как настроить Exim4 для использования SMTP-
AUTH с TLS и SASL.
Первым шагом будет создание сертификата для использования TLS.
Введите следующее в терминале:
sudo /usr/share/doc/exim4-base/examples/exim-gencert
Теперь Exim4 нуждается в настройке TLS. Отредактируйте
/etc/exim4/conf.d/
main/03_exim4-config_tlsoptions
, добавив следующее:
MAIN_TLS_ENABLE = yes
Далее вам потребуется настроить Exim4 на использование saslauthd для аутентификации. Вызовите на редактирование
/etc/exim4/
conf.d/auth/30_exim4-config_examples и раскомментируйте секции
plain_saslauthd_server и login_saslauthd_server:
plain_saslauthd_server:
driver = plaintext public_name = PLAIN
server_condition = ${if saslauthd{{$auth2}{$auth3}}{1}{0}}
server_set_id = $auth2
server_prompts = :
.ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
.endif
#
login_saslauthd_server:
driver = plaintext public_name = LOGIN
server_prompts = "Username:: : Password::"
# don't send system passwords over unencrypted connections server_condition = ${if saslauthd{{$auth1}{$auth2}}{1}{0}}
server_set_id = $auth1
.ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
.endif
Дополнительно, чтобы внешний почтовый клиент имел возможность соединиться с вашим новым сервером exim, требуется добавить нового пользователя в exim, используя следующие команды:

Сервисы электронной почты
281
sudo /usr/share/doc/exim4/examples/exim-adduser
Новый файл паролей должен быть защищён от пользователей с помощью следующих команд:
sudo chown root:Debian-exim /etc/exim4/passwd
sudo chmod 640 /etc/exim4/passwd
В конце обновите настройки Exim4 и перезапустите сервис:
sudo update-exim4.conf
sudo /etc/init.d/exim4 restart
2.4. Настройка SASL
В этом разделе раскрываются подробности настройки saslauthd, чтобы обеспечить аутентификацию для Exim4.
Для начала установим пакет sasl2-bin. В терминале введите следующее:
sudo apt-get install sasl2-bin
Чтобы настроить saslauthd, отредактируйте файл настройки /etc/default/
saslauthd и замените START=no на:
START=yes
Далее пользователя Debian-exim требуется включить в группу sasl, чтобы
Exim4 мог использовать сервис saslauthd:
sudo adduser Debian-exim sasl
Теперь запустите сервис saslauthd:
sudo /etc/init.d/saslauthd start
Теперь Exim4 настроен на SMTP-AUTH с использованием TLS и SASL
аутентификации.
2.5. Ссылки
• Смотрите exim.org
9
для дополнительной информации.
• Также доступна книга Exim4 Book
10 9
http://www.exim.org/
10
http://www.uit.co.uk/content/exim-smtp-mail-server

Сервисы электронной почты
282
• Ещё один ресурс — страница Exim4 Ubuntu Wiki
11 11
https://help.ubuntu.com/community/Exim4

Сервисы электронной почты
283
3. Dovecot Server
Dovecot — это агент доставки почты, написанный с упором на безопасность. Он поддерживает основные форматы почтовых ящиков: mbox или Maildir. Этот раздел рассказывает о том, как настроить его в качестве сервера imap или pop3.
3.1. Установка
Для установки dovecot выполните следующую команду в терминале:
sudo apt-get install dovecot-imapd dovecot-pop3d
3.2. Конфигурация
Чтобы настроить dovecot, вам потребуется отредактировать файл
/etc/
dovecot/dovecot.conf
. Вы можете выбрать, какой протокол использовать. Это может быть pop3, pop3s (безопасный pop3), imap или imaps (безопасный imap). Описание этих протоколов находится за пределами вопросов,
рассматриваемых в данном руководстве. Для дополнительной информации обратитесь к статьям Википедии по POP3
12
и IMAP
13
IMAPS и POP3S более безопасны, чем обычные IMAP и POP3, поскольку используют SSL-шифрование для соединения. Как только вы выберете протокол, исправьте следующую строку в файле
/etc/dovecot/dovecot.conf
:
protocols = pop3 pop3s imap imaps
Далее выберите формат почтового ящика, который вы собираетесь использовать. Dovecot поддерживает форматы maildir и mbox. Они оба имеют свои преимущества, которые обсуждаются на сайте Dovecot
14
Выбрав тип почтового ящика, измените в файле
/etc/dovecot/dovecot.conf
(
/
etc/dovecot/conf.d/10-mail.conf
) следующую строку:
mail_location = maildir:
/Maildir # (for maildir)
or mail_location = mbox:
/mail:INBOX=/var/spool/mail/%u # (for mbox)
Вы должны настроить свой почтовый транспортный агент (MTA, Mail
Transport Agent) для передачи входящей почты на почтовый ящик этого типа, если он отличен от того, который вы уже настроили.
12
http://en.wikipedia.org/wiki/POP3 13
http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol
14
http://wiki.dovecot.org/MailboxFormat

Сервисы электронной почты
284
Настроив dovecot, перезапустите сервис dovecot, чтобы проверить свои установки:
sudo /etc/init.d/dovecot restart
Если вы разрешили imap или pop3, вы можете попробовать подключиться с помощью команд telnet localhost pop3 или telnet localhost imap2.
Если вы увидите что-то, похожее на следующий код, установка успешно завершена:
bhuvan@rainbow:
$ telnet localhost pop3
Пытаемся 127.0.0.1...
Соединился с localhost.localdomain.
Клавиша возврата '^]'.
+OK Dovecot готов.
3.3. Dovecot: Настройка SSL
Чтобы настроить dovecot на использование SSL, вы должны отредактировать файл
/etc/dovecot/dovecot.conf и исправить следующие строки:
ssl_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem ssl_key_file = /etc/ssl/private/ssl-cert-snakeoil.key ssl_disable = no disable_plaintext_auth = no
Вы можете получить SSL сертификат в Центре Сертификации или создать самоподписанный. Второй вариант является хорошим выбором для электронной почты, поскольку SMTP-клиенты редко жалуются на самоподписанные сертификаты. Посмотрите в разделе Раздел 5,
«Сертификаты» [194], как создавать самоподписанный сертификат. Когда вы создадите сертификат, у вас будет файл ключа и файл сертификата.
Скопируйте их в каталог, указанный в конфигурационном файле
/etc/
dovecot/dovecot.conf
3.4. Настройка брандмауэра для почтового сервера
Для доступа к вашему почтовому серверу с другого компьютера вы должны настроить брандмауер на разрешение соединений по необходимым портам.
• IMAP - 143
• IMAPS - 993
• POP3 - 110
• POP3S - 995

Сервисы электронной почты
285 3.5. Ссылки
• Смотрите Dovecot website
15
для дополнительной информации.
• Также страница Dovecot Ubuntu Wiki
16
содержит много подробностей.
15
http://www.dovecot.org/
16
https://help.ubuntu.com/community/Dovecot

Сервисы электронной почты
286
4. Mailman
Mailman — это программа с открытыми кодами для управления дискуссиями, ведущимися через электронную почту, и рассылками электронных новостных сообщений. Многие открытые списки рассылок
(включая все на Ubuntu mailing lists
17
) используют Mailman в качестве программы управления почтовыми списками. Это мощное приложение, при этом его легко установить и поддерживать.
4.1. Установка
Mailman обеспечивает веб-интерфейс для администраторов и пользователей, использующих внешний почтовый сервер для отправки и приема почты. Он великолепно работает со следующими почтовыми серверами:
• Postfix
• Exim
• Sendmail
• Qmail
Мы рассмотрим, как установить и настроить Mailman с веб-сервером
Apache, а также с почтовым сервером Postfix или Exim. Если вы собираетесь устанавливать Mailman с другим почтовым сервером, обратитесь,
пожалуйста, к разделу Ссылки.
Вам потребуется установить только один почтовый сервер и Postfix для Ubuntu является вариантом по умолчанию.
4.1.1. Apache2
Чтобы установить apache2, обратитесь к соответствующему разделу
Раздел 1.1, «Установка» [213].
4.1.2. Postfix
Для инструкций по установке и настройке Postfix смотрите раздел Раздел 1,
«Postfix» [271]
4.1.3. Exim4
Для установки Exim4 обратитесь к разделу Раздел 2, «Exim4» [279].
Когда exim4 устанавливается, его файлы настроек сохраняются в каталоге
/etc/exim4
. In В Ubuntu по умолчанию файлы настройки exim4 разделены
17
http://lists.ubuntu.com

Сервисы электронной почты
287
на несколько файлов. Вы можете это поменять, изменив следующую переменную в файле
/etc/exim4/update-exim4.conf
:
dc_use_split_config='true'
4.1.4. Mailman
Чтобы установить Mailman, выполните следующую команду в терминале:
sudo apt-get install mailman
Она скопирует установочные файлы в каталог /var/lib/mailman. Она также установит CGI-сценарии в каталог /usr/lib/cgi-bin/mailman, создаст пользователя Linux list и группу list. Процесс mailman будет управляться этим пользователем.
4.2. Конфигурация
В этом разделе предполагается, что у вас удачно установлены mailman,
apache2, и postfix или exim4. Теперь вам требуется только их настроить.
4.2.1. Apache2
Примерный файл настройки Apache идет вместе с Mailman и помещён в
/etc/mailman/apache.conf
. Чтобы Apache смог его использовать, требуется переместить его в
/etc/apache2/sites-available
:
sudo cp /etc/mailman/apache.conf /etc/apache2/sites-available/mailman.conf
Это установит новый VirtualHost в Apache для административного сайта
Mailman. Теперь разрешим новую конфигурацию и перезагрузим Apache:
sudo a2ensite mailman.conf
sudo service apache2 restart
Mailman использует apache2 для обработки CGI-сценариев. CGI-сценарии
Mailman устанавливаются в каталог /usr/lib/cgi-bin/mailman. Поэтому адрес mailman будет http://hostname/cgi-bin/mailman/. Вы можете внести изменения в файл
/etc/apache2/sites-available/mailman.conf
, если вы решили изменить такой адрес.
4.2.2. Postfix
Для интеграции с Postfix мы ассоциируем домен lists.example.com со списком рассылки. Пожалуйста, замените lists.example.com на домен по вашему выбору.

Сервисы электронной почты
288
Вы можете использовать команду postconf для добавления необходимых настроек в
/etc/postfix/main.cf
:
sudo postconf -e 'relay_domains = lists.example.com'
sudo postconf -e 'transport_maps = hash:/etc/postfix/transport'
sudo postconf -e 'mailman_destination_recipient_limit = 1'
В
/etc/postfix/master.cf дважды проверьте, что у вас указан следующий транспорт:
mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${user}
Он вызывает сценарий postfix-to-mailman.py, когда почта доставлена по списку.
Ассоциируем домен lists.example.com с транспортом Mailman с помощью транспортной карты. Отредактируйте файл
/etc/postfix/transport
:
lists.example.com mailman:
Теперь дадим Postfix построить транспортную карту, введя следующее в терминале:
sudo postmap -v /etc/postfix/transport
Затем перезапустите Postfix, чтобы разрешить новые настройки:
sudo /etc/init.d/postfix restart
4.2.3. Exim4
Когда Exim4 установлен, вы можете запустить сервер Exim, используя следующую команду из терминала:
sudo /etc/init.d/exim4 start
Чтобы mailman мог работать с Exim4, вам потребуется настроить Exim4.
Как было замечено ранее, по умолчанию Exim4 использует множество файлов настроек различного типа. Для подробностей смотрите сайт Exim
18
Чтобы запустить mailman, нам придётся добавить новый файл настройки к следующим типам настроек:
18
http://www.exim.org

Сервисы электронной почты
289
• Основное
• Передача почты
• Маршрутизатор
Exim создаёт главный файл настройки, сортируя все эти миниатюрные конфигурационные файлы. Поэтому последовательность этих конфигурационных файлов очень важна.
4.2.4. Основное
Все настроечные файлы основного типа хранятся в каталоге
/etc/exim4/
conf.d/main/
. Создайте новый файл
04_exim4-config_mailman и добавьте в него следующее:
# start
# Home dir for your Mailman installation -- aka Mailman's prefix
# directory.
# On Ubuntu this should be "/var/lib/mailman"
# This is normally the same as mailman
MM_HOME=/var/lib/mailman
#
# User and group for Mailman, should match your --with-mail-gid
# switch to Mailman's configure script. Value is normally "mailman"
MM_UID=list
MM_GID=list
#
# Domains that your lists are in - colon separated list
# you may wish to add these into local_domains as well domainlist mm_domains=hostname.com
#
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#
# These values are derived from the ones above and should not need
# editing unless you have munged your mailman installation
#
# The path of the Mailman mail wrapper script
MM_WRAP=MM_HOME/mail/mailman
#
# The path of the list config file (used as a required file when
# verifying list addresses)
MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck
# end
4.2.5. Передача почты
Все настроечные файлы, принадлежащие к типу транспортировка,
хранятся в каталоге
/etc/exim4/conf.d/transport/
. Создайте новый файл
40_exim4-config_mailman и добавьте в него следующее:

Сервисы электронной почты
290
mailman_transport:
driver = pipe command = MM_WRAP \
'${if def:local_part_suffix \
{${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \
{post}}' \
$local_part current_directory = MM_HOME
home_directory = MM_HOME
user = MM_UID
group = MM_GID
4.2.6. Маршрутизатор
Все настроечные файлы, принадлежащие к типу роутер, хранятся в каталоге
/etc/exim4/conf.d/router/
. Создайте новый файл
101_exim4- config_mailman и добавьте в него следующее:
mailman_router driver = accept require_files = MM_HOME/lists/$local_part/config.pck local_part_suffix_optional local_part_suffix = -bounces : -bounces+* : \
-confirm+* : -join : -leave : \
-owner : -request : -admin transport = mailman_transport
Порядок основных и транспортных файлов настроек не важен.
Однако, порядок файлов настроек роутера должен быть сохранён.
Конкретно этот файл по порядку должен быть до файла 200_exim4- config_primary. Оба этих файла содержат одинаковый тип информации. Первый из них будет определен как предшественник.
Для получкения более полной информации, обратитесь к разделу ссылок.
4.2.7. Mailman
После того как установлен mailman, вы можете использовать следующую команду:
sudo /etc/init.d/mailman start
Поскольку mailman установлен, вы можете создать список рассылки по умолчанию. Выполните следующую команду, чтобы создать список рассылки:
sudo /usr/sbin/newlist mailman

Сервисы электронной почты
291
Enter the email address of the person running the list: bhuvan at ubuntu.com
Initial mailman password:
To finish creating your mailing list, you must edit your /etc/aliases (or equivalent) file by adding the following lines, and possibly running the
`newaliases' program:
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"
Hit enter to notify mailman owner...
#
Мы настроили как Postfix, так и Exim4 на распознавание всех почтовых сообщений от mailman. Поэтому нет необходимости создавать новые записи в
/etc/aliases
. Если вы делаете какие-либо изменения в конфигурационных файлах, не забывайте выполнять перезапуск соответствующих сервисов до перехода к следующей части.
Exim4 не использует псевдонимов (aliases) для перенаправления почты для Mailman, поскольку он использует метод перебора
discover.Чтобы подавить использование псевдонимов при создании списка, вам потребуется добавить строку MTA=None в конфигурационный файл
/etc/mailman/mm_cfg.py
4.3. Администрирование
Мы предполагаем, что у вас установка по умолчанию. Файлы CGI- сценариев mailman'а расположены в каталоге /usr/lib/cgi-bin/mailman/.
Mailman предоставляет возможность администрирования с помощью веб- интерфейса. Для доступа к этой странице откройте в своём браузере следующий адрес:
http://hostname/cgi-bin/mailman/admin
На этом экране появится список рассылок по умолчанию, mailman. Если вы щёлкнете мышкой на имени списка рассылки, у вас будет запрошен пароль. Если вы введёте правильный пароль, у вас появится доступ к изменению административных настроек списка рассылки. Вы можете создать новый список рассылки с помощью утилиты командной строки

Сервисы электронной почты
292
(/usr/sbin/newlist). Также вы можете создать новый список рассылки с помощью веб-интерфейса.
4.4. Пользователи
Mailman предоставляет пользователю веб-интерфейс. Для доступа к этой странице, перейдите в браузере на следующий URL:
http://hostname/cgi-bin/mailman/listinfo
На этом экране появится созданный при установке список рассылки "mailman". Если щёлкнуть на названии списка рассылки, появится форма регистрации. Для подписки на этот список можно ввести dаш почтовый адрес, имя (не обязательно) и пароль. После этого dам будет отправленно электронной почтой приглашение. Чтобы подписаться на список рассылки,
следуйте инструкциям, содержащимся в этом приглашении.
4.5. Ссылки
GNU Mailman — руководство по установке
19
HOWTO — Совместное использование Exim 4 и Mailman 2.1
20
Также смотрите страницу Mailman Ubuntu Wiki
21 19
http://www.list.org/mailman-install/index.html
20
http://www.exim.org/howto/mailman21.html
21
https://help.ubuntu.com/community/Mailman

Сервисы электронной почты
293
5. Фильтрация почты
Одной из больших проблем с электронной почтой является проблема массовой незатребованной почты (Unsolicited Bulk Email — UBE). Такие сообщения, более известные как СПАМ, могут к тому же содержать вирусы и другие виды вредоносных программ. Согласно некоторым отчётам, эти сообщения составляют подавляющую часть от всего трафика почтовых сообщений в интернете.
В этом разделе рассматривается интеграция Amavisd-new, Spamassassin и ClamAV с транспортным почтовым агентом (MTA) Postfix. Postfix Postfix может также проверять легальность почты с помощью передачи её
внешним фильтрам содержания. Эти фильтры могут иногда определить,
что сообщение является спамом без необходимости передачи его более ресурсоёмким приложениям. Пара таких фильтров — это opendkim и python-policyd-spf.
• Amavisd-new — это программа-обёртка, которая может вызывать любое количество программ фильтрации контента для обнаружения спама,
антивирус и т.п.
• Spamassassin использует множество механизмов фильтрования почты на основе содержимого сообщений.
• ClamAV — антивирусное приложение с открытым кодом.
• opendkim является почтовым фильтром Sendmail для стандарта DKIM
(почты, заверенной доменными ключами).
• python-policyd-spf обеспечивает проверку SPF (структуры политики отправителя) с Postfix.
А здесь то, как эти части работают вместе:
• Почтовое сообщение принимается Postfix.
• Это сообщение проходит через некоторые внешние фильтры, в том числе opendkim и python-policyd-spf.
• Затем сообщение обрабатывается Amavisd-new.
• ClamAV используется для проверки сообщения. Если сообщение содержит вирус, Postfix сбросит сообщение.
• Чистые сообщения затем будут проверены Spamassassin на принадлежность к спаму. Spamassassin затем добавит строки X-Header,
позволяющие в дальнейшем Amavisd-new управлять сообщением.
Например, если сообщение содержит уровень спама более пятидесяти,
оно будет автоматически выброшено из очереди, чтобы не беспокоить

Сервисы электронной почты
294
получателя. В качестве альтернативы помеченное сообщение доставляется до почтового агента пользователя (MUA) чтобы пользователь сам определил насколько оно легальное.
5.1. Установка
Смотрите разделРаздел 1, «Postfix» [271] для установки и настройки Postfix.
Чтобы установить основные приложения, введите следующее в терминале:
sudo apt-get install amavisd-new spamassassin clamav-daemon
sudo apt-get install opendkim postfix-policyd-spf-python
Существуют некоторые общие пакеты, подключаемые к Spamassassin для лучшего определения спама:
sudo apt-get install pyzor razor
Поскольку основным фильтрующим приложениям требуются утилиты архивации для обработки прикрепленных файлов:
sudo apt-get install arj cabextract cpio lha nomarch pax rar unrar unzip zip
Если какие-то пакеты не были найдены, проверьте, что хранилище
multiverse разрешено в
/etc/apt/sources.list
Если вы внесли изменения в этот файл, убедитесь, что выполнили
sudo apt-get update перед повторной попыткой установки.
5.2. Конфигурация
Теперь настроим, чтобы всё работало и фильтровало почту.
5.2.1. ClamAV
Стандартное поведение ClamAV вполне подходит для наших нужд. Для дополнительных опций настройки смотрите конфигурационные файлы в
/
etc/clamav
Добавьте пользователя clamav в группу amavis, чтобы Amavisd-new имел соответствующие права доступа для сканирования файлов:
sudo adduser clamav amavis
sudo adduser amavis clamav

Сервисы электронной почты
295 5.2.2. Spamassassin
Spamassassin автоматически определяет общие компоненты и использует их, если они присутствуют. Это означает, что нет необходимости настраивать pyzor и razor.
Отредактируйте
/etc/default/spamassassin для активации сервиса
Spamassassin. Измените ENABLED=0 на:
ENABLED=1
Теперь запустим сервис:
sudo /etc/init.d/spamassassin start
5.2.3. Amavisd-new
Сначала активируем проверку на спам и вирусы в Amavisd-new,
отредактировав
/etc/amavis/conf.d/15-content_filter_mode
:
use strict;
# You can modify this file to re-enable SPAM checking through spamassassin
# and to re-enable antivirus checking.
#
# Default antivirus checking mode
# Uncomment the two lines below to enable it
#
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
#
# Default SPAM checking mode
# Uncomment the two lines below to enable it
#
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
1; # insure a defined return
Возврат спама может быть плохой идеей, поскольку обратный адрес часто неверный. Подумайте над тем, чтобы изменить в
/etc/amavis/
conf.d/20-debian_defaults установку $final_spam_destiny на D_DISCARD вместо
D_BOUNCE, как показано ниже:

Сервисы электронной почты
296
$final_spam_destiny = D_DISCARD;
Дополнительно вы можете захотеть установить следующие опциональные флаги для отметки большего количества сообщений как спам:
$sa_tag_level_deflt = -999; # add spam info headers if at, or above that level
$sa_tag2_level_deflt = 6.0; # add 'spam detected' headers at that level
$sa_kill_level_deflt = 21.0; # triggers spam evasive actions
$sa_dsn_cutoff_level = 4; # spam level beyond which a DSN is not sent
Если сетевое имя сервера (hostname) отличается от MX-записи домена,
вам может потребоваться установить вручную опцию $myhostname.
Также, если сервер принимает почту для нескольких доменов, опцию
@local_domains_acl потребуется изменить. Отредактируйте файл
/etc/amavis/
conf.d/50-user
:
$myhostname = 'mail.example.com';
@local_domains_acl = ( "example.com", "example.org" );
Если вы хотите покрывать несколько доменов, вы можете использовать следующее в файле
/etc/amavis/conf.d/50-user
@local_domains_acl = qw(.);
После настройки Amavisd-new требуется перезапустить:
sudo /etc/init.d/amavis restart
5.2.3.1. Белые списки DKIM
Amavisd-new может быть настроен на автоматическое занесение адресов в Whitelist из доменов с действительными доменными ключами. Есть несколько предварительно настроенных доменов в
/etc/amavis/conf.d/40- policy_banks
Существует несколько вариантов настройки белого списка для домена:
'example.com' => 'WHITELIST',: будет помещён в белый список любой адрес домена "example.com".
'.example.com' => 'WHITELIST',: будет помещён в белый список любой адрес любого поддомена "example.com", который имеет действительную подпись.
'.example.com/@example.com' => 'WHITELIST',: будут помещены в белый список поддомены "example.com", которые используют подпись родительского домена example.com.

Сервисы электронной почты
297
'./@example.com' => 'WHITELIST',: добавляет адреса, которые имеют действительную подпись от "example.com". Это обычно используется для дискуссионных групп, которые подписывают свои сообщения.
Домен может иметь несколько настроек белого списка. После редактирования файла перезапустите amavisd-new:
sudo /etc/init.d/amavis restart
В этом контексте, если домен добавлен в белый список, сообщение не будет передано каким-либо антивирусным или спам фильтрам.
Это может быть как желательным, так и нежелательным поведением для вашего домена.
5.2.4. Postfix
Для интеграции Postfix, введите следующее в терминале:
sudo postconf -e 'content_filter = smtp-amavis:[127.0.0.1]:10024'
Далее отредактируйте
/etc/postfix/master.cf
, добавив следующее в конец файла:
smtp-amavis unix - - - - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20 127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks

Сервисы электронной почты
298
Также добавьте следующие две строки непосредственно после транспортного сервиса "pickup":
-o content_filter=
-o receive_override_options=no_header_body_checks
Это предотвратит от попадания в спам сообщений, созданных в качестве отчётов о спаме.
Теперь перезапустите Postfix:
sudo /etc/init.d/postfix restart
Фильтрация содержимого с поиском спама и вирусов теперь включена.
5.2.5. Amavisd-new и Spamassassin
При интеграции Amavisd-new со Spamassassin, если вы решили заблокировать фильтр Байеса, отредактировав
/etc/spamassassin/local.cf
, и использовать cron для обновления ночных правил, то это может привести к ситуации, когда большой объём сообщений об ошибках будет посылаться пользователю amavis через задание cron amavisd-new.
Существует несколько способов справиться с этой ситуацией:
• Настройте ваш MDA на фильтрацию сообщений, которые вы не желаете видеть.
• Измените
/usr/sbin/amavisd-new-cronjob на проверку, что use_bayes
0. Например, отредактируйте
/usr/sbin/amavisd-new-cronjob
, добавив следующее в начало до строк проверки:
egrep -q "^[ \t]*use_bayes[ \t]*0" /etc/spamassassin/local.cf && exit 0 5.3. Тестирование
Для начала проверьте, что Amavisd-new SMTP активен:
telnet localhost 10024
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 [127.0.0.1] ESMTP amavisd-new service ready
^]
В заголовке сообщения, которое проходит через фильтр контента, вы должны увидеть:

Сервисы электронной почты
299
X-Spam-Level:
X-Virus-Scanned: Debian amavisd-new at example.com
X-Spam-Status: No, hits=-2.3 tagged_above=-1000.0 required=5.0 tests=AWL, BAYES_00
X-Spam-Level:
В вашем случае вывод может отличаться, но важно то, что здесь есть записи X-Virus-Scanned и X-Spam-Status.
5.4. Устранение проблем
Лучший способ узнать, почему что-то пошло не так — проверить журнальные файлы.
• Для инструкций по журналам Postfix смотрите раздел Раздел 1.7,
«Устранение проблем» [276].
• Amavisd-new использует Syslog для отправки сообщений в
/var/log/
mail.log
. Количество деталей можно увеличить, добавив опцию $log_level в
/etc/amavis/conf.d/50-user и задав её значение в диапазоне от 1 до 5.
$log_level = 2;
Когда вывод журнала Amavisd-new увеличивается, то вывод журнала Spamassassin также увеличивается.
• Уровень журналирования ClamAV может быть увеличен редактированием
/etc/clamav/clamd.conf и установкой следующей опции:
LogVerbose true
По умолчанию ClamAV отправляет сообщения журнала в
/var/log/clamav/
clamav.log
После изменения уровня журналирования не забывайте перезапускать сервис для активации новых настроек. Также после установления причины проблем будет хорошей идеей вернуть уровень журналирования к нормальному значению.
5.5. Ссылки
Для дополнительной информации о фильтрации почты смотрите следующие ссылки:
Документация Amavisd-new
22
Документация ClamAV
23
и ClamAV Wiki
24 22
http://www.ijs.si/software/amavisd/amavisd-new-docs.html
23
http://www.clamav.net/doc/latest/html/
24
http://wiki.clamav.net/Main/WebHome

Сервисы электронной почты
300
Spamassassin Wiki
25
Домашняя страница Pyzor
26
Домашняя страница Razor
27
DKIM.org
28
Postfix Amavis New
29
Также не стесняйтесь задавать вопросы в #ubuntu-server канале IRC на
freenode
30 25
http://wiki.apache.org/spamassassin/
26
http://sourceforge.net/apps/trac/pyzor/
27
http://razor.sourceforge.net/
28
http://dkim.org/
29
https://help.ubuntu.com/community/PostfixAmavisNew
30
http://freenode.net
1   ...   5   6   7   8   9   10   11   12   ...   16


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал