Бруй В.В., Карлов С.В. - Linux-сервер - пошаговые инструкции - инсталляции и настройки (1077321), страница 58
Текст из файла (страница 58)
На момент написания этой главы – 25.04.2003 – с адресаhttp://www.psionic.com осуществляется переадресация на сервер компании Cisco System Inc.(http://www.cisco.com). По неофициальной и документально неподтвержденной информации, полученной авторами из различных списков рассылки, компания Psionic Software System приобретена Cisco System Inc. в конце 2002 г. Не смотря на это, разработчики проекта надеются в ближайшем будущем выложитьисходные коды PortSentry для свободного использования в личных целях.Исходные коды PortSentry содержатся в архиве portsentry-version.tar.gz (последняя доступная на момент написания главы стабильная версия portsentry-1.1.tar.gz).
Надеемся, что в ближайшее время вы сможете найти в Интернете исходные коды этой удобной и необходимой на каждой серверной системе программы. В противном случае, никто не сможет запретить вам использовать исходные коды программы, свободно распространяемые ранее компанией Psionic Software System, для использования вличных целях. Вы также можете воспользоваться rpm-пакетом portsentry-1.1-2.asp.i386.rpm,входящим в комплект поставки дистрибутива ASPLinux 7.3 (Vostok).ЗАМЕЧАНИЕ Авторы сожалеют, что лицензионное соглашение, по которому ранее распространяласьпрограмма PortSentry, не позволяет распространять ее без разрешения правообладателей.Инсталляция с помощью rpm-пакетовЕсли вы предпочитаете использование системы со стандартным ядром и программным обеспечением,установленным из rpm-пакетов, для установки или обновления пакета необходимо выполнить следующиеоперации.ЗАМЕЧАНИЕ Авторы настоятельно рекомендуют устанавливать программное обеспечение из исходных кодов.Шаг 1Проверьте, установлен ли пакет PortSentry с помощью следующей команды:[root@dymatel /]# rpm –iq portsentryШаг 2В случае его отсутствия перейдите в каталог, где находится пакет portsentry-1.12.asp.i386.rpm.
Если вы в соответствии с рекомендациями главы 2 скопировали все пакеты, входящие вдистрибутив, в каталог /home/distrib, то выполните команду:[root@www /]# cd /home/distribи установите:[root@www distrib]# rpm –ihv portsentry-1.1-2.asp.i386.rpmГлава 18. PortSentry – программное обеспечение для атоматического ограничения доступа...237или обновите пакет:[root@www distrib]# rpm –Uhv portsentry-1.1-2.asp.i386.rpmПосле установки пакета перейдите к настройке программы.Компиляция, оптимизация и инсталляция PortSentryШаг 1Осуществите проверку подлинности имеющегося в вашем распоряжении архива с исходными кодамис использованием процедур, описанных в шаге 1 радела «Компиляция, оптимизация и инсталляцияOpenSSL» главы 12.Шаг 2Распакуйте архив с исходными кодами в каталоге /var/tmp:[root@www /]# cd /var/tmp/[root@www tmp]# tar xzpf portsentry-1.1.tar.gzШаг 3Измените заданное по умолчанию расположение файлов PortSentry и подкорректируйте флаги компиляции применительно к вашей архитектуре процессора.
Для этого в файле /var/tmp/portsentry1.1/Makefile замените строку:CFLAGS = -O -WallнаCFLAGS = -O2 -march=i686 -funroll-loops -WallСтроки:INSTALLDIR = /usr/local/psionicCHILDDIR=/portsentryна:INSTALLDIR = /usr/sbinCONFIGDIR=/etc/portsentryСтроку:@if [ ! -d $(INSTALLDIR) ]; then /bin/mkdir $(INSTALLDIR); fiна:@if [ ! -d $(INSTALLDIR) ]; then /bin/mkdir -p $(INSTALLDIR); fiСтроки:@if [ "$(INSTALLDIR)" = "/usr/local/psionic" ]; then /bin/chmod 700$(INSTALLDIR) ; fi@echo "Creating portsentry directory $(INSTALLDIR)$(CHILDDIR)"@if [ ! -d $(INSTALLDIR)$(CHILDDIR) ]; then /bin/mkdir\$(INSTALLDIR)$(CHILDDIR); fiна:@if [ "$(INSTALLDIR)" = "/usr/sbin" ]; then /bin/chmod 700 $(INSTALLDIR); fi@echo "Creating portsentry directory $(CONFIGDIR)"@if [ ! -d $(CONFIGDIR) ]; then /bin/mkdir -p \$(CONFIGDIR); fiСтроку:chmod 700 $(INSTALLDIR)$(CHILDDIR)на:chmod 700 $(CONFIGDIR)Строки:cp ./portsentry.conf $(INSTALLDIR)$(CHILDDIR)cp ./portsentry.ignore $(INSTALLDIR)$(CHILDDIR)cp ./portsentry $(INSTALLDIR)$(CHILDDIR)на:238Часть 4.
Программное обеспечение для ограничения доступа к серверу...cp ./portsentry.conf $(CONFIGDIR)cp ./portsentry.ignore $(CONFIGDIR)cp ./portsentry $(INSTALLDIR)Строки:chmod 600chmod 600chmod 700на:chmod 600chmod 600chmod 700$(INSTALLDIR)$(CHILDDIR)/portsentry.ignore$(INSTALLDIR)$(CHILDDIR)/portsentry.conf$(INSTALLDIR)$(CHILDDIR)/portsentry$(CONFIGDIR)/portsentry.ignore$(CONFIGDIR)/portsentry.conf$(INSTALLDIR)/portsentryСтроку:@echo "Edit $(INSTALLDIR)$(CHILDDIR)/portsentry.conf and change"на:@echo "Edit $(CONFIGDIR)/portsentry.confСтроку:@echo "and config files ($(INSTALLDIR)$(CHILDDIR))."на:@echo "and config files $(CONFIGDIR)."Шаг 4В файле /var/tmp/portsentry-1.1/portsentry_config.h замените следующую строку:#define CONFIG_FILE "/usr/local/psionic/portsentry/portsentry.conf"на:#define CONFIG FILE "/etc/portsentry/portsentry.conf"Шаг 5Откомпилируйте исходные коды, проинсталлируйте файлы HostSentry, создайте и сохраните списокинсталлированных файлов в надежном месте:[root@www tmp]# cd portsentry-1.1[root@www portsentry-1.1]# find /* > /root/portsentry1[root@www portsentry-1.1]# make linux[root@www portsentry-1.1]# make install[root@www portsentry-1.1]# strip /usr/sbin/portsentry[root@www portsentry-1.1]# mkdir -m0700 /var/portserntry[root@www portsentry-1.1]# find /* > /root/portsentry2[root@www portsentry-1.1]# diff /root/portsentry1 /root/portsentry2 >/root/portsentry.installed[root@www portsentry-1.1]# mv /root/ portsentry.installed/very_reliable_place/portsentry.installed.YYYYMMDDШаг 6Удалите архив и исходные коды программы:[root@www portsentry-1.1]# cd /var/tmp[root@www tmp]# rm -rf portsentry-1.1/[root@www tmp]# rm -f portsentry-1.1.tar.gzКонфигурирование PortSentryКонфигурирование PortSentry осуществляется с использованием следующих файлов:• главного конфигурационного файла /etc/portsentry/portsentry.conf;• файла /etc/portsentry/portsentry.ignore, содержащего список систем, при сканировании портов с которых PortSentry не регистрирует факт сканирования и не предпринимает ответных мер;• файла /etc/portsentry/portsentry.modes, предназначенного для выбора режима работыPortSentry;• файла инициализации /etc/init.d/portsentry.Конфигурационный файл /etc/portsentry/portsentry.confГлава 18.
PortSentry – программное обеспечение для атоматического ограничения доступа...239Шаг 1Создайте (отредактируйте) файл /etc/portsentry/portsentry.conf в соответствии с приведенными ниже рекомендациями и вашими потребностями:TCP_PORTS="1,11,81,82,83,1080,1720,1863,5190,8080"UDP_PORTS="1,7,9,81,82,83,1080,1720,1863,5190,8080"ADVANCED_PORTS_TCP="1024"ADVANCED_PORTS_UDP="1024"ADVANCED_EXCLUDE_TCP="113,139"ADVANCED_EXCLUDE_UDP="520,138,137,67"IGNORE_FILE="/etc/portsentry/portsentry.ignore"HISTORY_FILE="/var/portsentry/portsentry.history"BLOCKED_FILE="/var/portsentry/portsentry.blocked"RESOLVE_HOST="0"BLOCK_UDP="0"BLOCK_TCP="1"KILL_ROUTE="/sbin/route add -host $TARGET$ reject"SCAN_TRIGGER="0"PORT_BANNER="** UNAUTHORIZED ACCESS PROHIBITED **"где строка:TCP_PORTS="1,11,81,82,83,1080,1720,1863,5190,8080"определяет TCP порты, которые должны прослушиваться PortSentry на предмет обнаружения сканированиявашей системы.
Эта опция используется всеми режимами PortSentry, кроме режима Advanced Stealth ScanDetection, который полностью ее игнорирует, т. к. использует более гибкий и безопасный метод контроляпортов. Именно этот режим используется в нашей конфигурации, поэтому не нужно определять эту опцию.Для других же режимов обнаружения сканирования определите в этой строке все TCP порты, которые, повашему мнению, должны контролироваться PortSentry.Строка:UDP_PORTS="1,7,9,81,82,83,1080,1720,1863,5190,8080"определяет UDP порты, которые должны прослушиваться PortSentry на предмет обнаружения сканированиявашей системы.
Эта опция используется всеми режимами PortSentry, кроме режима Advanced Stealth ScanDetection, который полностью ее игнорирует, т. к. использует более гибкий и безопасный метод контроляпортов. Именно этот режим используется в нашей конфигурации, поэтому не нужно определять эту опцию.Для других режимов обнаружения сканирования определите в этой строке все TCP порты, которые, по вашему мнению, должны контролироваться PortSentry.Строка:ADVANCED_PORTS_TCP="1024"определяет максимальное значение номера TCP порта, до которого осуществляется контроль за сканированием. Все порты с меньшим значением номера контролируются на предмет сканирования.