Возможно вы искали: 'Club Football 2005: FC...'

May 15 2025 19:11:07
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Установка и настройка Exim с web-интерфейсом Xams во FreeBSD (exim web mail freebsd imap)

Установка и настройка Exim с web-интерфейсом Xams во FreeBSD (exim web mail freebsd imap)

Ключевые слова: exim, web, mail, freebsd, imap, (найти похожие документы)

From: Maxim Vasilets <maxim.vasilets@gmail.com.>
Newsgroups:
Date: Mon, 10 Aug 2009 14:31:37 +0000 (UTC)
Subject: Установка и настройка Exim с web-интерфейсом Xams во FreeBSD

Установка и настройка Exim с веб-интерфейсом Xams для управления почтовым сервером.
Exim + Xams + MySQL + Courier-Imap + Clam-AV + SpamAssassin + WebMail

В этой статье, я расскажу о решении для почтовых систем на базе Exim с
удобным web-интерфейсом XAMS http://www.xams.org

Демо версию можно посмотреть здесь http://xamsdemo.netmaster.com.ua
Пароль и логин: demo

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


Хотя проект Xams развивается медленно, но уже на данный момент он имеет
внушительный набор функций:

* Конфигурирование настроек почтового сервера через web-интерфейс.
* Управление любым количеством почтовых доменов, почтовых ящиков и рассылок.
* Распределение прав для реселлеров по управлению необходимыми доменами.
* Возможность задать квоту на размер почты всего домена и отдельного почтового ящика.
* Управление Spam-фильтром и Антивирусом.
* Каждый пользователь может самостоятельно изменить настройки своего
постового ящика: сменить пароль, выключить/включить спам-фильтр,
выключить/включить антивирус , задать автоответ.
* Есть плагины для Horde и SquirrelMail.
* Управление DNS-зонами Bind9 через web-интерфейс.



Я не буду углубляться в тонкости установки и настройки сопутствующего
софта, информацию об этом можно легко найти в интернете, я остановлюсь
только на ключевых моментах.

Xams мы будем устанавливать на FreeBSD 7.1-RELEASE, с этим у меня
тоже возникли проблемы так как по умолчанию Xams поддерживает только
Linux. Пришлось подправить несколько параметров, создать скрипты запуска
и все заработало на FreeBSD. Для линуксоидов эта статья также послужит
хорошим руководством по установке Xams, хотя некоторые значения и могут
меняться.

Приступим к установке софта, конечно же у кого он уже установлен могут
пропустить этот раздел.


Устанавливаем MySQL (5.1.32)

# cd /usr/ports/databases/mysql51-server/
# make clean && make install
# echo mysql_enable="YES" >> /etc/rc.conf
# /usr/local/etc/rc.d/mysql-server start


Задаем пароль для root

# mysqladmin -u root password 'new_password'


Устанавливаем Apache (2.2.11_3)

При установке не забываем включить модуль SSL

# cd /usr/ports/www/apache22
# make clean && make install
# echo apache22_enable="YES" >> /etc/rc.conf


Устанавливаем Php5 (5.2.9)

Включаем модуль APACHE

# cd /usr/ports/lang/php5
# make config
# make clean && make install


Создаем файл /usr/local/etc/apache22/Includes/php.conf и добавляем туда строчки

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.php


Устанавливаем Php5-extensions (1.3)

# cd /usr/ports/lang/php5-extensions
# make config


Включаем модули BZ2, GD, MCRYPT, MYSQL, OPENSSL, XSL, ZIP, ZLIB

# make clean && make install


Устанавливаем Perl5.8 (5.8.9_2)

# cd /usr/ports/lang/perl5.8
# make clean && make install


Устанавливаем необходимые нам модули (команда install или force install)

# cpan
cpan > install DBI
cpan > force install DBD::mysql
cpan > install Unix::Syslog
cpan > install CDB_File
cpan > install Config::IniFiles
cpan > install File:chdir


Устанавливаем Exim4 (4.69) с поддержкой MySQL и вместе с SpamAssassin3.2 (3.2.5_2)

# cd /usr/ports/mail/exim-sa-exim
# make clean && make WITH_MYSQL=YES && make install


Выключаем sendmail

# /etc/rc.d/sendmail stop


И создаем ссылку на exim

# mv /usr/sbin/sendmail /usr/sbin/sendmail.old
# ln -s /usr/local/sbin/exim /usr/sbin/sendmail


Изменяем /etc/rc.conf

# echo sendmail_enable="NO" >> /etc/rc.conf
# echo sendmail_submit_enable="NO" >> /etc/rc.conf
# echo sendmail_outbound_enable="NO" >> /etc/rc.conf
# echo sendmail_msp_queue_enable="NO" >> /etc/rc.conf
# echo spamd_enable="YES" >> /etc/rc.conf
# echo exim_enable="YES" >> /etc/rc.conf


Устанавливаем Courier-Imap (4.4.1,2)

# cd /usr/ports/mail/courier-imap/
# make clean && make install
# echo courier_imap_pop3d_ssl_enable="YES" >> /etc/rc.conf
# echo courier_imap_imapd_ssl_enable="YES" >> /etc/rc.conf


Устанавливаем ClamAV (0.94.2)

# cd /usr/ports/security/clamav
# make clean && make install
# echo clamav_freshclam_enable="YES" >> /etc/rc.conf
# echo clamav_clamd_enable="YES" >> /etc/rc.conf


Устанавливаем Xams (0.0.19)

Загружаем Xams с официального сайта http://www.xams.org/pages/download/download.php
Или с альтернативной ссылки http://netmaster.com.ua/files/xams-0.0.19.tar.gz

# wget http://netmaster.com.ua/files/xams-0.0.19.tar.gz


Распаковываем файл

# tar zxvf xams-0.0.19.tar.gz


Далее копируем файл autogen.conf.orig в autogen.conf и изменяем в нем
нужные нам параметры

# cd xams-0.0.19
# cp autogen.conf.orig autogen.conf


У меня этот файл выглядит так:

VERSION = 0.0.19
XAMS_USER = mailnull
XAMS_PID_DIR = /var/run/exim
XAMS_BINDIR = /usr/local/xams/
XAMS_CONFIG_DIR = /usr/local/etc/xams
XAMS_CONFIG = xams.conf
EXIM_CONFIG_DIR = /usr/local/etc/exim
EXIM_BINDIR = /usr/local/sbin/
EXIM_PID_DIR = /var/run/exim
EXIM_SPOOL_DIR = /var/spool/exim
EXIM_USER = mailnull
EXIM_GROUP = mail
MAIL_GROUP = mail
XAMS_SQL_HOST = localhost
XAMS_SQL_DATABASE = xamsdb
XAMS_SQL_USER = xamsusr
XAMS_SQL_PASSWORD = db_password
MYSQL_SETNAMES = UTF8
EXIM_SQL_HOST = localhost
EXIM_SQL_DATABASE = xamsdb
EXIM_SQL_USER = xamsusr
EXIM_SQL_PASSWORD = db_password
MAILSCANNER_INCOMING = /var/spool/exim-incoming
MAILSCANNER_OUTGOING = /var/spool/exim-outgoing
MAILSCANNER_OUTGOING_LOG = /var/log/exim-outgoing
COURIER_SOCKET_DIR = /var/run/authdaemond
MAILDIR = /var/mail
XAMS_GUI_DIR = /usr/local/www/xams
WEBMAIL_DIR = /usr/local/www/webmail
XMU_BACKUP_DIR = /usr/local/etc/xams/archives
PHP_PATH = /usr/local/bin/php
PERL_PATH = /usr/bin/perl


Далее что бы во FreeBSD правильно сработал скрипт autogen.sh нужно
подправить 43 строчку, заменить с

test -x /usr/bin/stat && chmod $(stat -c %a $f) $f2


На

test -x /usr/bin/stat && chmod $( stat -f %Lp $f) $f2


Теперь можем запускать скрипт autogen.sh

# ./autogen.sh


Он сгенерирует конфигурационные файлы с нужными параметрами и скрипты SQL
для создания структуры базы данных для Xams

Выполняем скрипты SQL

# cd xams-0.0.19/database/mysql
# mysql -p < xams-create.sql
# mysql -p xamsdb < xams-struct.sql
# mysql -p xamsdb < xams-data.sql


Теперь добавляем администратора для управления Xams

# mysql -p xamsdb
mysql> INSERT INTO pm_admins (Name, Password, Added) VALUES ("admin", MD5("password"), NOW());


Создаем все необходимые папки

# mkdir /var/run/exim
# mkdir /usr/local/xams/
# mkdir /usr/local/etc/xams
# mkdir /usr/local/www/xams
# mkdir /usr/local/www/xams/cache
# chown -R www:www /usr/local/www/xams/
# mkdir /usr/local/etc/xams/archives
# mkdir /usr/local/etc/xams/autoreply
# chown www:wheel /usr/local/etc/xams/autoreply/
# chmod g+wx /usr/local/etc/xams/autoreply/
# chown mailnull:wheel /usr/local/etc/xams/
# chown mailnull:wheel /usr/local/etc/xams/archives/


Копируем файлы в нужные папки

# cp -R xams-0.0.19/gui/* /usr/local/www/xams/
# cp xams-0.0.19/config/exim4/*.conf /usr/local/etc/xams/
# cp xams-0.0.19/config/exim4/mysql/*.conf /usr/local/etc/xams/
# cp xams-0.0.19/config/xams/xams.conf /usr/local/etc/xams/
# cp xams-0.0.19/docs/man/* /usr/share/man/man8/
# cp xams-0.0.19/scripts/*.pm /usr/local/lib/perl5/5.8.9/
# cp xams-0.0.19/scripts/authdaemon /usr/local/xams/
# cp xams-0.0.19/scripts/export_dns.pl /usr/local/xams/
# cp xams-0.0.19/scripts/get_maildirsize /usr/local/xams/
# cp xams-0.0.19/scripts/xmu /usr/local/xams/


создаем файл для Apache /usr/local/etc/apache22/Includes/xams.conf

Alias /xams/ "/usr/local/www/xams/"
<Directory /usr/local/www/xams>
Options -Indexes MultiViews
AllowOverride Options
SSLRequireSSL
Order allow,deny
Allow from all
</Directory>


Обратите внимание что мы включаем доступ по https

Создаем файл /usr/local/www/xams/.htaccess для задания необходимых переменных для Xams

php_flag register_globals Off
php_flag allow_call_time_pass_reference Off
php_flag display_errors On
php_flag magic_quotes_gpc Off
php_flag short_open_tag Off
php_value error_reporting 2047


Далее начинаем конфигурировать сервисы, начнем с Courier-Imap

# cd /usr/local/etc/courier-imap


В файле imapd обязательно задаем нужное значение для параметра

IMAP_MAILBOX_SANITY_CHECK=0


Генерим сертификаты для защищенного соединения

# cd /usr/local/share/courier-imap
# dd if=/dev/urandom of=imapd.rand count=1


Сертификат генерится на 10 лет

# openssl req -new -x509 -days 3650 -nodes -out imapd.pem -keyout imapd.pem
# openssl gendh -rand imapd.rand 512 >>imapd.pem
# openssl x509 -subject -dates -fingerprint -noout -in imapd.pem
# rm imapd.rand


Тоже самое делаем для сертификата под POP3

# dd if=/dev/urandom of=pop3d.rand count=1
# openssl req -new -x509 -days 3650 -nodes -out pop3d.pem -keyout pop3d.pem
# openssl gendh -rand pop3d.rand 512 >>pop3d.pem
# openssl x509 -subject -dates -fingerprint -noout -in pop3d.pem
# rm pop3d.rand


Что бы Courier-Imap мог авторезироваться в базе xams нужно заменить
стандартный демон courier-authdaemond на демон который идет вместе с Xams

Для этого нужно создать скрипт для запуска /usr/local/etc/rc.d/xams-authdaemond.sh


#!/bin/sh
#
# An rc.subr-style startup script for xams-authdaemond service.
# PROVIDE: xams_authdaemond
# REQUIRE: LOGIN
# KEYWORD: FreeBSD shutdown
# Define these xams_authdaemond_* variables in one of these files:
# /etc/rc.conf
# /etc/rc.conf.local
#
# DO NOT CHANGE THESE DEFAULT VALUES HERE
xams_authdaemond_enable=${xams_authdaemond_enable-"NO"}
. /etc/rc.subr
name="xams_authdaemond"
rcvar=`set_rcvar`
command="/usr/local/xams/authdaemon"
start_cmd="authdaemond_cmd start"
stop_cmd="authdaemond_cmd stop"
restart_cmd="authdaemond_cmd stop && authdaemond_cmd start"
rundir=/var/run/authdaemond/
pidfile="${rundir}/authdaemon-xams.pid"
procname="/usr/local/xams/sbin/authdaemon"

load_rc_config $name

authdaemond_cmd () {
case $1 in
start)
echo -n "Starting XAMS authdaemon: "
${command}
echo "${command}."
;;
stop)
echo -n "Stopping XAMS authdaemon: "
if [ -e $pidfile ] ; then
kill `cat $pidfile`
echo "${command}."
else
echo "no ${command} found running."
fi
;;
esac
}
run_rc_command "$1"




Делаем файл исполняемым

# chmod a+x /usr/local/etc/rc.d/xams-authdaemond.sh


И добавить строчку xams_authdaemond_enable="YES" в файл /etc/rc.conf
Даем папкам и файлам права на доступ

# chown mailnull:mail /var/run/authdaemond
# chown mailnull:mail /var/run/exim/


Пробуем запускать эти сервисы

# /usr/local/etc/rc.d/xams-authdaemond.sh start
# /usr/local/etc/rc.d/courier-imap-imapd-ssl start
# /usr/local/etc/rc.d/courier-imap-pop3d-ssl start


Смотрим в логи, если все нормально движемся дальше.

Настраиваем ClamAV

Настраиваем по своему усмотрению ClamAV и запускаем его

# /usr/local/etc/rc.d/clamav-clamd start


Для обновлений баз запускаем Freshclam

# /usr/local/etc/rc.d/clamav-freshclam start


Настраиваем SpamAssassin

В файле /usr/local/etc/xams/sa-exim.conf меняем параметр SAspamcpath
на SAspamcpath: /usr/local/bin/spamc

# cd /usr/local/etc/mail/spamassassin


Для начала обновим динамический правила

# /usr/local/bin/sa-update --nogpg


И добавим выполнение этой команды по расписанию, добавим в crontab
примерно вот такую запись

# Update dynamic rules for SpamAssassin
* 8 * * * root /usr/local/bin/sa-update --nogpg && /usr/local/etc/rc.d/sa-spamd restart > /dev/null


Далее продолжаем настройку

# cp local.cf.sample local.cf


В файле local.cf я бы рекомендовал изменить некоторые настройки
Разкоментируем параметр

use_bayes 1
bayes_auto_learn 1


Добавляем

bayes_auto_learn_threshold_nonspam -1
bayes_auto_learn_threshold_spam 12.0
use_auto_whitelist 1


Запускаем sa-spamd

# /usr/local/etc/rc.d/sa-spamd start


По умолчанию значение при котором письмо считается спамом задается в
файле /usr/local/etc/mail/spamassassin/local.cf параметром required_score

Но при использовании sa-exim это значение задается в файле
/usr/local/etc/xams/sa-exim.conf параметрами Sapermreject и Satempreject

Задаете значения по своему усмотрению, по умолчанию эти значения равны 6
и 7 соответственно.

В том же файле что бы не сохранять отброшенные письма и письма с
ошибками выключаем несколько параметров

SAtimeoutSavCond: 0
SAerrorSavCond: 0
SAdevnullSavCond: 0
SApermrejectSavCond: 0
SAtemprejectSavCond: 0
SAspamacceptSavCond: 0
SAnotspamSavCond: 0


Настраиваем Exim

# mv /usr/local/etc/exim/configure /usr/local/etc/exim/configure.dist
# mv /usr/local/etc/exim/sa-exim.conf /usr/local/etc/exim/sa-exim.conf.dist
# ln -s /usr/local/etc/xams/exim.conf /usr/local/etc/exim/configure
# ln -s /usr/local/etc/xams/sa-exim.conf /usr/local/etc/exim/sa-exim.conf

# cd /usr/local/etc/xams/


В файле exim-custom.conf меняем настройки
Разкоментируем параметры

TLS_ENCRYPTION = On
VIRUS_MODULE = On
SPAMASSASSIN_MODULE = On
SENDER_VERIFY_CALLBACK_DNS = true
SENDER_VERIFY_CALLBACK_DYNAMIC = true
SENDER_VERIFY_CALLBACK_RBL = true
RBL_LIST = cbl.abuseat.org : dnsbl.sorbs.net : dnsbl.njabl.org : cbl.abuseat.org


Изменяем параметр av_scanner = clamd:/var/run/clamav/clamd.ctl
На av_scanner = clamd:/var/run/clamav/clamd.sock
Комментируем строку

local_scan_path = /usr/lib/exim4/local_scan/sa-exim.so


Для работы TLS необходимо сгенерить сертификат для Exim

# cd /usr/local/etc/xams/
# openssl genrsa 1024 > server.key
# openssl req -new -key server.key -x509 -days 3650 -out server.crt


Далее в файле exim.conf изменяем два параметра на правильные пути

tls_certificate = /usr/local/etc/xams/server.crt
tls_privatekey = /usr/local/etc/xams/server.key


Перед первым запуском Exim нужно обязательно выполнить команду

# /usr/local/xams/xmu --cdbdomlist --homedirs --autoreply


Запускаем Exim

# /usr/local/etc/rc.d/exim start


Настраиваем Apache

# cd /usr/local/etc/apache22


Для включения SSL в Апаче в конце файла httpd.conf разкоментируем строку

Include etc/apache22/extra/httpd-ssl.conf


Далее если сертификаты не созданы создаем их вручную

# openssl genrsa 1024 > httpd.key
# openssl req -new -key httpd.key -x509 -days 3650 -out httpd.crt


В файле extra/httpd-ssl.conf в параметрах SSLCertificateFile и
SSLCertificateKeyFile прописываем правильные пути к ним.

Запускаем Apache

# /usr/local/etc/rc.d/apache22 start


Проверяем Xams

Открываем страничку с адресом https://servername/xams/ И
проверяем Xams Для входа используем логин admin и пароль который во
время установки Xams мы добавляли в базу MySQL.

Для начала нужно в разделе XAMS Accounts создать первого
реcеллера, а уже потом создаём первый почтовый домен в разделе
Sites и первого пользователя в разделе Users

Добавляем запись в crontab

# Update XAMS's domains & users
*/3 * * * root /usr/local/xams/xmu --cdbdomlist --homedirs --autoreply > /dev/null


(Обратите внимание что после добавления пользователя в Xams его домашняя
папка для писем будет создана только после того как сработает скрипт xmu
прописанный в crontab, в нашем случае он срабатывает каждые 3 минуты.)

Осталось настроить какой нибудь почтовый клиент и проверить всю почтовую систему.

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

Для POP3 - SSL (порт 995)
Для SMTP - TLS если доступен (порт 25)
Для IMAP - SSL (порт 993)

Имя пользователя при аутентификации обязательно должно указываться
вместе с именем домена (пример: user@example.com)

Примеры настроек разных почтовых клиентов можно посмотреть здесь
http://netmaster.com.ua/docs/screenshots.html

Далее смотрим логи /var/log/maillog и /var/log/exim/mainlog
Проверяем нет ли каких нибудь ошибок.

Работает ли антивирус можно проверить скачав пример вируса допустим с
сайта http://vx.netlux.org/vl.php

В файле /usr/local/www/xams/eximfilter.php я обнаружил ошибку в функции
работы с фильтрами.

Для того что бы исправить ее открываем файл eximfilter.php и на строке
62 заменяем троку

<h1><?php echo $tl->get('')m-Filter Configuration ?></h1>


на

<h1><?php echo $tl->get('Exim-Filter Configuration') ?></h1>


Мы закончили основной этап установки и первичной конфигурации Xams.


Дополнительная настройка

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

В файле exim-custom.conf параметром RBL_LIST мы задаем список
публичных черных списков которые помогут вам отбивать спам. Зачастую
некоторые из серверов перестают отвечать, из-за этого обработка писем
затормаживается.

У меня этот список выглядит так

RBL_LIST = cbl.abuseat.org : dnsbl.sorbs.net : list.dsbl.org : multihop.dsbl.org : sbl-xbl.spamhaus.org : bl.spamcop.net


В этом же файле параметром QUOTA_THRESHOLD мы можем задать величину в
процентах, когда пользователю будет отправляться предупреждение о
переполнении почтового ящика.

Почти всегда нам необходимо ограничить максимальный размер письма.
Это задается в файле exim-global.conf

message_size_limit = 15M
return_size_limit = 30K
bounce_return_size_limit = 30K


Так же в этой системе не реализована система черных и белых списков.
Эту функцию мы должны добавить сами.
Создаем соответствующие файлы где будут перечислятся доверенные и не доверенные отправители

# touch /usr/local/etc/exim/allowhosts


В этот файл мы будем добавлять ip адреса или адреса сетей отправка писем
с которых не будет блокироваться спам фильтром или публичными черными
списками. (пример: 193.143.223.145 или 193.143.223.128/25)

# touch /usr/local/etc/exim/allowsenders


В этот файл мы добавляем e-mail адреса или домены отправка писем с
которых не будут блокироваться спам фильтром или публичными черными
списками (пример: user@mail.com или *@mail.com)

# touch /usr/local/etc/exim/denysenders
# touch /usr/local/etc/exim/denyhosts


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

Далее в файле exim.conf примерно на строчке 55 мы добавляем

hostlist allowhosts = /usr/local/etc/exim/allowhosts
addresslist allowsenders = /usr/local/etc/exim/allowsenders
addresslist denysenders = /usr/local/etc/exim/denysenders
hostlist denyhosts = /usr/local/etc/exim/denyhosts


В этом же файле переходим в раздел acl_check_rcpt
Примерно на строчке 273 перед # Default tag мы добавляем

warn message = X-SA-Do-Not-Run: Yes
senders = +allowsenders
log_message = No scanned, e-mail adress is in the trusted list (account $acl_m0 off)
set acl_m6 = 1

warn message = X-SA-Do-Not-Run: Yes
hosts = +allowhosts
log_message = No scanned, ip adress is in the trusted list (account $acl_m0 off)
set acl_m6 = 1


Это позволит не запускать спам фильтр для доверенных писем
Далее находим строчку .ifdef SENDER_VERIFY_CALLBACK_RBL
И немного правим это правило, добавляем наши переменные allowsenders и allowhosts.
Получается вот такое выражение

.ifdef SENDER_VERIFY_CALLBACK_RBL
# Sender callback verification for hosts/domains blacklisted by RBL
deny sender_domains = ! +local_domains : ! +relay_to_domains : ! +sender_callback_domains
senders = ! +allowsenders
hosts = ! +relay_from_hosts : ! +allowhosts
! authenticated = *
log_message = Listed in RBL $dnslist_domain${if !eq {$dnslist_text}{} { ($dnslist_text)}{}} - Callback check forced
message = Sender verification failed
dnslists = RBL_LIST
! verify = sender/defer_ok/callout=10s,defer_ok
.endif


Осталось добавить блокирующие списки.
Переходим в раздел acl_check_rcpt и в самом начале добавляем 2 строчки

deny senders = +denysenders
message = Sender $sender_address is blocked. Sender is in the deny list

deny hosts = +denyhosts
message = Sender $sender_address is blocked. Sender is in the deny hosts list


Это все что нам необходимо для функциональности белых и черных списков.

Продолжаем дальше.

Exim по умолчанию не добавляет Message-Id для писем в которых его
нет. Этот параметр необходим для идентификации уникальности каждого
письма. Почти всегда это значение задает почтовый клиент и проблем в
таком случае не возникает. Но если почтовый клиент не добавляет это
значений могут возникнуть необъяснимые ошибки, например, отправляется
одно письмо, но каждому адресату приходит столько писем, сколько было
адресов в поле СС

Мы можем заставить Exim добавлять это значений, если почтовый клиент его
не добавил. Для этого переходим в раздел acl_check_content и в самом
начале добавляем

warn condition = ${if !def:h_Message-Id: {1}}
message = Message-Id: <E$message_id@$primary_hostname>
log_message = Added Message-Id <E$message_id@$primary_hostname>


Параметр Message-Id обязательно должен начинаться с прописной буквы, для
этого к началу message_id добавляется символ E

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

# Some malicious people have used this file format to spread viruses. Consequently, the mail server has prevented your ma
deny message = Your message contained an ($found_extension) file.
demime = scr:vbs:bat:lnk:pif:com:cmd:exe


(Обратите внимание что эти функции, установка Message-Id и
блокирование запрещенных файлов, будут работать только тогда когда в
файле exim-custom.conf установлен параметр VIRUS_MODULE = On)

Иногда случается так что спам-фильтр отбрасывает необходимые и зачастую
очень важные письма. Как решения я могу предложить вариант когда все
письма отмеченные как спам складываются в отдельный почтовый ящик в
которым письма старше допустим 30 дней автоматически удаляются. В любой
момент администратор почтового сервера может зайти на этот ящик по
web-почте и восстановить те письма которые не были доставлены адресату.

Реализуем эту функцию

C помощью Xams создаем пользователя rejected_spam

Для сохранения отброшенных писем задаем несколько параметров в файле /usr/local/etc/xams/sa-exim.conf

SApermrejectSavCond: 1
SApermrejectsave: /var/mail/DomainName/rejected_spam
SAtemprejectSavCond: 1
SAtemprejectsave: /var/mail/DomainName/rejected_spam


Теперь для удаления писем старше 30 дней в crontab добавляем запись

0 1 * * * root /usr/bin/find /var/mail/DomainName/rejected_spam -type f -mtime +30 -exec rm {} ;


Вместо DomainName указываем правильный путь к домашней папке вашего домена


Установка и настройка WebMail

Есть много web-интерфейсов для почты, например Horde-Imp
(http://horde.org/imp/) или SquirrelMail (http://www.squirrelmail.org/)

Я предпочитаю использовать Nutsmail-BlueHive, это основанный на
SquirrelMail почтовый web-клиент. Он довольно прост в использовании и в
настройке с симпатичным дизайном.

Скриншеты вы можете посмотреть здесь http://netmaster.com.ua/docs/bluehive-screenshots.html

Скачиваем архив здесь (http://netmaster.com.ua/files/bluehive-webmail.tgz)

Устанавливаем pear-DB (1.7.13,1)

Для некоторых компонентов нам понадобится это дополнение

# cd /usr/ports/databases/pear-DB
# make clean && make install


Распаковываем архив в папку /usr/local/www/webmail
Создаем конфигурационный файл /usr/local/etc/apache22/Includes/webmail.conf для Apache

Alias /webmail/ "/usr/local/www/webmail/"
<Directory /usr/local/www/webmail>
Options -Indexes MultiViews
AllowOverride Options
SSLRequireSSL
Order allow,deny
Allow from all
</Directory>


Наша web-почта работает по протоколу Imap но без шифрования. Только для
web-почты мы запустим демон Imap без SSL на локальном адресе 127.0.0.1

В /etc/rc.conf добавим строку courier_imap_imapd_enable=YES

В его настройках в файле /usr/local/etc/courier-imap/imapd в параметре
ADDRESS задаем значение 127.0.0.1

И запускаем его

# /usr/local/etc/rc.d/courier-imap-imapd start


Теперь настраиваем web-почту. Запускаем скрипт конфигурирования

# /usr/local/www/webmail/config/conf.pl


Все настройки задаем по собственному усмотрению, в разделе Server
Settings обязательно задаем настройки Imap сервера - localhost:143, SMTP
сервера localhost:25 и в параметре Domain задаем домен

В поставке Xams под Horde и SquirrelMail идут несколько плагинов для
смены пароля и автоответа.

Нас интересуют плагины для SquirrelMail.
Переходим в папку xams-0.0.19/contrib/squirrelmail
(В начале установки Xams когда вы запускали скрипт генерации настроек
(autogen.sh) он должен был в этих плагинах прописать нужные настройки
для доступа к MySQL базе, если вы не запускали этот скрипт просто
отредактируйте файл xams_global/config.php)

Копируем все 3 папки в папку плагинов нашей web-почты /usr/local/www/webmail/plugins
Копируем файл xams-0.0.19/contrib/squirrelmail/xams-webmail.conf в папку с файлами
конфигурации /usr/local/etc/xams

# cp xams-0.0.19/contrib/squirrelmail/xams-webmail.conf /usr/local/etc/xams


Теперь в плагинах нам нужно указать где лежит этот файл конфигурации
Открываем на редактирование файл /usr/local/www/webmail/plugins/xams_global/config.php
И в параметре define('_CONFIG_FILE', ''); прописываем правельный путь

define('_CONFIG_FILE', '/usr/local/etc/xams/xams-webmail.conf');


Запускаем скрипт конфигурации /usr/local/www/webmail/config/conf.pl
И в разделе Plugins включаем 3 наших плагина
xams_global, xams_autoreply, xams_chpasswd
Теперь в нашей web-почте в разделе Options появились дополнительные
пункты по смене пароля и автоответа (Password changing, Autoreply update).


Я сделал еще один плагин для Xams позволяющий каждому пользователю
отключать для себя спам-фильтр и антивирус для входящих и исходящих
сообщений.
Качаем архив с http://netmaster.com.ua/files/xams_spamantivir.tgz

Точно так же распаковываем архив в /usr/local/www/webmail/plugins
Запускаем скрипт конфигурации и включаем этот плагин.
Перезапускаем Apache и пробуем зайти на web-почту
https://servername/webmail/
Не забываем что логин нужно писать полный вместе с именем домена (user@exemple.com)

SPF-записи

Очень советую на вашем DNS добавить SPF-запись.
http://www.openspf.org/Introduction
http://ru.wikipedia.org/wiki/Sender_Policy_Framework

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

Пример: example.com. IN TXT "v=spf1 +mx -all"
v= определяет используемую версию SPF.
+mx разрешает прием писем, если отправляющий узел указан в одной из MX-записей для example.com.
Строка завершается "-all" - указанием того, что сообщения, не прошедшие верификацию
с использованием перечисленных механизмов, следует отвергать.

Настраиваем управление DNS с помощью Xams

Копируем файлы конфигурации в папку Xams

# cp xams-0.0.19/config/bind/* /usr/local/etc/xams


Создаем папку

# mkdir /etc/namedb/xams-zones/


Подправляем файл /usr/local/etc/xams/named_master_template, указываем правильные пути

zone "<<name>>" {
type master;
file "/etc/namedb/xams-zones/<<name>>";
};


В файле xams.conf указываем нужные параметры для DNS

zone_files = /etc/namedb/xams-zones/
zone_template = /usr/local/etc/xams/zone_template
named_file = /etc/namedb/xams-zones.conf
named_master_template = /usr/local/etc/xams/named_master_template
named_slave_template = /usr/local/etc/xams/named_slave_template


В конце конфигурационного файла Bind9 /etc/namedb/named.conf, что бы
подключить файлы что будет генерить Xams, дописываем строчку

include "/etc/namedb/xams-zones.conf";


После того как мы в Xams будем менять настройки DNS нужно перегружать
Bind, что бы не делать это вручную пишем не большой скрипт и
прописываем его в crontab

Создаем скрипт

# touch /usr/local/xams/dns_reload.sh
# chmod a+x /usr/local/xams/dns_reload.sh

#!/bin/sh
DCOUNT=`/usr/local/xams/xmu --update-bind | grep "No zones to update" | wc -l`
if [ $DCOUNT = 0 ]; then
/usr/sbin/rndc reload
fi


Добавляем запись в crontab

*/3 * * * * root /usr/local/xams/dns_reload.sh > /dev/null


Для того что бы пункт по управленю DNS появился в меню нужно в файле
/usr/local/www/xams/include/xml/menu.xml на строчке 21 разкомонтировать
параметр

Открываем Xams https://servername/xams/, заходим в раздел DNS,
нажимаем create a new Zone.

(Я обнаружил ошибку при автоматическом увеличении поля serial для зоны,
последнее число изменялось в диапазоне от 1-9 а не как задумывалось
1-99, при этом если вы за день делали больше чем 10 изменения счетчик
становился меньше чем в начале дня. Для исправления переходим в фале
/usr/local/www/xams/include/dns.php на строчку 85 и заменяем число 9 на
8 что бы строчка выглядела так $date_stored2 =
(int)substr($this->serial, 8, 2); )

Ссылки по стать:

Оригинал статьи: http://netmaster.com.ua/docs/xams.html
Официальный сайт Xams: http://www.xams.org
Демо Xams: http://xamsdemo.netmaster.com.ua
Альтернативная ссылка для скачивания Xams: http://netmaster.com.ua/files/xams-0.0.19.tar.gz
Дополнительный плагин под Xams: http://netmaster.com.ua/files/xams_spamantivir.tgz
Примеры конфигурационных файлов Xams: http://netmaster.com.ua/files/xams_conf.zip
Настройки почтовых клиентов: http://netmaster.com.ua/docs/screenshots.html
Примеры вирусов для проверки антивируса: http://vx.netlux.org/vl.php
Web-почта: http://netmaster.com.ua/files/bluehive-webmail.tgz
Скриншеты web-почты: http://netmaster.com.ua/docs/bluehive-screenshots.html

Дополнительные ссылки:
Sa-Exim-Stats - Анализатор логов Sa-Exim с выводом статистики http://nossie.addicts.nl/projects/sa-exim-stats
Exilog - Анализатор логов Exim с очень удобным web-интерфейсом http://butch.blog.ru/8083427.html
1231 Прочтений •  [Установка и настройка Exim с web-интерфейсом Xams во FreeBSD (exim web mail freebsd imap)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Установка и настройка Exim с web-ин... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка