Панель управления CPanel

Панель управления CPanel

Панель управления CPanel предоставляется пользователю (например — на наших пакетах виртуального хостинга). CPanel является разработкой CPanel Inc., постоянно дополняется и совершенствуется. CPanel используется тысячами хостинг компаниями по всему миру, ввиду своей лёгкости и удобности для конечного пользователя хостинг услуг. Кроме этого, CPanel по мнению многих является наиболее безопасной панелью управления т.к. постоянно поддерживается и обновляется разработчиком. Список возможностей CPanel довольно обширен, просмотрите демо и увидите всё сами. Нажмите на кнопку расположенную ниже чтобы получить демо доступ.

Мы предоставляем нашим клиентам панель управления CPanel на русском языке, вот краткий перечень её возможностей:

  • Настройки

Мастер начала работы поможет новичку в изучении возможностей и специфике работы в CPanel, учебные видеоматериалы (на английском языке) визуально продемонстрируют различные действия в панели управления. Доступны также функции: изменение пароля, ярлыки доступа в CPanel прямо с рабочего стола, функции изменения языка, стиля и контактной информации.

  • Почта

Создание почтовых аккаунтов, изменение MX записи, гибкие настройки перенаправлений и автоответчиков для каждого почтового ящика, пересылка, доступ у веб-почте и многое другое.

  • Файлы

Включает менеджер FTP аккаунтов (создание, изменение, установка ограничений), 2 удобных веб файл-менеджера с использованием технологии AJAX позволяют не устанавливать FTP клиент а скачивать, закружать и редактировать файлы прямо из панели управления. Встроена функция управления сессиями FTP, которая позволяет просматривать пользователей которые в данный момент соединены с FTP и отключать им доступ в случае необходимости. Также имеется «Менеджер резервного копирования» который позволяет создать полную копию Вашего аккаунта, эту копию затем можно восстановить на любом сервере с поддержкой CPanel или использовать на локальном компьютере. Функция «Занятое дисковое пространство позволяет просматривать и контролировать использование дисковых ресурсов сервера.

  • Журналы доступа

Включает журналы доступа к Вашему сайту (IP адреса, время, браузеры и т.п.) а также 3 мощные системы статистики (статистика посещаемости, переходов, ключевых слов и многого другого). Также встроен журнал ошибок, для просмотра ошибок на уровне PHP которые возникали на Вашем сайте.

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

Раздел содержит инструменты для повышения и контроля безопасности — такие как защита директорий паролем, запрет доступа к сайту с определённых IP, защита от прямых ссылок и т.п., также имеется менеджер SSL сертификатов и SSH доступа (требуются специальные знания — включается по запросу).

  • Домены

Функции создания паркованных и дополнительных независимых доменов, создания субдоменов (вида sub.mysite.ru) а также функция пере направления с одного домена на другой, в случае необходимости.

  • Базы данных

Функции управления базами данных MySQL — создание баз, пользователей, разграничение прав у каждого пользователя, контроль занимаемого базой данных места, администрирование баз с помощью интерфейса phpMyAdmin, и ещё удалённый доступ к MySQL.

  • Другие функции

Доступны функции создания собственных страниц ошибок, сетевые инструменты, Cron задания, FrontPage, CGI центр, оптимизация сайта и многое другое.

По материалам: netlevel.ru

Рубрика: *Web, Интересные заметки | Оставить комментарий

Инструкция по панели управления WHM

WHM  — это программа, работающая в режиме Web-интерфейс для управления хостинговым аккаунтом на сервере и сервером.

WHM  панель предназначена для упрощения работы администратора по управлению клиентскими аккаунтами.

 WHM  — (Web Host Manager) включает разнообразные функции, от создания аккаунта до  настройки и управления различными сервисами на сервере (php, mail сервер exim , apache, mysql, DNS сервер и т.п.).

С помощью  WHM  панели можно легко создать аккаунт с определенным хостинговым планом. Предоставляемый Host-Solutions реселлинг хостинга имеет ограничения исключительно по дисковому пространству на сервере, другие параметры хостинга – количество доменов, субдоменов, баз данных, почтовых  — фтп –аккаунтов неограниченно.

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

Основные функции панели управления реселлингом  WHM 

Для создания шаблонов через панель управления  WHM  мы пользуемся функциями секции

Packages

Add a New Package — создание тарифных планов.
Package Name — имя тар. плана (любое анг.)
Quota — кол-во Мб для данного тар. плана
Max Ftp Accounts — кол-во FTP входов (макс.)
Max Email Accounts — кол-во E-Mail аккаунтов (почт. ящиков)
Max Email Lists — кол-во списков рассылки
Max SQL Databases — кол-во баз MySQL
Max Sub Domains — макс. кол-во сабдоменов
Cgi Access — галка (есть поддержка cgi скриптов)
Frontpage Extentions — галочка (есть поддержка Front Page)
Bandwidth Limit — кол-во трафика Мб.
Cpanel Theme — скин сPanel

Delete Packages

Удаление шаблона тарифа по его названию.

Edit Packages

Исправление лимитов шаблона или его названия, можно пользоваться ей вместо удаления шаблона.

Feature Manager

Позволяет делать недоступными или включать все функции сPanel для владельца аккаунта. Через эту функцию можно определить какие функции будут доступны через сPanel владельцу аккаунта, созданного по заданному шаблону. По умолчанию уже создано два листинга особенностей default disable. Если отключить какие-либо функции Cpanel в листе default, то это будет применено сразу же к новым аккаунт. При создании или редактировании шаблона аккаунта Вы можете указать какой листинг функций будет использоваться в поле “Feature List”.

Account Functions создание аккаунта

Create a New Account Создать новый аккаунт.

(предварительно тарифные планы должны быть уже созданы)

Domain — имя домена (без www)
UserName — логин (не принимает знаки тире)
Password — пароль (не менее 6 цифр и/или букв) можно сгенерировать автоматически
Package  -тарифный план для аккаунта
Нажать Create  и ждать!  пока панель создаст ПОЛНОСТЬ и не выдаст всю информацию. В строке статуса нижняя строчка  должно быть написано Done.

Если закрыть окно, не дождавшись надписи Готово (Done), то аккаунт будет создан, но с ошибками. Скопировать сгенерированные данные для клиента (аккаунта) их во второй раз создать не получится.

Limit Bandwidth Usage

Изменение для акакунта лимит трафика.

Suspend/Unsuspend an Account

Закрыть/Открыть доступ пользователю к его аккаунту. Если акакунт “засуспендить”, то пользователь не может зайти в аккаунт ни через ФТП ни через панель управления сPanel. При том сайты его тоже перестают работать, а точнее все перенаправляет на страницу, которую Вы можете создать через Modify Suspended Account Page. Это елается, например, при неоплате хостинга и т.п. Нажав “Unsuspend”     Вы вернете все сайты и аккаунт к нормальной работе.

Modify Suspended Account Page

Здесь можно создать произвольную страничку, на которую будет браузер перенаправлять  посетителей сайта, который находится в засуспенженом(закрытом) аккаунте.

Modify an Account

Изменить лимиты для аккаунта, заданные в шаблоне при его создании.

Password Modification

Изменение пароля для аккаунта в сPanel панель управления. При изменении пароля сPanel сразу же устанавливается новый пароль для ФТП доступа, так как он такой же как и пароль к панели управления  сPanel.

Quota Modification

Изменение количество разрешаемого дискового пространства(места) для аккаунта на сервере.

Skeleton Directory

Скелет директорий нового акаунта. Это шаблон дерева папок и файлов, которое будет иметь новый аккаунт при создании. Например, если мы в этот шаблон добавим какой-либо файл, то он будет скопирован также в новый акакунт при его создании.

Terminate an Account

Удалить акакунт. Выбираем аккаунт, который хотим удалить и если мы хотим оставить ДНС зону доменов аккаунта, то ставим галочку “Keep Dns Zone”(Additional Options) при этом повторно создать данный аккаунт вы не сможете. Если же удалить окончательно и ДНС зона не нужна больше, то просто выбираем акакунт и нажимаем “Terminate”.

Upgrade/Downgrade an Account

Используется для изменения (перехода) хостингового плана аккаунта, то есть пакета (шаблона).  Нажимаем на функцию, потом выбираем аккаунта, для которого хотим изменить шаблон с лимитами и нажимаем “Modify”. Теперь из списка созданных шаблонов выбираем новый пакет лимитов для аккаунта и нажимаем “Upgrade/Downgrade”.

Account Information — функции которой дают возможность просмотреть некоторую информацию про аккаунты.

Account Information

List Accounts

Список всех аккаунтов на сервере. Если аккаунтов очень много, то список делится на несколько страниц. В поле “cPanel” списка, нажав на значек Спанели, мы попадаем в cPanel аккаунт определенного пользователя. То есть, имея доступ к панели управления  WHM  мы можем попасть в cPanel аккаунт любого пользователя на сервере.

В поле ” IP” можно сразу же перейти на сайт по IP-адресу.

В поле “ Package ” можно изменить лимиты, установленные в шаблоне, для аккаунта.

List Parked Domains — список паркованых доменов.

List Subdomains — Список поддоменов и дополнительных доменов(Addon Domains).

List Suspended Accounts — Список засуспенденных(закрытых) аккаунтов.

View Bandwidth Usage — Просмотреть используемый  трафик для каждого аккаунта.

Multi Account Functions —  работа с несколькими аккаунтами одновременно.

Modify/Upgrade Multiple Accounts

Возможность изменить для нескольких аккаунтов, тему Спанели, язык, хостинговый пакет(шаблон). Для этого необходимо отметить аккаунты и выбрать для них язык «Language» или план хостинга «Package», выполнить действие «Change»

Terminate Multiple Accounts

Удаление нескольких акаунтов. Выбираем акакунты, которые необходимо удалить, вставляем в строку полностью предложение: “I understand this will irrevocably remove all the accounts that have been checked” (копируем со страницы) и нажимаем “Destroy Selected Accounts”.

Server Status

Server Information — Информация о сервере

DNS Functions

Add a DNS Zone — не трогать
Delete a DNS Zone — не трогать

Edit Zone Templates – изменить зоны шаблонов

Park a Domain – припарковать домен. Выделить доменное имя, к которому необходимо припарковать, в другое поле внести паркуемый домен без www.

Plugins – плагины

RVSkin Manager – менеджер настроек реселлерской панели, имеет обширные функции.

Мультиязычность  WHM  не поддерживается. Для перевода сообщений с английского языка можно использовать оф- лайн  (PROMT) и он-лайн (www.translate.ru) переводчики.

По материалам: hghltd.yandex.net

Рубрика: *Web, Интересные заметки | 1 комментарий

Как создать систему с тремя и более мониторами?

Сейчас многие люди не могут представить себе работу с компьютером имеющим только один монитор, в качестве устройства вывода информации. Многомониторные системы особенно полезны системным администраторам и игрокам биржевого рынка. Кроме того, популярностью пользуются системы, позволяющие создать SLS (Single Large Surface) – единый рабочий стол на нескольких мониторах одновременно. Такие системы используются в рекламных целях (видеостена), а также среди игроков, которые, используя технологии AMD Eyefinity и NVIDIA Surround, могут играть, используя до 6 мониторов для создания единого игрового пространства.

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

  1. Несколько видеокарт, не объединенных в Crossfire или SLI.

    Multi Multi

    Можно собрать конфигурацию из двух или более дискретных видеокарт минимум с двумя любыми видеовыходами и, не объединяя их ни в SLI ни в Crossfire, подключить нужное количество мониторов из расчета два монитора на один GPU. Т.е. собрав систему из трех одночиповых видеокарт можно подключить к ней шесть мониторов. Такие конфигурации реализуются благодаря поддержке видеокартами технологий вывода изображения на несколько мониторов — AMD HydraVision, AMD Eyefinity, NVIDIA nView.

    Существует вариант использования встроенного видео AMD (начиная с HD3000) и дискретной видеокарты AMD одновременно. Для этого в меню BIOS материнской платой должна быть реализована возможность оставить активными видеовыходы на плате при установке дискретного видеоадаптера. В этом случае, используя всего одну дискретную видеокарту, можно организовать трех или четырехмониторную систему, правда без возможности реализации видеостены, по крайней мере, до появления нового поколения встроенного видео, которое будет интегрировано в новые APU от AMD.

    Плюсы:

    • Подходят мониторы с любыми видеовыходами (аналоговыми или цифровыми).

    Минусы:

    • Нужна материнская плата с нужным количеством портов PCI-Express 16x (кроме случая создания четырехмониторной конфигурации с использованием встроенного и дискретного виде), т.е. далеко не любая и, вероятно, не самая дешевая;
    • Нужно покупать несколько видеокарт, что тоже достаточно накладно;
    • Невозможно создать видеостену или игровое пространство.
  2. Eyefinity

    Eyefinity
    Для создания видеостен наиболее удобной и функциональной на сегодняшний день является технология Eyefinity, которая позволяет при использовании одной одночиповой видеокарты создавать конфигурации с возможностью подключения до 6 мониторов. Для этого потребуется видеокарта AMD Radeon HD 5xxx/6xxx серии с нужным количеством видеовыходов (чтобы создать именно шестимониторную видеостену с помощью одной видеокарты понадобится карта AMD Radeon HD 5xxx/6xxx серии Eyefinity 6 Edition) . Основным недостатком (точнее ограничением) для этой технологии является необходимость использовать мониторы с разъемом Display Port или специальные активные переходники в качестве третьего и последующих мониторов.

    Плюсы:

    • Возможность создания больших видеостен для использования в играх или создания рекламных щитов;
    • К одной видеокарте можно подключить до 6 мониторов (зависит от количества цифровых видеовыходов Display Port);
    • Для создания конфигурации из 6 мониторов подойдет любая материнская плата для настольных компьютеров, при наличии видеокатры с нужным количеством видеовыходов (два любых цифровых и 4 DP, либо 6 DP).

    Минусы:

    • Необходимость использования дорогостоящих мониторов с Display Port.
  3. NVIDIA Surround

    multi
    Также для создания многомониторных систем подойдут видеокарты NVIDIA c реализованной в них технологией NVIDIA Surround, позволяющей при использовании двухчиповых видеокарт (GTX 295, GTX 590) или двух/трех видеокарт серий GTX 2xx/GTX4xx/GTX5xx в режиме SLI использовать до трех мониторов для создания видеостены или единого игрового пространства. Если нужно просто несколько мониторов с отдельными рабочими столами, то одночиповые видеокарты можно не объединять в режиме SLI, тогда можно подключить несколько мониторов из расчета 2 монитора на каждый GPU (см. пункт 1)

    Surround
    Плюсы:

    • Возможность подключения любых трех мониторов к одной двухчиповой или двум/трем одночиповым видеокартам трех мониторов в качестве видеостены, используя при этом многопроцессорную видеобработку;
    • Возможность подключения трех одинаковых 120 ГГц мониторов или проекторов к одной двухчиповой или двум/трем одночиповым видеокартам для создания единого пространства с возможностью отображения стереоскопического 3D эффекта (технология NVIDIA 3D Vision Surround).

    Минусы:

    • Невозможно использовать более трех мониторов для создания видеостены;
    • Необходимо использовать либо дорогостоящую двухчиповую видеокарту либо две или три видеокарты серии GTX, которые также стоят не дешево;
    • Для создания SLI конфигураций нужна материнская плата с несколькими PCIe 16X портами и поддержкой SLI.

    Обновление от 30.06.2011:

    Не так давно начали появляться одночиповые видеокарты NVIDIA, которые позволяют создавать многомониторные конфигурации, включая видеостены из нескольких мониторов. Ярким примером таких видеокарт является Zotac GeForce GTX 460 3DP, которая оснащена тремя Display Port и одним DVI-I разъемом с возможностью подключения четырех мониторов, при объединении которых в единое рабочее пространство может быть достигнуто разрешение 6400 x 1200 пикселей. Также у компании Zotac появилась линейка видеокарт под названием GTX Multiview. Видеокарты из этой линейки также способны работать более чем с двумя мониторами одновременно. Вероятно, подобные решения будут появляться и у других производителей, так что вариантов подключения и одновременной работы нескольких мониторов станет еще больше.

  4. USB видеоадаптеры

    USB
    Создание многомониторных систем возможно также при использовании так называемых USB-видеокарт, которые позволяют подключать мониторы с цифровым или аналоговым монитором к USB порту, благодаря технологии DisplayLink. Такие конфигурации имеют огромное количество ограничений, как по выводимому разрешению (существуют ограничения типа до 1680 x 1050, 1600 x 1200 или 2048 x 1152), так и по количеству подключенных к одной системе адаптеров (обычно, максимальное количество 6 или 7 шт.). Помимо всего прочего, такие видеокарты плохо справляются с выводом высококачественного видео на дополнительные мониторы, поэтому многомониторные системы созданные благодаря USB видеоадаптерам рекомендуются для вывода статических изображений, слайд шоу и демонстрации презентаций. Понятно, что создать видеостену также не удастся.

    Плюсы:

    • Простота в использовании – от компьютера нужен только USB разъем и совместимая операционная система Windows;
    • Не обязательно обладать навыками сборщика ПК для использования внешних USB видеокарт.

    Минусы:

    • Невозможность создания видеостены;
    • Значительные ограничения по максимальному разрешению, количеству устройств и функционалу;
    • Необходимость покупки адаптера к каждому из дополнительных мониторов.
    • Отключение поддержки CUDA и PhysX драйверами nVidia, если в качестве основной используется видеокарта этой фирмы. (Такое происходит не только при использовании USB-видеоадаптеров но и вообще при наличии в системе любых активных видеоадаптеров другого производителя, включая встроенные в материнскую плату.)

Пример создания видеостены из трех мониторов

Чтобы хоть как-то подтвердить слова фактами, мы провели небольшой эксперимент по созданию видеостены (она же единое игровое пространство или «гигантский» рабочий стол) из трех мониторов. Почему мы выбрали именно 3-х мониторную конфигурацию? Во-первых, потому что это наименее дорогая конфигурация, о которой мечтают практически все геймеры, а во-вторых, потому что это максимальное количество мониторов, из которых с помощью видеокарт NVIDIA можно создать видеостену.

Для эксперимента мы использовали три монитора одного и того же производителя с очень похожими характеристиками, хотя NVIDIA настаивает на использовании именно одинаковых мониторов, а AMD в свою очередь просто рекомендует использовать одинаковые мониторы именно для создания видеостен. Мониторы были оснащены разъемами DVI и D-Sub и имели разрешение 1920 x 1080 пикселей (FullHD).

На базе видеокарты NVIDIA GTX 590

Первой испытанию подверглась видеокарта NVIDIA GTX590. Мы выбрали ее потому, что это одна двух видеокарт NVIDIA, которая способна в одиночку организовать трехмониторную систему благодаря наличию сразу двух GPU на одной печатной плате. Для создания трехмониторной конфигурации с помощью других видеокарт на чипах NVIDIA серии GTX понадобилось бы минимум две видеокарты, объединенные в SLI и материнская плата с двумя PCIe 16x и поддержкой того самого SLI.

Итак, подключаем к видеокарте три монитора (можно использовать любой интерфейс, который есть в мониторе DVI, D-Sub или HDMI). Запускаем панель управления NVIDIA и идем в закладку «Настройка многопроцессорного режима». Как видите, здесь можно выбрать не только «Расширение дисплеев с помощью Surround», но и просто «Активировать все дисплеи», т.е. создать многомониторную систему для получения нескольких отдельных рабочих столов. Но мы собираемся создать один большой рабочий стол, поэтому выбираем именно «Расширение дисплеев с помощью Surround» и жмем кнопку «Настроить». Далее мастер поможет вам правильно расположить дисплеи и скорректировать наличие рамки между дисплеями. На этом все – если все мониторы подошли и вы все правильно настроили, то у вас получится огромный рабочий стол общим разрешением 5760 x 1080 пикселов.

NV

NV NV

NV

На базе видеокарты Sapphire RADEON HD6870 Flex Edition

Второй видеокартой стала Sapphire RADEON HD6870 Flex Edition. Почему мы выбрали именно эту видеокарту? Ответ прост – именно видеокарты Sapphire Flex Edition имеют встроенный активный переходник Display port на DVI, благодаря чему можно спокойно подключить три DVI монитора к одной видеокарте. Если бы мы взяли любую другую видеокарту с поддержкой Eyefinity, то нам пришлось бы в качестве третьего монитора использовать монитор с выходом Display port или использовать отдельный активный переходник.

В случае с любой видеокартой Flex Edition подключение трех DVI мониторов осуществляется посредством двух DVI и одного HDMI видеовыходов. К разъему HDMI монитор с DVI входом подключается с помощью переходника. Если у видеокарты Sapphire Flex Edition кроме двух DVI и одного HDMI портов есть еще Display Port (один или несколько), то к нему можно подключить дополнительный монитор (один или несколько), но это должен быть Display Port монитор или DVI монитор, подключенный через активный переходник, но для нас в данном случае это не имеет значения, т.к. у нас есть только три монитора. Итак, подключив все три монитора к соответствующим разъемам на видеокарте необходимо включить компьютер и зайти в Catalyst Control Center (CCC). В нем выбираем закладку «Управление рабочим столом» и далее пункт «Создание и расположение экранов». Настройка производится достаточно просто, поэтому не будем останавливаться на ней подробно. В итоге, после настройки из трех мониторов мы получаем большой рабочий стол.

AMD

AMD

AMD
В обоих случаях после создания единого рабочего стола на трех мониторах для того, чтобы оценить преимущества такой системы мы запустили игру Dirt 2 и тестовое приложение Heaven Benchmark 2.1. К сожалению, нам не удалось сделать скриншоты в Dirt 2, но нам понравился игровой процесс с увеличенными углами обзора в игре – на боковых дисплеях были видны оппоненты, которые пытались обогнать автомобиль, а также всю дорогу мы имели возможность разглядывать зрителей за пределами трассы. В свою очередь Unigine Heaven Benchmark 2.1 позволил нам сделать отличные скриншоты, которые показывают все преимущества игры с использованием трех мониторов, объединенных в один большой дисплей с разрешением 5760 x 1080 пикселов.

Heaven

heaven
nix.ru

Рубрика: * | 1 комментарий

Почтовая система среднего и малого оффиса.

Недавно один из знакомых администраторов попросил помочь ему в создании почтовой системы для фирмы в которой он работает. Подумав о сакраментальном слове RTFM и вспомнив, что недавних переселенцев из под Windows надо поощрять я все же решил поискать для него хорошую документтацию подробно описывающую то что ему предстоит выполнить. Побродив некоторое время в сети с удивлением обнаружил отсутствие того за чем пришел. Не то чтобы документации не было совсем . Скорее ее было даже слишком много. Очень часто мне на глаза попадались продвинутые статьи описывающие настройку магистральных систем способных работать в качестве почтовых серверов крупных интернет провайдеров. Встречались тексты объясняющие способы взаимодействия почтовой системы с SQL, RADIUS, LDAP серверами. Для нашего случая все эти ухищрения были чрезмерны. К сожалению подробной интрукции по настройке почтовой системы для малого и среднего офиса так и не было найдено. Свою систему мы будем строить на основе FreeBSD 4.5. В тоже время практически все описаное ниже после мелких исправлений будет работать во многих других Unix подобных системах. Главное что бы для целевой системы удалось найти версии программ postfix, popa3d, drweb, pflogsumm. Кратко обсудим зачем нужен каждый из этих компонентов. Postfix будет обеспечивать принятие входящих и отправку исходящих сообщений по протоколу smtp. Обычно программы такого типа называют MTA — Mail Transfer Agent. Popa3d позволит пользователям читать полученную почту. С помошью drweb мы будем проверять на вирусы все проходящие через нас письма. Для того чтобы знать насколько хорошо функционирует построеная нами система, нужно собирать статистику ее работы. К тому при случае начальству можно показать что не зря ещь свой хлеб с маслом. Выполнять это полезное действо мы будем с помошью pflogsumm. Стоит обратить внимание что машина на которой все это устанавливается имеет два сетевых интерфейса 192.168.10.252 и 80.80.120.163. Первый направлен во внутреннюю подсеть. К сожалению авторизации на основе пароля и имени пользователя для протокола smtp у нас не будет. Отправка писем будет разрешены всем пользователям сети 192.168.10.0. С другой стороны для малыйх и средних сетей в большинстве случаев этого не потребуется. Соответствено через второй интерфейс мы будем общаться с внешним миром. Так же стоит помнить что для авторизации по pop3 мы будем использовать имена и пароли пользователей хранящиеся в файле /etc/paswd.

В качестве кандидатов на место smtp демона рассматривались exim, postfix, qmail, sendmail. Давайте кратко рассмотрим достоинстав и недостатки каждого из них. Стоит оговориться что все нижеизложеное является всего лищь моим личным мнением. Как говорится вольному воля поэтому читатель может на свой страх и риск использовать в качестве MTA все что ему заблагорассудится.

Sendmail — является самым старым MTA из нашего списка. Несмотря на впечатляющий и мощный функционал его пришлось отбраковать сразу же. В первую очередь произошло это из-за того что программа представляет из себя один монолитный блок. По этой же причине за ней тянется огромный шлейф уязвимостей и проблем с быстродействием. Вторым немаловажным недостатком является зубодробительная процедура конфигурирования. Перспективы программы для создании простейщей конфигурации которой необходимо некоторое время повозиться с компилятором m4 по моему мнению выглядят весьма грустно . Хотя старый монстр все еще не сдается, по причине многочисленности своих приверженцев. Заключительным гвоздем в гроб Sendmail послужило то что использование его для офиса среднего о размера похоже на погоню за мухой с молотом в руках.

В тоже время самый безопасный из претендентов qmail мне не понравился слишком жесткой иерархией запуска служебных программ. Для выполнения каждого класса своих задач он порождает дочерние процессы специальных программ. После выполнения задачи процесс дочерней программы уничтожается. С одной стороны это обеспечивает безопасность и запас прочности программы, но с другой создает некоторые накладные расходы на постоянное создание дочерних процессов и межпроцессорное взаимодействие. К тому же лично мне развитие проекта qmail кажется слишком медленным.

Приступив к осмотру Exim с огорчением замечаю, что процес установки на мой взгляд все же довольно нетривиален, и не особенно подходит новичкам мира Unix. Для включения тех или иных возможностей приходится редактировать Makеfile. Да и сам процес последующей настройки показался мне слегка странным. Если не обращать внимания на описанные только что недостатки , то мошный функциональный потенциал заложенный в эту программу Вас очень обрадует.

Postfix — являющийся ближайшим конкурентом qmail делает упор на быстродействие и безопасность. Принципы деления выполняемой задачи очень похожи на те что применяются в qmail, но дизайн системы совершенно другой. Основой идеологии postfix является наличие независимых резидентных модулей. Ни один из модулей не является дочерним процессом другого. В тоже время за счет постоянного присутствия модулей в памяти каждый из них может независимо пользоваться услугами других. Проект postfix на данный момент является самым динамично развивающимся из всех перечисленных.

Покончив с теорией приступим к осуществлению наших планов. Для работы с исходными текстами всего скачанного программного обеспечения я буду использовать директорию /tmp. Читатель может выбрать любую другую. Приступим к установке postfix.

Нужно создать группы postfix и postdrop. А затем в группу postfix добавить пользователя по имени postfix. Почтовая система будет работать с правами пользователя postfix, а группа postdrop будет владеть очередью сообщений. Наличие двух груп и одного пользователя увеличивает запас прочности и безопасности демона smtp. В зависимости от Вашей операционной системы действия по созданию пользователя можно будет выполнить с помощью команды adduser или useradd. После успешного создания пользователя и групп принимаемся за установку postfix. Во время установки всего програмного обеспечения мы будет создан еще один служебный пользователь. Нужно убедиться, что никто не сможет войти в систему пользуясь всеми вышупомянутыми аккаунтами. Для этого в качестве рабочей оболочки в файле /etc/passwd определяем для них /sbin/nologin.

Берем postfix-2.0.0.2.tar.gz с официального сайта проекта www.postfix.org и как обычно распаковываем и устанавливаем:

# tar zxvf postfix-2.0.0.2.tar.gz

# cd postfix-2.0.0.2

# make

# make install

Теперь нужно дать ответы на несколько вопросов, задаваемых во время инсталляции. В большинстве случаев нужно просто нажать ENTER подтверждая использование настроек предлагаемых по умолчанию.

install_root: [/]

# Корневой каталог файловой системы используемой для установки

tempdir: [/tmp/postfix-2.0.0.2]

# Сюда будут падать временные файлы создаваемые в процессе инсталляции

config_directory: [/etc/postfix]

# Тут будут находиться файлы настроек postfix

daemon_directory: [/usr/libexec/postfix]

# А здесь будет лежать выполняемый файл демона postfix

command_directory: [/usr/sbin]

# Тут будут располагаться выполняемые файлы административных команд postfix

queue_directory: [/var/spool/postfix]

# Директория в которой будет находиться очередь писем обрабатываемых postfix

sendmail_path: [/usr/sbin/sendmail]

# Путь к команде используемой взамен стандартного sendmail

newaliases_path: [/usr/bin/newaliases]

# Путь к исполняемому файлу используемому для перестройки почтовых псевдонимов

mailq_path: [/usr/bin/mailq]

# Путь к команде отображающей состояние почтовой очереди

mail_owner: [postfix]

# Имя пользователя с правами которого работает почта

setgid_group: [postdrop]

# Группа от имени которой будут работать команды обработки почтовой очереди

manpage_directory: [/usr/local/man]

# В этой директории находится база документации на все устанавливаемые программы

sample_directory: [/etc/postfix]

# Директории куда нужно положить примеры конфигурационных файлов postfix.

# Смешивать примеры с реальными файлами конфигурации охоты нет.

# Поэтому вводим имя директории /etc/postfix/sample/

readme_directory: [no]

# Директория куда нужно положить файлы документаци

# Выбираем имя директории /etc/postfix/readme/

По завершению установки приступим к настройке. Конфигурационные файлы postfix находятся в директории /etc/postfix/. Все настройки, которые нам нужно поменять находятся в файле /etc/postfix/main.cf. Большинство опций можно оставить со значениями по умолчанию. Я опищу только те из них которые нужно изменять. Итак, приступим:

myhostname = mail.test.ru

# Имя нашего хоста. Лучше всего устанавливать в соответствии с выводом

# получаемым после выполнения команды hostname.

mydomain = test.ru

#Имя нашего домена. Рекомендуется описать явно. Если переменная не

# определена то postfix будет использовать значение myhostname минус

# первый компонет.

inet_interfaces = 192.168.10.252, 80.80.120.163

# Адреса интерфейсов на которых нужно ждать smtp соединений.

# Для упрощения конфигурации можно использовать слово all для установки

# прослушивания всех интерфейсов. Также можно использовать переменные

# localhost и $myhostname. Тогда будут задействованы интерфейсы

# 127.0.0.1 и адрес соответствующий имени определенному в

# переменной $myhostname.

mydestination = $myhostname, $mydomain

# Список доменов которыми себя считает эта машина. То есть почта

# приходящая для пользователей описанных доменов не отправляется

# куда либо, а разбирается локально.

mynetworks = 192.168.10.0/24, 127.0.0.0/8

# Определяем список доверенных сетей. Клиенты с адресами принадлежащими

# этим сетям смогут рассылать через нас почту. Если этот параметр не определен,

# то доверенной сетью считается IP подсеть к которой принадлежит машина с postfix.

alias_database = dbm:/etc/mail/aliases

# Путь к файлу почтовых псевдонимов.

Сохранив изменения считаем что настройка postfix закончена. Еще одним важным шагом является настройка почтового псевдонима пользователя root. Нам необходимо сделать так что бы все письма приходящие пользователю root перенаправлялись пользователю tigrisha. Открываем файл /etc/mail/aliases и ищем подобную строку.

root:

Затем заменяем на вот такое:

root: [email protected]

Сохранив файл c помощью команды newaliases выполняем перестройку системный базы почтовых псевдонимов находящейся в файле /etc/mail/aliases.db

Покончив с настройками проверим нашу конфигурацию.

# postfix check

Если ошибок не появилось, значит все у нас хорошо. Самое время запустить демона smtp в лице postfix.

# postfix start

А на другой консоли смотрим какие сообщения попадают в файл протокола /var/log/maillog.

# tail -f /var/log/maillog

Должно получиться что то похожее на эти строчки:

Jan 16 14:35:33 postfix/postfix-script: starting the Postfix mail system

Jan 16 14:35:33 mail.test.ru postfix/master[7190]: daemon started — version 2.0.0.2

Пришло время проверить как работает отправка почты. С помощью telnet присодиняемся к локальной системе на 25-й порт.

# telnet localhost 25

Trying 127.0.0.1…

Connected to localhost.test.ru.

Escape character is ‘^]’.

220 mail.test.ru ESMTP Postfix

# Затем с помощью команды mail from: указываем серверу от кого будет письмо.

mail from:

250 Ok

# Командой rcpt to: задаем адрес получателя.

rcpt to:

250 Ok

# И наконец с помощью data начинаем ввод текста письма.

data

354 End data with .

testing mail for tigrisha

.

# Закончить ввод текста можно нажав enter затем “.” и снова enter.

250 Ok: queued as 822A958

Последнее сообщение выданное системой означает, что письмо помещено в очередь на отправку. Все описанные действия можно выполнить любым почтовым клиентом. Хотя я считаю что администратор должен знать как выполнить большинство задач по настройке и управлению системой используя минимум инструментов. На другой консоли смотрим что система пищет в файл /var/log/maillog. Должны увидеть появление следующих строк:

Jan 16 17:45:56 mail.test.ru postfix/smtpd[235]: connect from [127.0.0.1]

Jan 16 17:47:16 mail.test.ru postfix/smtpd[235]: 822A958: client=localhost.test.ru[127.0.0.1]

Jan 16 17:47:55 mail.test.ru postfix/cleanup[246]: 822A958: message-id=<[email protected]>

Jan 16 17:47:55 mail.test.ru postfix/qmgr[192]: 822A958: from=, size=416, nrcpt=1 (queue active)

Jan 16 17:47:55 mail.test.ru postfix/local[247]: 822A958: to=, relay=local, delay=39, status=sent (mailbox)

Jan 16 17:52:56 mail.test.ru postfix/smtpd[235]: disconnect from localhost.test.ru[127.0.0.1]

Если все так и произошло значит smtp работает как положено. По умолчанию для хранения полученых писем postfix использует формат mailbox. Это означает что у каждого пользователя есть файл в котором хранятся все его письма. Обычно он должен находится в директории /var/mail/. Соответственно для адреса [email protected] файл будет называться /var/mail/tigrisha. Посмотрим как себя чувствует этот файл.

# ll /var/mail/

total 2

-rw——- 1 postfix postfix 0 Jan 15 17:58 postfix

-rw——- 1 tigrisha tigrisha 1173 Jan 16 17:47 tigrisha

Итак судя по всему письмо благополучно попало в нужный файл. Теперь необходимо настроить pop3 для того чтобы пользователи могли забирать почту с сервера. В качестве демона pop3 мы будем использовать popa3d. За этой программой закрепилась слава одного из самых быстрых, надежных и безопасных демонов pop3. К сожалению процедура установки этой программы из исходного кода очень неудобна. Перед там как приступить к компиляции приходится вносить в исходный код множество исправлений, что бы включить требуемую функциональность. Лично мне не понятно почему автор не может написать нормальный скрипт configure. Большинству других администраторов такой подход тоже не нравится. Поэтому оберегая собственные нервы воспользуемся системой портов.

# cd /usr/ports/mail/popa3d/

# make

# make install

# make clean

После успешной инсталяции проверяем что бы в файле /etc/services были подобные фрагменты.

pop3 110/tcp pop-3 # POP version 3 pop3 110/udp pop-3

В отличии от postfix демон popa3d не находится постоянно в памяти машины. Вместо этого при каждом входящем соединении он будет запускаться супердемоном. В качестве супердемона чаще всего используются либо inetd либо xinetd. В моем случае это был именно inetd. А раз так то нам нужно внести в файл etc/inetd.conf следующий фрагмент:

pop3 stream tcp nowait root /usr/local/libexec/popa3d popa3d

Для того что бы измениения вступили в силу нужно перезапустить демон inetd. Ищем номер его процесса.

# ps -ax | grep inetd | grep -v “grep”

86 ?? Ss 0:01.03 /usr/sbin/inetd -wW

Получается что интересующий нас процесс имеет номер идентификатора 86. Вооружившись этими знаниями перезапускаем inetd.

# kill -HUP 86

После перезагрузки наступает самое время протестировать работу демона pop3. Делаем это как обычно с помощью telnet.

# telnet localhost 110

Trying 127.0.0.1…

Connected to localhost.test.ru.

Escape character is ‘^]’.

+OK

user tigrisha

+OK

# Командой user указываем серверу почту какого пользователя мы желаем читать.

pass Sx12DF234

+OK

# Передаем наш сложнейший пароль.

stat

+OK 1 597

# После того как нас авторизовали посмотрим с помощью команды stat

# состояние нашего почтового ящика. Судя по ответу сервера в ящике одно

# письмо размером 597 байт. Просмотреть содержимое письма можно с

# помощью команды top 1 20.

top 1 20

+OK

# Приказываем показать верхние 20 строк первого письма.

Return-Path:

Received: (from [email protected])

for [email protected]; Tue, 11 Feb 2003 18:18:39 +0300 (MSK)

(envelope-from [email protected])

Date: Tue, 11 Feb 2003 18:18:39 +0300 (MSK)

From: Beshkov Andrew < [email protected] >

Message-Id: <[email protected]>

To: tigrisha

testing mail for tigrisha

.

quit

# Налюбовавшись на дело рук своих уходим

+OK

Connection closed by foreign host.

Процесс получение почты прошел гладко словно по маслу. На этом можно было бы завершить наши занятия но все же стоит подумать о безопасности наших пользователей. Давайте приступим к созданию антивирусной защиты для нашего сервера. Как я уже говорил в качестве антивируса мы будем использовать drweb. Грустный опыт работы с KAV для FreeBSD подтолкнул меня к правильному выбору. Так же стоит обратить внимание на отличное качество русской документации поставляющейся вместе с дисрибутивом drweb. Возможностей заложенных в пробной версии которую мы будем использовать достаточно для надежной защиты от вирусов. Также для получения обновлений антивирусных баз нам понадобится программа wget. Кроме всего прочего она поможет нам скачивать все необходимое программное обеспечение. Устанавливаем wget используя механизм портов.

# cd /usr/ports/ftp/wget

# make

# make install

# make clean

Пользователи других операционных систем могут взять исходный код этой утилиты тут http://www.gnu.org/software/wget/wget.html

С помощью только что установленного wget скачиваем последнюю версию drweb

# /usr/local/bin/wget ftp://ftp.drweb.ru/pub/unix/4.29.5/drweb-4.29.5-freebsd4.tar.gz

Если выполнить это действие, по каким либо причинам не удалось, то для скачивания можно воспользоваться любыми другими инструментами. Но все же стоит разобраться почему произощел такой казус. Иначе в дальнейшем мы не сможем автоматически обновлять антивирусные базы.

После окончания закачки, распаковываем полученный дистрибутив.

Создаем пользователя drweb принадлежащего группе drweb.

Внимательно читаем инструкции в файле

/tmp/drweb-4.29.5-freebsd4/install/opt/drweb/README.RUS

А затем запускаем скрипт инсталляции.

# cd drweb-4.29.5-freebsd4

# ./install.sh

К сожалению, установить антивирус с помощью стандартного скрипта да еще и с первого раза мне не удалось. Он все время жаловался, что не может создать директорию /opt/drweb/ поэтому пришлось создать ее вручную.

# mkdir /opt

# mkdir /opt/drweb/

После этого пошли жалобы на невозможность использования уже созданной директории по причине того, что она уже существует. Ну что же придется обработать скрипт инсталляции напильником. Открываем install.sh любимым текстовым редактором ищем такой фрагмент текста.

if [ -d «$INPUT» ] ; then

echo «Directory $INPUT already exists!»

else

mkdir $INPUT

if [ ! -d «$INPUT» ] ; then

echo «Can not create $INPUT!»

else

INSTALL_DIR=$INPUT

fi

fi

Удаляем или переводим этот фрагмент в комментарии. А вместо него вставляем строку:

INSTALL_DIR=$ INPUT

Сохраняемся, выходим из редактора и запускаем install.sh снова. Теперь нужно по порядку отвечать на вопросы задаваемые скриптом.

Enter destination directory (/opt/drweb is default):

# Директория инсталляции

Select interface language: 0) english 1) russian

# Язык интерфейса. Мне больше нравится английский поэтому я выбрал «0»

После завершения установки начинаем редактировать /etc/drweb.ini

Ищем строку

;User = drweb

Удаляем из нее символ «;» и идем дальше. Таким образом мы указываем демону drweb что он должен работать с правами одноименного пользователя. Итак, антивирус установлен. Запускаем его с помошью файла /opt/drweb/drwebd. Полюбовавшись на сообщения в /var/log/messages понимаем что антивирус запустился и работает как надо. Но к сожалению, проку нам от этого пока мало. Для того чтобы подключить его к проверке почты нужно настроить интерфейс от postfix к drweb. Давайте разберемся, как взаимодействуют друг с другом вышеуказанные программы проследив весь жизненый цикл письма. На приведенной ниже схеме интересующий нас маршрут прохождения письма помечен синим цветом.

Письмо может войти в postfix двумя способами. C помошью входящего соединения по smtp через демона smtpd. Если же письмо отправлено с локальной машины, то через программу заменяющую собой sendmail. После этого письмо попадает в модуль cleanup который занимается проверкой и зачисткой заголовков письма. Затем письмо переходит в модуль queue который передает его через pipe фильтру postfix-drweb. Фильтр в свою очередь сохраняет письмо во временном файле и передает путь к нему клиенту антивируса. Усилиями клиента письмо попадает к демону drweb. В свою очередь он с помощью набора антивирусных баз проверяет письмо.

Если вирусов не найдено, то с используя программу заменяющую sendmail письмо передается модулю pickup. Затем вторично пройдя через cleanup и queue в зависимости от того где находится получатель письмо попадает либо в local и доставляется локально, либо в smtp и отсылается на другой сервер. В случае если drweb считает письмо зараженным оно переносится в карантин. С помощью программы sendmail письма с уведомлениями о данном неприятном факте направляются всем кто указан в секции [VirusNotify] файла drweb_postfix.conf. Обычно это админисратор, отправитель и получатель. Разобравшись с теорией приступим к настройке.

Берем фильтр drweb для postfix

# /usr/local/bin/wget ftp://ftp.drweb.ru/pub/unix/drweb-postfix-4.29.10-freebsd4.tar.gz

В обязательном порядке читаем документацию поставляемую вместе с фильтром.

После распаковки получаем две директории etc и opt. Содержимое директории etc копируем в /etc/drweb/ а файлы из opt соответственно кладем в /opt/drweb/.

Создаем директорию в которую фильтр будет складывать письма приготовленные для проверки.

# mkdir /var/spool/drweb

Настраиваем права доступа так чтобы работать с этой директорией мог только единственный пользователь группы drweb. Аналогичным способом расставляем нужные права на остальные интересные для нас директории.

# chmod 770 /var/spool/drweb

# chown drweb:drweb /var/spool/drweb

# chown -R drweb:drweb /opt

# chown -R drweb:drweb /var/drweb/

# chown -R drweb:drweb /etc/drweb/

Теперь нужно указать postfix что каждое входящее письмо должно проходить через антивирусный фильтр. В файле /etc/postfix/master.cf ищем строку:

smtp inet n — n — — smtpd

И заменяем ее на вот это:

smtp inet n — n — — smtpd -o content_filter=filter:dummy

Затем в конец этого же файла добавляем описание нашего фильтра:

filter unix — n n — — pipe

flags=R user=drweb argv=/opt/drweb/drweb-postfix -f ${sender} — ${recipient}

В файле /etc/drweb/drweb_postfix.conf найти такие строки и вписать в них следующие значения.

AdminMail =

# почтовый адрес администратора

FilterMail =

# почтовый адрес демона drweb

Перезапускаем postfix c помощью команды restart. Если ошибок на консоли и в файле /var/log/maillog не появилось значит все идет как надо. Итак почтовая система запустилась, но нам нужно проверить как работает антивирус. Специально для таких целей вместе с drweb поставляется тестовый файл опознаваемый многими антивирусными программи как вирус. В нем описан так называемый EICAR вирус. Подробнее об этом иммитаторе вируса читайте в документации поставляемой вместе с drweb. А точнее в файле /opt/drweb/doc/readme.eicar. Теперь с помошью любого текстового редактора создаем файл test.com содержащий EICAR вирус и записываем в него вот такую строку.

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

Сохраняем полученый файл. С помощью любой почтовой программы пишем себе письмо прикрепив к нему только что созданный файл test.com. Отправив письмо, получим ответ с уведомлением о том что мы пытались отправить себе вирус. В письме должны быть строки подобные нижеследующим:

======================
DrWeb scanning report:
======================
127.0.0.1 [19926] /var/spool/drweb//drweb.tmp_X19925 — archive MAIL
127.0.0.1 [19926] >/var/spool/drweb//drweb.tmp_X19925/eicar.com infected with EICAR Test File (NOT a Virus!)
========
Summary:
========
known virus is found : 1

Итак антивирусная система работает как положено. К сожалению вирусописатели не сидят сложа руки. Каждый месяц появляется несколько десятков новых вирусов. Для того чтобы наша система могла ловить новейщие вирусы, нужно настроить автоматическое обновление антивирусных баз. Выполнение этой важной задачи возложим на /opt/drweb/update.pl который будет самостоятельно скачивать новые базы.

После получения всех баз этот же скрипт будет перезапускать демона drweb. Это делается для того что бы демон мог загрузить полученны только что базы. Настраиваем crontab пользователя drweb так что бы с помощью вышеописанного скрипта обновление антивирусных баз происходило через каждые 10 часов.

# crontab -e -u drweb

00 0-24/10 * * * /opt/drweb/update/update.pl

Приближаясь в финишу необходимо исправить еще несколько ошибок программистов создававших скрипты для drweb.

После перезагрузки FreeBSD запускает на выполнение все скрипты находящиеся в

/usr/local/etc/rc.d/

Во время инсталляции drweb автоматически создал скрипт, который будет выполнять запуск демона drweb после перезагрузки системы. Так же у нас появится возможность управлять работой демона с помощью команд stop, reload, start, restart. Рассмотрим каждую из этих команд подробнее.

start — запускает процесс drwebd.

stop — останавливает текущий процесс drwebd.

restart — останавливает выполняющийся процесс drwebd и запускает новый

reload — отправляет процессу drwebd сигнал HUP, заставляя его перечитать конфигурационные файлы, а затем продолжить работу

Вся проблема в том что создался этот файл не с тем именем которое нам необходимо. Для FreeBSD он должен называться drweb.sh а не drweb.

# mv /usr/local/etc/rc.d/drweb /usr/local/etc/rc.d/drweb.sh

Во вторых в операционной системе FreeBSD до версии 4.6 после перезагрузки файл drweb.sh будет выполнен без единого параметра командной строки. Для правильного выполнения последовательсти запуска демона drweb этот файл нужно выполнить с параметром start. Сейчас мы это исправим. Открываем файл для редактирования и ищем строку:

echo «Usage: $0 {start|stop|restart|reload}»

После нее добавляем вот такую строку:

/usr/local/etc/rc.d/drweb.sh start

Таким образом мы своего добились. Скрипт drweb.sh не получив параметров из командной строки рекурсивно выполнит сам себя с параметром start.

В качестве теста перезагружаем систему с помошью команды reboot для того чтобы убедиться что демоны postfix и drweb будут запущены автоматически.

Теперь займемся настройкой скритпа pflogsumm. Давайте посмотрим какие данные сможет предложить нам pflogsumm:

  • Количество принятых , доставленных, перенаправленых, отложеных, вовзращенных отправителю или отброщеных сообщений.
  • Общий размер принятых и отправленых сообщений.
  • Список хостов и доменов занимавшихся отправкой и получением почты.
  • Список адресов пользователей учавствовавших в обмене сообщениями.
  • Статистика по количчеству входящих и исходящих smtp соединений.
  • Минимальная, средняя, наибольшая продолжительность smtp соединений с каждым хосто или доменом.
  • Характеристики ежедневного или почасового траффика создаваем ого почтой.
  • Данные о количестве сообщений с разбивкой по доменам и хостам.
  • Сведения о предупреждениях, фатальных ошибках или панических состояниях почтовой системы.
  • Данные о прочих информационных сообщения записаных в протокол демоном smtp.
  • Состояние почтовой очереди.

Англоязычную версию pflogsumm-1.0.4.pl можно взять на сайте автора . Но все же мне кажется что гораздо приятнее читать отчеты на родном языке. Поэтому я предпочитаю использовать версию переведенную мною лично на русский язык. Скачать модифицированную версию скрипта можно http://www.onix.opennet.ru/files/pflogsumm_rus_1.0.4.tar.gz Создаем директорию для размещения скрипта и прочих файлов.

# mkdir /usr/local/pflogsumm

Теперь кладем туда pflogsumm-1.0.4.pl. Переименовываем его для краткости в pflogsumm.pl. Устанавливаем файлу владельца, группу и право на выполнение.

# chmod 100 /usr/local/pflogsumm/pflogsumm.pl

# chown root:wheel /usr/local/pflogsumm/ pflogsumm.pl

Для выполнения pflogsumm желательно иметь Perl версии не ниже 5.004. Стабильная работа с более ранними версиями интерпретатора Perl не гарантируется. Узнать версию Perl установленного в системе можно с помощью комманды perl -v.

Запустив модуль pflogsumm на выполнение, Вы скорее всего получите ошибки подобные этим:

# ./pflogsumm.pl

Can’t locate Date/Calc.pm in @INC (@INC contains: /usr/libdata/perl/5.00503/mach

/usr/libdata/perl/5.00503 /usr/local/lib/perl5/site_perl/5.005/i386-freebsd /us

r/local/lib/perl5/site_perl/5.005 .) at ./pflogsumm.pl line 213.

BEGIN failed—compilation aborted at ./pflogsumm.pl line 213.

Это означает, что у Вас отсутствует модуль Perl по имени Date-Calc написанный Steffen Beyer. Он состоит из библиотеки языка С и модуля perl, который использует эту библиотеку. Нам этот модуль необходим для работы с датами Грегорианского календаря. Стандарт календаря описывается документами ISO/R 2015-1971, DIN 1355 и ISO 8601. На данный момент календарь такого типа используется во всех Европейских странах. В свою очередь для работы модуля Date-Calc нам потребуется модуль Bit-Vector. Берем самую последнюю версию, вышеописанных пакетов на сайте автора http://www.engelschall.com/~sb/download/ В случае если это сделать не удастся скачайте те же пакеты из центрального хранилища CPAN (Comprehensive Perl Archive Network). На момент написания статьи были актуальны версии Date-Calc-5.3 и Bit-Vector-6.3. Кладем оба пакета во временную директорию, например в /tmp. А затем начинаем распаковывать и устанавливать:

# tar zxvf Bit-Vector-6.3.tar.gz

# cd Bit-Vector-6.3

# perl Makefile.PL

# make

# make test

# make install

Если с Bit-Vector все прошло удачно, выполяем аналогичные действия для пакета Date-Calc. По окончанию установки снова запускаем pflogsumm.pl. Если на экране не появилось ни одной ошибки значит все требуемые модули находятся на месте и готовы к использованию.

Технология работы pflogsumm довольно проста. Пользователь передает на стандартный ввод скрипта файлы протокола почтовой системы. А результаты получает из стандартного вывода. Мне кажется что статистика должна собираться за прошедшую неделю, предыдущий и текущий день. Для выполнения этих задач мы напишем три вспомогательных скрипта. После их выполнения сформированные файлы должны записываться в директорию /usr/local/apache/htdocs/traffic/. С помощью web сервера apache работающего на этой же машине файлы из этой директории будут доступны начальству для просмотра с помошью любого web браузера. В дополнение к этому хотелось что бы недельная и ежедневная статистика приходила по почте администратору.

Для систем FreeBSD характерно хранение протокола почтовой системы длиной в одну неделю. В некоторых диалектах Linux принято хранить протоколы длиной в один месяц. Как и во многих других Unix подобных системах с помощью демона cron каждую ночь запускается задача ротации файлов протоколов. В результате работы этой задачи файл /var/log/maillog упаковывается с помощью программы gunzip и записывается вместо файла /var/log/maillog.0.gz. В других системах вместо gunzip используется bzip, но основной принцип это не меняет. Старое содержимое файла /var/log/maillog.0.gz записывается в файл /var/log/maillog.1.gz. Таким образом все файлы по цепочке смещаются вниз на один день. И только содержимое файла /var/log/maillog.6.gz никуда не копируется, а просто перезаписывается файлом /var/log/maillog.5.gz. Обдумав все вышесказанное приходим к выводу что недельный и ежедневный скрипты подсчета статистики должны запускаться после того как задача ротации логов успешно завершится. Во избежание всяких казусов уточните время запуска и завершения задачи ротации протоколов для вашей системы.

Ниже приводится содержимое файла /usr/local/pflogsumm/weekly.sh создающего недельную статистику.

#!/bin/sh

zcat /var/log/maillog.0.gz > /usr/local/pflogsumm/weekly.maillog

zcat /var/log/maillog.1.gz >> /usr/local/pflogsumm/weekly.maillog

zcat /var/log/maillog.2.gz >> /usr/local/pflogsumm/weekly.maillog

zcat /var/log/maillog.3.gz >> /usr/local/pflogsumm/weekly.maillog

zcat /var/log/maillog.4.gz >> /usr/local/pflogsumm/weekly.maillog

zcat /var/log/maillog.5.gz >> /usr/local/pflogsumm/weekly.maillog

zcat /var/log/maillog.6.gz >> /usr/local/pflogsumm/weekly.maillog

# Собираем полный недельный протокол в файл weekly.maillog

# такой подход облегчает обработку файла. Но в тоже время

# стоит убедиться что в системе хватит места для этого файла.

echo «/usr/local/apache/htdocs/traffic/» > /usr/local/pflogsumm/weekly.name

date -v-7d «+%d%b%Y-» >> /usr/local/pflogsumm/weekly.name

date -v-1d «+%d%b%Y» >> /usr/local/pflogsumm/weekly.name

# Записываем в файл weekly.name полный путь к результирующему файлу

/usr/local/pflogsumm/pflogsumm.pl /usr/local/pflogsumm/weekly.maillog —smtpd_stats —mailq —problems_first —rej_add_from —verbose_msg_detail —iso_date_time > `tr -d «\n» < /usr/local/pflogsumm/weekly.name` # Запускаем расчеты и перенаправляем стандартный вывод # в результирующий файл cat `tr -d "\n" < /usr/local/pflogsumm/weekly.name` | mail -s `date -v-7d "+%d%b%Y-"``date -v-1d "+%d%b%Y"` # Отправляем копию файла почтой администратору rm /usr/local/pflogsumm/weekly.maillog rm /usr/local/pflogsumm/weekly.name # Убираем за собой мусор Закончив с еженедельным скриптом перейдем к ежедневному собирающему данные за вчерашний день /usr/local/pflogsumm/daily.sh. Комментировать в нем нечего потому что это всего лишь упрощенная версия еженедельного расчета. #!/bin/sh zcat /var/log/maillog.0.gz > /usr/local/pflogsumm/daily.maillog

echo «/usr/local/apache/htdocs/traffic/» > /usr/local/pflogsumm/daily.name

date -v-1d «+%d%b%Y» >> /usr/local/pflogsumm/daily.name

/usr/local/pflogsumm/pflogsumm.pl -d yesterday /usr/local/pflogsumm/daily.maillog —mailq —problems_first —rej_add_from —verbose_msg_detail —iso_date_time > `tr -d «\n» < /usr/local/pflogsumm/daily.name` date -v-1d "+%d%b%Y" > /usr/local/pflogsumm/tmp.date

cat `tr -d «\n» < /usr/local/pflogsumm/daily.name` | mail -s `date -v-1d "+%d%b%Y"` [email protected] rm /usr/local/pflogsumm/daily.name rm /usr/local/pflogsumm/tmp.date rm /usr/local/pflogsumm/daily.maillog Последней и самой простой версией скрипта является задача запускающаяся ежечасно для сбора данных об активности на текуший день /usr/local/pflogsumm/hourly.sh #!/bin/sh echo "/usr/local/apache/htdocs/traffic/" > /usr/local/pflogsumm/tmp.name

date «+%d%b%Y» >> /usr/local/pflogsumm/tmp.name

/usr/local/pflogsumm/pflogsumm.pl -d today /var/log/maillog —mailq —problems_first —rej_add_from —verbose_msg_detail —iso_date_time > `tr -d «\n» < /usr/local/pflogsumm/tmp.name` rm /usr/local/pflogsumm/tmp.name Для моей системы оптимально было установить время выполнения всех трех скриптов таким образом. # crontab -e -u root 0 1 * * 1 /usr/local/pflogsum/weekly.sh 0 2 * * * /usr/local/pflogsum/daily.sh 20 * * * * /usr/local/pflogsum/hourly.sh К сожалению пользователи других систем скорее всего столкнутся с проблемами при использовании первых двух скриптов. Это может произойти из-за того что внутри наших скриптов мы используем команду date c ключем -v. Не все операционные системы поддерживают такую опцию и возможно Вам прийдется править скрипты. Выполнив все вышеописаное вы должны стать счастливым обладателем собственного почтового сервера. По материалам: linux.yaroslavl.ru

Рубрика: *Unix,*Linux, FreeBSD, Postfix | Оставить комментарий

FreeBSD + Postfix + DrWeb + Spamassasin

Скрещивание Postfix, DrWeb и Spamassasin на FreeBSD


Постараюсь написать как я все это прикрутил).
В принципе ничего трудного нет. Я не буду описывать как ставится Postfix, DrWeb, Spamassasin потмоу что много об этом написано в инете, да и если вы ставите из портов, то все должно встать без проблем.
Spamassasin потянет кучу чего, поэтому терпите.
У меня почта и антивирус работали гдето год, потом я решил прикрутить антиспам программу (Spamassasin). Можно было попробовать каспера прикрутить, но он стоит как крыло боинга.
И так считаем, что вы все поставили.
Postfix и drweb я прикрутил согласно инструкции без проблем. Все что надо было это подправить master.cf заменив:

Код
1 smtp      inet  n       —       n       —       —      smtpd

на

Код
1 smtp      inet  n       —       n       —       —      smtpd -o content_filter=filter:dummy

и добавить в конец файла

Код
1
2
filter    unix  —   n   n   —   —   pipe
flags=R user=drweb argv=/usr/local/drweb/drweb-postfix —conf=/usr/local/etc/drweb/drweb_postfix.conf -f ${sender} — ${recipient}

в вашем случае пути к файлам могут быть другие.
так же должен быть создан пользователь

Цитата
drweb:*:1147:1149:User &:/var/drweb:/bin/sh

запускаем все это хозяйство и смотреим лог, если ошибок нет, то у нас все работает и переходим к настройки антиспама.
При установке spamassasin должен был создаться пользователь

Цитата
spam:*:999:999:Spam Filter user:/usr/local/etc/mail/spamassassin/:/sbin/nologin

В наборе с drweb уже шел скрипт для прикрутке spamassasin, поэтому велосипед не изобретаем и используем этот скрипт, лежит он в папке /usr/local/drweb/doc/postfix/example.with_spamc/ и называется filters.sh
этот файл я просто переписал в директорию

Код
1 /usr/local/drweb

и подправил master.cf заменив

Код
1 flags=R user=drweb argv=/usr/local/drweb/drweb-postfix —conf=/usr/local/etc/drweb/drweb_postfix.conf -f ${sender} — ${recipient}

строкой

Код
1 flags=R user=drweb argv=/usr/local/drweb/filters.sh —conf=/usr/local/etc/drweb/drweb_postfix.conf -f ${sender} — ${recipient}

запустил spamd из

Код
1 /usr/local/etc/rc.d

, перегрузил postfix и начал смотреть логи. У мня сразу стало нормально работать.
Настроил под себя файл конфигурации spamassasin

Цитата
/usr/local/etc/mail/spamassassin/local.cf

.
Вот, что у меня в нем:

Код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
rewrite_subject 1
subject_tag ***SPAM***:#
trusted_networks         127.0.0.1
trusted_networks         192.168.0.0
#
required_hits            5
use_bayes                1
skip_rbl_checks          1
report_safe              0
use_razor2               0
use_dcc                  0
use_pyzor                0
#
ok_languages             ru en
ok_locales               ru en
#report_charset           windows-1251
report_charset           koi-8r
lang                     ru
#
score FROM_ILLEGAL_CHARS 1.1
score SUBJ_ILLEGAL_CHARS 1.3
score HEAD_ILLEGAL_CHARS 1.5
score HABEAS_SWE         0.0
#
bayes_path               /var/drweb/.spamassassin/bayes
#
bayes_auto_learn         0
bayes_auto_learn_threshold_nonspam 0.5
bayes_auto_learn_threshold_spam 10.0
#
add_header spam Flag _YESNOCAPS_
add_header all Status _YESNO_, hits=_HITS_ required=_REQD_ tests=_TESTS_ autolearn=_AUTOLEARN_ version=_VERSION_
add_header all Level _STARS(*)_
add_header all Report _REPORT_

я в нем указал, что надо использовать базы bayes, еоторые у меня находятся в папке

Код
1 /var/drweb/.spamassassin

. Базы должны принадлежать пользователю drweb иначе ничего хорошего не получится).
Отключил автообучение bayes, лучше я это сделаю вручную, а то вы так не получите ни одного письма).
Поставил при какой оценки считать письмо спамом, у меня это 5, для начала можно это значение увеличить.
Также настроено перезаписывать тему, теперь письмо которое определилось как спам добавляется в теме строчка ***SPAM***.
Также для работы bayes необходимо скормить spamassasin минимум 200 хороших писем и 200 спам-писем. Обучение производится с помощью команды sa-learn.
Например:
хорошие письма

Код
1 sa-learn —ham /path/to/dir/with/good/letters

для спам писем

Код
1 sa-learn —spam /path/to/dir/with/spam/letters

Я пользуюсь почтовым клиентом The Bat, поэтому я выделил все спам письма и сделал их экспорт в формате .eml, закачал на сервер и скормил spamassasin.
После скармливания я делаю sa-learn —rebuild, перезапускаю spamd (не уверен что надо это делать). Не забывайте после перезагрузки spamd, проверить кому принадлежал базы bayes.
Можно посмотреть сколько и чего у вас закачано:

Код
1
2
3
4
5
6
7
8
9
10
11
%sa-learn —dump magic
0.000          0          2          0  non-token data: bayes db version
0.000          0       1274          0  non-token data: nspam
0.000          0        251          0  non-token data: nham
0.000          0     118323          0  non-token data: ntokens
0.000          0 1014137321          0  non-token data: oldest atime
0.000          0 1114176196          0  non-token data: newest atime
0.000          0 1114176213          0  non-token data: last journal sync atime
0.000          0          0          0  non-token data: last expiry atime
0.000          0          0          0  non-token data: last expire atime delta
0.000          0          0          0  non-token data: last expire reduction count

Гдето через месяца 2 я настроил procmail так, чтобы письма с пометкой в теме ***SPAM*** сбрасывались в другой почтовый ящик и просто периодически его просматриваю, или просто сразу очищаю)

P.S. Я надеюсь, что статья хоть както поможет вам. Честно сказать, я пишу наверное не очень хорошо, но если вдруг что не понятно, то задавайте вопросы, я постараюсь ответить и помочь. Если кто знает по этой теме больше, то добавляйте или пишите другие статья, я готов все выложитьи указать вас как автора.

По материалам: yakimchuk.ru

Рубрика: *Unix,*Linux, FreeBSD, Postfix | Оставить комментарий