![]() |
![]() |
словник | перекладачка | факти | тексти | програми | |
| щодо | посилання | новини | гостьова книга | пошук | |||
|
початок
|
|||
Встановлення DrWeb для поштовика Sendmail під Linux(n) Валентин Соломко, Київ, 2002 Вихідні дані:
Встановлення та налаштування Встановлюємо антивірус [root@mailer wrk]# rpm -i drweb-4.29.2-glibc.2.2.i386.rpm В результаті отримуємо: /opt/drweb - домашня тека
/etc/drweb - файли налаштувань
/etc/rc.d/init.d/drwebd - службовий скрипт
/var/drweb - робочі теки
!!! RTFM - там її цілком достатньо !!! [root@mailer wrk]# ln -s /etc/drweb /opt/drweb
Створюємо користувача [root@mailer wrk]# useradd -d /dev/null -s /bin/false drweb
[root@mailer wrk]# cat /etc/passwd | grep drweb
drweb:x:547:547::/dev/null:/bin/false
[root@mailer drweb]# chown -R drweb.drweb /opt/drweb
[root@mailer drweb]# chown -R drweb.drweb /var/drwebПеревіряємо чи живий: [root@mailer wrk]# cd /opt/drweb
[root@mailer drweb]# ./drweb
Dr.Web (R) for Linux, version 4.29.2 (November 5, 2002)
Copyright (c) Igor Daniloff, 1992-2002
Daniloff's Labs and DialogueScience
http://www.drweb.ru, support@drweb.ru: +7 (812) 387-64-08
http://www.dials.ru, antivir@dials.ru: +7 (095) 137-01-50
Key file: /opt/drweb/drweb.key
Registration info:
0100005167
Evaluation Key (ID Anti-Virus Lab. Ltd, St.Petersburg)
This is an EVALUATION version with limited functionality!
To get your registration key, call regional dealer.
Loading /var/drweb/bases/drwebase.vdb - Ok, virus records: 31578Якщо немає таких рядків: Key file: /opt/drweb/drweb.key
Registration info:
XXXXXXXXXXзначить є проблеми з реєстраційним ключем Якщо немає такого рядку: Loading /var/drweb/bases/drwebase.vdb - Ok, virus records: 31578
значить є проблеми з правами користувача Зауваження: Всі подальші
дії виконуються з пробним ключем. Для фільтрації пошти його
функціональності досить. Для перевірки пошуку вірусів
скористаємося спеціальним тестовим псевдовірусом. Він міститься (і
описаний) у файлі [root@mailer drweb]# cat doc/readme.eicar | grep X5O! >virtest А потім перевіримо працездатність: [root@mailer drweb]# ./drweb virtest
Dr.Web (R) for Linux, version 4.29.2 (November 5, 2002)
Copyright (c) Igor Daniloff, 1992-2002
Daniloff's Labs and DialogueScience
http://www.drweb.ru, support@drweb.ru: +7 (812) 387-64-08
http://www.dials.ru, antivir@dials.ru: +7 (095) 137-01-50
Key file: /opt/drweb/drweb.key
Registration info:
0100005167
Evaluation Key (ID Anti-Virus Lab. Ltd, St.Petersburg)
This is an EVALUATION version with limited functionality!
To get your registration key, call regional dealer.
Loading /var/drweb/bases/drwebase.vdb - Ok, virus records: 31578
/opt/drweb/virtest infected with EICAR Test File (NOT a Virus!)
Scan report for "/opt/drweb/virtest":
Scanned : 1 Cured : 0
Infected : 1 Deleted : 0
Modifications : 0 Renamed : 0
Suspicious : 0 Moved : 0
Scan time : 00:00:00 Scan speed : 1 Kb/s
Всі ці повідомлення відображаються у файлі
Підправимо налаштування антивірусу
в секції -->--------------------------------------<-- --- drweb32.ini.orig Tue Nov 5 00:44:48 2002 +++ drweb32.ini Tue Nov 12 12:46:13 2002 @@ -18,6 +18,9 @@ InfectedFiles = Report SuspiciousFiles = Report IncurableFiles = Report +ActionInfectedArchive = move +ActionInfectedMail = move +ActionInfectedContainer = move ExcludePaths = LogToFile = Yes OverwriteLog = No -->--------------------------------------<--
Зауваження: при використанні пробного ключа
антивірус не лікує, тому просто складуємо заражені листи у
відстійнику. Зацікавлені сторони отримають відповідне повідомлення
( Та в секції -->--------------------------------------<-- --- drweb32.ini.orig Tue Nov 5 00:44:48 2002 +++ drweb32.ini Tue Nov 12 12:46:13 2002 @@ -68,10 +71,12 @@ LogPacked = Yes Interfaces = "localhost" ;User = drweb -;UserID = -;GroupID = +UserID = 547 +GroupID = 547 ScanFiles = All MaxCompressionRatio = 20 +MaxFileSizeToExtract = 5000 MaxChildren = 16 SyslogFacility = "Daemon" SyslogPriority = "Alert" -->--------------------------------------<--
Зауваження: Я не використовував
налаштування Можна, також, добавити антиспамерської функціональності: -->--------------------------------------<-- --- drweb32.ini.orig Tue Nov 5 00:44:48 2002 +++ drweb32.ini Tue Nov 12 12:46:13 2002 @@ -79,6 +84,11 @@ FilterRule X-Mailer ".*Mass.*Sender.*" Reject FilterRule To ".*undisclosed.*recipient.*" Reject FilterRule Subject ".*free.*xxx.*" Reject +FilterRule Subject ".*viagra.*" Reject +FilterRule Subject ".*pennis.*" Reject +FilterRule Subject ".*money.*" Reject +FilterRule From ".*Sarah.*Williams.*" Reject UpdatePath = "/opt/drweb/updates" -->--------------------------------------<-- Запуск демону антивірусу. Скористаємося службовим скриптом: [root@mailer drweb]# /etc/rc.d/init.d/drwebd start
Starting Dr. Web daemon...Dr.Web (R) daemon for Linux, version 4.29.2 (November 5, 2002)
Copyright (c) Igor Daniloff, 1992-2002
Daniloff's Labs and DialogueScience
http://www.drweb.ru, support@drweb.ru: +7 (812) 387-64-08
http://www.dials.ru, antivir@dials.ru: +7 (095) 137-01-50
Key file: /opt/drweb/drwebd.key
Registration info:
0100005168
Evaluation Key (ID Anti-Virus Lab. Ltd, St.Petersburg)
This is an EVALUATION version with limited functionality!
To get your registration key, call regional dealer.
Loading /var/drweb/bases/drwebase.vdb - Ok, virus records: 31578
Daemon is installed, TCP socket created on port 3000
У разі нормального запуску демон створює потрібні
сокети ( [root@mailer drweb]# netstat -napl | grep drweb
tcp 0 0 127.0.0.1:3000 0.0.0.0:* LISTEN 6697/drwebd
unix 2 [ ] DGRAM 348573 6697/drwebd Перевіряємо його роботу: [root@mailer drweb]# clients/drwebdc -fvirtest
Results: daemon return code 0x10020 (known virus is found)На демона, також, зав'язана робота скрипта оновлення антивірусних баз. Налаштовуємо оновлення
антивірусних баз, яке відбувається за допомогою скрипта
Можна встановити його з пакету дистрибутиву: [root@mailer drweb]# cd ~/wrk
[root@mailer wrk]# rpm -i perl-String-CRC32-1.2-15.i386.rpmАбо з архіву: [root@mailer drweb]# cd ~/wrk
[root@mailer wrk]# tar xzvf String-CRC32-1.2.tar.gz
String-CRC32-1.2/
...
String-CRC32-1.2/CRC32.pod
[root@mailer wrk]# cd String-CRC32-1.2
[root@mailer String-CRC32-1.2]# perl Makefile.PL INSTALLDIRS=vendor
Checking if your kit is complete...
Looks good
Writing Makefile for String::CRC32
[root@mailer String-CRC32-1.2]# make && make test
cp CRC32.pm blib/lib/String/CRC32.pm
...
All tests successful.
Files=1, Tests=27, 0 wallclock secs ( 0.08 cusr + 0.01 csys = 0.09 CPU)
[root@mailer String-CRC32-1.2]# make install UNINST=1
Installing /usr/lib/perl5/vendor_perl/5.6.1/i386-linux/auto/String/CRC32/CRC32.so
...
Appending installation info to /usr/lib/perl5/5.6.1/i386-linux/perllocal.pod
Зауваження: визначення Завантажуємо свіжі оновлення: [root@mailer wrk]# su drweb -s /bin/sh -c /opt/drweb/update/update.pl
[root@mailer wrk]# ll /var/drweb/bases
mtotal 700
-rw-r--r-- 1 drweb drweb 7853 Жов 30 18:45 drw42901.vdb
-rw-r--r-- 1 drweb drweb 5130 Лис 3 23:45 drw42902.vdb
-rw-r--r-- 1 drweb drweb 3994 Лис 10 23:00 drw42903.vdb
-rw-r--r-- 1 drweb drweb 12475 Лис 21 00:38 drw42904.vdb
-rw-r--r-- 1 drweb drweb 8130 Лис 24 23:40 drw42905.vdb
-rw-r--r-- 1 drweb drweb 7564 Гру 1 23:06 drw42906.vdb
-rw-r--r-- 1 drweb drweb 5568 Гру 8 22:35 drw42907.vdb
-rw-r--r-- 1 drweb drweb 644617 Лис 5 00:44 drwebase.vdb
-rw-r--r-- 1 drweb drweb 1794 Гру 11 08:35 drwtoday.vdb
[root@mailer wrk]# ll /opt/drweb/updates
total 28
-rw-r--r-- 1 drweb drweb 2318 Лис 4 00:32 drw42902.txt
-rw-r--r-- 1 drweb drweb 1601 Лис 10 23:28 drw42903.txt
-rw-r--r-- 1 drweb drweb 6064 Лис 18 11:42 drw42904.txt
-rw-r--r-- 1 drweb drweb 2880 Лис 24 23:40 drw42905.txt
-rw-r--r-- 1 drweb drweb 3279 Гру 1 23:06 drw42906.txt
-rw-r--r-- 1 drweb drweb 1398 Гру 8 23:07 drw42907.txt
Налаштовуємо періодичні оновлення за допомогою
скрипту -->--------------------------------------<-- #!/bin/sh su drweb -s /bin/sh -c /opt/drweb/update/update.pl -->--------------------------------------<-- Тепер збираємо клієнта для sendmail. Для його роботи потрібна підтримка
Перевіряємо наявність відповідного пакета та власне бібліотеки у ньому: [root@mailer wrk]# rpm -ql sendmail-devel | grep milter
/usr/include/libmilter/mfapi.h
/usr/lib/libmilter.aЗбираємо клієнтів: [root@mailer wrk]# tar xzvf drweb-clients-4.29-sources.tar.gz
drweb-clients-4.29-sources/
drweb-clients-4.29-sources/addons/
...
drweb-clients-4.29-sources/etc/smb_spider.conf
[root@mailer wrk]# cd drweb-clients-4.29-sources
[root@mailer drweb-clients-4.29-sources]# ln -s /usr/lib/libmilter.a lib/libmilter.a
[root@mailer drweb-clients-4.29-sources]# ln -s /usr/lib/libsmutil.a lib/libsmutil.a
[root@mailer drweb-clients-4.29-sources]# ln -s /usr/include/libmilter include
[root@mailer drweb-clients-4.29-sources]# ./configure
Do you want compile Sendmail filter ? [y or n]
[default=y]:y
Do you use Sendmail version 8.11 ? [y or n]
[default=n]:y
...
Do you want compile commandline client ? [y or n]
[default=y]:y
...
Enter compiler flags
[default=-O2 -Wall -pipe]:
----------------------
Configuration Summary:
OS type = Linux
Milter version = FFR
Milter include dir = include/libmilter
Sendmail util library = lib/libsmutil.a (-lsmutil)
Compiler flag(s) = -O2 -Wall -pipe
Configuration is okey ? [y or n]
[default=y]:y
Creating Makefile ... [.] [src]Done.
[root@mailer drweb-clients-4.29-sources]# make
gcc -c -O2 -Wall -pipe -D__UNIX_DW -DLinux_DW -I./include...
...
gcc dw_md5.o dw_users.o dwsm_dfork.o dwsm_opt.o dwsm_file.o...Копіюємо клієнтів у домашній каталог: [root@mailer drweb-clients-4.29-sources]# strip drweb-smf
[root@mailer drweb-clients-4.29-sources]# strip drwebdc
[root@mailer drweb-clients-4.29-sources]# cp drweb-smf /opt/drweb
[root@mailer drweb-clients-4.29-sources]# cp drwebdc /opt/drwebА все для налаштування у каталог налаштування: [root@mailer drweb-clients-4.29-sources]# cp etc/drweb_smf.conf /etc/drweb
[root@mailer drweb-clients-4.29-sources]# cp -R templates /etc/drweb
[root@mailer drweb-clients-4.29-sources]# cd ..
Розпаковуємо файл локалізації Налаштовуємо клієнта: -->--------------------------------------<-- --- drweb_smf.conf.orig Wed Dec 11 16:53:23 2002 +++ drweb_smf.conf Wed Dec 11 16:59:19 2002 @@ -50,7 +50,7 @@ LocalScan = yes # Enable or disable spam-filter (on/off) -SpamFilter = off +SpamFilter = on # User account used by filter FilterAccount = drweb @@ -95,7 +95,7 @@ # pass - pass such messages # discard - discard such messages # reject - reject such message -SpamFilterAlert = pass +SpamFilterAlert = reject # EmptyFrom - mean that SMTP session initiated with empty envelope From: # used for mail notifications (reports) and by spammers @@ -108,7 +108,8 @@ # # discard - discard such messages # reject - reject such message -EmptyFrom = continue +#EmptyFrom = continue +EmptyFrom = reject # SkipObject - mean that daemon found object that cannot be checked: # password protected archive, broken archive, sym-link, @@ -147,10 +148,10 @@ ProcessingErrors = reject # Admin mail address (may be unix-local address) -AdminMail = av-admin@example.com +AdminMail = av-admin@slovnyk.org # Filter address, that be used in From: -FilterMail = DrWeb-DAEMON@example.com +FilterMail = DrWeb-DAEMON@slovnyk.org # Quarantine directory. # The infected files could be moved in that dir @@ -176,7 +177,8 @@ # Text string used for generate notification hashes, # used only if FastNotify = Yes # PLEASE EDIT - !!! SECURITY CRITICAL !!! -NotifyHashSalt = !!!___EDIT_THIS___!!! +#NotifyHashSalt = !!!___EDIT_THIS___!!! +NotifyHashSalt = !!! Щось секретне !!! [VirusNotifications] # Enable or disable sending notifications to the persons (yes/no) @@ -185,32 +187,32 @@ RcptsNotify = yes # Files with notification templates -AdminTemplate = /etc/drweb/templates/en-ru/sendmail/virus-admin.msg -SenderTemplate = /etc/drweb/templates/en-ru/sendmail/virus-sender.msg -RcptsTemplate = /etc/drweb/templates/en-ru/sendmail/virus-rcpts.msg +AdminTemplate = /etc/drweb/templates/uk-en/sendmail/virus-admin.msg +SenderTemplate = /etc/drweb/templates/uk-en/sendmail/virus-sender.msg +RcptsTemplate = /etc/drweb/templates/uk-en/sendmail/virus-rcpts.msg [SkipNotifications] AdminNotify = no SenderNotify = yes RcptsNotify = no AdminTemplate = -SenderTemplate = /etc/drweb/templates/en-ru/sendmail/skip-sender.msg +SenderTemplate = /etc/drweb/templates/uk-en/sendmail/skip-sender.msg RcptsTemplate = [MailbombNotifications] AdminNotify = yes SenderNotify = yes RcptsNotify = no -AdminTemplate = /etc/drweb/templates/en-ru/sendmail/mailbomb-admin.msg -SenderTemplate = /etc/drweb/templates/en-ru/sendmail/mailbomb-sender.msg +AdminTemplate = /etc/drweb/templates/uk-en/sendmail/mailbomb-admin.msg +SenderTemplate = /etc/drweb/templates/uk-en/sendmail/mailbomb-sender.msg RcptsTemplate = [ErrorNotifications] AdminNotify = yes SenderNotify = yes RcptsNotify = no -AdminTemplate = /etc/drweb/templates/en-ru/sendmail/error-admin.msg -SenderTemplate = /etc/drweb/templates/en-ru/sendmail/error-sender.msg +AdminTemplate = /etc/drweb/templates/uk-en/sendmail/error-admin.msg +SenderTemplate = /etc/drweb/templates/uk-en/sendmail/error-sender.msg RcptsTemplate = ################### -->--------------------------------------<--
Для активізації клієнта створюємо службовий скрипт
-->--------------------------------------<--
#!/bin/sh
#
# $Id: template.initscript,v 1.8 2002/05/15 16:41:27 cvser Exp $
#
# description: Dr.Web for Sendmail is a antivirus filter
# for e-mails that comes thru SMTP protocol
#
# chkconfig: 2345 79 31
# processname: drweb-smf
# Use these if cannot found functions
dw_daemon() {
ulimit -c 0
$*
return $?
}
dw_killproc() {
killall $2 $1 >/dev/null 2>&1
return $?
}
dw_status() {
killall -0 $1 >/dev/null 2>&1
if [ $? -eq 0 ] ; then
echo "$1 is running..."
return 0
else
echo "$1 is not running."
return 1
fi
}
# Source function library.
if [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
PROC_DAEMON="daemon"
PROC_KILL="killproc"
PROC_STATUS="status"
MSG_START="Starting drweb for sendmail: "
MSG_RELOAD="Reload drweb for sendmail: "
MSG_STOP="Shutdowning drweb for sendmail: "
MSG_WAIT="Wait for shutdown drweb for sendmail: "
else
PROC_DAEMON="dw_daemon"
PROC_KILL="dw_killproc"
PROC_STATUS="dw_status"
MSG_START=" drweb-sendmail"
MSG_RELOAD="Reload drweb-sendmail"
MSG_STOP=" drweb-sendmail"
MSG_WAIT=" drweb-sendmail(wait)"
fi
if [ ! -f "/opt/drweb/drweb-smf" ] ; then
echo "DrWeb Sendmail Filter not found"
return 1
fi
RETVAL=0
FILTER_UNIX="no"
FILTER_SOCKET=
start() {
# Start daemons.
echo -n $MSG_START
[ "x$FILTER_UNIX" = "xyes" ] && rm -f $FILTER_SOCKET
$PROC_DAEMON /opt/drweb/drweb-smf
RETVAL=$?
echo
return $RETVAL
}
stop() {
# Stop daemons.
echo -n $MSG_STOP
$PROC_KILL drweb-smf
RETVAL=$?
if [ $RETVAL -eq 0 ] ; then
if [ "x$FILTER_UNIX" = "xyes" ] ; then
RETRY=3
while [ -f $FILTER_SOCKET -a $RETRY -gt 0 ] ; do
if [ $RETRY -lt 3 ] ; then
echo
echo $MSG_WAIT
fi
sleep 1
RETRY=$(($RETRY-1))
done
if [ -f $FILTER_SOCKET ] ; then
RETVAL=70
fi
else
# Cannot check inet socket
# For future: use pidfile
sleep 3
fi
fi
echo
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
RETVAL=$?
;;
stop)
stop
RETVAL=$?
;;
restart)
stop
start
RETVAL=$?
;;
status)
$PROC_STATUS drweb-smf
RETVAL=$?
;;
*)
echo "Usage: $0 { start | stop | restart | status }"
exit 1
esac
exit $RETVAL
-->--------------------------------------<--Та прописуємо і запускаємо його: [root@mailer wrk]# chkconfig --add drweb-sendmail
[root@mailer wrk]# chkconfig --list drweb-sendmail
drweb-sendmail 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@mailer wrk]# /etc/rc.d/init.d/drweb-sendmail start
Для підключення клієнта до sendmail додаємо
підтримку у -->--------------------------------------<-- --- sendmail.mc.old Mon Jun 10 00:00:00 2002 +++ sendmail.mc Wed Dec 11 16:39:21 2002 @@ -60,3 +60,7 @@ MAILER(smtp)dnl MAILER(procmail)dnl Cwlocalhost.localdomain +define(`_FFR_MILTER',1)dnl +MAIL_FILTER(`drweb-filter',`S=inet:3001@127.0.0.1,F=T,T=S:5m;R:5m;E:1h')dnl +define(`confINPUT_MAIL_FILTERS', `drweb-filter')dnl +dnl define(`confMILTER_LOG_LEVEL', `1')dnl -->--------------------------------------<--
Та відтворюємо новий [root@mailer wrk]# m4 /etc/mail/sendmail.mc /etc/sendmail.cf Перезапускаємо sendmail: [root@mailer wrk]# /etc/rc.d/init.d/sendmail restart
|
|
|||||
| © 2000-2003, Київ, Соломко Валентин -- ідея та наповнення, графічне опрацювання -- проєкт дизайн, змiнено -- 08.06.2003 14:29:35 | |||||