- Alt linux настройка прокси
- Обычный доступ
- Анонимизирующий доступ
- “ Прозрачный ” доступ
- Фильтрация доступа
- Авторизация доступа
- Локальное хранение данных, которые уже запрашивались пользователями (cache)
- Обычное кеширование
- Выборочное кеширование
- Иерархия серверов
- Обратное проксирование и кеширование внутренних серверов (accelerate)
- Обычное обратное проксирование (один сервер)
- Множественное проксирование
- Разное
- Безопасность
- Сбор статистики и ограничение полосы доступа
- Кеширование DNS-запросов
- Установка Интернет-сервера на 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 настройка прокси
В корпоративных сетях довольно обычна ситуация, когда, с одной стороны, множество пользователей на разных компьютерах пользуются ресурсами сети Интернет, при этом обеспечить надлежащий уровень безопасности на этих компьютерах одновременно довольно сложно. Ещё сложнее заставить пользователей соблюдать некий “ корпоративный стандарт ”, ограничивающий возможности использования Интернет (например, запретить использование определённого типа ресурсов или закрыть доступ к некоторым адресам).
Простейшим решением будет разрешить только определённые методы доступа к Интернет (например, по протоколам HTTP и FTP) и определить права доступа абонентов на одном сервере, а самим абонентам разрешить только обращение к этому серверу по специальному прокси-протоколу (поддерживается всеми современными броузерами). Сервер же, после определения прав доступа, будет транслировать (проксировать) приходящие на него HTTP-запросы, направляя их адресату. Допустим, несколько пользователей с нескольких компьютеров внутренней сети просматривают некоторый сайт. С точки зрения этого сайта их активность представляется потоком запросов от одного и того же компьютера.
Обычный доступ
Непосредственно после установки Squid уже поддерживает функции прокси, но принимает соединения только с того компьютера, на который установлен. Для того, чтобы можно было воспользоваться этим сервисом с других компьютеров, необходимо изменить т. н. таблицы управления доступом (Access Control Lists, далее ACL), находящиеся, как и большинство настроек Squid , в файле /etc/squid/squid.conf . Файл этот снабжён подробными комментариями и примерами по всем настройкам в виде комментариев, например, # TAG: некоторая_настройка . Таким же образом там описаны все значения, выставленные по умолчанию. В частности, для того, чтобы Squid принимал соединения из всей внутренней сети, необходимо раскомментировать две строки и подставить в них действительный диапазон адресов вашей сети:
Следует иметь в виду, что при обработке запроса на доступ к Squid все строки http_access файла squid.conf просматриваются последовательно сверху вниз до первой строки, соответствующей параметрам запроса. Это означает, что важен порядок следования строк http_access .
Анонимизирующий доступ
При использовании прокси-сервера остаётся некоторая угроза безопасности, связанная с тем, что топология внутренней сети и активность её абонентов не маскируются. Например, в протоколе HTTP используются т. н. заголовки (headers), значения которых заполняются броузерами при отправлении запроса. Squid умеет удалять опасные поля заголовка из запроса при помощи настройки header_access или подменять их значения на другие, заранее заданные, при помощи настройки header_replace . Варианты использования этих настроек приведены в squid.conf в районе TAG: header_access и TAG: header_replace соответственно. Имейте в виду, что из-за удаления и/или подмены полей заголовков может нарушиться связь с некоторыми системами, использующими значение этих полей для организации взаимодействия и авторизации.
“ Прозрачный ” доступ
Можно вообще не сообщать пользователям сети, что в ней используется прокси-сервер. Если прокси-сервер — одновременно и маршрутизатор, весь сетевой трафик в любом случае его не обойдёт. При этом можно средствами межсетевого экрана все обычные HTTP-запросы к удалённым серверам перенаправлять на вход особым образом настроенного Squid . С внешней стороны это будет выглядеть обычным прокси-сервером, а со стороны пользователя — ничем не будет отличаться от обычной работы в сети. Команда iptables , перенаправляющая HTTP-запросы к внешним серверам на порт Squid может, например, выглядеть так:
Настройка squid.conf при этом использует обратное проксирование, описанное ниже. Как сказано в документации по Squid , для организации прозрачного прокси достаточно добавить в squid.conf строки
Фильтрация доступа
В Squid существует гибкая схема фильтрации внешних ссылок. С её помощью, например, можно закрыть доступ к определённым сайтам и ресурсам на них, избавиться от навязчивой рекламы (banners), ссылок непристойного содержания и т. п. Содержимое фильтруется с помощью всё тех же ACL и настроек http_access deny , примеры которых приведены в squid.conf . Обратите внимание, что при задании фильтруемого URL или доменного имени сервера можно использовать регулярные выражения, таким образом в одной строке определяя фильтр для целого класса адресов или доменных имён. Подробнее о регулярных выражениях можно прочитать в руководстве regex (7) . Запрет доступа к домену baddomain.com , например, можно оформить в виде строк
Заметим также, что http_access deny Bad следует помещать перед строками вида http_access allow , в этом случае доступ к любому сайту домена будет закрыт безусловно.
Авторизация доступа
В Squid есть возможность определять различные ACL разным пользователям и/или категориям пользователей. Если для определения того, какой именно пользователь подключается к серверу, недостаточно IP-адреса его компьютера, следует воспользоваться одной из многих схем авторизации, принятых в Squid . Авторизация конфигурируется с помощью тега TAG: auth_param . Посмотреть, какие схемы (программы) авторизации поддерживает Squid , вы можете в каталоге /usr/lib/squid .
Например, настройка авторизации в LDAP может выглядеть так:
Информацию по конфигурированию той или иной программы авторизации можно почерпнуть из соответствующих man-pages.
Локальное хранение данных, которые уже запрашивались пользователями (cache)
Не менее важное свойство Squid состоит в том, что данные, полученные по запросам из сети Интернета, сохраняются в системе ( кешируются). При повторных запросах денные будут предоставляться не из Интернет, а из сохранённой копии. Объекты кешируются до тех пор, пока не истечёт их “ срок годности ” или пока они не будут вытеснены другими, более часто используемыми. Например, если все пользователи внутренней сети одновременно работают с одним и тем же сайтом в сети, общий поток запросов от Squid будет несравненно меньше потока пользовательских запросов, так как большинство ресурсов сайта уже будет закешировано.
Обычное кеширование
Непосредственно после установки сервера он уже выполняет кеширующие функции. Кеширование позволяет не только сэкономить на оплате трафика, но и уменьшить время доступа к ресурсам Интернет. Однако следует понимать, что снижение внешнего трафика возможно только если один и тот же ресурс был запрошен несколькими пользователями на протяжении некоторого промежутка времени. Если пользовательские запросы почти не пересекаются, снижение трафика может быть незначительным.
Кроме того, кеширование неэффективно в ситуации, когда повторный запрос на большинство объектов приходит уже после того, как эти объекты вытесняются из кеша более новыми. Если анализ статистики показывает, что происходит именно это, можно попробовать увеличить объём кешируемой информации. Настройки Squid , отвечающие за размер кеша, приведены в файле squid.conf в разделе, начинающемся словами OPTIONS WHICH AFFECT THE CACHE SIZE .
Наконец, кеширование входного потока данных делает невозможной “ справедливую ” оплату различными пользователями их собственного трафика. Например, если один пользователь посещает некие сайты по совету другого, то его трафик будет по большей части не выходить за пределы сервера, на котором ресурсы этих сайтов уже — по милости первого пользователя — закешированы.
Выборочное кеширование
Некоторые данные (например, очень большие файлы, автоматически изменяемые WWW-страницы, звуки и т. п.) кешировать невыгодно: вероятность повторного запроса в течение “ срока годности ” низкая, а других объектов вытесняется много. С другой стороны, содержимое некоторых сайтов может понадобиться кешировать в обязательном порядке (например, для ускорения доступа). Эти свойства управляются, как обычно, при помощи ACL и настроек always_direct (без кеширования) и never_direct (обязательное кеширование). Например, чтобы предотвратить кеширование файлов, получаемых по протоколу FTP (это, как правило, разумно), необходимо в соответствующем месте squid.conf раскомментировать строки
Иерархия серверов
Если запрашиваемый ресурс не найден в локальном кеше Squid , он может попытаться запросить его у “ вышестоящих ” серверов или у “ соседей ” — вместо того, чтобы обращаться в Интернет. Таким вышестоящим сервером (parent peer) может быть сервер провайдера, а соседом (sibling peer) — сервер абонента, подключённого к тому же провайдеру. Правила передачи объектов кеша и формирования иерархии серверов описаны в документации. Раздел настроек, отвечающий за механизм обмена кешем, начинается словами OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM .
Необходимо знать, что обмен содержимым кеша требует непременной авторизации доступа между серверами (во избежание подлогов и другого вида атак). Все параметры соединения сервера с сервером (настройка cache_peer ) записываются в текстовом виде, включая пароли, так что следует строго ограничить доступ к файлу настройки squid.conf .
Обратное проксирование и кеширование внутренних серверов (accelerate)
Кеширующие и проксирующие способности Squid можно использовать и “ в обратную сторону ”, пропуская через сервер входящие запросы на внутренние серверы. Таким образом можно скрыть реальное расположение и структуру серверов, и уменьшить нагрузку на них.
Обычное обратное проксирование (один сервер)
В режиме accelerate сервер сам принимает извне HTTP-запросы, адресованные, как правило на 80-й порт. Кроме того, необходимо указать имя сервера и порт, на который будут проксироваться запросы. Это можно сделать, например, так
Если необходимо как-то ограничить доступ к внутреннему серверу, это легко сделать, применив соответствующие ACL.
Множественное проксирование
Для обратного проксирования нескольких внутренних серверов необходимо, чтобы внешние запросы на сайты с разными доменными именами попадали на вход Squid , который бы ставил в соответствие каждому имени действительный адрес сервера во внутренней сети и перенаправлял бы запрос туда. Делается это с помощью механизма виртуальных хостов. Вот как, например, можно организовать прокси для двух серверов, www1.foo.bar и www2.foo.bar , адреса которых в DNS указывают на машину со Squid -сервером (файл /etc/squid/squid.conf ):
Настройка visible_hostname нужна серверу для заполнения HTTP-заголовков. Файл /etc/squid/hosts , формат которого аналогичен формату /etc/hosts , содержит адреса серверов во внутренней сети:
Множественное обратное проксирование имеет важный побочный эффект. В сетях, подключённых к Интернету постоянно, нередки случаи, когда недобросовестные администраторы внутренних сайтов регистрируют их в других доменах и используют их в качестве хостинг-платформ, часто с документами незаконного или нецензурного содержания. Допустим, сайт www1.foo.bar также зарегистрирован как www.verycoolwarez.com , и по этому адресу доступны пиратские версии программ и т. п. В обычном случае для обнаружения этого факта необходимо анализировать трафик, делать внушение администратору www1.foo.bar и т. д.
При использовании обратного проксирования такого вообще не может произойти без договорённости с администратором Squid , то есть без занесения в /etc/squid/hosts !
Разное
Безопасность
Squid поддерживает проксирование разнообразных протоколов, из которых разрешать надо далеко не всё и далеко не всем. Необходимо, чтобы воспользоваться этим сервисом могли только те, кто имеет на это право. Если ваш прокси-сервер — анонимизирующий, им могут воспользоваться, чтобы скрыть обратный адрес при незаконном доступе к данным или даже атаке на другие серверы.
Неаккуратно настроенный прокси-сервер можно использовать для массовой рассылки почты (спама), что осуждается правилами пользования сетью Интернет и может привести к отказу мирового сообщества принимать почту с вашего домена!
Сбор статистики и ограничение полосы доступа
В Squid входит утилита кеш-менеджер, служащая для отображения статистики и загрузки сервера. Кеш-менеджер представляет собой cgi-приложение и должен выполняться под управлением сконфигурированного HTTP-сервера. Все настройки кеш-менеджера также производятся в /etc/squid/squid.conf , строки, которые относятся к кеш-менеджеру, обычно включают cachemgr .
При помощи Squid можно ограничить полосу пропускания (“ толщину канала ”) для пользователей. За это отвечают параметры delay_pools и delay_class . Эта технология позволит вам снизить загрузку канала например mp3-файлами, и соответственно отдать полосу более приоритетному трафику. Один из примеров настройки можно найти на сайте www.atmsk.ru.
В ALT Linux 2.3 Junior сервер собран с поддержкой 8192 файл-дескрипторов, что позволит его эксплуатировать на широких каналах (свыше 1 Мбит/сек) и при повышенной нагрузке (десятки тысяч обращений в минуту).
Кеширование DNS-запросов
Squid содержит встроенный минисервер запросов DNS. Он выступает как посредник между Squid и внешними DNS-серверами. При запуске Squid производит начальное тестирование доступности DNS и интернет в целом. Это можно отключить, используя опцию -D . Время кеширования удачного DNS-запроса по умолчанию составляет шесть часов.
Ссылки
Официальный сайт разработчиков Squid . Содержит огромный FAQ, документацию, списки рассылок, и, скорее всего, ответы на все ваши вопросы.
Русскоязычная альтернатива предыдущему ресурсу.
Запрос по ключевому слову squid в поисковой системе этого сайта выдаст вам наиболее популярные типовые решения задач, которые возникают у администраторов.
Источник
Установка Интернет-сервера на 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 в конфигурациях виртуальных хостов (если создавались).
Источник