The OpenNET Project / Index page

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

FreeBSD 5.1 + Sendmail + Spamassisn + AVP (sendmail mail virus spam milter freebsd)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: sendmail, mail, virus, spam, milter, freebsd,  (найти похожие документы)
From: Дмитриев Геннадий Федорович <[email protected]> Newsgroups: email Date: Mon, 17 Nov 2003 14:31:37 +0000 (UTC) Subject: FreeBSD 5.1 + Sendmail + Spamassisn + AVP 0. Введение Ну вот, я почти доделал свою антиспам-систему. К сожалению, подробно описывать процедуру практически нет времени, да и лениво. Потому на все вопросы готов ответить по почте [email protected]. Но сначала небольшое отступление. В данной статье будет описана процедура надстройки для вашего почтового сервера для фильтрации почтового мусора (спама) и проверки входящей и исходящей почты на вирусы. Надеюсь для чего это надо, объяснять не надо. Так же полагаю, что вы хоть чуть-чуть знакомы с системой и вам не придеться объяснять, как поставить систему, как настоить сам почтовый сервер и что такое make и на кой она нужна. Вся процедура состоит из нескольких частей: 1. Обновление дерева портов 2. Обновление почтового демона 3. Установка и настройка демона spamd, который разбирает сообщение по кусочкам и ставит спам-балл Если балл превышает некую цифру, которую вы можете изменять, письмо преобразуется определенным образом. 4. Установка и настройка milter-а (spamass-milter) для почтового демона. Он будет передавать сообщение демону spamd и принимать его обратно, пересылая дальше по цепочке 5. Установка и настройка Касперского. В пояснении не нуждается. 6. Установка и настройка milter-а (kavmilter) для почтового демона. Он будет передавать сообщение Касперскому. 7. И последнее, настройка самого почтового демона. Вот собственно и все отступление, icon_smile.gif . Приступим. 1. Обновление дерева портов --------------------------- Для начала обновим дерево портов: cd /usr/ports/net/cvsup-without-gui make make install Далее в домашнем каталоге создаем для большего удобства два файлика. Один со списком обновляемых портов, другой со скриптом запуска. cd /home/user mkdir cvsup cd cvsup vi cvsup.ports # =====начало файла cvsup.ports========= *default host=cvsup.FreeBSD.org *default base=/usr *default prefix=/usr *default release=cvs *default tag=. *default delete use-rel-suffix compress ports-mail ports-net ports-security ports-sysutils ports-www # =====конец файла cvsup.ports========== В принципе вы можете здесь обновлять все порты, систему, если вам это необходимо. Для меня было достаточно этих портов. Про сам cvsup можете почитать здесь: http://www.freebsd.org.ru/how-to/cvsup/ vi cvsup.sh # =======начало файла cvsup.sh========== #!/bin/sh /usr/local/bin/cvsup -g -L 2 cvsup.ports # =======конец файла cvsup.sh=========== chmod +x cvsup.sh ./home/user/cvsup/cvsup.sh После такой процедуры ваши волосы, тьфу, порты станут относительно новыми. Из них вам понадобится поставить следующие порты (технология стандартная, make & make install): /usr/ports/mail/sendmail /usr/ports/mail/p5-Mail-SpamAssassin /usr/ports/mail/spamass-milter 2. Обновление почтового демона ------------------------------ Поскольку изначально в FreeBSD 5.1 ставится Sendmail 8.12.9, обновим его до 8.12.10 из портов. После установки его будет удобно собирать отсюда: /usr/ports/mail/sendmail/work/sendmail-8.12.10/cf/cf Как, поясню чуть позже. Дополнительно, в каталоге /usr/ports/mail/sendmail надо сделать make mailer.conf 3. Установка и настройка демона spamd ------------------------------------- Далее, с sendmail все понятно. Для двух других портов небольшие пояснения. Основной демон, фильтрующий вашу почту - spamd. Его конфигурационный файл находится здесь: /usr/local/etc/mail/spamassassin/local.cf # ==========начало файла local.cf======== # don't use agent use_razor2 0 use_dcc 0 use_pyzor 0 # check rdl skip_rbl_checks 0 # autowhitelist use_auto_whitelist 1 auto_whitelist_path /var/spool/filter/.spamassassin/auto_whitelist # bayes use_bayes 1 bayes_path /var/spool/filter/.spamassassin/bayes auto_learn 1 ok_languages en ru de ok_locales en ru de # rewrite subject rewrite_subject 1 subject_tag *SPAM*_HITS_ points* : required_hits 3.5 report_charset koi8-r allow_user_rules 0 clear_report_template report This message has identified this incoming email as possible spam. report report Content preview: _PREVIEW_ report report Content analysis details: (_HITS_ points, _REQD_ required,_BAYES_ bayes score) report report pts rule name description report ---- ---------------------- -------------------------------------------------- report _SUMMARY_ clear_unsafe_report_template # network whitelist whitelist_from localhost whitelist_to [email protected] (mailto:[email protected]) # ==========конец файла local.cf========= По пунктам объяснять не буду. Многое разжовано в статье Сергея Тараненко http://www.3nity.ru/viewtopic.htm?t=1459 Файл /usr/local/etc/rc.d/spammerdaemon.sh. Собственно скрипт, запускающий сам демон. Обратите внимание на два параметра. Первый -u filter означает, что демон запускается от некоего виртуального пользователя, имеющего ограниченные права. Про самого пользователя чуть ниже. Второй параметр -s local5. Это вывод сообщений в другой файл-лог. Изначальньно демон spamd все пишет в maillog. Мне это не понравилось, я вывел сообщения от него в другой файл. Так удобнее анализировать. В принципе, я бы вообще его отключил, да вот в документации не нашел, как. # =========начало файла spammerdaemon.sh== #!/bin/sh case "$1" in start) kill `ps ax | grep spamd | grep -v grep | awk '{print $1}' | head -1` >/dev/null 2>/dev/null && echo -n ' spamd' [ -x /usr/local/bin/spamd ] && /usr/local/bin/spamd -d -a -u filter -x \ -s local5 && echo -n ' spamd' ;; stop) kill `ps ax | grep spamd | grep -v grep | awk '{print $1}' | head -1` >/dev/null 2>/dev/null && echo -n ' spamd' ;; *) echo "Usage: `basename $0` {start|stop}" >&2 ;; esac exit 0 # =========конец файла spammerdaemon.sh=== Стоит добавить пользователя filter, группу filter, создать каталог /var/spool/filter и назначить пользователя filter его владельцем. vipw filter:*:1025:1025::0:0:Mail Filter:/var/spool/filter:/sbin/nologin vi /etc/group filter:*:1025:filter mkdir /var/spool/filter chown filter:filter /var/spool/filter Как я уже говорил, мне удобнее, когда сообщения от разных демонов пишутся в разные лог-файлы. Потому, чтобы перенаправить сообщения от spamd в другой файл, создадим пустой файл spamd.log: cd /var/log cat >./spamd.log chown filter:filter spamd.log И скорректируем содержимое двух файлов syslog.conf и newsyslog.conf: # ========добавка в файл syslog.conf====== local5.* /var/log/spamd.log # =========конец файла syslog.conf======== # ======добавка в файл newsyslog.conf===== /var/log/spamd.log filter:filter 640 3 2000 * Z # =======конец файла newsyslog.conf======= 4. Установка и настройка milter-а (spamass-milter) для почтового демона. ------------------------------------------------------------------------ Собственно, сам демон, разбирающий почту по косточкам готов. Перейдем к настройкам milter-а, который будет передавать письмо от sendmail к spamd. При установке spamass-milter файлик, объясняющий процедуру активизации фильтра, лежит здесь: /usr/local/share/doc/spamass-milter/activation.txt. Из всего этого я вынес для себя только одну полезную строчку: INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m') Ну и собственно скрипт для запуска milter-фильтра. Там ничего сложного нет. Единственное изменение, которое я сделал - это добавил в скрипт адрес, на который будет пересылаться почта, идентифицированная как "СПАМ". /usr/local/etc/rc.d/spamass-milter.sh # =======начало файла spamass-milter.sh=== #!/bin/sh DAEMON=/usr/local/sbin/spamass-milter SOCKET=/var/run/spamass-milter.sock PIDFILE=/var/run/spamass-milter.pid [email protected] case "$1" in start) if [ -f "${DAEMON}" -a -x "${DAEMON}" ] then "${DAEMON}" -b "${SPAMADRESS}" -p "${SOCKET}" -f & echo $! > "${PIDFILE}" sleep 1 kill -HUP `head -1 /var/run/sendmail.pid` echo -n ' spamass-milter running' fi ;; stop) if [ -f "${PIDFILE}" ] then read -r pid junk < "${PIDFILE}" kill ${pid} rm -f "${SOCKET}" "${PIDFILE}" sleep 1 kill -HUP `head -1 /var/run/sendmail.pid` echo -n ' spamass-milter stopped' fi ;; esac # ========конец файла spamass-milter.sh=== 5. Установка и настройка Касперского. ------------------------------------- С настройками фильтров, определяющих наличие спама в сообщениях покончено. Перейдем к установке господина Касперского и мильтера для почтовика. Соответсвенно, качаем откуда-нибудь kav-MailServer-4.0.4.0-FreeBSD-4.x.tgz tar xzvf kav-MailServer-4.0.4.0-FreeBSD-4.x.tgz pkg_add kav-WorkStationSuite-4.0.4.0-FreeBSD-4.x.tgz Из всего, что поставится в каталог /usr/local/share/AVP - интересны только эти файлы: kavdaemon kavscanner defUnix.prf AvpUnix.ini Содержание конфигурационных файлов: # =======начало файла AvpUnix.ini========= [AVP32] DefaultProfile=/usr/local/share/AVP/defUnix.prf [Configuration] KeysPath=/usr/local/share/AVP SetFile=avp.set BasePath=/usr/local/share/AVP/Bases SearchInSubDir=No UpdatePath=http://downloads2.kaspersky-labs.com/updates/ # ========конец файла AvpUnix.ini========= # =======начало файла defUnix.ini========= # same section with parameters for objects [Object] Names=*/home;*/tmp;*/var/tmp;/usr/src;/mnt/cdrom;/usr/tmp;/tmp/kav Memory=No Sectors=No ScanAllSectors=No Files=Yes FileMask=2 UserMask=*.tar.gz ExcludeFiles=0 ExcludeMask=*.txt *.cmd ExcludeDir= Packed=Yes Archives=Yes SelfExtArchives=Yes MailBases=Yes MailPlain=Yes Embedded=Yes InfectedAction=3 BackupInfected=No IfDisinfImpossible=1 Warnings=Yes CodeAnalyser=Yes RedundantScan=No SubDirectories=Yes CrossFs=Yes # global(common) options sections [Options] ScanRemovable=Yes ScanSubDirAtEnd=No ParallelScan=No LimitForProcess=16 EndlesslyScan=No ScanDelay=-1 Symlinks=1 [Report] Report=Yes UseSysLog=No ReportFileName=/var/log/kav/kavscan.rpt Append=Yes ReportFileLimit=Yes ReportFileSize=500 RepCreateFlag=600 ExtReport=No WriteTime=Yes WriteExtInfo=No UseCR=No RepForEachDisk=No LongStrings=Yes UserReport=No UserReportName=/var/log/kav/userreport.log # Showing objects ShowOK=No ShowPack=No ShowPassworded=No ShowSuspision=No ShowWarning=No ShowCorrupted=No ShowUnknown=No # Action with infected files [ActionWithInfected] InfectedCopy=No InfectedFolder=/usr/local/share/AVP/infected CopyWithPath=Yes # Action with same infection file ChangeExt=None NewExtension=Virs ChownTo=None ChModTo=No # Action with suspicion files [ActionWithSuspicion] SuspiciousCopy=No SuspiciousFolder=/usr/local/share/AVP/suspicious CopyWithPath=No # Action with same suspicious file ChangeExt=None NewExtension=Susp ChownTo=None ChModTo=No # Action with corrupted files [ActionWithCorrupted] CorruptedCopy=No CorruptedFolder=/usr/local/share/AVP/corrupted CopyWithPath=No # Action with same corrupted file ChangeExt=None NewExtension=Corr ChownTo=None ChModTo=No [TempFiles] UseMemoryFiles=Yes LimitForMemFiles=6000 MemFilesMaxSize=20000 TempPath=/tmp [Priority] Father=0 Child=0 [Customize] Sound=No UpdateCheck=No UpdateInterval=90 OtherMessages=No RedundantMessage=No DeleteAllMessage=No ExitOnBadBases=Yes UseExtendedExitCode=Yes # ========конец файла defUnix.ini========= В стандартных конфигах я кое-что переделал. Во первых, при установке Касперского, он норовит свои конфигурационные файлы поместить в /etc/Avp. Мне это не понравилось, я выкинул оттуда все и поместил в домашний каталог Касперского /usr/local/share/AVP. Отсюда несколько изменений в перечисленных конфигах. Далее, создал два каталога, куда будут валиться логи и временные файлы для проверки на вирусы. mkdir /var/log/kav mkdir /tmp/kav 6. Установка и настройка milter-а (kavmilter) для почтового демона. ------------------------------------------------------------------- Осталось поставить milter для Касперского. Сам порт находится здесь: /usr/ports/mail/kavmilter. Процедура все таже, make & make install При установке kavmilter создается три файлика, один файл запуска самого kavmilter, второй файл запуска демона kavdaemon, третий конфигурационный. Там опять же, я многое поменял, потому просто содержимое файликов: /usr/local/etc/kavmilter.conf # =======начало файла kavmilter.conf======== SendmailPipe = /var/run/kavmilter KAVPipe = /var/run/AvpCtl PIDFile = /var/run/kavmilter.pid TempDirectory = /tmp/kav KAVTimeout = 60 SendmailTimeout = 300 DebugLevel = 0 DaemonMode = yes InfectedAction = discard # ========конец файла kavmilter.conf======== /usr/locat/etc/rc.d/kavmilter.sh # =======начало файла kavmilter.sh========== !/bin/sh PREFIX=/usr/local/libexec PIPE=/var/run/kavmilter KAVPIPE=/var/run/AvpCtl PIDFILE=/var/run/kavmilter.pid TEMPDIR=/tmp/kav DPARMS="-D 0" case "$1" in start) rm -f ${PIPE} > /dev/null && \ ${PREFIX}/kavmilter ${DPARMS} > /dev/null && echo -n ' kavmilter' ;; stop) killall -TERM kavmilter > /dev/null && rm -f ${PIPE} && \ rm -f ${PIDFILE} && \ echo "kavmilter stopped" ;; restart) killall -TERM kavmilter > /dev/null && rm -f ${PIPE} && \ rm -f ${PIDFILE} && sleep 5 && \ ${PREFIX}/kavmilter ${DPARMS} > /dev/null && \ echo "kavmilter restarted" ;; *) echo "Usage: `basename $0` {start|stop|restart}" >&2 ;; esac exit 0 # ========конец файла kavmilter.sh========== При установке Касперского в /usr/local/etc/rc.d/ создается файл kavd.sh. Я его удалил, вместо него следует использовать другой, что ставится вместе с kavmilter. Некоторые строки мною изменены, потому просто содежимое файла /usr/local/etc/rc.d/kavdaemon.sh: # =======начало файла kavdaemon.sh========== #!/bin/sh PREFIX="/usr/local/share/AVP" BINDIR="/usr/local/share/AVP" AVPDIR="/tmp/kav" AVPPIPE="/var/run" DPARMS="-Y -f=$AVPPIPE -MP -dl -MD -I0 -o{$AVPDIR} $AVPDIR" case "$1" in start) $BINDIR/kavdaemon $DPARMS && echo -n ' kavdaemon' ;; stop) [ -f $AVPDIR/AvpPid ] && $BINDIR/kavdaemon -ka > /dev/null \ && echo "kavdaemon terminated" ;; restart) [ -f $AVPDIR/AvpPid ] && $BINDIR/kavdaemon -ka > /dev/null \ && $BINDIR/kavdaemon $DPARMS > /dev/null && echo 'kavdaemon restarted' ;; *) echo "Usage: `basename $0` {start|stop|restart}" >&2 ;; esac exit 0 # ========конец файла kavdaemon.sh========== 7. Настройка самого почтового демона. ------------------------------------- Ну и последнее. Настройка sendmail для фильтрации почты от спама, вирусов и проч. Переходим в каталог с конфигурационными файлами sendmail cd /usr/ports/mail/sendmail/work/sendmail-8.12.10/cf/cf Создаем файл main.mc следующего содержания: # =======начало файла main.mc=============== divert(-1) divert(0) include(`../m4/cf.m4') VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.mc,v 1.10.2.11 2001/07/14 18:07:27 gshapiro Exp $') OSTYPE(freebsd5) DOMAIN(generic) FEATURE(`no_default_msa') DAEMON_OPTIONS(`Port=smtp, Name=MTA') FEATURE(access_db, `hash -o -T<TMPF> /etc/mail/access') FEATURE(blacklist_recipients) FEATURE(local_lmtp) FEATURE(mailertable, `hash -o /etc/mail/mailertable') FEATURE(relay_based_on_MX) FEATURE(virtusertable, `hash -o /etc/mail/virtusertable') dnl Realtime Blocking List - AntiSpam Control dnl FEATURE(dnsbl) dnl FEATURE(dnsbl, `relays.osirusoft.com', `Mail rejected - see http://relays.osirusoft.com/') FEATURE(dnsbl,`relays.ordb.org',`Mail rejected - see http://ordb.org/') FEATURE(dnsbl,`blackholes.easynet.nl',`Mail rejected - see http://blackholes.easynet.nl/') dnl FEATURE(dnsbl,`inputs.orbz.org', `Mail rejected - see http://orbz.org/') dnl FEATURE(dnsbl,`relays.visi.com', `Mail rejected - see http://relays.visi.com/') dnl FEATURE(dnsbl, `ex.dnsbl.org', `Mail rejected - see http://www.dnsbl.org/') dnl FEATURE(dnsbl,`blackholes.mail-abuse.org',`Mail rejected - see http://mail-abuse.org/') dnl FEATURE(dnsbl,`relays.mail-abuse.org',`Mail rejected - see http://work-rss.mail-abuse.org/') dnl FEATURE(dnsbl,`dialups.mail-abuse.org',`Mail rejected; see http://mail-abuse.org/dul/enduser.htm') dnl Russian DialUp Blocking List FEATURE(`dnsbl',`dul.ru',`Mail rejected - your are spammer') dnl Uncomment the first line to change the location of the default dnl /etc/mail/local-host-names and comment out the second line. dnl define(`confCW_FILE', `-o /etc/mail/sendmail.cw') define(`confCW_FILE', `-o /etc/mail/local-host-names') define(`confMAX_MIME_HEADER_LENGTH', `256/128') define(`confMAX_MESSAGE_SIZE', 5000000) define(`confNO_RCPT_ACTION', `add-to-undisclosed') define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy,noetrn,nobodyreturn,goaway,restrictmailq,restrictqrun') define(`confSMTP_LOGIN_MSG',`Antispam-MTA; "Non-authorized relaying DENIED." $b') define(`confMAX_RCPTS_PER_MESSAGE', `5') INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m') INPUT_MAIL_FILTER(`kavmilter',`S=unix:/var/run/kavmilter,F=T') define(`confMILTER_LOG_LEVEL',`6') MAILER(local) MAILER(smtp) # ========конец файла main.mc=============== Полагаю, что вы немного знакомы с настройкой sendmail, потому не буду объяснять все позиции. Поясню лишь три: INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m') Эта строчка говорит, что при получении письма почтовиком, письмо передается фильтру spamassassin для проверки на спам. В результате обработки письму присваивается некий рейтинг. INPUT_MAIL_FILTER(`kavmilter',`S=unix:/var/run/kavmilter,F=T') Эта строчка говорит о том, что после обработки письма на потенциальный спам, письмо попадает к Касперскому, а тот уже делает вывод, содержит ли письмо вирус или нет. define(`confMILTER_LOG_LEVEL',`6') Ну и эта строка лишь уменьшает количество выводимой информации в логи. Что удобно после отладки. Мне ведь нужны в принципе только строки о поступлении и пересылке письма. Для разбора полета письма их вполне достаточно, icon_smile.gif. Собираем конфигурационный файл sendmail: m4 main.mc>sendmail.cf Его надо перезаписать поверх старого файла /etc/mail/sendmail.cf. Ну и несколько последних штрихов. На самом деле вы можете этот шаг пропустить или сделать так, как вам удобнее. Я для собственного успокоения создал каталог /usr/local/etc/script. Переместил туда все необходимые мне стартовые скрипты kavdaemon.sh, spammerdaemon.sh, kavmilter.sh, spamass-milter.sh. В каталоге /usr/local/etc/rc.d создал исполняемый скрипт следующего содержания: # =======начало файла start.sh=============== #!/bin/sh # my start script # kavdaemon - antiviral tolkien pro /usr/local/etc/script/kavdaemon.sh start # starting mail filter daemon /usr/local/etc/script/spammerdaemon.sh start /usr/local/etc/script/kavmilter.sh start /usr/local/etc/script/spamass-milter.sh start # ========конец файла start.sh=============== Просто мне так удобнее. Вот вроде бы и все. Буду благодарен за любые замечания на адрес [email protected] Все права на этот документ принадлежат мне. Огромное спасибо: Андрееву Павлу, системному администратору Novavox и Тараненко Сергею, системному администратору Trinity за неоценимую помощь в создании данной системы. С уважением, Дмитриев Геннадий Федорович. Системный администратор ООО "Компьютеры Линтек"

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1.1, Евгений (?), 11:45, 29/11/2003 [ответить]  
  • +/
    Все хорошо, только не забудьте убрать dnsbl relays.osirusoft.com иначе лучше сразу всю почту направить >/dev/null при этом Вы секономите хотя бы времо процессора %)
     
  • 1.2, setar (?), 14:03, 01/12/2003 [ответить]  
  • +/
    ;) Евгений вы не внимательны, в начале строки с relays.osirusoft.comстоит ремарка (dnl - Do Not List)
     
  • 1.3, andros (?), 12:45, 06/02/2004 [ответить]  
  • +/
    Ошибка в скрипте spamass-milter.sh:

    В строке "${DAEMON}" -b "${SPAMADRESS}" -p "${SOCKET}" -f &
    убрать символ '&' иначе получаем не тот PID в файле spamass-milter.pid

     
  • 1.4, Master (?), 06:34, 03/03/2004 [ответить]  
  • +/
    Все хорошо, только 4-й KAV не хотит работать под FreeBSD 5.1 он требует библиотеку Libc.so.4, так что нужно 4.5 KAV и выше ставить.
     
  • 1.5, nomad (?), 12:59, 09/03/2004 [ответить]  
  • +/
    >Все хорошо, только 4-й KAV не хотит работать под
    >FreeBSD 5.1 он требует библиотеку Libc.so.4, так
    >что нужно 4.5 KAV и выше ставить.

    А если доставить в 5.1 compatible 4?

     
  • 1.6, bardak (??), 09:06, 01/06/2004 [ответить]  
  • +/
    А версию Касперского 5.0.2.1 пробовали?
     
  • 1.7, VladStar (?), 23:24, 12/01/2005 [ответить]  
  • +/
    В новом SpamAssassin они тэг перезаписи subject'а поменяли на
    rewrite_header Subject  ****SPAM(_SCORE_)****

    Источник: http://wiki.apache.org/spamassassin/SubjectRewrite

     
  • 1.8, мимо_пробегал (?), 12:25, 06/12/2005 [ответить]  
  • +/
    вместо
    if [ -f "${DAEMON}" -a -x "${DAEMON}" ]
    достаточно написать

    if [ -x "${DAEMON}" ]

    ничего страшного в этом нет, просто лишняя проверка

    >В принципе, я бы вообще его отключил, да вот в
       документации не нашел, как.

    просто отдать ему /dev/null в качестве лог файла :)

     
  • 1.9, takvot (?), 18:53, 29/09/2006 [ответить]  
  • +/
    спамассассин совершенно не подходит для серверов обрабатывающих 100000 и более писем в час.
    даже с ограничением в 300 и менее кб, сервер загнется, каким бы крутым он не был.
     

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




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

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