Sunday, January 21st, 2018

OpenBSD + Postfix + Antispam

Published on Апрель 7, 2009 by   ·   Комментариев нет

Итак у нас есть свежепоставления ось OpenBSD 4.0. adidas ultra boost Настроены такие сервисы как DNS, Apache. Делаем почту: Что нам надо будет:

 courier-pop3-3.0.5p1 courier-imap-3.0.5p1 courier-mysql-3-3.0.5p1 postfix-2.3.2 mysql-client-5.0.22 mysql-server-5.0.22 php-core-4.4.1p1

Шаг 1: Установка MySQL

 # pkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/4.0/packages/amd64/mysql-server-5.0.22.tgz

Во время установки вы можете видеть что поставиться также mysql-client-5.0.22 После завершения всего делаем слудющее: Запускаем mysql

 # mysqld_safe &

Ставим пароли root для доступа к mysql с этой машины:

 # /usr/local/bin/mysqladmin -u root password 'пароль' # /usr/local/bin/mysqladmin -u root -h ns.mydomain.com password 'пароль'

На второй строке у вас скорее всего выкочить ошибка соединения.. Тогда идем по такому варианту:

 # mysql -u root -p

Заводим пароль который указали выше

 mysql> grant all privileges on *.* to 'root'@'ns.domain.com' identified by 'пароль'; mysql> flush privileges; mysql> quit

С инсталяцией покончено. Зделаем чтобы оно — mysql запускалось при старте систему и чтобы Apache и Postfix находящися в chroot имели доступ туда. Открываем файл /etc/rc.local на редактирование и заносим в конец вот это:

 if [ X"${mysql}" == X"YES" -a -x /usr/local/bin/mysqld_safe ]; then echo -n " mysqld"; /usr/local/bin/mysqld_safe --user=_mysql --log --open-files-limit=256 & for i in 1 2 3 4 5 6; do if [ -S /var/run/mysql/mysql.sock ]; then break else sleep 1 echo -n "." fi done # # Apache chroot Settings mkdir -p /var/www/var/run/mysql sleep 2 ln -f /var/run/mysql/mysql.sock /var/www/var/run/mysql/mysql.sock # Postfix chroot Settings if [ "X${postfix_flags}" != X"NO" ]; then mkdir -p /var/spool/postfix/var/run/mysql sleep 2 ln -f /var/run/mysql/mysql.sock /var/spool/postfix/var/run/mysql/mysql.sock fi fi

После этого добавляем либо в /etc/rc.conf.local либо в /etc/rc.conf такую строчку

 mysql=YES

В дальнейшем с помощью этого параметра мы сможем отключать и включать MySQL при старте. Шаг 2: Установка Courier-IMAP

 # pkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/4.0/packages/amd64/courier-pop3-3.0.5p1.tgz

У нас также установиться сам Courier-IMAP, Если кому то не нужен доступ к почте по POP3 протоколу то можно не ставить courier-pop3 а сразу ставить courier-imap После установки правим файл /etc/rc.local для запуска courier сервисов: Добавим следующие строки:

 #Courier-Imap settings if [ -x /usr/local/libexec/imapd.rc -a -x /usr/local/libexec/imapd-ssl.rc ]; then mkdir -p /var/run/courier-imap echo -n ' imapd'; /usr/local/libexec/imapd.rc start echo -n ' pop3d'; /usr/local/libexec/pop3d.rc start (опять же если не используем POP3 можно эту строчку убрать) fi

Откроем файл для редактирования /etc/rc.shutdown для того чтобы сервисы отключались корректно при рестарте системы:

 #Courier-Imap settings if [ -x /usr/local/libexec/imapd.rc -a -x /usr/local/libexec/imapd-ssl.rc ]; then echo -n ' imapd'; /usr/local/libexec/imapd.rc stop echo -n ' pop3d'; /usr/local/libexec/pop3d.rc stop fi

Поставим courier-mysql чтобы Courier-IMAP мог работать с MySQL:

 # pkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/4.0/packages/amd64/courier-mysql-3.0.5p1.tgz

После завершения установки скопируем стандартные конфигурации с /usr/local/share/examples/courier-imap в дирректорию /etc/courier-imap

 # cp -r /usr/local/share/examples/courier-imap /etc/courier-imap

Настройка Courier-IMAP Откроем файл /etc/courier-imap/authmysqlrc для редактирования и внесем такие изменения:

 MYSQL_SERVER localhost MYSQL_USERNAME postfix MYSQL_PASSWORD postfix MYSQL_DATABASE postfix MYSQL_USER_TABLE mailbox DEFAULT_DOMAIN domain.com MYSQL_UID_FIELD '507' MYSQL_GID_FIELD '507' MYSQL_LOGIN_FIELD username MYSQL_CRYPT_PWFIELD password MYSQL_HOME_FIELD '/var/spool/postfix/vmail/' MYSQL_NAME_FIELD name MYSQL_MAILDIR_FIELD maildir

Внимательно смотрите на наличие лишних пробело и прочего их не должно быть. Шаг 3: Установка Postfix Идем в дирректорию где у нас храняться порты системы, а именно postfix

 /usr/ports/mail/postfix/stable

Выполним следующие команды:

 # make show=FLAVORS

Система выдаст ответ:

 sasl2 ldap mysql pgsql

Поставим Postfix с поддержкой mysql для этого введем следующие команды: Соберем собственно сам пакет:

 # env FLAVOR="mysql" make

Установим пакет:

 # env FLAVOR="mysql" make install

Настраиваем Postfix: Открываем файл /etc/rc.conf для редактирования и правим такую строчку:

 syslogd_flags="-a /var/spool/postfix/dev/log"

Отключим sendmail и включим Postfix:

 # /usr/local/sbin/postfix-enable

Открываем файл /etc/rc.conf для редактирования и правим такую строчку:

 sendmail_flags="-bd -q30m"

Отключим sendmail в corn`e для этого правим crontab:

 # crontab -e

B закоментируйте строчку где упоминается sendmail:

 # sendmail clientmqueue runner #*/30 * * * * /usr/sbin/sendmail -L sm-msp-queue -Ac -q

Конфигурация Postfix: Создадим директорию где у нас будут храниться пиьсма. Так как у нас Postfix будет запускаться в chroot то место должно быть где то в /var/spool/postfix. Делаем дирректорию:

 # mkdir /var/spool/postfix/vmail

Меняем владельца дирректории:

 # chown -R _postfix._postfix /var/spool/postfix/vmail

Назначаем права:

 # chmod -R 771 /var/spool/postfix/vmail

Далее правим основной файл конфигурации Postfix. Для этого откроем файл для редактирования /etc/postfix/main.cf: И внесем такие изменения в файл найдите и исправьте каждую строчку если такой нету то допишите:

 # general settings myorigin = $mydomain mydestination = $myhostname localhost.$mydomain $mydomain alias_database = hash:/etc/mail/aliases alias_maps = hash:/etc/mail/aliases # postfixadmin stuff virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf virtual_gid_maps = static:507 virtual_mailbox_base = /var/spool/postfix/vmail virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_limit = 51200000 virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_minimum_uid = 507 virtual_transport = virtual virtual_uid_maps = static:507 # Additional for quota support virtual_create_maildirsize = yes virtual_mailbox_extended = yes virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf virtual_mailbox_limit_override = yes virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later. virtual_overquota_bounce = yes # store backup mx domains in mysql relay_domains = mysql:/etc/postfix/mysql_relay_domains_maps.cf delay_notice_recipient = postmaster@domain.com bounce_notice_recipient = postmaster@domain.com 2bounce_notice_recipient = postmaster@domain.com error_notice_recipient = postmaster@domain.com #spam stuff strict_rfc821_envelopes = yes strict_mime_encoding_domain = yes disable_vrfy_command = yes smtpd_helo_required = yes smtpd_helo_restriction = permit_mynetworks, reject_invalid_hostname, reject_non_fqdn_hostname smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname, reject_rbl_client opm.blitzed.org, reject_rbl_client list.dsbl.org, reject_rbl_client bl.spamcop.net, reject_rbl_client sbl-xbl.spamhaus.org # H/B Checks header_checks = regexp:/etc/postfix/maps/header_checks mime_header_checks = regexp:/etc/postfix/maps/mime_header_checks body_checks = regexp:/etc/postfix/maps/body_checks

Создадим файлы для коннекта к базе данных с следующим содержанием:

 # touch /etc/postfix/mysql_relay_domains_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1' # touch /etc/postfix/mysql_virtual_alias_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix query = SELECT goto FROM alias WHERE address='%s' # touch /etc/postfix/mysql_virtual_domains_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix query = SELECT domain FROM domain WHERE domain='%s' # touch /etc/postfix/mysql_virtual_mailbox_limit_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix query = SELECT quota FROM mailbox WHERE username='%s' # touch /etc/postfix/mysql_virtual_mailbox_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix query = SELECT maildir FROM mailbox WHERE username='%s'

И некоторые штучки от спама:

 # mkdir /etc/postfix/maps # touch /etc/postfix/maps/body_checks # This will reject emails where any line contains eight or more script/comment tags. #/(<!(--|[^>]*>).*){8}/ REJECT Your email contained a lot of script tags. Please # correct this (try setting your mail program to use plain text) and resend your message. # This will reject emails with script/comment tags that are in the middle of a word. #/^.*[a-z]<![a-z]*[0-9]*>[a-z]/ REJECT Your email contained wrongly placed script tags. # Please correct this (try setting your mail program to use plain text) and resend your message.  <a href="http://www.vyatiosys.fr/adidas-superstar-80s.html">adidas superstar 80s</a> # This will reject some variants of Sobig viruses /^RSLxwtYBDB6FCv8ybBcS0zp9VU5of3K4BXuwyehTM0RI9IrSjVuwP94xfn0wgOjouKWzGXHVk3qg$/ REJECT Your email looked like it \ contained a virus. Please run a virus scanner on your computer and try again. /^TVqQAAMAAAAEAAAA\/\/8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA$/ REJECT Your email looked like \ it contained a virus. Please run a virus scanner on your computer and try again. ## Bad worlds /porno/ REJECT Body Spam Rule 1 /viagra/ REJECT Body Spam Rule 2 /penis/ REJECT Body Spam Rule 3 /kamasutra/ REJECT Body Spam Rule 4 /bitch/ REJECT Body Spam Rule 5 /V~I~A~G~R~A/ REJECT Body Spam Rule 6 /p"enis/ REJECT Body Spam Rule 7 /e"nlarde/ REJECT Body Spam Rule 8 # touch /etc/postfix/maps/header_checks /^Subject .*Free Money/ REJECT Spam Header Rule #1 #X-Mailer Blocks IF/^X-Mailer:/ / Virtual MailSender; www.vpro.ru/ OK / 0001/ REJECT Your email had spam-like header contents. (X-Mailer) / Avalanche/ REJECT Your email had spam-like header contents. (X-Mailer) / Crescent Internet Tool/ REJECT Your email had spam-like header contents. (X-Mailer) / DiffondiCool/ REJECT Your email had spam-like header contents. (X-Mailer) / E-Mail Delivery Agent/ REJECT Your email had spam-like header contents. (X-Mailer) / Emailer Platinum/ REJECT Your email had spam-like header contents. (X-Mailer) / Entity/ REJECT Your email had spam-like header contents. (X-Mailer) / Extractor/ REJECT Your email had spam-like header contents. (X-Mailer) / Floodgate/ REJECT Your email had spam-like header contents. (X-Mailer) / GOTO Software Sarbacane/ REJECT Your email had spam-like header contents. (X-Mailer) / MailWorkz/ REJECT Your email had spam-like header contents. (X-Mailer) / MassE-Mail/ REJECT Your email had spam-like header contents. (X-Mailer) / MaxBulk.Mailer/ REJECT Your email had spam-like header contents. (X-Mailer) / News Breaker Pro/ REJECT Your email had spam-like header contents. (X-Mailer) / SmartMailer/ REJECT Your email had spam-like header contents. (X-Mailer) / StormPort/ REJECT Your email had spam-like header contents. (X-Mailer) / SuperMail-2/ REJECT Your email had spam-like header contents. (X-Mailer) / RAdvanced Direct Remailer/ REJECT Your email had spam-like header contents. (X-Mailer) / Advanced Mass Sender/ REJECT Your email had spam-like header contents. (X-Mailer) / Spammer/ REJECT Your email had spam-like header contents. (X-Mailer) / Bomber/ REJECT Your email had spam-like header contents. (X-Mailer) / Mega-Mailer/ REJECT Your email had spam-like header contents. (X-Mailer) / SuperMail/ REJECT Your email had spam-like header contents. (X-Mailer) / FastMailer/ REJECT Your email had spam-like header contents. (X-Mailer) / PObox/ REJECT Your email had spam-like header contents. (X-Mailer) / MMailer/ REJECT Your email had spam-like header contents. (X-Mailer) / Ligra Mailer/ REJECT Your email had spam-like header contents. (X-Mailer) / Dynamic Opt-In Emailer/ REJECT Your email had spam-like header contents. (X-Mailer) / Group Spamer/ REJECT Your email had spam-like header contents. (X-Mailer) / Mail Sender/ REJECT Your email had spam-like header contents. (X-Mailer) / Mailloop/ REJECT Your email had spam-like header contents. (X-Mailer) / PersMail/ REJECT Your email had spam-like header contents. (X-Mailer) / LK SendI/ REJECT Your email had spam-like header contents. (X-Mailer) / WC Mail/ REJECT Your email had spam-like header contents. (X-Mailer) / Virtual MailSender/ REJECT Your email had spam-like header contents. (X-Mailer) / ZUBA ZUB/ REJECT Your email had spam-like header contents. (X-Mailer) / MailList Express/ REJECT Your email had spam-like header contents. (X-Mailer) / Caretop/ REJECT Your email had spam-like header contents. (X-Mailer) / Mailer Signature/ REJECT Your email had spam-like header contents. (X-Mailer) / FiG/ REJECT Your email had spam-like header contents. (X-Mailer) / PG-MAILINGLIST/ REJECT Your email had spam-like header contents. (X-Mailer) / advcomtest/ REJECT Your email had spam-like header contents. (X-Mailer) / ailerv/ REJECT Your email had spam-like header contents. (X-Mailer) / Gailerj/ REJECT Your email had spam-like header contents. (X-Mailer) / User$/ REJECT Your email had spam-like header contents. (X-Mailer) / \.\.\.\.\.\.\. / REJECT Your email had spam-like header contents. (X-Mailer) / sklsgwd/ REJECT Your email had spam-like header contents. (X-Mailer) / yo yo mail/ REJECT Your email had spam-like header contents. (X-Mailer) / ZanziMailer/ REJECT Your email had spam-like header contents. (X-Mailer) / smsmtp/ REJECT Your email had spam-like header contents. (X-Mailer) / BulkMailer/ REJECT Your email had spam-like header contents. (X-Mailer) / diffondi/ REJECT Your email had spam-like header contents. (X-Mailer) / Virtual MailSender/ REJECT Your email had spam-like header contents. (X-Mailer) / Version 5.0 / REJECT Your email had spam-like header contents. (X-Mailer) / NetMasters/ REJECT Your email had spam-like header contents. (X-Mailer) / nethack/ REJECT Your email had spam-like header contents. (X-Mailer) / Dipost/ REJECT Your email had spam-like header contents. (X-Mailer) / (ACE ContactManager|CyberCreek Avalanche)/ REJECT Your email had spam-like header contents. (X-Mailer) / (Achi-Kochi Mail|E-mail Magnet|Mailcast)/ REJECT Your email had spam-like header contents. (X-Mailer) / (Group Mail|Aristotle Mail|WorldMerge)/ REJECT Your email had spam-like header contents. (X-Mailer) / (Extractor Pro|Floodgate Pro|MultiMailer)/ REJECT Your email had spam-like header contents. (X-Mailer) / (Ellipse Bulk Emailer|RamoMail|MultiMailer)/ REJECT Your email had spam-like header contents. (X-Mailer) / (Emailer Platinum.*Internet Marketing)/ REJECT Your email had spam-like header contents. (X-Mailer) / E-Magazine/ REJECT Your email had spam-like header contents. (X-Mailer) / ExclamationSoft/ REJECT Your email had spam-like header contents. (X-Mailer) / IM2K/ REJECT Your email had spam-like header contents. (X-Mailer) / PostMaster General/ REJECT Your email had spam-like header contents. (X-Mailer) / Advanced Mass Sender/ REJECT Your email had spam-like header contents. (X-Mailer) / EZ Version/ REJECT Your email had spam-like header contents. (X-Mailer) / Email Collector/ REJECT Your email had spam-like header contents. (X-Mailer) / SBZ systems/ REJECT Your email had spam-like header contents. (X-Mailer) / The Red Spider/ REJECT Your email had spam-like header contents. (X-Mailer) / Dynamic Opt-In Emailer/ REJECT Your email had spam-like header contents.  <a href="http://www.vyatiosys.fr/adidas-yeezy.html">adidas yeezy</a> (X-Mailer) / IM2000 Version 1.01/ REJECT Your email had spam-like header contents. (X-Mailer) / Prospect Mailer/ REJECT Your email had spam-like header contents. (X-Mailer) / Inet_Mail_Out/ REJECT Your email had spam-like header contents. (X-Mailer) / MailKing/ REJECT Your email had spam-like header contents. (X-Mailer) / David/ REJECT Your email had spam-like header contents. (X-Mailer) / EzyMassMailer/ REJECT Your email had spam-like header contents.  <a href="http://www.vyatiosys.fr/baskets-adidas.html">baskets adidas</a> (X-Mailer) / Oshirase-Mailer/ REJECT Your email had spam-like header contents. (X-Mailer) / The Red Spider/ REJECT Your email had spam-like header contents. (X-Mailer) / Mega-Mailer/ REJECT Your email had spam-like header contents. (X-Mailer) / FletMail/i REJECT Your email had spam-like header contents. (X-Mailer) / Floodgate/ REJECT Your email had spam-like header contents. (X-Mailer) / Extractor/ REJECT Your email had spam-like header contents. (X-Mailer) / Fusion/ REJECT Your email had spam-like header contents. (X-Mailer) / MassE-Mail/ REJECT Your email had spam-like header contents. (X-Mailer) / Quick Shot/ REJECT Your email had spam-like header contents. (X-Mailer) / NetMailer/ REJECT Your email had spam-like header contents. (X-Mailer) / WorldMerge/ REJECT Your email had spam-like header contents. (X-Mailer) / Powermailer/ REJECT Your email had spam-like header contents. (X-Mailer) / homosexual/ REJECT Your email had spam-like header contents. (X-Mailer) / PSS Bulk Mailer.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / ccMail Link.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / IXO-Mail.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / MMailer.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / K-ML.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / GoldMine.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / MAGIC.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / bomber.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / expeditor.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / Brooklyn North.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / Broadcast.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / DMailer.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / Extractor.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / EMailing List Pro .*$/ REJECT Your email had spam-like header contents. (X-Mailer) / Fusion.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / News Breaker .*$/ REJECT Your email had spam-like header contents. (X-Mailer) / dbMail.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / Unity.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / PG-MAILINGLIST PRO .*$/ REJECT Your email had spam-like header contents. (X-Mailer) / Dynamic.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / Splio.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / Sarbacane.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / sMailing.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / Broadc@st.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / WorkZ.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / ABMailer.*$/ REJECT Your email had spam-like header contents. (X-Mailer) / QuickSender .*$/ REJECT Your email had spam-like header contents. (X-Mailer) /.* over 2182 or.$/ REJECT Your email had spam-like header contents. (X-Mailer) / SpeedMail_.*$/ REJECT Your email had spam-like header contents. (X-Mailer) ENDIF #Other Headers Blocks /^X-Unsent: 1/ REJECT Possible you have a virus Nimbda. Try resend your message. # These are headers used to track some spam messages. /^Bel-Tracking: .*/ REJECT Confirmed spam. Go away. /^Hel-Tracking: .*/ REJECT Confirmed spam. Go away. /^Kel-Tracking: .*/ REJECT Confirmed spam. Go away. /^BIC-Tracking: .*/ REJECT Confirmed spam. Go away. /^Lid-Tracking: .*/ REJECT Confirmed spam. Go away. # touch /etc/postfix/maps/mime_header_checks # This entry will reject messages with attachments that could be dangerous, and will inform the sender of what type of attachemnt was rejected. /^\s*Content- (Disposition|Type).*name\s*=\s*"?(.+\.(ad[ep]|asd|ba[st]|c[ho]m|cmd|cpl|crt|dbx|dll|exe|hlp|hta|in[fs]|isp|js|jse|lnk |md[etw]|ms[cipt]|nws|ocx|ops|pcd|pi|pif|prf|reg|scf|scr|sct|sh[bms]|swf|uue|vb|vb[esx]|vxd|wab|ws[cfh]))"?\s*$/ REJECT Files attached to emails that contain or end in "$3" are prohibited on this server as they may contain viruses. The file named "$2" was rejected.

Шаг 4: Установка и настройка PHP

 # pkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/4.0/packages/amd4.0/php-core-4.4.1p1.tgz

После инсталяции надо проделать такие шаги. Копируем стандартные файлы PHP в директорию Apache, создаем временную директорию и даем права доступа.

 # /usr/local/sbin/phpxs -s # cp /usr/local/share/examples/php4/* /var/www/conf/ # cd /var/www/conf # cp php.ini-recommended php.ini # mkdir /var/www/tmp # chown www.www /var/www/tmp # chmod 700 /var/www/tmp

Откроем для редактирования файл /var/www/conf/php.ini Раскоментируем эту строчку:

 AddType application/x-httpd-php .php

Допишем в эту строчку index.php

 DirectoryIndex index.html index.php

Установим модуль MySQL для PHP:

 # pkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/4.0/packages/amd64/php4-mysql-4.4.1p1.tgz

После завершения активируем модуль:

 # /usr/local/sbin/phpxs -a mysql

Шаг 4: Настройка Postfixadmin Перейдем в дирректорию /var/www/htdocs/ Скачаем сам скрипт:

 # ftp http://high5.net/page7_files/postfixadmin-2.1.0.tgz

Распакуем его:

 # tar -zxvf postfixadmin-2.1.0.tgz

Поправим права доступа к папкам и файлам:

 # chown -R www.www postfixadmin/ # cd /var/www/users/yourwebdir/postfixadmin # chmod 640 *.php *.css # cd /var/www/users/yourwebdir/postfixadmin/admin/ # chmod 640 *.php .ht* # cd /var/www/users/yourwebdir/postfixadmin/images/ # chmod 640 *.png # cd /var/www/users/yourwebdir/postfixadmin/languages/ # chmod 640 *.lang # cd /var/www/users/yourwebdir/postfixadmin/templates/ # chmod 640 *.tpl # cd /var/www/users/yourwebdir/postfixadmin/users/ # chmod 640 *.php

Создадим базу данных в MySQL с помощью файла — скрипта в дирректории postfixadmin:

 # mysql -u root -p < DATABASE_MYSQL.TXT

Система попросит ввести пароль который мы задавали выше для root mysql. Вводим и получаем базу данных. Создадим файл конфигурации из станлдартного для postfixadmin

 # cd /var/www/htdocs/postfixadmin/ # cp config.inc.php.sample config.inc.php

Зайдем на созданый сайт добавим домены, майлы, администраторов доменов. P.S. Настройка PF фаирвола для всего этого: Небольшая и простая настройка фаирвола: Внешний интерфейс

 ext_if="xl0"

Внутренний интерфейс

 int_if="xl1"

Блокируем на внешнем интерфейсе всѐ:

 block on $ext_if all

Пропускаем изнутри то что хочет попасть наружу:

 pass out on $ext_if all keep state

Откроем порт 80 для Apache:

 pass in on $ext_if proto tcp to any port {80}

Откроем порт 53 для DNS:

 pass in on $ext_if proto {udp, tcp} to any port {53}

Откроем порты для почты:

 pass in on $ext_if proto {tcp, udp} to any port {25} pass in on $ext_if proto {tcp, udp} from any to any port {143,110}

P.P.S. В итоге мы получем работающий почтовый сервер с поддержкой нескольких доменов, и управлением всего этого через прекрасный скрипт Postfixadmin. Перезагружаемся! Исследуем лог файлы в дирректории /var/log/ maillog — лог собственно postfix`a и courier`a messages — лог при старте системы пишет все что запускается или не запускается.. /var/www/logs/ — логи от веб сервера Apache Шаг 5: Прикручиваем Анти-Спам систему. Так как amavisd-new и Spamassasin написаны на perl?, то они используют перловские модули. Поставим эти модули для корректной работы:

 # perl -MCPAN -e shell

И поставим следующие модули:

 MD5 LWP MIME::Base64 Mail::Internet Archive::Tar Archive::Zip IO::Wrap IO::Stringy Unix::Syslog MIME::Words MIME::Head MIME::Body MIME::Entity MIME::Parser Net::SMTP Net::DNS (when prompted to enable tests, choose no) Net::Ping Net::Server Net::Server::PreForkSimple Convert::TNEF Convert::UUlib MIME::Decoder::Base64 MIME::Decoder::Binary MIME::Decoder::Gzip64 MIME::Decoder::NBit MIME::Decoder::QuotedPrint MIME::Decoder::UU Time::HiRes Digest::SHA1 Digest::Nilsimsa Getopt::Long File::Copy Bit::Vector Date::Calc

Установка производится по примеру install имя_пакета

 cpan> install Mail::Internet

Некоторые модули просят для коректной работы установки допалнительный модулей, соглашаемся выбрав yes при установке и ставим дополнительные модули. Так же для работы нашей связки потребуется BerkeleyDB. Идем в порты и устанавливаем:

 # cd /usr/ports/databases/db/v4 # make install

Для того чтобы модули BerkelyDB установились корректно нужно зделать несколько линков:

 # mkdir /usr/local/BerkeleyDB # ln -s /usr/local/lib/db4 /usr/local/BerkeleyDB/lib # ln -s /usr/local/include/db4 /usr/local/BerkeleyDB/include

Далее идем в CPAN и установим BerkeleyDB:

 # perl -MCPAN -e shell cpan> install BerkeleyDB

Здесь все. Выходим.

 cpan>q

Ставим greylisting Одно из самых эффективных средст по борьбе с антиспамом. Идем в CPAN снова и устанавливаем необходимые модули и выходим:

 # perl -MCPAN -e shell cpan> install Net::Server IO::Multiplex cpan>q

Ставим перейдем в дирректорию скажем /root где времено будут хранится всякие закачки. Скачаем последную версию:

 # ftp http://isg.ee.ethz.ch/tools/postgrey/pub/postgrey-1.27.tar.gz

Распакуем скачанное:

 # tar -zxvf postgrey-1.27.tar.gz

Создадим юзера для postgrey:

 # useradd postgrey

Отредактируем файл паролей /etc/passwd, чтобы строка выглядела примерное таким образом (изменить если и надо будет то 2 последних значения в строке)

 postgrey:*:1022:20::/var/empty:/sbin/nologin

Создадим и поменяем права доступа на дирректорию для баз:

 # mkdir /var/spool/postfix/postgrey # chown postgrey /var/spool/postfix/postgrey

Отредактируем файл /etc/rc.local для автоматического запуска greylisting при старте системы:

 # Start Postgrey echo -n 'Postgrey'; /usr/local/sbin/postgrey --inet=10023 -d --delay=50 --greylisttext=" Policy restrictions; try later"

Добавьте кусок выше перед куском который ниже, что мы прописывали для MySQL

 if [ X"${mysql}" == X"YES" -a -x /usr/local/bin/mysqld_safe ]; then .....

Далее зайдем в дирректорию где мы распаковали postgrey и переместим исполняем файл туда где ему место:

 # cd /root/postgrey-1.27 # mv postgrey /usr/local/sbin

Надстройка Postfix для greylisting: Откроем файл для редактирования /etc/postfix/main.cf и добавим в конец строку

 check_policy_service inet:127.0.0.1:10023 :

В итоге будет выглядеть вот так:

 smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname, reject_rbl_client opm.blitzed.org, reject_rbl_client list.dsbl.org, reject_rbl_client bl.spamcop.net, reject_rbl_client sbl-xbl.spamhaus.org, check_policy_service inet:127.0.0.1:10023

Не выходя из дирректории postgrey-1.27 Переместим еще пару файлов:

 # mv postgrey_whitelist_clients /etc/postfix # mv postgrey_whitelist_recipients /etc/postfix

В файл postgrey_whitelist_recipients мы можем прописывать юзеров которым не требуется проверка greylisitng. Перезагрузим систему и посмотрим логи, все ли заработало как мы хотели. Установка и настройка SpamAssassin Заходим в CPAN и установим spamassasin и некоторые модули:

 # perl -MCPAN -e shell cpan> install Mail::SpamAssassin cpan> install Mail::SPF::Query cpan> install IP::Country::Fast

На вопрос хотите ли вы запустить тесты Razor или DCC ответим нет после этого выйдем из CPAN введя q. Отредактируем файл и внесем или изменим следующие строки /etc/mail/spamassassin/local.cf:

 report_safe 0 use_bayes 1 bayes_path /var/amavisd/.spamassassin/bayes skip_rbl_checks 0 use_razor2 1 use_dcc 1 use_pyzor 0 dns_available yes header LOCAL_RCVD Received =~ /.*\(\S+\.domain\.com\s+\[.*\]\)/ describe LOCAL_RCVD Received from local machine score LOCAL_RCVD -50 ## Optional Score Increases score DCC_CHECK 4.000 score SPF_FAIL 10.000 score SPF_HELO_FAIL 10.000 score RAZOR2_CHECK 2.500 score BAYES_99 4.300 score BAYES_95 3.500 score BAYES_80 3.000

Подробно описывать каждый параметр конфига я не буду. Кому интересно поищите информацию на официальном сайте SpamAsssasin http://spamassassin.apache.org Создадим и настроим домашную дирректорию для spamassassin и amavisd:

 # mkdir -p /var/amavisd # chown amavisd.amavisd /var/amavisd # chmod 750 /var/amavisd # cd /var/amavisd # mkdir .spamassassin # touch .spamassassin/user_prefs # chown -R amavisd.amavisd .spamassassin

Скопируем файлы необходимые для дирректории amavisd chroot:

 # mkdir -p etc/mail/spamassassin usr/local/share # cp /etc/mail/spamassassin/local.cf etc/mail/spamassassin/ # cp /etc/mail/spamassassin/init.pre etc/mail/spamassassin/ # cp -r /usr/local/share/spamassassin usr/local/share

Отредактируем файл и изменим следующие строки /etc/mail/spamassassin/v310.pre Снимите значок коментария # с двух строк как показано ниже:

 # DCC - perform DCC message checks. # # DCC is disabled here because it is not open source. See the DCC # license for more details. # loadplugin Mail::SpamAssassin::Plugin::DCC # Razor2 - perform Razor2 message checks. # # Razor2 is disabled here because it is not available for unlimited free # use. It is currently free for personal use, subject to capacity # constraints. See the Cloudmark SpamNet Service Policy for more details. # loadplugin Mail::SpamAssassin::Plugin::Razor2

И скопируем файл в chroot директорию amavisd:

 # cp /etc/mail/spamassassin/v310.pre /var/amavisd/etc/mail/spamassassin/

После всех этих операций запустим spamassasin.

 # spamassassin --debug -lint

После запуска spamassassin выведет много информации посмотрите и проанализируйте на налицие каких либо ошибок. Установка и настройка Razor Перейдем в директорию /root и скачаем последную версию:

 # ftp http://prdownloads.sourceforge.net/razor/razor-agents-2.82.tar.bz2?download

Распакуем:

 # bunzip2 razor-agents-2.82.tar.bz2 # tar -xvf razor-agents-2.82.tar

Зайдем в директорию и установим:

 # cd razor-agents-2.82 # perl Makefile.PL # make # make test # make install

Создадим дефолтные файлы конфигурации и скопируем их в нашу chroot директорию amavisd:

 # razor-admin -home=/etc/razor -d -create # razor-admin -home=/etc/razor -d -registeк

Копируем:

 # mkdir -p /var/amavisd/.razor # cp -r /etc/razor/* /var/amavisd/.razor # chown -R amavisd.amavisd /var/amavisd/.razor

Включить и выключить Razor мы сможем отредактировав файл /etc/mail/spamassassin/local.cf изменив значение use_razor2 1 на use_razor2 0 Razor пишет свой собственный лог файл /var/amavisd/.razor/razor-agent.log Файл будет рости в обьеме, что чревато последствиями если про него забыли. Так что после того как вы убедились что все работает правильно и красиво отредактируйте файл /var/amavisd/.razor/razor-agent.conf сменив debuglevel = 3 на debuglevel = 0 и перезапустите amavisd. На фаирволе порт 2703 изнутри-наружу должен быть открыт Установка и настрока DCC: Переходим в нашу дирректорию:

 # cd /root

Скачаем и установим последую версию DCC (http://www.dcc-servers.net/dcc/)

 # ftp http://www.dcc-servers.net/dcc/source/dcc-dccd.tar.Z # tar -zxvf dcc-dccd.tar.Z # cd cd dcc-dccd-1.3.44 # ./configure

Запустим:

 # /usr/local/bin/cdcc 'info'

Если увидите что то типо этого (на фаирволее порт 6277 изнутри-наружу должен быть открыт): dcc.rhyolite.com, — RTT+0 ms anon

 # 153.19.44.233,- coral.ely.pg.gda.pl WEiAPG? server-ID 1072 # 100% of 3 requests ok 1687.64+0 ms RTT 113 ms queue wait # 192.188.61.3,- calcite.rhyolite.com Rhyolite server-ID 101 # 100% of 2 requests ok 755.52+0 ms RTT 50 ms queue wait

Товсе у вас замечательно работает. Скопируем файлы которые потребуются DCC в chroot:

 # mkdir -p /var/amavisd/var /var/amavisd/usr/bin /var/amavisd/usr/libexec /var/amavisd/var/dcc # mkdir -p /var/amavisd/usr/lib /var/amavisd/bin # cp -r /var/dcc /var/amavisd/var/ # cp /usr/local/bin/dccproc /var/amavisd/usr/bin # cp /usr/libexec/ld.so /var/amavisd/usr/libexec # chown -R amavisd:amavisd /var/amavisd/var/dcc # cp /bin/sh /var/amavisd/bin/

Посмотрим какие файлы нужны для работы DCC:

 # ldd /usr/local/bin/dccproc

Ответ системы:

 usr/local/bin/dccproc: Start End Type Ref Name 00000000 00000000 exe 1 /usr/local/bin/dccproc 00008000 2000f000 rlib 1 /usr/lib/libm.so.2.3 00019000 20063000 rlib 1 /usr/lib/libc.so.39.3 00002000 00002000 rtld 1 /usr/libexec/ld.so

Скопируем эти файлы за исключением dccproc в директорию /var/amavisd. Версии файлов у вас могут отличаться, но это не меняет сути.

 # cp /usr/lib/libm.so.2.3 /var/amavisd/usr/lib/ # cp /usr/lib/libc.so.39.3 /var/amavisd/usr/lib/

Включать и выключать DCC вы сможете откоректировав файл etc/mail/spamassassin/local.cf значение use_dcc 1 Добавьте в etc/mail/spamassassin/init.pre следующую строку чтобы DCC использовался как плугин:

 loadplugin Mail::SpamAssassin::Plugin::DCC

Установка и настройка Amavisd-new Перейдем в директорию:

 # cd /root

Берем отсюда самую свежую версию http://www.ijs.si/software/amavisd/#download и устанавливаем:

 # ftp http://www.ijs.si/software/amavisd/amavisd-new-2.4.3.tar.gz Распаковываем: [cc lang="bash" tab_size="2" lines="-1"] # tar -zxvf amavisd-new-2.4.3.tar.gz # cd amavisd-new-2.4.3 # cp amavisd /usr/local/sbin/ # chown root.wheel /usr/local/sbin/amavisd # chmod 550 /usr/local/sbin/amavisd # cp amavisd.conf /etc/ # chown root.wheel /etc/amavisd.conf # chmod 644 /etc/amavisd.conf # touch /var/amavisd/amavis.log # chown amavisd.amavisd /var/amavisd/amavis.log

Правим файл конфигурации /etc/amavisd.conf а лучше создадим новый файл с такими параметрами:

 use strict; $MYHOME = '/var/amavisd'; $mydomain = 'domain.com'; $daemon_user = 'amavisd'; $daemon_group = 'amavisd'; $daemon_chroot_dir = $MYHOME; $QUARANTINEDIR = "$MYHOME/quarantine"; $TEMPBASE = "$MYHOME/tmp"; $ENV{TMPDIR} = $TEMPBASE; $helpers_home = $MYHOME; $max_servers=8; $child_timeout=20*60; # we need to adjust the timeout since it is not a localhost transfer $forward_method = 'smtp:127.0.0.1:10025'; $notify_method = $forward_method; $inet_socket_port = 10024; $inet_socket_bind = '127.0.0.1'; @bypass_virus_checks_acl = (1); read_hash(\%local_domains, '/etc/postfix/ mysql_relay_domains_maps.cf '); $DO_SYSLOG = 1; # (1 = syslog, 0 = logfile) $log_level = 5; # (0-5) $final_spam_destiny = D_REJECT; # Set to D_REJECT, D_PASS to pass through read_hash(\%whitelist_sender, '/var/amavisd/whitelist'); read_hash(\%blacklist_sender, '/var/amavisd/blacklist'); read_hash(\%spam_lovers, '/var/amavisd/spam_lovers'); #defending against mail bombs $MAXLEVELS = 14; $MAXFILES = 1500; $MIN_EXPANSION_QUOTA = 100*1024; $MAX_EXPANSION_QUOTA = 300*1024*1024; $path = '/usr/bin:/bin'; $file = 'file'; $gzip = '/usr/bin/gzip'; # location of gzip on your system - Important! $enable_db = 1; # enable use of BerkeleyDB/libdb (SNMP and nanny) $enable_global_cache = 1; # enable use of libdb-based cache if $enable_db=1 # SpamAssassin settings $sa_local_tests_only = 0; $sa_auto_whitelist = 1; # comment this line out to turn off auto whitelist $sa_mail_body_size_limit = 64*1024; # 64KB $sa_tag_level_deflt = 3.0; # controls adding the X-Spam-Status and X-Spam-Level headers, $sa_tag2_level_deflt = 6.3; # controls adding 'X-Spam-Flag: YES', and editing Subject, $sa_kill_level_deflt = $sa_tag2_level_deflt; # triggers spam evasive actions: $sa_spam_subject_tag = '***SPAM*** '; $sa_debug = 1; # comment this line out to turn off debugging 1; # insure a defined return

Значение параметров смотрим на офф. сайте. Создадим директории необходимые для этого пакета:

 # mkdir /var/amavisd/tmp # chown amavisd:amavisd /var/amavisd/tmp # chmod 750 /var/amavisd/tmp # mkdir /var/amavisd/quarantine # chown amavisd:amavisd /var/amavisd/quarantine # chmod 750 /var/amavisd/quarantine # mkdir /var/amavisd/db # chown amavisd:amavisd /var/amavisd/db # chmod 750 /var/amavisd/db

Далее нам надо настроить чтобы это все запускалось в chroot. Перейдем в директорию /var/amavisd, все далее выполненые команды должны выполняться именно находясь в этой директории:

 # cd/var/amavisd # mkdir -p etc dev tmp var/run bin # mkdir -p usr/bin usr/share/zoneinfo usr/lib usr/libexec

Правим файл /etc/fstab Найдем раздел /var и уберем с него параметр nodev: Было так:

 /dev/wd0g /var ffs rw,nodev,nosuid 1 2

Стало так:

 /dev/wd0g /var ffs rw,nosuid 1 2

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

 # cd /var/amavisd # mknod dev/null с 2 2

Зделаем несколько линков:

 # ln -s / var/amavisd

Скопируем файлы конфигураций в нашу chroot директорию. Если вы в дальнейшем будете менять эти файлы их надо будет заново скопировать в наш chroot.

 # cp /etc/protocols /etc/services /etc/hosts /etc/magic /etc/resolv.conf /etc/group /etc/passwd /var/amavisd/etc

Скопируем исполняаемые файлы:

 # cp /usr/bin/file /var/amavisd/bin # cp /usr/lib/libc.so.39.3 /var/amavisd/usr/lib/ # cp /usr/libexec/ld.so /var/amavisd/usr/libexec/ # mkdir -p /var/amavisd/usr/libdata/perl5 # cp -pR /usr/libdata/perl5/unicore/ /var/amavisd/usr/libdata/perl5

Создадим файл липовый паролей:

 #echo amavisd:*:3000:3000::0:0:Amavis Mail Scanner Daemon:/var/amavisd:/sbin/nologin>/var/amavisd/etc/master.passwd #echo "amavisd:*:3000:3000::0:0:Amavis Mail Scanner Daemon:/var/amavisd:/sbin/nologin">/var/amavisd/etc/master.passwd #pwd_mkdb -d /var/amavisd/etc/ -p /var/amavisd/etc/master.passwd

Раздадим права доступа:

 # chown -R root.wheel etc dev tmp usr var # chown -R amavisd:amavisd .spamassassin .razor quarantine var/dcc # chmod 1777 tmp # chmod 666 dev/null

Для логов добавим такую строку в файл /etc/rc.conf.local:

 syslogd_flags="-a /var/amavisd/dev/log"

Создадим белые и черные листы для особых параметров определеных пользователей:

 # touch /var/amavisd/blacklist # touch /var/amavisd/whitelist # touch /var/amavisd/spam_lovers

Добавим аккаунт postmaster в список spam_lovers. Так как postmaster должен всегда получать письма.

 # echo postmaster@domain.com >> /var/amavisd/spam_lovers

Настроим автоматический запуск при старте системы для этого отредактируем файл /etc/rc.local и добавим а начало следующую строку:

 echo -n ' amavisd'; /usr/local/sbin/amavisd

итог этого файла у нас получаеться такой:

 ### Start amavisd spam filter ### echo -n ' amavisd'; /usr/local/sbin/amavisd ### Start Postgrey ### echo -n 'Postgrey'; /usr/local/sbin/postgrey --inet=10023 -d --delay=50 \ --greylist-text="Policy restrictions; try later" ### MySQL chroot Serrings ### if [ X"${mysql}" == X"YES" -a -x /usr/local/bin/mysqld_safe ]; then .....

Добавление проверки на вирусы: Добавим юзера и групу clamav

 # groupadd clamav # adduser

И выполните шаги по добавлению юзера не ставив пароля и для домашней директории и шела выберите /sbin/nologin и /var/empty соответственно Устанавливаем ClamAV из портов:

 # cd /usr/ports/security/clamav # make install

Настроим clamav для запуска в chroot.

 # cd /var/amavisd # mkdir -p usr/local/share/clamav # mkdir -p usr/local/sbin # mkdir -p usr/local/bin # mkdir -p usr/local/lib # mkdir -p var/log # chown -R amavisd.amavisd usr/local/share/clamav var/log var/db/clamav # chmod -R 744 usr/local/share/clamav var/log # chmod 744 var/log # chmod 755 usr/local/share # cp -R /usr/local/share/clamav usr/local/share # cp /usr/local/share/examples/clamav/*.conf etc # cp /usr/local/sbin/clamd usr/local/sbin # cp /usr/local/bin/clamscan usr/local/bin # cp /usr/local/bin/clamdscan usr/local/bin # cp /usr/local/bin/clamav-config usr/local/bin # cp /usr/local/bin/freshclam usr/local/bin # mknod dev/urandom c 45 2 # mknod dev/null c 2 2

Здеалем маленький скриптик для копирования нужных файлов в наш chroot с названием ldd_copy.sh и с таким содержанием:

 #!/bin/sh PATH=/bin:/sbin:/usr/bin:/usr/sbin if [ "$1" != "" -a "$2" != "" ]; then for i in `ldd $1 | egrep "(rlib|rtld)" | cut -f17 -d" "` do if [ ! -e $2$i ]; then cp $i $2$i echo $i $2$i copied else echo $2$i already exists fi done else echo "Usage: ldd_copy.sh <program> <destination>" fi

И запустим его:

 # ./ldd_copy.sh /usr/local/sbin/clamd /var/amavisd # ./ldd_copy.sh /usr/local/bin/clamdscan /var/amavisd # ./ldd_copy.sh /usr/local/bin/clamscan /var/amavisd # ./ldd_copy.sh /usr/local/bin/freshclam /var/amavisd # cp /var/run/ld.so.hints /var/amavisd/var/run/

Настройка ClamAV:

 # cd /var/amavisd/etc

Правим файл clamd.conf И меняем такие значения в нем:

 #Example LogFile /var/log/clamd.log LogTime LogVerbose PidFile /var/amavisd/clamd.pid LocalSocket /var/amavisd/clamd.sock FixStaleSocket

Чтобы наш антивирус обновлялся поправим файл freshclam.conf в той же директории и внесем такие изменения:

 #Example UpdateLogFile /var/log/freshclam.log LogVerbose DatabaseOwner amavisd LocalSocket /var/amavisd/clamd.sock

Надстройка amavisd для использования ClamAV: Правим файл /etc/amavisd.conf и вносим следующий кусок кода:

 #@bypass_virus_checks_acl = qw( . ); # uncomment to DISABLE anti-virus code $file = 'file'; $arc = ['nomarch', 'arc']; $gzip = 'gzip'; $bzip2 = 'bzip2'; $uncompress = ['uncompress', 'gzip -d', 'zcat']; $lha = 'lha'; $unarj = 'unarj'; $unrar = 'unrar'; $zoo = 'zoo'; ### Virus scanners # Add X-Virus-Scanned line to mail? (default: undef) $X_HEADER_TAG = 'X-Virus-Scanned'; $remove_existing_x_scanned_headers = 0; # leave existing X-Virus-Scanned alone # Don't notify sender when these viruses are found because they spoof From: $viruses_that_fake_sender_re = new_RE( qr'nimda|hybris|klez|bugbear|yaha|braid|sobig|fizzer|palyh|peido|holar'i, qr'tanatos|lentin|bridex|mimail|trojan\.dropper|dumaru|parite|spaces'i, qr'dloader|galil|gibe|swen|netwatch|bics|sbrowse|sco|mydoom'i, [qr'^(EICAR\.COM|Joke\.|Junk\.)'i => 0], [qr'^(WM97|OF97|W95/CIH-|JS/Fort)'i => 0], ); @av_scanners = ( # http://www.clamav.net/ ['Clam Antivirus-clamd', \&ask_daemon, ["CONTSCAN {}\n", '/var/amavisd/clamd.sock'], qr/\bOK$/, qr/\bFOUND$/, qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ], ); @av_scanners_backup = ( # http://www.clamav.net/ ['Clam Antivirus - clamscan', 'clamscan', '--stdout --disable-summary -r {}', [0], [1], qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ], );

Добавим задание в crontab чтобы антивирус периодически обновлялся:

 # crontab -e

И добавим такую строку в задания

 # Fresh clamAV 30 * * * * chroot -u amavisd /var/amavisd /usr/local/bin/freshclam --quiet --logverbose --daemon-notify

Настроим запуск при старте системы: Правим файл /etc/rc.local и добавляем в конец файла строку:

 chroot -u amavisd /var/amavisd /usr/local/sbin/clamd

Надстройка Postfix для всего этого Все что осталось это отредактировать файл postfix — /etc/postfix/master.cf Приведите его к такому виду:

 # # Postfix master process configuration file. For details on the format # of the file, see the master(5) manual page (command: "man 5 master"). # # ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ========================================================================== smtp inet n - n - 10 smtpd -o content_filter=smtp-amavis:[127.0.0.1]:10024 smtp-amavis unix - - n - 3 smtp -o smtp_data_done_timeout=1200 -o disable_dns_lookups=yes 127.0.0.1:10025 inet n - n - - smtpd -o local_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject,reject_unauth_destination -o strict_rfc821_envelopes=yes #original #smtp inet n - - - - smtpd ....

Перезагрузитесь и я надеюсь что у вас все заработает! Статья не претендует не на что, создавался как мануал для себя чтобы не забыть чего то. При написании за основу брались статьи и конференции: http://www.obsd.ru http://www.postfixwiki.org http://www.flakshack.com/anti-spam/wiki/ http://www.securitystage.com Я не утвреждаю что все это придумал я сам. Это все взято с тех или иных источников отмеченных выше, просто переработано, переведено на более менее понятный язык Версия 2.0 С уважением syntax. О всех недочетах отзывах и тд.


Смотрите также:

Readers Comments (Комментариев нет)




Да человек я, человек! =)

Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]