The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

OpenBSD + Postfix + Antispam (openbsd spam spamd mail filter postfix)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: openbsd, spam, spamd, mail, filter, postfix,  (найти похожие документы)
From: syntax <syntax@forsale.lv.> Newsgroups: email Date: Mon, 24 Apr 2007 14:31:37 +0000 (UTC) Subject: OpenBSD + Postfix + Antispam Итак у нас есть свежепоставления ось OpenBSD 4.0. Настроены такие сервисы как 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 = [email protected] bounce_notice_recipient = [email protected] 2bounce_notice_recipient = [email protected] error_notice_recipient = [email protected] #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. # 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. (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. (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" Блокируем на внешнем интерфейсе вс&#1104;: 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 Распаковываем: # 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 [email protected] >> /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. О всех недочетах отзывах и тд. Пишите на майл syntax at forsale.lv

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1, NOW (?), 21:41, 06/10/2007 [ответить]  
  • +/
    Автору респект, но вот на что обратил внимание
    /etc/postfix/master.cf:
    ни один почтовый процесс не запущен в chroot! По ходу статью автор все процессы пытается запустить в chroot, поэтому логично хотя бы для демонов, которые общаются с сетью (smtp и smtpd) установить chroot в y. Кстати, у меня при аналогичных настройках указанные демоны при chroot = n в master.cf не работают!
    От себя: всем, кто собирает свои системы путем копирования настроек из таких статей: ЗАДУМЫВАЙТЕСЬ НАД КАЖДЫМ ЗНАКОМ, читайте оригинальные маны, иначе вместо пользы такие статьи сделают вам ДИВЕРСИЮ (при всем уважении к авторам).
     
  • 2, Станислав (?), 21:36, 20/02/2009 [ответить]  
  • +/
    Просто куча опечаток, и пропущены кое-какие шаги... я все грабли словил.
     
  • 3, Евгений (??), 15:06, 11/05/2009 [ответить]  
  • +/
    С уважением к автору.
    У меня уже дырка в голове ... OpenBSD45.
    Проблема с mysql_sock. Если на своем месте в /var/run/mysql то не работает ничего из www (phpmyadmin и т.д.), если my.cnf изменить путь на /var/www/... - работает все для www, но всему остальному куда коннектится?
    Создавать ссылки из /var/run/mysql в /var/www/... (по приведенной в статье методике), или еще куда -не получается, команды проходят без сообщений, но ссылок нет (не создаются), а если просто символьную, то с ней никто дела иметь не хочет, вроде как ее и нет вообще.
    Возможно ли решение, при котором доступ к mysql.sock будет возможет от всех (postfix, php...)?
     
  • 4, zilberstein (?), 16:38, 04/06/2013 [ответить]  
  • +/
    НЕ используйте Spamhaus.

    Spamhaus -- организация, которая пытается ввести цензуру в интернете. Блокирует сети датацентров и целые страны.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру