Postfix: Difference between revisions

From TÜ Narva Kolledži Wiki
Jump to navigation Jump to search
Content deleted Content added
Stepanoa (talk | contribs)
No edit summary
Stepanoa (talk | contribs)
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 24: Line 24:


==Начало работы с Postfix==
==Начало работы с Postfix==

⚫
'''''Важно помнить о необходимости переключении сетевого адаптера в нужные вам режимы! Для данной настройки использовались NAT и Host-only Adapter. Для обновления и установки пакетов использовался - NAT, для использования браузера - Host-only Adapter.'''''


Прежде всего вам будет необходимо установить и настроить почтовый сервер Ubuntu 20.04. Для этого вам понадобится пакет chrony для синхронизации времени, настройка веб-сервера: NGINX + PHP + MariaDB, также установить и настроить PostfixAdmin, ну и установить сам Postfix.
Прежде всего вам будет необходимо установить и настроить почтовый сервер Ubuntu 20.04. Для этого вам понадобится пакет chrony для синхронизации времени, настройка веб-сервера: NGINX + PHP + MariaDB, также установить и настроить PostfixAdmin, ну и установить сам Postfix.

==Настройка сервера==

⚫
Важно помнить о необходимости переключении сетевого адаптера в нужные вам режимы! Для данной настройки использовались NAT и Host-only Adapter. Для обновления и установки пакетов использовалось NAT, для использовании браузера Host-only Adapter.


Первым делом вам необходимо прописать несколько команд в консоле:
Первым делом вам необходимо прописать несколько команд в консоле:
Line 191: Line 189:
[[File:linux12.png]]
[[File:linux12.png]]


Теперь необходимо открыть конфигурационный файл и добавить туда строчку, которая появилась под кнопкой командой ранее
Теперь необходимо открыть конфигурационный файл и добавить туда строчку, которая появилась под кнопкой командой ранее(отмечено галочками на скриншоте)


<code>nano /var/www/html/postfixadmin/config.local.php</code>
<code>nano /var/www/html/postfixadmin/config.local.php</code>

Latest revision as of 22:40, 17 January 2023

Что такое Postfix - это агент передачи почты, который является свободным программным обеспечением. Postfix создавался как альтернатива Sendmail. ПО повышало производительность, обеспечивало устойчивость, гибкость и безопасность решения. Postfix был разработан Вейтсом Веннемой, когда он работал в Исследовательском центре имени Томаса Уотсона компании IBM. Первые версии стали доступны в середине 1999 года.

Архитектура

Архитектура выполнена в стиле UNIX. В UNIX простые программы выполняют минимальный набор функций. Когда почтовая система не вовлечена в работу ненужные домены прекращают свою работу, благодаря чему освобождается память и в случае необходимости запускаются master-доменом. В дополнении к этому имеет меньшую ресурсоёмкость в момент простоя системы, а также обладает более простой и понятной конфигурацией по сравнению с Sendmai, где всю работу выполняет одна большая программа.

Базовая настройка

Самая простая настройка конфигурации – пустой файл. Как оказалось, вполне допустимая и приводит тому, что создается почтовый сервер, который выполняет локальную доставку почты в пределах домена локального хоста. Любые не локальные сообщения отправляются дистанционным серверам.

Так же есть второй вариант – null клиент. Система не выполняет локальную доставку, а направляет исходящую почту на указанный почтовый сервер. При данной конфигурации указывается несколько параметров: mydomain – основной домен компьютера; myorigin – основной почтовый домен, добовляемый к почтовым адресам. Третьим параметром будет mydestination, письмо доставит программа local (в том случае, если файл .forward не найден). Если в mydestination несколько записей, они рассматриваются как псевдонимы одного домена. Null клиенту локальная доставка не нужна, поэтому параметр mydestination — пустой. Также программа local будет проводить поиск псевдонима адреса в таблицах alias_maps. Наконец, параметр relayhost оповещает Postfix о том, что нелокальные сообщения нужно посылать на указанный компьютер, а не адресатам. Квадратные скобки говорят о том, что указанная строка обрабатывается как имя компьютера, то есть A не MX запись DNS. Null клиент не должен получать почту с других систем – комментируем строчку smtpd в файле master.cf – программа smtpd не запустится.

Совместимость

Postfix может быть собран почти на любо й Unix-подобной, которые поддерживают POSIX и имеющие компилятор C. В пример можно привести AIX, BSD, HP-UX, IRIX, GNU/Linux, MacOS X, Solaris, Tru64 UNIX.

Безопасность

Postfix имеет защиту на нескольких уровнях. Большее количество серверных Postfix-программ имеют возможность выполняться в среде с измененным корневым каталогом (chroot). Они являются отдельными программами не имеющие связей Родитель-дочерний. Ни одна из них не имеет бита setuid. Каталог, в который направлена почта, доступен для записи группе postdrop, для нее — программа postdrop setgid.

Что касается доступа, почтовые домены ретранслируют почту на сторонние адреса только для надежных агентов. Открытая ретрансляция с неизвестных адресов, как известно, не сулит ничего хорошего. Postfix по умолчанию закрыт как ретранслятор. Стандартные настройки сильно ограничены, вероятнее всего вам будет необходимо снизить ограничения. Доступы конфигурируются списками ограничения доступа access restriction list. Самым важным параметром будет smtpd_recipient_restrictions, так как адресом получателя будет проще управлять. По крайней мере, можно установить является ли он локальным.

Начало работы с Postfix

Важно помнить о необходимости переключении сетевого адаптера в нужные вам режимы! Для данной настройки использовались NAT и Host-only Adapter. Для обновления и установки пакетов использовался - NAT, для использования браузера - Host-only Adapter.

Прежде всего вам будет необходимо установить и настроить почтовый сервер Ubuntu 20.04. Для этого вам понадобится пакет chrony для синхронизации времени, настройка веб-сервера: NGINX + PHP + MariaDB, также установить и настроить PostfixAdmin, ну и установить сам Postfix.

Первым делом вам необходимо прописать несколько команд в консоле:

sudo -s

apt update

apt upgrade

Затем вы должны задать имя серверу. Это необходимо сделать, потому что большенство антиспам систем выполняют проверки, обращаясь к серверу по имени в ожидании ответа. Это вы должны сделать при помощи команды:

hostnamectl set-hostname [имя сервера]

Далее для синхронизации времени устанавливаем пакет chrony

apt install chrony

Затем задаем временную зону и запускаем сервис для обновления времени

timedatectl set-timezone [ваш регион]

systemctl enable chrony

Затем открываем заранее порты на брандмауэре при помощи iptables

iptables -I INPUT 1 -p tcp --match multiport --dports 25,110,143,465,587,993,995 -j ACCEPT

iptables -I INPUT 1 -p tcp --match multiport --dports 80,443 -j ACCEPT

Для сохранения правил устанавливаем пакет

apt install iptables-persistent

netfilter-persistent save

Теперь устанавливаем nginx и разрешаем автозапуск сервиса

apt install nginx

systemctl enable nginx

Для того, чтобы проверить работоспособность веб-сервера, обратитесь к нему в браузере по адресу http://[IP-адрес сервера]. Чтобы узнать ваш IP-адрес воспользуйтесь командой hostname -I. Если вы правильно настроили NGINX, то вы увидите заголовок 'Welcome to nginx!'

Далее устанавливаем php и php-fpm, после чего можно приступить к настройке NGINX

apt install php php-fpm

nano /etc/nginx/sites-enabled/default

В разделе http - server необходимо указать, чтобы первым индексным файлом был index.php, а также добавляем настройку для обработки запросов php(location ~ \.php$):

set $root_path /var/www/html;

fastcgi_pass unix:/run/php/php8.1-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;

include fastcgi_params;

fastcgi_param DOCUMENT_ROOT $root_path;

Теперь разрешаем автозапуск php-fpm и перезапускаем nginx

systemctl enable php8.1-fpm

systemctl restart nginx

Для проверки, создаем индексный файл в директории сайта со следующим содержимым

nano /var/www/html/index.php

<?php phpinfo(); ?>

Открываем сайт в браузере по IP-адресу, который использовали ранее. На странице должна быть подробная информация по php.

С помощью следующей команды устанавливаем сервер баз данных и включаем автозапуск

apt install mariadb-server

systemctl enable mariadb

После задаем пароль для пользователя sql root и устанавливаем дополнительные компоненты для PHP

mysqladmin -u root password

apt install php-mysql php-mbstring php-imap

Чтобы применить установленные пакеты перезагрузите обработчик скриптов, и затем скачайте PostfixAdmin

systemctl restart php8.1-fpm

wget https://sourceforge.net/projects/postfixadmin/files/latest/download -O postfixadmin.tar.gz

Создаем каталог postfixadmin в директории сайтов nginx и распаковываем в него архив

mkdir /var/www/html/postfixadmin

tar -C /var/www/html/postfixadmin -xvf postfixadmin.tar.gz --strip-components 1

Внутри папки портала создаем каталог template_c и задаем права на каталог

mkdir /var/www/html/postfixadmin/templates_c

chown -R www-data:www-data /var/www/html/postfixadmin

Теперь создаем базу данных postfix и учетную запись в mariadb

mysql -u root -p

CREATE DATABASE postfix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

GRANT ALL ON postfix.* TO 'postfix'@'localhost' IDENTIFIED BY 'postfix123';

Для выхода из командной оболочки воспользуйтесь \q

Далее необходимо создать конфигурационный файл postfixadmin

nano /var/www/html/postfixadmin/config.local.php

<?php

$CONF['configured']= true;

$CONF['default_language']= 'ru';

$CONF['database_password']= 'postfix123';

$CONF['emailcheck_resolve_domain']= 'NO';

?>

Теперь запускаем браузер и вводим адрес http://<IP-адрес сервера>/postfixadmin/public/setup.php

Вам откроется страница для установки PostfixAdmin

Дважды задаем пароль установки. и генерируем хэш, кликнул по Generate setup_password hash

Теперь необходимо открыть конфигурационный файл и добавить туда строчку, которая появилась под кнопкой командой ранее(отмечено галочками на скриншоте)

nano /var/www/html/postfixadmin/config.local.php

$CONF['setup_password'] = '$2y$10$A...S2oK';

Обязательно проверьте правильно ли вы все ввели!!!

Далее обновите страницу. Внизу страницы должна появится форма добавления суперпользователя - вводим данные.

Setup password - задаваемый вами выше

Админ - root@[имя сервера, которое вы задавали в начале]

Пароль - [любой, но не менее 3 символов]

Пароль(еще раз) - [повторить]

Если вы все сделали правильно, ниже вы увидите Администратор [ваш админ] успешно добавлен

Установка завершена. Переходим в браузере на страницу http://<IP-адрес сервера>/postfixadmin/public/login.php и входим в систему

Возвращаемся в виртуальную машину и устанавливаем сам Postfix

apt-get install postfix postfix-mysql

Выбираем Internet Site

В строке System mail name автоматически будет вставлено имя вашего сервера

Проверяем работу сервера. Отправляем письмо

Письмо получено