Alt linux настройка почты
Имеем:
- сеть с тремя подсетями:10.0.0.0/24, 10.0.10.0/24, 10.0.20.0/24.
- выход во внешний мир (есть спул адресов 192.168.100.16/28, т.е. у нас 14 внешних адресов).
- компьютер с двумя сетевыми картами.
Хотим: получить полностью функциональный Интернет-сервер со следующими возможностями (см содержание):
Установка ОС, настройка маршрутов
Раздел | Объём |
---|---|
swap | 2000 Mb |
/ | остаток |
Последовательно выполняем шаги:
- Для каждого диска создаём одинаковое количество разделов, одинакового размера. В нашем случае sda1=sdb1=2Gb и sda2=sdb2=73Gb. Тип файловой системы для каждого раздела Linux RAID
- Добавляем созданные разделы к RAID
- Создать RAID. MD - устройство уровня RAID1. Выделяем объекты sda1, sdb1. Выбираем файловую систему swap. Создаётся устройство md0
- Создать RAID. MD - устройство уровня RAID1. Выделяем объекты sda2, sdb2. Выбираем файловую систему ext2/3. Точка монтирования "/". Опции = default. Создаётся устройство md1
4) Для дистрибутива Alt Linux 4.х Desktop выбираем тип установки: сервер.
5) Устанавливаем загрузик в md1.
6) Задаём пароль для Администратора системы (пользователь root).
7) Заводим системного пользователя, например, pavel.
8) Выбор групп пакетов: SMTP server, Proxy, NTP, POP3/IMAP, FTP.
9) Настраиваем сетевые карты. Интерфейс eth0 для локальной сети настроим позже, сейчас настраиваем доступ в Интернет через eth1 на закладке "IP интерфейсы":
- СтавиМ крестик на "Интерфейс включен"
- IP-адрес 192.168.100.18
- Маска сети 255.255.255.240
- Шлюз: 192.168.100.17
На закладке "Общие сетевые настройки":
10) Выбираем часовой пояс.
- После перезагрузки заходим пользователем root. Проверяем работоспособность сетевых настроек. Для этого пингуем адреса Интернета и проверяем внешний DNS сервер пингуя какой-нибудь узел по имени (само сабой мы должны быть 100% уверены, что все эти ресурсы сейчас доступны):
Если пинги не проходят, то, скорее всего, проблема с сетевой картой.
Например, 3Com 3C905-TX не единожды себя компрометировала тем, что вроде бы работает и даже пингует сама себя, но в сеть через неё выходить не удавалось.- Доустанавливаем столь необходимый Midnight Commander:
- Обновляем установленную ОС через Интернет (не обязательно, но желательно). Перед обновлением раскомментируем источники обновления на Master и Sisyphus (в последнем могут быть нестабильные пакеты, т.ч. сомневающиеся могут оставить этот источник закоментированным, но там находится более свежее ПО), перечисляемые в /etc/apt/sources.list.d/server.alt.list.
Если сервер сейчас не имеет прямого подключения к Интернет, то можно обновиться и через прокси-сервер. Для этого определим переменные окружения:Если прокси требует пароля, то:
начинаем полное обновление системы:
- Добавляем маршруты между нашими подсетями, где 10.0.0.1 маршрутизатор между локальными подсетями:
Оба синтаксиса команд эквивалентны. Добавим эти строки в конец файла /etc/rc.d/rc, чтобы команды выполнялись при загрузке ОС.- Обновлять и доустанавливать пакеты можно и без доступа в интернет. Как это настроить можно узнать, прочитав Решение проблем в Linux
- Настраиваем eth0. В /etc/net/ifaces/eth0/options:
Применяем настройки и проверяем, пингуя локальную станцию:
- Теперь можно заходить на сервер с рабочего места администратора по протоколу ssh, если из Windows, то можно использовать PuTTY (см статью Терминальное подключение к серверу Linux с помощью ключей ssh без паролей). Подключаемся пользователем pavel и меняем пользователя на root:
В Alt Linux 4 настройка некоторых параметров системы и служб значительно упростилась благодаря использованию альтераторов (alterator), позволяющим делать это через web-интерфейс. Посмотрим, что уже установлено:
Посмотрим, что вообще есть:
Можно удалить некоторые ненужные альтераторы:
Теперь можно зайти на страницу администрирования по адресу https://10.0.0.2:8080, указав имя ползователя "root". На данном этапе посетим только следующие страницы:
- "Web-интерфейс - Сервер" редактируем параметры сертификата и пересоздаём его, нажав соответсвующую кнопку. Нажимаем кнопку "Перезапустить HTTP-сервер"
- "Статистика - Сетевой трафик" . Запускаем службу и включаем в автозапуск.
- "Дата и Время" - "Дата и Время". Проверем, что правильно установлены дата и время.
Firewall (брендмауэр). iptables
- Делаем из компьютера маршрутизатор. Раньше для этого нужно было изменить 0 на 1 в /proc/sys/net/ipv4/ip_forward. Теперь, когда для управления сетевыми настройками используется проект etcnet, нужно указать в /etc/net/sysctl.conf:
- На этом можно закончить шаг 2 и приступить к шагу 3, а можно дать доступ к Интернету для наших пользователей в локальной сети. Для этого добавим правило прямого доступа (без прокси сервера) к Интернет для адреса 10.0.0.244
или для всей подсети
Параметр MASQUERADE равен SNAT --to 192.168.100.18, но не привязывается к IP адресу, что удобней, однако у меня были случаи когда с ним правило не работало, а с IP адресом работало. В причинах я не разбирался, но имейте в виду при отладке.
- Проверяем добавленную запись
- Если ошиблись, то удаляем, изменяем и прописываем заново
где 1 это номер правила по порядку, или удаляем все правила из таблицы POSTROUTING
- В целях отладки можно добавить правило выпускающее команды ping и traceroute от клиентов во внешний мир
- Запомнить конфигурацию файрвола можно командой iptables-save, восстановить iptables-restore, хранится она в /etc/sysconfig/iptables.
- После установки прокси-сервера нужно не забыть добавленные правила убрать, иначе останется возможность попадать в Интернет в обход прокси.
DNS. Bind
- Устанавливаем пакет bind
- Добавляем DNS серверы на административной странице (в веб интерфейсе) "Сеть" - "Общие настройки сети" или в файле /etc/resolv.conf:
FTP-сервер. vsftpd
- В Alt Linux vsftpd можно настроить через альтератор в web-интерфейсе. Зайдя на страницу "Серверы - Сетевой суперсервер", убираем ограничение "только с адресов" (оставляем поле пустым). На странице "Серверы - FTP-серве" ставим нужные галочки в "Общих настройках" (у меня все кроме анонимного пользователя), нажимаем "Принять". Добавлем локального пользователя и даём ему право на запись.
Прокси. Squid
- Автоматизировать загрузку squid при старте компьютера можно через альтератор в web-интерфейсе.
- На административной веб-странице "Серверы - Прокси-сервер" добавляем squid в автозапуск.
- Можно установить альтератор для lightsquid:
но там статистика будет не столь подробная, как если его устанавливать отдельно.
Web-сервера. Apache
- На ряду с административным защищённым веб-сервером у нас будет работать и обычный. Для этого на административной странице переходим: "Серверы - Web-сервер - запустить. службу". Не забудем поставить галочку на "Запуск при старте системы".
См. также статью Apache.
СУБД. MySQL
- Можно посмотреть как он запустился в /var/log/mysql/info:
- Подсоединяемся к служебной базе MySQL c одноимённым названием:
- Меняем пароль рута на new_pass (или другой) и выходим. Служебная команда PASSWORD зашифровывает пароль.
- Подсоединяемся к серверу ещё раз, только теперь с паролем
- Из таблицы user удаляем запись пользователя '%' и (какая есть), т.к. эта запись предоставляет доступ любому пользователю.
- Проверим, осуществляется ли автоматический запуск mysqld:
видим, что нет. Добавляем и проверяем:
ещё раз добавляем и проверяем:
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
- Смотрим журнал /var/log/mysql/info. Заметим, что теперь прослушивается порт 3306:
Несколько полезных команд
Больше информации в спец статье по MySQL.
Почтовый сервер. Postfix
См. также как Postfix устанавливается под Debian. Большинство настроек схожи
Установка Postfix c поддержкой TLS и MySQL
- Начиная с версии 2.2 поддержка TLS встроена в Postfix. Список поддерживаемых баз данных можно узнать выполнив:
- Доустанавливаем поддержку MySQL:
К сожалению, в Alt Linux даже после установки этого пакета, информация, выдаваемая postconf не обновилась (в отличае от Debian).
- Заводим пользователя vmail:
- Проверяем какой номер пользователя (uid) и группы (gid)в ситсеме:
- Вносим изменения в /etc/postfix/main.cf. Обратите внимание, что перед названием параметра не должно быть пробела или табуляции, иначе (как я выяснил на собственном опыте) параметр игнорируется:
- По умолчанию Postfix ограничивает размер почтового ящика 50 Мб и максимальный размер письма 10 Мб. Если нужно изменить эти параметры, то добавляем (исправляем если есть) строки:
- Создаём виртуальный домен. Для этого добавляем следующие строки, учитывая что у нас пользователь vmail имеет uid=501 и gid=504 (если нет, то подставить свои):
- Создадим указанный каталог для спула:
- Создадим файлы доступа к MySQL. Пользователь postfixadmin будет создан позже, при установке Postfix Admin. Создаём файл /etc/postfix/virt_alias.cf:
- Создаём файл /etc/postfix/virt_mailbox.cf:
- Создаём файл /etc/postfix/transport.cf:
указывая в hosts IP адрес, мы принуждаем Postfix соединяться с MySQL через порт, если же указать localhost, то он будет стараться соединиться через сокет, а так как оба чрутятся в разные каталоги, то найти сокет он не сможет и выдаст в /var/log/maillog ошибку:
- Чтобы проверить, что мы задали верные параметры соединения с базой, выполним:
- В /etc/postfix/master.cf убираем комментарии со строк (второй строки может не быть):
- Посмотреть настройки Posfix, отличающиеся от настроек по умолчанию, можно командой:
Так мы можем убедиться, что все заданные параметры вступили в силу, если нет, то скорее всего при его определении мы не убрали перед ними пробелы.- Перезапускаем Postfix:
Postfix Admin
Устанавливаем Postfix Admin для управления почтовыми ящиками через веб-интерфейс
-Доустанавливаем пакет работы со строками для PHP и telnet для проверки:
- Распаковываем и копируем всё содержимое каталога postfixadmin-2.2.0 в /var/www/apache2/html/postfixadmin:
- Можно сделать резервную копию всех таблиц в виде SQL выражений. Для этого на странице администратора нажать кнопку Backup.
- Теперь в консоли проверяем как работает доставка почты, т.е. smtp:
Шифрование соединения и принимаемой почты.
- Для шифрования параметров аутонтификации (по умолчанию имя пользователя и пароль передаются открытым текстом) доустанавливаем поддержку TLS:
Если возникла ошибка:
То, согласно подсказкам, выполняем:
- Конфигурируем Postfix. Добавляем настройки tls в /etc/postfix/main.cf:
- В случае сбоев смотреть лог-файл:
- Для выхода из less нажмите q.
ClamAV (проверка почты на вирусы)
- Устанавливаем антивирус ClamAV:
- Смотрим в файле /etc/clamsmtpd.conf какой порт clamsmtpd прослушивает (Listen) и на какой отдаёт обратотанную почту (OutAddress)
- Добавляем в /etc/postfix/main.cf:
- Добавляем в /etc/postfix/master.cf:
На этом с Postfix всё. Можно ещё раз проверить с помощью telnet, что почта, проходя через антивирусную защиту, доходит в ящик пользователя.Дополнительную информаци по настройке postfix, защите от спама и полезные ссылки смотрите в дополнительной статье по Postfix.
Courier-IMAP с поддержкой MySQL.
Сourier-IMAP отвечает за отдачу почты пользователю. Исходники можно взять с ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/
Устанавливаем Courier.
Выполняем предложенные команды:
- Настраиваем доступ к БД MySQL. Для этого добавляем поддержку установленного модуля в /etc/courier-authlib/authdaemon.conf:
- Редактируем файл /etc/courier-imap/imapd:- Редактируем файл /etc/courier-imap/pop3d:
- Проверяем можем ли забрать почту, т.е. работоспособность pop3:
Как видим, одно письмо на 470 байт лежит. Можно его просмотреть командой retr 1 (конечно перед quit)
Устанавливаем Cyrus-SASL2 для шифрования отдаваемой почты.
- Расскажем SASL, где и как искать пароли, когда к нему обратится postfix. Аутонтификацию будем проводит методом saslauthd. Для этого создадим файл /usr/lib/sasl2/smtpd.conf следующиго содержания:
- Альтернативный метод - auxprop. Чтобы использовать его, нужно в /usr/lib/sasl2/smtpd.conf прописать:
Создаём сертификат
- Если в /var/lib/ssl/certs/ лежат файлы pop3d.pem и imapd.pem, то это и есть сертификаты и они уже созданы, чтобы пересоздать их со своими данными удалим эти файлы и отредактируем /etc/courier-imap/pop3d.cnf, где ST короткое (2-3 буквы) название города:
- На этом настройка почтового сервиса закончена.
Полезные ссылки
Введение сервера в "боевой" режим
Если мы устанавливали и отлаживали свой сервер, как часто бывает, в тестовом режиме, паралельно с работающим старым сервером, то перед установкой сервера в "боевой" режим нужно внести следующие изменения:
- Изменить настройки сетевых интерфейсов на боевые (ip адрес, маска, шлюз, DNS).
- Прописать реальные имена в /etc/hosts.
- Squid. Внести изменения в конфигурационный файл /etc/squid/squid.conf, чтобы прокси сервер принимал запросы только из локальной сети и компьютера, где установлен:
В этой статье описывается минимальная настройка почтового сервера на основе Postfix (SMTP) и Dovecot (IMAP, POP3) c авторизаций пользователей через LDAP в Samba4 DC.
Предполагается что уже есть настроенная Samba4 в роли контроллера домена. Исходные данные:- Домен: test.alt
- Контроллер домена: dc.test.alt
- Почтовый сервер: mail.test.alt
- Сгенерированные сертификаты и ключи для Dovecot и Postfix
- Пользователь для доступа к LDAP серверу: ldapbind
Содержание
1. Создайте SambaDC-домен
3. Создайте на контроллере домена учетную запись ldapbind
Для работы почтового сервера необходимо установить следующие пакеты:
Проверим работу DNS:
Проверим доступ к LDAP-серверу:
Если подключения не произошло и появилась ошибка связанная с безопасностью подключения:
То необходимо добавить строчку в /etc/samba/smb.conf на сервере-контроллере домена в секцию [global] (не забудьте про отступ):
И перезапустить службу:
Это команда должна выдать информацию о пользователях. Все почтовые ящики пользователей будут хранится в директории /var/vmail и обрабатываться системным пользователем vmail c домашней директорией /var/vmail .
Создадим пользователя vmail и его домашнюю директорию:Создадим файл /etc/dovecot/dovecot-ldap.conf.ext параметров подключения Dovecot к LDAP:
Ссылка на этот конфигурационный файл есть в файле /etc/dovecot/conf.d/auth-ldap.conf.ext :
Далее настраиваем параметры аутентификации в файле /etc/dovecot/conf.d/10-auth.conf :
Далее настраиваем параметры работы с почтой в файле /etc/dovecot/conf.d/10-mail.conf :
Далее настраваем параметра SSL Dovecot в файле /etc/dovecot/conf.d/10-ssl.conf :
Далее настраиваем сокет авторизации для postfix. Он настраивается в файле /etc/dovecot/conf.d/10-master.conf секция service auth :
В этом же файле настроим сокет для приема писем из postfix-a - секция service lmtp :
Настраиваем почтовый сервер в Linux
На текущий момент времени в открытом доступе находится несколько настраиваемых почтовых серверов, и каждый из них обладает своими особенностями. Мы сосредоточим свое внимание на самых популярных и востребованных решениях, уделив время и дополнительным компонентам. За пример будет взят дистрибутив Ubuntu, а для обладателей RedHat представлены отдельные команды, если отличия от указанных будут иметься. Перед началом разбора каждого этапа предлагаем ознакомиться с вводной и очень важной информацией, которая позволит разобраться в общем принципе работы рассматриваемой системы.
SMTP и компоненты почтовой службы
После того, как вы узнали все необходимые сведения, можно переходить к непосредственной инсталляции и настройке сервера. Мы разбили эту процедуру на шаги, чтобы даже у начинающих пользователей не возникло с этим никаких проблем.
Шаг 1: Инсталляция Postfix
Ранее мы уже уточнили, какой инструмент взяли за пример. Если вас этот выбор не устраивает, инсталлируйте любую другую утилиту и переходите к ее конфигурации по указанным в следующих шагах инструкциям, учитывая новые особенности. Иногда в стандартной сборке дистрибутива сервер Postfix уже установлен, что можно проверить командой grep postfix , однако в большинстве случаев его приходится инсталлировать самостоятельно, что мы и продемонстрируем далее.
Шаг 2: Настройка установленного сервера
-
Как известно, конфигурация в Linux осуществляется путем изменения строк в специальных файлах. Для этого используется удобный текстовый редактор. Новичкам может быть сложно освоить vi, поэтому мы советуем установить сначала более простое решение. Для этого введите в консоли команду sudo apt install nano и нажмите на Enter.
Если по каким-то причинам рассмотренный только что файл не был создан, то при его открытии вы получите информацию о том, что это новый объект. Соответственно, он будет полностью пустым и все важные строки придется создать самому. Конечно, необходимый код можно найти в интернете, но вам будет достаточно скопировать и вставить следующую информацию.
queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfixmyorigin = $mydomain
inet_interfaces = $myhostname, localhost
mydestination = $myhostname, localhost.$mydomain, $mydomain
default_transport = smtp
alias_database = hash:/etc/aliases
mailbox_command = /usr/local/bin/procmailsmtpd_banner = $myhostname ESMTP READY
smtpd_client_restrictions = permit_mynetworks, reject_unknown_client
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_address, reject_non_fqdn_sender, reject_invalid_hostname
smtpd_recipient_restrictions = permit_mynetworks, permit_mx_backup, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, check_relay_domains, reject_unknown_client, rejectlocal_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10
debug_peer_level = 2
debugger_command =
PATH=/usr/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5После останется просто сохранить все эти изменения и внести правки, соответствующие вашим требованиям.
В качестве примера отметим одну опцию, которая выглядит следующим образом:
Шаг 4: Настройка безопасности
Из представленных выше руководств вы уже знаете, что Postfix и другие серверы взаимодействуют с устройствами через сеть. Если соединение не будет защищено, вполне возможна ситуация совершения атак с целью похитить данные или нарушить стабильность работы ОС. Проще всего организовать правила безопасности с помощью системы OpenSSH, но для начала ее требуется установить и выполнить основную конфигурацию. Детальнее об этом читайте в других материалах на нашем сайте, воспользовавшись приведенными ниже ссылками.
Огромной популярностью пользуется протокол OpenSSL, поэтому во многих документациях показаны варианты настройки почтового сервера именно с помощью этого инструмента. Примеры команд выглядят так:
openssl genrsa -des3 -out mail.key
openssl req -new -key mail.key -out mail.csr
cp mail.key mail.key.original
openssl rsa -in mail.key.original -out mail_secure.key
openssl x509 -req -days 365 -in mail.csr -signkey mail_secure.key -out mail_secure.crt
cp mail_secure.crt /etc/postfix/
cp mail_secure.key /etc/postfix/Они отвечают за генерацию и получения ключа безопасности. Дополнительно потребуется внести изменения в файл /etc/postfix/main.cf , добавив такие строки:
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/mail_secure.crt
smtpd_tls_key_file = /etc/postfix/mail_secure.key
smtp_tls_security_level = mayПосле выполнения подобной процедуры не забудьте перезагрузить и проверить сервер, чтобы убедиться в корректности его функционирования.
Шаг 5: Установка и конфигурация Dovecot
Последний этап сегодняшней статьи будет посвящен инсталляции и настройке Dovecot. Это свободный протокол, который используется клиентами для получения доступа к электронной почте. Он же позволяет выставить параметры доступа каждой учетной записи, обеспечит сортировку данных и быструю аутентификацию. Если в вашем дистрибутиве еще не установлен Dovecot, выполните следующую инструкцию.
-
В консоли введите команду sudo apt-get -y install dovecot-imapd dovecot-pop3d и нажмите на Enter. Для обладателей RedHat команда выглядит немного иначе: dnf -y install dovecot .
protocols = imap pop3 lmtp
listen = *, ::userdb driver = pam
>ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pemДля межсетевого экрана потребуется отдельно ввести следующее:
$ iptables -A INPUT -p tcp --dport 110 -j ACCEPT
$ iptables -A INPUT -p tcp --dport 995 -j ACCEPT
$ iptables -A INPUT -p tcp --dport 143 -j ACCEPT
$ iptables -A INPUT -p tcp --dport 993 -j ACCEPT$ iptables -A INPUT -p tcp --dport 25 -j ACCEPT
Для FirewallD эта структура выглядит немного иначе:
Как видите, процесс конфигурации действительно сложный, однако при соблюдении инструкций все пройдет быстро и без каких-либо трудностей. К сожалению, в рамках одной статьи просто невозможно уместить все моменты взаимодействия с Postfix, поэтому советуем изучить материалы на официальном сайте, если в этом возникла необходимость.
Мы рады, что смогли помочь Вам в решении проблемы.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Как наладить работу почтового сервера, умеющего принимать и отправлять электронную корреспонденцию, бороться со спамом, взаимодействовать с клиентами? На самом деле, всё довольно просто.
Сегодня поговорим о почтовых серверах на Linux. Мы расскажем о том, как настроить сервер, о широко распространённом в интернете протоколе SMTP, а также о других протоколах, таких, как POP и IMAP. В итоге вы окажетесь обладателем полноценной системы для работы с электронной почтой.
Начнём с SMTP-сервера на Linux
SMTP-сервер
SMTP требует лишь чтобы сервер был способен отправлять обычный ASCII-текст другому серверу, используя порт 25, который является стандартным портом SMTP.
Сегодня в большинство дистрибутивов Linux встроены две наиболее распространённых реализации SMTP: sendmail и postfix.
Sendmail — это популярный почтовый сервер с открытым кодом, используемый во многих дистрибутивах Linux. К его минусам можно отнести несколько усложнённую архитектуру и недостаточно высокий уровень защиты.
Postfix — система немного более продвинутая, при разработке этого почтового сервера особое внимание было уделено вопросам безопасности.
Компоненты почтовой службы
Типичная почтовая служба состоит из трёх основных компонентов:
Почтовый клиент, который ещё называют почтовым агентом (Mail User Agent, MUA). Именно с ним взаимодействует пользователь, например — это почтовые клиенты Thunderbird или Microsoft Outlook. Они позволяют пользователю читать почту и писать электронные письма.
Установка почтового сервера
Для настройки нашего сервера был выбран пакет Postfix. Это — популярный среди системных администраторов выбор, стандартный почтовый сервер в большинстве современных дистрибутивов Linux.
Начнём, проверив, установлен ли Postfix в системе:
Если обнаружить Postfix не удалось, установить его, например, в дистрибутивах, основанных на Red Hat, можно с помощью такой команды:
Затем запустим службу postfix и организуем её автозапуск при загрузке системы:
В дистрибутивах, основанных на Debian, вроде Ubuntu, установить Postfix можно так:
В ходе установки будет предложено выбрать конфигурацию сервера. Среди доступных четырёх вариантов (No configuration, Internet site, Internet with smarthost, Satellite system and Local only), мы выберем No configuration, что приведёт к созданию необходимых Postfix учётных записей пользователя и группы.Настройка сервера
После установки почтового сервера Postfix, его нужно настроить. Большинство конфигурационных файлов находятся в директории /etc/postfix/.
Главный конфигурационный файл Postfix можно найти по адресу /etc/postfix/main.cf. Здесь имеется множество параметров, рассмотрим самые важные.
Этот параметр используется для указания имени хоста почтовой системы. Это — имя хоста в интернете, для которого Postfix будет получать почту.
Настраивают этот параметр так:
Этот параметр позволяет указать доменное имя, используемое в почте, отправленной с сервера. Присвоим ему значение $mydomain:
В настройках можно ссылаться на параметры, добавляя знак $ перед именем переменной.mydestination
Этот параметр содержит список доменов, которые сервер Postfix будет считать конечными пунктами назначения для входящей почты.
В нашем случае здесь будут имя хоста сервера и доменное имя, но данный параметр может содержать и другие имена:
mail_spool_directoryПочтовый сервер Postfix может использовать два режима доставки почты:
- Непосредственно в почтовый ящик пользователя.
- В центральную директорию очередей, при этом почта попадает в папку /var/spool/mail, где имеется файл для каждого пользователя.
Эта переменная — важный параметр настройки. Она позволяет указывать то, какие сервера могут пересылать почту через сервер Postfix.
Обычно разрешают передачу почты только от локальных клиентских компьютеров. В противном случае вашим сервером могут заинтересоваться спамеры.
Если неправильно настроить параметр mynetworks, спамеры вполне смогут воспользоваться сервером как ретранслятором почты. Это очень быстро приведёт к тому, что какая-нибудь система борьбы со спамом поместит его в один из чёрных списков, вроде DNS Blacklist (DNSBL), или Realtime Blackhole List (RBL). Как только сервер попадёт в подобный список, очень немногие смогут получить письма, отправленные с его помощью.
Вот как может выглядеть настройка этого параметра:
smtpd_bannerЭта переменная позволяет задать ответ, который возвращает сервер при подключении клиентов.
Лучше всего поменять это значение так, чтобы оно не указывало на то, какой именно используется почтовый сервер.
inet_protocols
Эта переменная позволяет задавать версию IP, которую будет использовать Postfix при установлении соединений.
Для того, чтобы изменения, внесённые в конфигурационные файлы, вступили в силу, службу Postfix надо перезагрузить:
На самом деле, в конфигурационном файле Postfix можно ещё много чего настроить. Например — управлять уровнями безопасности, задавать опции отладки и другие параметры.Возможно, настраивая сервер, вводя значения параметров, вы допустите ошибку. Проверить правильность настроек можно с помощью такой команды:
Если теперь проверить очередь, она должна оказаться пустой.Тестирование почтового сервера
После настройки сервера на Postfix, его надо протестировать. Первый шаг в тестировании — использование локального почтового клиента, вроде mailx или mail (это — символьная ссылка на mailx).
Затем попробуйте принять письмо, отправленное с другого сервера.Если вы столкнётесь с проблемами — проверьте логи. В дистрибутивах, основанных на Red Hat, то, что вам надо, можно найти по адресу /var/log/maillog. В Debian-дистрибутивах нужный файл можно найти здесь: /var/log/mail.log, или же по пути, заданному в настройках rsyslogd. Вот, если нужно, материал о логировании в Linux, и о том, как настраивать rsyslogd.
Если проблемы всё ещё не решены, попытайтесь проверить настройки DNS, взгляните на MX-записи, используя сетевые команды Linux.
Борьба со спамом
Затем надо запустить соответствующую службу и добавить её в автозагрузку:
После установки SpamAssassin, взгляните на его настройки в файле /etc/mail/spamassassin/local.cf.SpamAssassin умеет отличать обычные письма от спама, основываясь на результатах исследования корреспонденции с помощью различных скриптов. Результаты проверок оцениваются в баллах.
Чем выше итоговая оценка письма — тем выше и вероятность того, что оно является спамом.
Параметр report_safe принимает значения 0, 1, или 2. Установка его в 0 означает, что письма, помеченные как спам, пересылаются в исходном виде, но их заголовок модифицируется с указанием на то, что они являются спамом.
Если этот параметр установлен в значение 1 или 2, SpamAssassin сгенерирует отчёт и отправит его получателю.
После установки и настройки SpamAssassin, нужно интегрировать его с Postfix. Пожалуй, легче всего это сделать с помощью использования procmail.
Создадим файл /etc/procmailrc и добавим в него следующее:
Затем отредактируем файл настроек Postfix — /etc/postfix/main.cf, задав параметр mailbox_command следующим образом:
И, наконец, перезапустим службы Postfix и SpamAssassin:
Надо сказать, что SpamAssassin не всегда распознаёт спам, что ведёт к наполнению почтовых ящиков ненужными письмами.Откройте конфигурационный файл Postfix /etc/postfix/main.cf, измените параметр smtpd_recipient_restrictions и настройте другие параметры следующим образом:
Затем перезагрузите сервер Postfix:
Вышеприведённые чёрные списки используются чаще всего, но вы можете найти и другие подобные сервера.Защита SMTP-соединения
Лучше всего передавать SMTP-трафик по TLS для защиты его от атаки через посредника.
Для начала нужно сгенерировать сертификат и ключ с использованием команды openssl:
Затем надо добавить в файл настроек Postfix /etc/postfix/main.cf следующее:
И, наконец, нужно перезагрузить службу Postfix:
Теперь, при подключении клиента к серверу, нужно выбрать TLS. Тут вы, при первой отправке почты после изменении настроек, увидите предупреждение, так как сертификат не подписан.Основы протоколов POP3 и IMAP
Итак, мы наладили процесс отправки и получения электронных писем по SMTP, но на этом организация полноценной почтовой службы не заканчивается. Рассмотрим следующие ситуации:
-
Пользователям нужны локальные копии электронных писем для их просмотра без подключения к интернету.
Сильнее всего распространены два популярных протокола доступа к почте — POP (Post Office Protocol), и IMAP (Internet Message Access Protocol).
В основе POP лежит очень простая идея. Центральный почтовый сервер на Linux всё время подключён к интернету, он получает и сохраняет письма для всех пользователей. Все полученные письма остаются в очереди на сервере до тех пор, пока пользователь не подключится к нему по протоколу POP и не загрузит письма.
Обратите внимание на то, что SMTP-сервер и POP-сервер могут без проблем работать на одной и той же машине. В наши дни это — обычная практика.
Возможности, вроде хранения исходных экземпляров писем пользователей на сервере с хранением на клиенте лишь кэшированных копий, в POP отсутствуют. Это привело к разработке протокола IMAP.
Используя IMAP, сервер будет поддерживать три режима доступа к почте:
- Онлайн-режим похож на прямой доступ к файловой системе на почтовом сервере.
- Оффлайн-режим похож на то, как работает POP, когда клиент отключается от сети после получения своих писем. В этом режиме сервер обычно не хранит копии писем.
- Автономный режим позволяет пользователям хранить кэшированные копии своих писем, а сервер так же хранит копии этих писем.
Сервера POP3, POP3S, IMAP, и IMAPS слушают, соответственно, порты 110, 995, 143, и 993.
Установка Dovecot
Большинство дистрибутивов Linux содержат предустановленный Dovecot, однако, его можно установить и самостоятельно. В системах, основанных на Red Hat, это делается так:
В системах, основанных на Debian, функционал IMAP и POP3 предоставляются в двух разных пакетах:
Тут вам предложат создать самозаверенный сертификат для работы с IMAP и POP3 по SSL/TLS. Ответьте на вопрос yes и, при появлении соответствующего запроса, введите имя хоста вашей системы.Затем можно запустить соответствующую службу и добавить её в автозагрузку:
Настройка Dovecot
Главный файл настроек Dovecot расположен по адресу /etc/dovecot/dovecot.conf. В некоторых дистрибутивах Linux этот файл размещается в папке /etc/dovecot/conf.d/ и, для подключения файлов настроек, используется директива include.
Вот некоторые из параметров, используемых для настройки Dovecot.
protocols: протоколы, которые надо поддерживать.
Здесь lmtp означает Local Mail Transfer Protocol. listen: IP-адрес, который будет слушать сервер.
Здесь звёздочка означает все интерфейсы IPv4, двойное двоеточие означает все интерфейсы IPv6.userdb: база данных пользователей для аутентификации.
mail_location: это запись в файле /etc/dovecot/conf.d/10-mail.conf. Выглядит она так:
Dovecot поставляется со стандартными SSL-сертификатами и файлами ключей, которые используются в файле /etc/dovecot/conf.d/10-ssl.conf.
Когда пользователь пытается подключиться к Dovecot, сервер покажет предупреждение, так как сертификаты не подписаны. Если нужно, подписанные сертификаты можно приобрести в подходящем центре сертификации.Не забудьте открыть порты сервера Dovecot на файрволе.
И про SMTP-порт не забудьте.
Затем сохраните правила. Если хотите освежить в памяти особенности работы с iptables в Linux, взгляните на этот материал.
Или, если вы используете firewalld, можете поступить так:
А, если что-то пошло не так, посмотрите лог-файлы /var/log/messages, /var/log/maillog, и /var/log/mail.log.Итоги
Теперь вы можете настроить почтовую службу на своём Linux-сервере. Как видите, много времени это не займёт. Конечно, у рассмотренных здесь пакетов, вроде Postfix, уйма настроек, но если вы освоили описанную здесь последовательность действий и разобрались с основами, то всё, что вам понадобится, несложно будет выяснить из документации.
Читайте также: