- Alt linux настройка apache
- Вебсервер Apache2 на ALT Linux
- Содержание
- Установка
- Запуск
- Рабочая директория и юзеры
- Разрешаем имена хостов
- Конфигурирование веб-сервера
- Облегчаем себе жизнь
- Веб-сервер
- Содержание
- Установка Интернет-сервера на Alt Linux
- Содержание
- Общая информация
- Установка ОС, настройка маршрутов
- Firewall (брендмауэр). iptables
- DNS. Bind
- FTP-сервер. vsftpd
- Прокси. Squid
- Web-сервера. Apache
- СУБД. MySQL
- Несколько полезных команд
- Установка Postfix c поддержкой TLS и MySQL
- Postfix Admin
- Шифрование соединения и принимаемой почты.
- ClamAV (проверка почты на вирусы)
- Courier-IMAP с поддержкой MySQL.
- Устанавливаем Courier.
- Устанавливаем Cyrus-SASL2 для шифрования отдаваемой почты.
- Создаём сертификат
- Полезные ссылки
- Введение сервера в «боевой» режим
Alt linux настройка apache
Если Web-интерфейс повсеместно используется для управления всевозможными техническими системами, то что мешает использовать его для управления работой коллектива? На сайте организации можно разместить много полезной информации: новости, распоряжения руководства, образцы документов, прайс-листы, список телефонов и т. д. Доступ к сайту осуществляется обычным способом: через браузер по протоколу http. Сайт будет виден только пользователям локальной сети.
Без каких-либо сложных настроек мы можем создать такой сайт.
ALT Linux Server включает два Web-сервера — Apache и Apache2 — мы используем, конечно, более современный.
Запустим его навсегда (из консоли на сервере, подключившись по SSH):
# service httpd2 start
# chkconfig httpd2 on
Попробуем на клиентском компьютере набрать в адресной строке браузера http://server1. Если получим на экране надпись «It works!» (Он работает), значит мы все сделали правильно.
Файл index.html, который обеспечивает вывод этой надписи, находится в папке /war/www/apache2/html. Если мы заменим index.html своим (с разметкой только в HTML), добавим другие html-файлы, рисунки, zip-архивы, все, что необходимо для сайта организации, то мы этот сайт создадим. Время до его появления будет определяться временем подготовки нужных материалов (рис. 8.9).
Рис. 8.9. Так может выглядеть локальный сайт организации
В принципе, на этом раздел можно было бы закончить.
Но, допустим, нам мало «чистого» HTML, мы хотим использовать еще PHP 5.
Посмотрим, что у нас есть из относящегося к web-серверу Apache:
# apt-cache search apache
Вывод будет примерно такой:
alterator-apache2 — alterator module for apache2
apache2 — The most widely used Web server on the Internet
apache2-common — Files common for apache2 installations
apache2-httpd-prefork — Traditional model for Apache HTTPD 2.1
apache2-mod_ssl — SSL/TLS module for the Apache HTTP server
httpd-alterator — Apache HTTP Server (alterator edition)
libapr1 — Apache Portable Runtime shared library
libaprutil1 — Apache Portable Runtime Utility shared library
libssl6 — OpenSSL shared libraries
openssl — OpenSSL tools
perl-CGI — Simple CGI class for Perl
python-modules-logging — Logging package for Python
apache — The most widely used Web server on the Internet
apache-common — Files common for apache and apache-mod_perl installations
apache-devel — Module development tools for the Apache web server
apache-manual — Apache Manual
apache-mod_perl — Russian Apache Web server with a built-in Perl interpreter
apache-suexec — Suexec binary for Apache
apache2-devel — Module development tools for the Apache web server
apache2-httpd-worker — High speed threaded model for Apache HTTPD 2.1
apache2-manual — Apache Manual
apache2-mod_auth_mysql — mod_auth_mysql module for Apache 2 HTTP Server
apache2-suexec — Suexec binary for Apache
libapr1-devel — Apache Portable Runtime development files
libaprutil1-devel — Apache Portable Runtime Utility development files
libssl-devel — OpenSSL include files and development libraries
libsubversion — Shared libraries required for subversion
mailgraph-apache — apache-related config and control(8) call
mailgraph-apache2 — apache2-related config and control(8) call
mailgraph-common — Simple mail statistics for Postfix
mod_auth_mysql — mod_auth_mysql module for Apache 1.3 HTTP Server
mod_geoip — GeoIP database access module for Apache
mod_ssl — An SSL module for the Apache Web server
nginx — Fast HTTP server
openssl-doc — OpenSSL documentation and demos
perl-Apache-DBI — Persistent database connections for mod_perl
queuegraph-apache — apache-related config and control(8) call
queuegraph-apache2 — apache2-related config and control(8) call
subversion — A version control system
subversion-perl — Perl bindings for Subversion
subversion-server-common — Common files required to maintain subversion server
subversion-server-dav — Subversion server module for Apache
subversion-server-standalone — Subversion standalone server
Да, много чего есть, но PHP (и, кстати, mySQL) мы здесь не найдем (они есть в ALT Linux 4.0 Server, но не в Office Server).
На диске ALT Linux Office Server мы тоже ничего не найдем. Но это нас не остановит. Придется поступить так, как было описано в разделе 1.5.2. Нам потребуется установочный DVD диск ALT Linux 4.0 Server или его ISO-образ.
Скопируем с него папку ALTLinux на сервер в папку /home.
Посмотрим, что находится в этой папке и добавим в файл /etc/apt/sources.list.d/sources.list строку:
rpm file:/home ALTLinux classic
Дадим команду на подключение нашего нового местного репозитория:
Установим PHP 5:
# apt-get install apache2-mod_php5
Установится около десяти компонетов.
# service httpd2 restart
Для проверки создадим файл /war/www/apache2/html/info.php с таким содержимым:
Наберем в браузере клиентской машины адрес http://server1/info.php.
Скорее всего, мы увидим надпись в окне «PHP is working», но функция phpinfo() работать не будет.
Вернемся в консоль сервера и дадим команду:
Получим диагностическое сообщение:
Warning: phpinfo() has been disabled for security reasons in /var/www/apache2/html/info.php on line 3
Отключена из соображений безопасности. Правильно, безопасность превыше всего.
Источник
Вебсервер Apache2 на ALT Linux
Просмотры
Имеем ОС ALT Linux 4.1.1, обновлённую до бранча.
Содержание
Установка
Устанавливаем apache2 из пакета:
Собственно, вебсервер установлен.
В процессе установки создаётся директория /etc/httpd2/conf, где по дефолту располагаются конфиги. Если имеется предыдущая неудачная установка с кривыми конфигами и кучей мусора, то перед установкой директорию необходимо переименовать или удалить:
Запуск
Запустить Apache2 можно непосредственно из управления системой или из командной строки:
Теперь можно набрать в строке адреса веб-браузер заветное http://localhost/ и получить дежурную фразу: It works!
Если вызвать команду без параметров (или с неправильным параметром), то в консоли будет выведен список доступных опций, таких как остановка и перезапуск.
Чтоб вебсервер запускался каждый раз при загрузке ОС, можно дать соответствующие указания через центр управления системой (ищите в главном меню) в разделе системные службы. Если доступа к гуям нет, можно из командной строки:
или набросать симлинков на запуск/остановку в /etc/rcX.d в соответствующих runlevel, по полной должно получиться примерно так:
Напомню, что дефолтовый запуск ALT Linux с графическим интерфейсом идёт на 5 уровне, остановка на 0 и перезагрузка на 6. Первая буква в симлинках означает соответственно Start и Kill, а число — порядок запуска/остановки.
Рабочая директория и юзеры
В этом разделе предположим, что веб-разработчик имеет имя webdev и входит в группу webdev. Сразу условимся, что это единственный пользователь (точней, веб-разработчик), имеющий права на изменение файлов тестового «хостинга» на данном компьютере.
Рабочую директорию создадим в /home. Нет никакого желания пихать её внутрь пользовательской директории, и ещё больше не хочется оставлять в системной.
Определимся со структурой, что где будет жить:
К всем файлам внутри /home/www наш юзер webdev должен иметь доступ на запись. Так как это единственный веб-разработчик на этом компьютере, сделаем его владельцем директории /home/www и всего что в ней будет лежать.
Вебсервер (пользователь apache2) должен как минимум, читать директорию /home/www. Для этого введём apache2 в группу webdev, для чего правим файл /etc/group. В итоге должно получится примерно следующее:
Разрешаем имена хостов
Вебсервер у нас один. Однако, планируется поддержка нескольких сайтов. Естественно, у каждого должно быть своё имя.
Для разрешения доменных имён сайтов можно поднять какой нибудь DNS-сервер, однако, это выходит за рамки данной статьи. Добавляем по простому, в /etc/hosts.
Здесь Ctrl+D завершает ввод текста. Не забудьте оставить пустую строку или две после. Так как неизвестно, есть ли пустая строка в конце файла, перед вводом своих записей я добавил её на всякий случай.
Не следует давать имена, соответствующие именам сайтов, размещённым в инете, иначе просто на них не попадёте 🙂
Конфигурирование веб-сервера
Мы уже условились, что часто востребованные конфиги отдадим нашему webdev. Для начала поправим строчку, описывающую расположение конфигов виртхостов в httpd.conf, в самом конце. Существующую строку я закомментировал. Должно получиться так:
Однако, нам нужно сохранить пару дефолтовых конфигов. Сделаем на них симлинки:
Впрочем, из второго нужна только одна строчка NameVirtualHost *. А первый описывает дефолтовый виртхост, тот самый, который отдаёт «It works!». Можете вместо симлинков нарисовать свой файлик. В любом случае, следует учесть, что имя конфига дефолтового сайта должно быть ранее всех других по алфавиту. Потому оно начинается с нескольких нулей.
Теперь конфиги виртхостов:
Аналогично делаем и для остальных. Для мегаприверженцев русских кодировок: чтоб не спрашивать про крякозябрики, укажите нужный DefaultCharset!
Посмотреть настройки, с которыми был скомпилирован suexec можно командой:
Тестовый файлик для test0.local:
Открываем веб-браузер, набираем в адресной строке http://test0.local/ и видим на страничке:
Это тестовый сайт test0.local
Облегчаем себе жизнь
Рекомендую шаблон конфига виртхоста положить куда то недалеко, например, в папку /home/www/.sites, тогда при создании нового виртхоста, достаточно будет его скопировать и указать имя/алиас(ы) сервера и документрут. Не забудьте, что имя файла конфига обязательно должно заканчиваться на .conf, иначе Апач его проигнорирует.
Итак, файлы сайтов и конфиги мы отдали нашему пользователю. Теперь он может их править и создавать новые виртхосты Чтоб наш пользователь webdev смог без проблем перезагрузить вебсервер, дадим ему необходимые права на рестарт вебсервера и релоад без ввода пароля, для этого добавим пару строк. Должно получиться примерно следующее:
Осталось бросить на десктоп ярлык с командой
Впрочем, более правильным будет вместо restart дать команду reload
По желанию (по кнопке «Дополнительно») отключить отклик запуска и поставить галку «Выполнять в терминале»
Источник
Веб-сервер
Содержание
Настройка Apache2 [ править ]
Открываем от имени суперпользователя:
Необходимо в строке
дописать слово Indexes:
Где хранится сайт? [ править ]
Открываем в редакторе от суперпользователя файл /etc/httpd2/conf/sites-available/default.conf.
Либо кладем сайт туда, либо меняем путь на свой.
Сайты на движке PHP [ править ]
Например, сайт лежит в каталоге /var/www/html/PhpBB3. Для него нужно дать доступ серверу Apache.
Сайт будет доступен по ссылке http://IP/phpBB3/index.php
Настройка PhpmyAdmin [ править ]
Под root пускать не будет, создадим другого пользователя.
Заходите под свежесозданным пользователем phpmyadmin.
Виртуальный хостинг [ править ]
Виртуальный хостинг — это когда веб-запросы приходят на один IP — адрес, но под разными именами.
посылают на 81.81.81.81., а apache сам решает в какой каталог одного сервера направлять эти запросы.
Шаг 1: Регистрируем домены на один IP адрес
Для внешнего сайта необходимо зарегистрировать домен на регистраторе, для внутреннего на Bind. Если домен на Samba, то через Samba-tools.
Потом прописываем на сервере адреса в hosts:
Тестируем со своего рабочего настольного компьютера от имени простого пользователя: ping host1 ping host2 ping host3
Должны попадать на IP сервера.
Шаг 2: Разрешаем загружать виртуальные сайты
В файле /etc/httpd2/conf/sites-start.d/000-default.conf
Необходимо изменить последнюю строку:
Для применения изменений запустить:
Шаг 3: Прописываем виртуальные хосты
В файле /etc/httpd2/conf/sites-available/vhosts.conf дописываем
Шаг 4: Создаем домашние каталоги виртуальных хостов
В /var/www/vhosts создаем три каталога host1; host2; host3, в которых размещаем разные тестовые веб-страницы.
Заходим со своего рабочего настольного компьютера
и в каждом видим свою тестовую страницу.
Архивирование, аварийное восстановление и перенос сайтов на PHP [ править ]
На примере Joomla
Шаг №1: Останавливаем работу сайта
Шаг №2: Создаем архивы ( на примере Joomla)
Заходим в каталог /var/www/html/
Создаем архив базы данных. Выгрузить базу MySQL можно командой:
Спросит пароль рута или новый, если поменяли
Шаг №3: Запускаем работу сайта
Копируем в надежное место
Шаг №1: Восстанавливаем базу данных
Чтобы загрузить базу, нужно сначала создать пустую, а для надёжности предварительно удалить старую:
MySQL спросит пароль рута.
. а затем в неё загрузить данные:
Спросит пароль рута.
Шаг №2: Восстанавливаем каталог Joomla
Размещаем архив joomla1.tar.gz в каталоге /var/www/html/ и распаковываем его командой
Удаляем из каталога архив, проверяем права, если что подправляем.
Проверяем работу сайта.
Установка сайтов [ править ]
MediaWiki [ править ]
1. Ставим расширение:
2. Скачиваем архив с mediawiki:
3. Распаковываем в /var/www/html/wiki/
4. Назначаем права
5. Через PhpMyAdmin добавляем БД
6. Идем localhost/wiki
7. Настраиваем/устанавливаем mediawiki
8. Кидаем файл с настройками в /var/www/html/wiki/
Сайт будет доступен по IP/wiki.
Если хотите доступ по IP кидайте заранее в папку www.
Почта [ править ]
1. Качаем
https://afterlogic.org/webmail-lite
2. Распаковываем в /var/www/html/mail/
3. Назначаем права
4. Идем localhost/mail
5. Входим (логин superadmin, пароль пустой). Настраиваем.
6. В PhpMyAdmin создаем БД
Источник
Установка Интернет-сервера на Alt Linux
Содержание
Общая информация
Эта пошаговая инструкция написана для установки Интернет-сервера на базе Alt Linux 4.0 Server (altlinux.ru). По ней можно также настраивать и Desktop версию, просто графический интерфейс не рассматривается.
- сеть с тремя подсетями:10.0.0.0/24, 10.0.10.0/24, 10.0.20.0/24.
- выход во внешний мир (есть спул адресов 192.168.100.16/28, т.е. у нас 14 внешних адресов).
- компьютер с двумя сетевыми картами.
Хотим: получить полностью функциональный Интернет-сервер со следующими возможностями (см содержание):
Установка ОС, настройка маршрутов
— Загрузившись с CD/DVD выбираем язык меню — F2 и по желанию исследуем его пункты. Начав установку, иногда можно получить сообщение, что невозможно найти диск с дистрибутивом. Жмём Retry — находит.- Следуем шагам мастера установки:1) Выбираем язык установки и принимаем лицензионное соглашение.2) Указываем как будем менять раскладку клавиатуры.а3) Разбиение жесткого диска. На ваш выбор, в зависимости от планируемых задач. Мы сделаем простую разбивку. Для этого выберем профиль подготовки диска «вручную». Жёсткий диск у меня 75 Гб и RAM 1 Гб, под раздел подкачки принято выделять объём в полтора раза превышающий объём оперативной памяти, я сделал в 2 раза больше:
Раздел | Объём |
---|---|
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
На закладке «Общие сетевые настройки»:
- Имя машины: teo.mynetwork.ru
- Сервер DNS: 217.116.158.3
10) Выбираем часовой пояс.
— После перезагрузки заходим пользователем root. Проверяем работоспособность сетевых настроек. Для этого пингуем адреса Интернета и проверяем внешний DNS сервер пингуя какой-нибудь узел по имени (само сабой мы должны быть 100% уверены, что все эти ресурсы сейчас доступны):
Если пинги не проходят, то, скорее всего, проблема с сетевой картой.
— Доустанавливаем столь необходимый 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
На этом шаге мы будем поднимать свой DNS сервер, если этого не требуется и достаточно внешнего, то этот шаг можно пропустить. Однако, если у нас не будет своего DNS, то нужно будет просить кого-нибудь (напр. провайдера) разместить у себя нашу зону teo.mynetwork.ru и у провайдера ip адреса прописать обратную зону.
— Устанавливаем пакет bind
— Добавляем DNS серверы на административной странице (в веб интерфейсе) «Сеть» — «Общие настройки сети» или в файле /etc/resolv.conf:
FTP-сервер. vsftpd
- В Alt Linux vsftpd можно настроить через альтератор в web-интерфейсе. Зайдя на страницу «Серверы — Сетевой суперсервер», убираем ограничение «только с адресов» (оставляем поле пустым). На странице «Серверы — FTP-серве» ставим нужные галочки в «Общих настройках» (у меня все кроме анонимного пользователя), нажимаем «Принять». Добавлем локального пользователя и даём ему право на запись.
Прокси. Squid
- Автоматизировать загрузку squid при старте компьютера можно через альтератор в web-интерфейсе.
- На административной веб-странице «Серверы — Прокси-сервер» добавляем squid в автозапуск.
- Можно установить альтератор для lightsquid:
но там статистика будет не столь подробная, как если его устанавливать отдельно.
Web-сервера. Apache
— На ряду с административным защищённым веб-сервером у нас будет работать и обычный. Для этого на административной странице переходим: «Серверы — Web-сервер — запустить. службу». Не забудем поставить галочку на «Запуск при старте системы».
— Файл настройки находится в /etc/httpd2/conf/httpd.conf, но собственно ничего в нём редактировать не придётся.
См. также статью Apache.
СУБД. MySQL
— Можно посмотреть как он запустился в /var/log/mysql/info:
— Подсоединяемся к служебной базе MySQL c одноимённым названием:
— Меняем пароль рута на new_pass (или другой) и выходим. Служебная команда PASSWORD зашифровывает пароль.
— Подсоединяемся к серверу ещё раз, только теперь с паролем
— Из таблицы user удаляем запись пользователя ‘%’ и (какая есть), т.к. эта запись предоставляет доступ любому пользователю.
— Т.к. мы изменили пароль пользователя root, то теперь не сможет работать logrotate. Для исправления добавляем в конец файла /var/lib/mysql/my.cnf соответсвующие параметры. Здесь же закоментируем строку skip-networking :
— Проверим, осуществляется ли автоматический запуск mysqld:
видим, что нет. Добавляем и проверяем:
ещё раз добавляем и проверяем:
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
— Смотрим журнал /var/log/mysql/info. Заметим, что теперь прослушивается порт 3306:
— Если работу с MySQL планируется вести постоянно, то полезно будет установить phpMyAdmin (http://php-myadmin.ru)
Несколько полезных команд
SHOW TABLES; | показать таблицы в БД |
SHOW COLUMNS FROM db; | показать поля таблицы db |
USE mysql; | перейти в БД mysql |
SELECT host,user FROM user; | показать поля host, user таблицы user |
DROP TABLE transport; | удалить таблицу transport |
DELETE FROM user WHERE user=’acct’ AND host=’%’; | удалить конкретную запись |
UPDATE db SET Delete_priv=’Y’ WHERE user=’acct’; | изменить значение поля в записи |
FLUSH PRIVILEGES; | применить внесённые изменения |
mysql -u root -p12345 postfix Почтовый сервер. Postfix |
См. также как Postfix устанавливается под Debian. Большинство настроек схожи
Postfix отвечает за приём почтовых сообщений и раскладки их по каталогам на сервере. Отдавать письма будет Courier.
Установка 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_domain.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 для управления почтовыми ящиками через веб-интерфейс
Берём последнюю версию пакета с http://sourceforge.net/projects/postfixadmin (на данный момент это 2.2.0).
-Доустанавливаем пакет работы со строками для PHP и telnet для проверки:
— Распаковываем и копируем всё содержимое каталога postfixadmin-2.2.0 в /var/www/apache2/html/postfixadmin:
— Заходим на настроичную страничку: http://10.0.0.2/postfixadmin/setup.php и, если ошибок в настройках нет (иначе подскажет где они), создаём администраторский почтовый ящик, скажем postadmin@teo.mynetwork.ru
— Переименовываем настроичный скрипт setup.php в setup.php.disabled и заходим на http://10.0.0.2/postfixadmin/login.php. Регистрируемся, указывая в «Имя (название ящика)» только что созданный postadmin@teo.mynetwork.ru и получаем доступ к административной странице.
— Добавляем домен teo.mynetwork.ru и почтовые ящики test и test2.
— Можно сделать резервную копию всех таблиц в виде SQL выражений. Для этого на странице администратора нажать кнопку Backup.
— Теперь в консоли проверяем как работает доставка почты, т.е. smtp:
— Идём в наш почтовый каталог /var/spool/vmail/ там, если не был, появился каталог test2@teo.mynetwork.ru, а в нём (в каталоге new) сообщение.
Шифрование соединения и принимаемой почты.
— Для шифрования параметров аутонтификации (по умолчанию имя пользователя и пароль передаются открытым текстом) доустанавливаем поддержку TLS:
Если возникла ошибка:
То, согласно подсказкам, выполняем:
— Конфигурируем Postfix. Добавляем настройки tls в /etc/postfix/main.cf:
Какими ключами будем подписывать сервер пока не важно. Их можно будет создать отдельно для Postfix, или взять от Courier, когда их там создадим, или оставить от Apache, как мы сейчас сделаем. Копируем /etc/httpd2/conf/ssl.crt/server.crt в /etc/httpd2/conf/ssl.ca/ca.crt (создав этот каталог), таким образом создав фиктивный главный (подписывающий) ключ.Проверяем:
— В случае сбоев смотреть лог-файл:
— Для выхода из less нажмите q.
ClamAV (проверка почты на вирусы)
Мы установим из пакета, но можно скачать исходники с http://www.clamav.net
— Устанавливаем антивирус 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.
После установки дополнительно требуемого пакета tcl видим сообщение:
Выполняем предложенные команды:
— Смотрим куда установилась поддержка MySQL (зависит от версии пакета) :
— Настраиваем доступ к БД 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, чтобы прокси сервер принимал запросы только из локальной сети и компьютера, где установлен:
— SAMS. Исправить IP адрес на административной странице «SAMS»: «Администрирование SAMS»- Postfix. Исправить IP адреса в параметре mynetworks в файле /etc/postfix/main.cf
— Courier. Если менялось имя почтового домена, то исправить в /etc/courier-authlib/authdaemon-mysql.conf и пересоздать сертификаты.
— Apache. Исправить директивы NameVirtualHost и VirtualHost в конфигурациях виртуальных хостов (если создавались).
Источник