m4 mysystem.mc > /etc/sendmail.cf
При использовании глобального режима, в свой mc-файл нужно внести следующие строки:
dnl define('KAVKEEPER_MAILER', '/usr/local/bin/kavkeeper')
dnl define('KAVKEEPER_CONFIG','/etc/kavkeeper.ini')
define('KAV_LOCAL_HACK' )
dnl define('confDEF_USER_ID','kavuser:kavuser')
dnl define('confRUN_AS_USER', 'kavuser')
dnl define('KAVKEEPER_MAILER_FLAGS', 'APhnu9')
MAILER(kavkeeper)
Все! Настройку sendmail можно считать завершенной. Осталось только проверить, как все работает. Запустите sendmail (/etc/init.d/sendmail start) и выполните команду:
uuencode /root/kern386.exe kern386.exe | mail –s Just_Run_It evg
Этой командой файл, инфицированный вирусом Win95.CIH, будет отправлен локальному пользователю evg. Сейчас начинается самое интересное. Проверьте свою почту (см. файл /var/mail/root). Должно быть что-то типа того, что представлено в листинге 22.3.
Листинг 22.3. Сообщения о найденных вирусах
Return-Path: о
From: [email protected]
То: [email protected]
Subject: SENDER ! Virus found in message from you !
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
You sent to user evg message with VIRUS
=====================================
KAV Report:
=====================================
kern386.exe infected: Win95.CIH.1035
=====================================
Bye !
Return-Path:<>
From:rootSdomain.ru
To:rootSdomain.ru
Subject:ADMIN ! ALARM ! Virus found !
MIME-Version:1.0
Content-Type :multipart/mixed;
boundary="=NEXT=AVPCHECK=2002=l84=1025707050=1225=0="
This is a MIME-encapsulated message
-=NEXT=AVPCHECK=2002=184=1025707050=1225=0= Content-Type:text/plain Content-Transfer-Encoding:US-ASCII
User [email protected] send to user evg. mail with virus.
---------------------
KAV report:
---------------------
kern386.exe infected: Win95.CIH.1035
---------------------
Первое сообщение говорит о том, что письмо, содержащее вирус, было успешно отправлено, но оно не было доставлено адресату. Второе сообщение информирует администратора системы, что локальному пользователю evg пришло письмо, содержащее вирус.
В файле протокола /var/log/kavkeeper–[date].log вы также найдете сообщения о вирусе.
Программу AVPKeeper можно настроить по-разному: для автоматического удаления вирусов и удаления вирусов вручную. В первом случае пользователь, отправивший сообщение с вирусом, получает уведомление об этом, сообщение о найденном вирусе направляется администратору, а само сообщение (вместе с ним и вирус) удаляется. Во втором случае происходит все так же, как и в первом, но сообщение не удаляется, а переадресовывается администратору. Второй режим рекомендую использовать, если у вас уйма свободного времени и вашим хобби является исследование вирусов. Эти режимы можно задать в файле kavkeeper.ini. Более подробную информацию вы можете получить, прочитав документацию на программу AVPKeeper.
Нет, в этой главе мы будем говорить не о религии. Программа SATAN, как могло вам показаться с первого взгляда, ничего общего с религией не имеет. SATAN (Security Administrator Tool for Analyzing Networks) — это утилита для анализирования сети и выявления дыр в различных узлах. SATAN представляет собой мощный сетевой сканер, который сканирует порты всех компьютеров вашей (и не только вашей) сети и информирует вас о возможной дыре в системе безопасности того или иного узла.
Итак, давайте приступим к установке программы. Сразу же скажу, что если вы не знакомы с программированием на С, вам будет трудно установить эту программу. Данная программа распространяется в исходных текстах. Никогда нельзя быть уверенным в том, что программа, прекрасно работающая на FreeBSD, откомпилируется и будет корректно работать в Linux, несмотря на мобильность языка С. Все же, если вы обладаете хотя бы небольшими навыками в программировании, можно изменить исходные тексты, «заточенные» под FreeBSD так, чтобы они смогли работать в Linux. В Интернет можно найти «пропатченную» версию SATAN для Linux, однако эта версия еще хуже собирается, чем версия для FreeBSD. Мы же поступим следующим образом: скачайте обе версии — для FreeBSD и для Linux. Версию для Linux можно загрузить по адресу:
http://www.ibiblio.org/pub/packages/security/Satan-for-Linux/satan-1.1.1.linux.fixed2.tgz
Версия для FreeBSD доступна на сайте автора — http://www.fish.com/satan. Распакуйте версию для Linux и перейдите в каталог satan-1.1.1. Затем введите команду:
perl reconfig
На что в ответ вы получите сообщение, что у вас не установлен Perl версии 5, хотя на вашей машине, скорее всего, уже будет установлена более поздняя версия. Первые изменения нужно сделать в файле reconfig. He вдаваясь в тонкости программирования на Perl, просто закомментируйте строки 51…70: начиная со строки:
for $dir (@all_dirs) {
и по строку:
Idle "nCan't find perl5! Bailing out…n" unless $PERL;
Эти строки обеспечивают поиск интерпретатора Perl. Если Perl у вас установлен в каталог, отличный от /usr/bin, то перед строкой:
print "nPerl5 is in $PERLn";
добавьте строку:
$PERL=/path-to-perl/
Таким образом переменной $PERL будет присвоено имя каталога Perl. Затем перейдите в каталог src/boot и откройте файл boot.с. В нем нужно найти и закомментировать следующую строку:
char *strchr();
Она находится в самом начале файла (строка 24).
Потом замените файл /src/fping/fping.c одноименным файлом из дистрибутива SATAN для FreeBSD. Следующий шаг — найдите и закомментируйте следующие строки (у меня это строки 189…191):
#ifndef SYS_ERRLIST_DECLARED
extern char *sys_errlist[];
#endif
Кажется, все. Если вдруг компилятор выдаст вам примерно такое сообщение:
structure has no member named 'th_sport' (или 'th_dport')
то член структуры th_sport замените на source, a th_dport — на dest. Структуpa tcphdr (TCP Header) — это описание заголовка TCP. В BSD член структуры, обозначающий порт-источник называется th_sport, а в Linux этот элемент структуры называется source (аналогично, элемент th_dport называется dest). Структура tcphdr описана в файле /usr/include/netinet/tcp.h.
Теперь можно ввести команду:
make linux
Параметр linux — это цель для сборки программы SATAN для операционной системы Linux.
Если сборка программы прошла без ошибок, приступите к изменению путей программ, необходимых для SATAN. Пути прописаны в файле config/paths.pl.
Обычно этот файл должен выглядеть так, как это показано в листинге 23.1. Если расположение каких-либо программ у вас отличается от приведенного в файле (или вы хотите использовать другие программы), измените соответствующие пути.
Листинг 23.1. Файл paths.pl
$FINGER="/usr/bin/finger" ;
$FTP="/usr/bin/ftp";
$RPCINFO="/usr/sbin/rpcinfo";
$RUSERS="/usr/bin/rusers";
$SHOWMOUNT="/usr/sbin/showmount";
$YPWHICH="/usr/bin/ypwhich";
$NSLOOKUP="/usr/bin/nslookup";
$XHOST="/usr/bin/X11/xhost";
$PING="/bin/ping";
$MOSAIC="/usr/bin/netscape";
$TCP_SCAN="bin/tcp_scan";
$UDP_SCAN="bin/udp_scan";
$FPING="bin/fping";
$NFS_CHK="bin/nfs-chk";
$YP_CHK="bin/yp-chk";
$SAFE_FINGER="bin/safe_finger";
$MD5="bin/md5";
$SYS_SOCKET="bin/sys_socket";
$BOOT="bin/boot";
$GET_TARGETS="bin/get_targets";
$TIMEQUT="bin/timeout";
$SATAN_CF="config/satan.cf";
$SERVICES="config/services";
Для работы SATAN вам необходим браузер Netscape. Подойдут также Mosaic и Lynx, но лучше использовать Netscape. Для запуска SATAN введите ./satan
Никаких параметров при этом указывать не нужно. При запуске SATAN становится HTTP-сервер и запускает браузер Netscape, перенаправляя его на себя. Порт сервера SATAN выбирается случайным образом. Поскольку SATAN при запуске становится Web-сервером, можно попытаться «зайти» на этот сервер, подобрав номер порта. Однако при этом у вас ничего не выйдет — нужно еще знать идентификатор сессии: SATAN разрешает работать только с определенным идентификатором, который создается при каждом запуске SATAN.
Сканировать порты имеет право только пользователь root. В открывшемся окне Netscape вы увидите Панель управления SATAN (см. рис. 23.1). Выберите пункт Data Management и создайте новую базу данных, с которой вы будете работать. Введите имя базы данных (имя по умолчанию — satan-data) и нажмите на кнопку «Open/Create».
Рис. 23.1. Панель управления SATAN
После создания базы данных результатов можно приступить к выбору цели для сканирования. Перейдите на страницу Target Selection. Вы увидите окно, в котором нужно ввести узел для сканирования и уровень сканирования (см. рис. 23.2).
Рис. 23.2. Выбор цели
Сканировать можно как отдельный узел, так и всю подсеть, в которой находится узел. Уровень сканирования может быть легким (light), средним (normal) и высоким (heavy). Установив необходимые параметры, нажмите на кнопку «Start the scan».
Сканирование производится примерно так: сканер SATAN получает всю возможную информацию о заданном узле, потом, если задан режим сканирования подсети, начинает сканировать всю сеть. Весь это процесс отобража-ется в окне браузера Netscape. Время сканирования зависит от режима сканирования и размера сети. Например, отдельный узел локальной сети в режиме light сканируется несколько секунд.