| !No Защита на Mail сървър Инсталиране на антивирус , антиспам и меил скенер |
|
Защита на Mail Сървър Ако предположим, че правилно сте си пуснали и настроили Mail сървъра, трябва да се помисли и за защитата му. Имам в предвид, че атаки от вируси , спамове и т.н. са досадни неща но случващи се :1twisted. Тука пак ще говоря за QMail и за защитата му. Идеята е следната: 1. QMail-Scanner-a поема писмото. 2. Предава го на антивирусната програма (може да бъде F-Prot , ClamAV и т.н) 3. Сканира се писмото и се връща на QMail-Scanner-a, след което се предава на QMail-а Сега да се заемем и със същината. Като начало да инсталираме антивирусна програма от портовете на FreeBSD #cd /usr/ports/security/clamv #make Появява се едно меню, от него изберете
[X] CURL Support URL downloading
#make clean След инсталацията ще се създадат потребител clamav и група clamav. А сега да тестваме какво сме свършили. #clamscan --recursive --log=/tmp/clamscan.log /usr/home Така това ще сканира /usr/home директорията и първото нещо което ще каже е, че антивирусните дефиниции са стари. Това трябва да ни подсети да си ги обновим. #/usr/local/bin/freshclam --verbose Сега на екрана трябва да Ви изписва разни работи от рода на стари са Ви дефинициите обновявам ги и т.н. Изчакайте докато всичко мине успешно. Най-вероятно ще каже, че версията Ви е стара и разни там бла-бла други работи, което навежда на мисълта, да си изтеглим новата версия от http://www.clamav.net/ и да си я компилираме наново, или да изтеглим най-новия порт от http://cvsweb.freebsd.org/ports/security/clamsmtp/clamsmtp.tar.gz?tarball=1 и да го инсталираме наново. Според мен е по-добре да изтеглим новия порт. Затова ще покажа как става именно този вариант. Приемаме, че сте си изтеглили порта от показания линк (може да е излязъл и по-нов, затова внимавайте да си изтеглите най-новия). Копираме го върху оригиналния #tar -C /usr/ports/security -zxvf /home/tachko/clamav.tar.gz Аз си поставих архивирания порт в /home/tachko/ а самия той се казва clamav.tar.gz Деинсталираме стария clamav от порта #cd /usr/ports/security/clamv #make deinstall Сега да го инсталираме от новия порт #make install #make clean Наново да направим теста #clamscan --recursive --log=/tmp/clamscan.log /usr/home Наново да обновим дефинициите #/usr/local/bin/freshclam --verbose Така сега всичко е наред. Следващата стъпка е да стартираме clamav и freshclam като демони. За да се стартират автоматично трябва в /etc/rc.conf да добавим два реда #vi /etc/rc.conf
clamav_clamd_enable="YES"
#echo '0 */12 * * * clamav /usr/local/bin/freshclam --quiet -l /var/log/clamv/clam-update.log' >> /etc/crontab По-долу ще дам малко обяснения какво значи горния ред. В /etc/crontab се записва следния ред 0 */12 * * * clamav /usr/local/bin/freshclam --quiet -l /var/log/clamv/clam-update.log А ето и какво е значението на самия ред Поле (колона) - имат следното значение 1-во поле - Минути (0-59) 2-ро поле - Час (2-24) 3-то поле - Ден от месеца (1-31) 4-то поле - Месец (1-12, Jan, Feb, ...) 5-то поле - Ден от седмицата (0-6) 0=Неделя, 1=Понеделник ...или Sun, Mon, Tue, Wed, Thur, Fri 6-то поле - Потребител, който ще изпълнява командата 7-мо поле - Команда Има няколко начина за представяне (задаване) на многобройни стойности в полето - със запетая ' , ', когато искаме да изброим точно определени дни/месеци и т.н.. Примерно за 1, 11 и 21ден от месеца, можем да зададем "1,11,21" - с тире ' - ' задаваме обхват, т.е. 1-5 означава 1,2,3,4,5 - със звездичка ' * ' - всички възможни стойности за даденото поле Рестартираме и inetd/crontab #kill -HUP 1 До тук, добре. Обаче трябва да свържем антивирусната програма с QMail-a. За целта се използва qmail-scanner-a. Ами тогава хайде да го инсталираме от порта на FreeBSD. #cd /usr/ports/mail/qmail-scanner #make install #make clean Тази инсталация създаде един скрипт qmail-scanner-queue.pl във /usr/local/bin който има за цел да прихваща писмата и да ги предава на антивирусната програма. Така, трябва на qmail-smtpd да кажем да използва qmail-scanner-queue.pl скрипта вместо стандартния qmail-queue. Целта се постига като редактираме tcp.smtp. #vi /etc/tcp.smtp
192.168.:allow,RELAYCLIENT="", QMAILQUEUE="/usr/local/bin/qmail-scanner-queue.pl"
#tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp Създадохме базата така, че писмата да се поемат от скрипта, който да ги подаде на антивирусната програма и после да като ги вземе обратно да ги предаде на QMail-a. За финал да рестартираме QMail-a #/usr/local/etc/rc.d/qmail.sh stop #/usr/local/etc/rc.d/qmail.sh start Ако приемем, че всичко сме направили както трябва то е време да тестваме. За целта qmail-scanner дистрибуцията съдържа в себе си скрипт и тестови файлове съдържащи в себе си вирусни ключове които се прихващат от антивирусните програми. А ето го и самия тест: #cd /usr/ports/mail/qmail-scanner/work/qmail-scanner-1.20 #./contrib/test_instalation.sh -doit Това ще изпрати 4 писмa до root преминаващо през qmail-scanner-a първото е нормално второто е с EICAR.COM test вирус и PERL скрипта трябва да го прихване третото е пак с EICAR.COM test вирус, но името му е различно. Поради тази причина скрипта ще го прескочи, но ще бъде прехванато от друг комерсиален антивирус четвъртото писмо съдържа спам и ако използвате SpamAssassin със qmail-scanner то на писмото ще му се сложи таг (отметка) който ще го дефинира, че е спам Сега ако всичко работи както трябва то писмо No2 и No3 трябва да се блокират, а ако използвате SpamAssassin то четвъртото писмо трябва да се маркира като спам. 3. Installing SpamAssassin 3.1. Installing SpamAssassin from the ports system SpamAssassin can be installed easily from the ports system: # cd /usr/ports/mail/p5-Mail-SpamAssassin # make # make install 3.2. Testing the installation You should now test SpamAssassin on the sample files provided. Firstly, test some known spam: # spamassassin -t < sample-spam.txt > spam.out View the resulting file, spam.out. SpamAssassin should add the following headers to the message: X-Spam-Status: Yes, hits=14.7 required=5.0 tests=ALL_CAPS_HEADER,CALL_FREE,DATE_IN_PAST_24_48, DRASTIC_REDUCED,FROM_HAS_MIXED_NUMS,HOME_EMPLOYMENT, INVALID_DATE,INVALID_MSGID,LINES_OF_YELLING, MSGID_HAS_NO_AT,NO_REAL_NAME,ONCE_IN_LIFETIME,REMOVE_SUBJ, SMTPD_IN_RCVD,SPAM_PHRASE_21_34,UNDISC_RECIPS version=2.43 X-Spam-Flag: YES X-Spam-Level: ************** X-Spam-Checker-Version: SpamAssassin 2.43 (1.115.2.20-2002-10-15-exp) Additionally, there will be a banner explaining in detail what tests were failed. Next, test SpamAssassin with a piece of genuine email: # spamassassin -t < sample-nonspam.txt > nonspam.out This should add only the following headers to the mail, indiciating the message is not considered spam: X-Spam-Status: No, hits=0.9 required=5.0 tests=GAPPY_TEXT,LINES_OF_YELLING,PGP_SIGNATURE, SPAM_PHRASE_02_03,TO_BE_REMOVED_REPLY version=2.43 X-Spam-Level: Note SpamAssassin's only action is to mark mail that it considers spam with the X-Spam- headers. It does not delete or even remove spam. Another agent is required in the chain to move the spam once detected. Instructions are given below for a simple per-user procmail recipe for moving spam to a separate folder. 3.3. Running SpamAssassin as a daemon: spamd A startup script for spamd will have been placed in /usr/local/etc/rc.d/spamd.sh. Adding the following line to /etc/rc.conf will ensure that spamd is run as a daemon at startup: spamd_enable="YES" 3.4. Using procmail to filter the spam As noted above, SpamAssassin only tags spam with X-Spam- headers. If you don't do anything else, you'll still receive spam in your mailbox—it will just be identified as spam by those headers. One common solution is to use procmail as a mail delivery agent and instruct it to place the spam in a Maildir of its own. There is a lot of good documentation on installing and running procmail, and a thorough treatment of that complex program is beyond the scope of this document. If you have procmail installed at your site already, though, or even if you are prepared to install it from the Ports System just to redirect SpamAssassin-tagged spam, the following is a minimal procmail recipe to redirect spam to the Maildir $HOME/Maildir/.Spam/: # Divert spam :0: * ^X-Spam-Status: Yes $HOME/Maildir/.Spam/ # Deliver all other mail to inbox :0: $HOME/Maildir/ This recipe would be placed in each user's .procmailrc file. In addition, placing it in the file /usr/share/skel/dot.procmailrc will ensure that any newly created users will have a .procmailrc file generated in their home directory. Each user will also need to have a .Spam Maildir created for them. For example, to create the Maildir for paulh, enter: # su paulh # cd $HOME # /var/qmail/bin/maildirmake Maildir/.Spam # exit In order to get qmail to call procmail, each user's .qmail file should contain the following: |IFS=' ' && exec /usr/local/bin/procmail -f- || exit 75 Again, to ensure all new users have this .qmail created for them, replace the contents of /usr/share/skel/dot.qmail with the line above. Note Installing and running procmail is non-trivial. Read the documentation and the numerous FAQs and How-Tos if you plan to do this. |
|
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 10.0 - 1 глас |
|