Итак, давайте приступим к установке программы. Сразу же скажу, что если вы не знакомы с программированием на С, вам будет трудно установить эту программу. Данная программа распространяется в исходных текстах. Никогда нельзя быть уверенным в том, что программа, прекрасно работающая на 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 доступна на сайте автора —Распакуйте версию для 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 $PERL\n";
добавьте строку:
$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. Если расположение каких-либо программ у вас отличается от приведенного в файле (или вы хотите использовать другие программы), измените соответствующие пути.
$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