CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
30.05.2020

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Desktop
Internet
Internet-серверы
Безопасность
Бизнес/Офис
Игры
Мультимедиа
Наука
Операционные системы
Программирование
СУБД
Создание веб-сайтов
Утилиты

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Приложения

Простая почтовая система с защитой от вирусов и спама (FreeBSD+ClamAV)

Идеи для самой простой, в моем понимании, почтовой системы я частично собрал на opennet.ru, частично повзаимствовал у более продвинутых коллег, а на что-то наступил сам :)

FreeBSD & Postfix & ClamAV & SmtpClamAV & Popa3d & Postgrey

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

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

Для обновления коллекции портов, можно использовать cvsup. Рекомендую устанавливать вместе с системой freeBSD

Итак!

cp /usr/share/examples/cvsup/ports-supfile /root/ports-supfile

редактируем /root/ports-supfile

меняем

*default host=CHANGE_THIS.FreeBSD.org
на
*default host=cvsup8.FreeBSD.org

По моим личным наблюдениям, с этого или с cvsup7.FreeBSD.org удачнее всего получается обновиться
Но ... каждый пусть делает по-своему :)

cvsup -g -L 2 /root/ports-supfile

после окончания обновлений - начинаем установку

1) Postfix

cd /usr/ports/mail/postfix
make install clean

Я отказываюсь от изменения mailer.conf.
При компиляции, создаются соответствующие логины, пароли, ставки, явки, каталоги и прочее - увидите все сами.

Для запуска постфикса при старте FreeBSD необходимо добавить

postfix_enable="YES"

в файл /etc/rc.conf

Это будет работать в том случае, если в каталог /usr/local/etc/rc.d
добавлен скрипт запуска либо вами, либо при компиляции.
Детализация этого - ваш экспириенс :)

Теперь ... sendmail. Надо бы в rc.conf пристрелить его.

sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

Дальше редактируем /etc/aliases

root: вашемыло@вашдомен

Выполняем newaliases

Здесь я столкнулся с одним казусом, который толком не смог решить. Команда newaliases "поправляет" файл /etc/mail/aliases.db, а мой postfix почему-то искал /etc/aliases.db. Ни явное указание в конфигурационном файле пути, ни стук в бубен не помогли и я, как человек ленивый, создал символический линк и этим ограничился. Ваше право решить это по-своему.

2) ClamAV - полагаю, что весь сыр-бор сайта clamav.net.ua из-за этого ПО :)

cd /usr/ports/security/clamav
make install clean
Добавляем в /etc/rc.conf

clamav_clamd_enable="YES"
clamav_freshclam_enable="YES"

И редактируем конфигурационный файл /usr/local/etc/clamd.conf
Рекомендую базироваться на екзампле
Вот, что поулчилось у меня

##
## Example config file for the Clam AV daemon
## Please read the clamd.conf(5) manual before editing this file.
##

LogFile /var/log/clamav/clamd.log
LogFileMaxSize 2M
LogTime
PidFile /var/run/clamav/clamd.pid
TemporaryDirectory /tmp
DatabaseDirectory /var/db/clamav
LocalSocket /var/run/clamav/clamd
FixStaleSocket
MaxConnectionQueueLength 30
StreamMaxLength 20M
MaxThreads 10
User clamav
AllowSupplementaryGroups
ScanPE
DetectBrokenExecutables
ScanOLE2
ScanMail
ScanHTML
ScanArchive
#ScanRAR
# отключено, ибо рекомендуют - нужны какие-то там патчи и прочее
# как не морочить себе голову с эти, я расскажу потом - про amavisd :).
ArchiveMaxFileSize 15M
ArchiveMaxRecursion 9
ArchiveMaxFiles 1500
ArchiveMaxCompressionRatio 300
ArchiveBlockEncrypted
ArchiveBlockMax

Посматривайте на комментарии в конфигурационных файла - значение настроек станет понятным :)

Теперь /usr/local/etc/freshclam.conf

##
## Example config file for freshclam
## Please read the freshclam.conf(5) manual before editing this file.
## This file may be optionally merged with clamd.conf.
##

DatabaseDirectory /var/db/clamav
UpdateLogFile /var/log/clamav/freshclam.log
LogSyslog
PidFile /var/run/clamav/freshclam.pid
DatabaseOwner clamav
AllowSupplementaryGroups
DNSDatabaseInfo current.cvd.clamav.net
DatabaseMirror database.clamav.net
NotifyClamd

Сравнив дефолтовые конфиги и мои, вы увидите, что я далеко от них не отклонился.

3) ClamSmtpD - это, собственно, прокладка между postfixom и ClamAV - механизм включается с минимальными усилиями и максимальным эффектом

cd /usr/ports/security/clamsmtp/
make install clean

в /etc/rc.conf

добавляем

clamav_clamsmtp_enable="YES"

и редактируем конфигурационный файл /usr/local/etc/clamsmtpd.conf

# ------------------------------------------------------------------------------
#                        SAMPLE CLAMSMTPD CONFIG FILE
# ------------------------------------------------------------------------------
#
# - Comments are a line that starts with a #
# - All the options are found below with sample settings

OutAddress: 10026
Listen: 127.0.0.1:10025
ClamAddress: /var/run/clamav/clamd
Header: X-Virus-Scanned: ClamAV (www.clamav.net.ua)
TempDirectory: /tmp
User: clamav

4) Popa3D - ну раз у нас есть smtp сервер, то не грех обзавестись и pop3 сервером :)

cd /usr/ports/mail/popa3d
make install clean

софт в конфигурировании не нуждается - это самый простой, с моей точки зрения, вариант pop3

Запуск этого сервера происходит следующим образом

добавляем строку в конфигурационный файл

/etc/inetd.conf
pop3 stream tcp nowait root /usr/local/libexec/popa3d popa3d

и в /etc/rc.conf

inetd_enable="YES"

5) Postgrey - очень занятная программа, позволяющая отфильтровывать многие почтовые сообщения - как спам, так и почтовые вирусы

Что и как она делает ?
Получив почтовое сообщение postgrey отвечает серверу отправителю требованием повторить отправку позже. Если сервер -отправитель - "правильный" smtp сервер, то он повторит отправку письма через одному ему известный промежуток времени и оно дойдет до получателя, а если это машина-зомби, то, вероятнее всего, письмо больше не придет*. Такой механизм позволяет отфильтровывать 50-90 % спама, потому, что многие спамеры не читают нужных мануалов и их доморощенные серверы не обладают необходимой функциональностью. :)

cd /usr/ports/mail/postgrey/
make install clean

добавляем в /etc/rc.conf

postgrey_enable="YES"

6) Завершающие штрихи - необходимо все это связать в кучу.

Сначала редактируем

/usr/local/etc/postfix/main.cf

Находим нужное и пишем свое.

# кое какие специфические настройки сервера.

myhostname = mail.any-host.com.ua
mydomain = any-host.com.ua
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks_style = subnet
mynetworks = 192.168.0.0/24, 127.0.0.0/8
relayhost = smtp.prov-serv.ua
default_destination_concurrency_limit = 2

#эти две строки - ClamAV

content_filter = scan:127.0.0.1:10025
receive_override_options = no_address_mappings

maps_rbl_reject_code = 554

strict_rfc821_envelopes = yes
disable_vrfy_command = yes

smtpd_helo_required = yes

# полезный блок - можете что-то повыбрасывать или дописать

smtpd_recipient_restrictions =
 permit_sasl_authenticated,
 permit_mynetworks,
 reject_unauth_destination,
 reject_unknown_recipient_domain,
 reject_non_fqdn_recipient,
 reject_rbl_client      list.dsbl.org,
 reject_rbl_client      relays.ordb.org,
 reject_rbl_client      dynablock.wirehub.net,
 reject_rbl_client      blackholes.wirehub.net,
 reject_rbl_client      dnsbl.njabl.org,
 reject_rbl_client      dialups.mail-abuse.org,
 reject_rbl_client      dul.ru,
 reject_rbl_client      blackholes.mail-abuse.org,
 reject_rbl_client      dialups.mail-abuse.org,
 reject_rbl_client      opm.blitzed.org,
 reject_rbl_client      sbl.spamhaus.org,
 reject_rbl_client      cbl.abuseat.org,
 reject_rbl_client      dul.dnsbl.sorbs.net,
 reject_rbl_client      dnsbl.njabl.org,
 reject_rbl_client      dynablock.njabl.org,
 reject_rbl_client      combined.njabl.org

# это postgrey

check_policy_service inet:127.0.0.1:10023

теперь правим

/usr/local/etc/postfix/main.cf

#
# Postfix master process configuration file.  For details on the format
# of the file, see the Postfix master(5) manual page.
#
# ===================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ===================================

########## начало нашей вставки :)

#antivirus
scan      unix  -       -       n       -       16      smtp
        -o smtp_send_xforward_command=yes

127.0.0.1:10026 inet  n -       n       -       16      smtpd
        -o content_filter=
        -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
        -o smtpd_helo_restrictions=
        -o smtpd_client_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o mynetworks_style=host
        -o smtpd_authorized_xforward_hosts=127.0.0.0/8

########## коней нашей вставки :)

smtp      inet  n       -       n       -       -       smtpd
#submission inet n      -       n       -       -       smtpd



...
Имейте ввиду, что от postgrey'я есть эффект, если у вашего домена 1 MX сервер и его ip адрес - адрес этой машины, если их более одного - то там тоже следует поставить какую-либо защиту от спама, иначе спам просто потечет через второй MX :)

Если что-то забыл, или ошибся - пишите на http://www.clamav.net.ua/forum/- отвечу - исправлю

*Прим.ред. Имейте в виду, что требование повтора отправления приведет к тому, что Вы будете получать ВСЕ письма с непредсказуемой задержкой (от получаса до нескольких суток), а некоторые дельные письма Вы не получите вообще. Возможно, Вас это устраивает, от некоторого спама действительно должно помогать.




Комментарии

Пищулин Антон, Wed Mar 28 18:53:03 2007:
Для Редактора - Практическая задержка для первого письма в паре sender-recipient не превышает 30 минут.
Всем остальным - спасибо за критику ... Мир не стоит на месте :)
Пищулин Антон, Wed Mar 28 18:46:48 2007:
Грустно вообще смотреть на статью
Я давно отказался тоже от половины rbl
после изучения работы
/usr/ports/mail/pflogstats
и
/usr/ports/mail/pflogsumm

также я начал использование
Amavisd-new+ClamAV+DSPAM
Думаю, что изображу это на www.clamav.net.ua в ближайшее время :)
pomidoroff, Thu Mar 22 17:23:34 2007:
Устарела статья. Например clamav прекрасно работает с RAR уже и 3 версии. А обновлять порты cvsup-ом это полный анахронизм, portsnap рекомендованная утилита, входящая в базовую поставку.

ИМХО, прекрасно и не на одном почтовике работает связка clamav+spamassassin+sendmail(RBL)

clamav и spamassassin работают через milter
RBLов мне хватает этих:
cbl.abuseat.org
dul.dnsbl.sorbs.net
lisergey, Thu Mar 15 11:45:59 2007:
в "полезном блоке" слишком много доменных зон для проверки RBL, причем некоторые совсем одиозные, тот же spamhaus.org

я давно отказался от всех, кроме
reject_rbl_client bl.spamcop.net,
reject_rbl_client list.dsbl.org,
reject_rbl_client cbl.abuseat.org,

а эти трое вкупе с фильтрами по регулярным выражениям доменных имен хостов отправителя позволяют практически забыть о спаме (см статью http://demon.yekt.com/3.html)
pseudo, Wed Mar 14 14:24:30 2007:
Как по мне, gld для этого намного лучше и приятнее. И памяти жрет меньше perl'а.

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds