Бруй В.В., Карлов С.В. - Linux-сервер - пошаговые инструкции - инсталляции и настройки (1077321), страница 59
Текст из файла (страница 59)
Предлагаемоезначение по умолчанию – 1024 – соответствует диапазону зарезервированных портов.Строка:ADVANCED_PORTS_UDP = "1024"определяет максимальное значение номера UDP порта, до которого осуществляется контроль за сканированием. Все порты с меньшим значением номера контролируются на предмет сканирования. Предлагаемоезначение по умолчанию – 1024 – соответствует диапазону зарезервированных портов.Строка:ADVANCED_EXCLUDE_TCP="113,139"определяет номера TCP портов из диапазона, определяемого опцией ADVANCED_PORTS_TCP, которые недолжны контролироваться, например, порты, часто ошибочно используемые популярными удаленнымиклиентами.Строка:ADVANCED_EXCLUDE_UDP="520,138,137,67"определяет номера UDP портов из диапазона, определяемого опцией ADVANCED_PORTS_UDP, которые недолжны контролироваться, например, порты, часто ошибочно используемые популярными удаленнымиклиентами.Строки:IGNORE_FILE="/etc/portsentry/portsentry.ignore"HISTORY_FILE="/var/portsentry/portsentry.history"BLOCKED_FILE="/var/portsentry/portsentry.blocked"определяют местоположение других конфигурационных файлов PortSentry.Строка:RESOLVE_HOST="0"240Часть 4.
Программное обеспечение для ограничения доступа к серверу...отключает использование DNS для повышения производительности. Если вы хотите получать информациюо системах, сканирующих ваши порты, не в виде IP-адресов, а в виде имен – измените значение опцииRESOLVE_HOST с "0" на "1". Однако это может негативно сказаться на производительности вашей системы.Строка:BLOCK_UDP="0"отключает автоматические отклики системы на UDP-запросы, затрудняя реализацию атак типа отказа в обслуживании путем использования массовой отправки фальсифицированных пакетов.
Регистрация запросовпри этом не отключается.Строка:BLOCK_TCP="1"разрешает автоматические отклики на TCP-запросы.Строка:KILL_ROUTE="/sbin/route add -host $TARGET$ reject"предназначена для определения команды, ограничивающей доступ к вашей системе с IP-адреса, с которогоосуществлялось сканирование портов. Для этого можно использовать IpTables или команду route. В рассматриваемом примере используется команда route, запрещающая доступ к системе с IP-адреса, передаваемого PortSentry в переменной $TARGET$.ЗАМЕЧАНИЕ Авторы не рекомендуют использовать эту опцию для запуска (перед блокировкой доступа) программ, осуществляющих негативное воздействие на систему, с которой осуществляется сканирование,т. к. это противоречит известной пословице: «Не рой яму другому – сам в нее попадешь» и возможно ст.
272,273 и 274 Уголовного кодекса РФ.Строка:SCAN_TRIGGER="0"определяет максимальное количество попыток сканирования портов некоторого IP-адреса, после которогоPortSentry начинает реагировать, т. е. выполнять команду, указанную в опции KILL_ROUTE.Строка:PORT_BANNER="** UNAUTHORIZED ACCESS PROHIBITED **"определяет текстовое сообщение, которое будет появляться на удаленной системе при попытке соединенияс системой, на которой запущен PortSentry.Шаг 2Установите права доступа к файлу и определите его владельцем пользователя root:[root@www tmp]# chmod 600 /etc/portsentry/portsentry.conf[root@www tmp]# chown 0.0 /etc/portsentry/portsentry.confКонфигурационный файл /etc/portsentry/portsentry.ignoreВ файл /etc/portsentry/portsentry.ignore следует добавить все системы, которые никогдане должны блокироваться PortSentry.
К числу таких адресов, по крайней мере, относятся 127.0.0.1 и адресасетевых интерфейсов вашего сервера.Шаг 1Например, для сервера www.dymatel.und, имеющего два сетевых интерфейса:• eth0 (172.16.181.100, 172.16.181.101) в сети 172.16.181.0/24;• eth1 (192.168.14.85) в сети 192.168.0.0/16создайте файл /etc/portsentry/portsentry.ignore, содержащий следующие строки:# Put hosts in here you never want blocked. This includes the IP addresses# of all local interfaces on the protected host (i.e virtual host, multhome)# Keep 127.0.0.1 and 0.0.0.0 to keep people from playing games.## PortSentry can support full netmasks for networks as well.
Format is:## <IP Address>/<Netmask>## Example:## 192.168.2.0/24Глава 18. PortSentry – программное обеспечение для атоматического ограничения доступа...#######241192.168.0.0/16192.168.2.1/32Etc.If you don't supply a netmask it is assumed to be 32 bits.127.0.0.0/80.0.0.0172.16.181.100172.16.181.101192.168.14.85ЗАМЕЧАНИЕ В данном конфигурационном файле строка 0.0.0.0 запрещает PortSentry блокировать– в случае сканирования портов с фальсифицируемого IP-адреса 0.0.0.0 – доступ к вашей системе со всехвозможных адресов.Шаг 2Установите права доступа к файлу и определите его владельцем пользователя root:[root@www tmp]# chmod 600 /etc/portsentry/portsentry.ignore[root@www tmp]# chown 0.0 /etc/portsentry/portsentry.ignoreКонфигурационный файл /etc/portsentry/portsentry.modesФайл служит для определения режима работы PortSentry.
В версии portsentry-1.1 доступныследующие шесть опций, предназначенных для задания режимов работы:• tcp – основной режим обнаружения сканирования для протокола TCP;• udp – основной режим обнаружения сканирования для протокола UDP;• stcp – «незаметный» режим обнаружения сканирования для протокола TCP;• sudp – «незаметный» режим обнаружения сканирования для протокола UDP;• atcp – расширенный «незаметный» режим обнаружения сканирования для протокола TCP;• audp – расширенный «незаметный» режим обнаружения сканирования для протокола UDP.Одновременно для каждого протокола (TCP или UDP) может быть запущен только один режим. Например, совместно не смогут работать два режима для TCP протокола – tcp и atcp.
Для полного использования своих возможностей программу PortSentry лучше запускать в режимах atcp и audp. Более подробную информацию о режимах обнаружения сканирования можно найти в файлах readme.install иreadme.stealth в корневом каталоге исходных кодов PortSentry.Для задания режима работы PortSentry выполните простые операции.Шаг 1Создайте файл /etc/portsentry/portsentry.modes, содержащий следующие строки:# These are the available startup modes for PortSentry. Uncomment the# modes you want PortSentry to run in.
For information about each# available mode, please see the PortSentry documentation.## Normal TCP/UDP scanning:#tcp#udp## Steal TCP/UDP scanning:#stcp#sudp## Advanced Stealth TCP/UDP scanning:atcpaudpШаг 2Установите права доступа к файлу и определите его владельцем пользователя root:[root@www tmp]# chmod 600 /etc/portsentry/portsentry.modes[root@www tmp]# chown 0.0 /etc/portsentry/portsentry.modes242Часть 4. Программное обеспечение для ограничения доступа к серверу...Файл инициализации /etc/init.d/portsentryДля автоматического запуска PortSentry при загрузке системы выполните следующие операции.Шаг 1Создайте файл /etc/init.d/portsentry, содержащий следующие строки:#!/bin/bash# This shell script takes care of starting and stopping the Port Scan Detector.## chkconfig: 345 98 05# description: PortSentry Port Scan Detector is part of the Abacus Project \#suite of tools.
The Abacus Project is an initiative to release \#low-maintenance, generic, and reliable host based intrusion \#detection software to the Internet community.## processname: portsentry# config: /etc/portsentry/portsentry.conf# pidfile: /var/run/portsentry.pid# Source function library.. /etc/rc.d/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Check that networking is up.[ ${NETWORKING} = "no" ] && exit 0RETVAL=0prog="PortSentry"start() {SENTRYDIR=/etc/portsentryif [ -s $SENTRYDIR/portsentry.modes ] ; thenmodes=`cut -d "#" -f 1 $SENTRYDIR/portsentry.modes`elsemodes="tcp udp"fifor i in $modes ; doaction "Starting $prog -$i: " /usr/sbin/portsentry -$iRETVAL=$?doneecho[ $RETVAL = 0 ] && touch /var/lock/subsys/portsentryreturn $RETVAL}stop() {echo -n "Shutting down $prog: "killproc portsentryRETVAL=$?echo[ $RETVAL = 0 ] && rm -f /var/lock/subsys/portsentryreturn $RETVAL}# See how we were called.case "$1" inГлава 18.
PortSentry – программное обеспечение для атоматического ограничения доступа...243start)start;;stop)stop;;restart|reload)stopstartRETVAL=$?;;condrestart)[ -f /var/lock/subsys/portsentry ] && restart || :;;status)status portsentry;;*)echo "Usage: portsentry{start|stop|restart|reload|condrestart|status}"exit 1esacШаг 2Сделайте файл исполняемым и определите его владельцем пользователя root:[root@www /]# chmod 700 /etc/irit.d/portsentry[root@www /]# chown 0.0 /etc/irit.d/portsentryШаг 3Создайте необходимые символьные ссылки:[root@www /]# chkconfig --add portsentry[root@www /]# chkconfig --level 345 portsentry onТестирование PortSentryДля тестирования правильности установки настройки PortSentry необходимо выполнить следующиеоперации.Шаг 1Запустите PortSentry:[root@www /]# /etc/init.d/portsentry startStarting PortSentry[OK]Шаг 2Просканируйте порты системы, на которой установлен PortSentry, с помощью программы-сканера,например, Nmap:[root@drwalbr /]# nmap -O www.dymatel.undStarting nmap V.
2.54BETA34 ( www.insecure.org/nmap/ )Insufficient responses for TCP sequencing (0), OSdetection may be less accurateInteresting ports on www.dymatel.und (172.16.181.100):(The 1553 ports scanned but not shown below are in state:closed)PortStateService22/tcpopenssh80/tcpopenhttp443/tcpopenhttpsRemote operating system guess: Linux Kernel 2.4.0 - 2.4.18(X86)Nmap run completed -- 1 IP address (1 host up) scanned in8 seconds244Часть 4. Программное обеспечение для ограничения доступа к серверу...В нашем случае сканируется сервер www.dymatel.und c рабочей станции drwalbr.und. Приэтом также определяется тип операционной системы (опция -O). Для большей наглядности сервер был запущен со стандартным ядром версии 2.4.18, входящий в комплект поставки дистрибутива ASPLinux 7.3.Система сетевой защиты была выключена.Шаг 3Просканируйте порты системы, на которой установлен PortSentry, повторно:[root@drwalbr /]# nmap -O www.dymatel.undStarting nmap V.
2.54BETA34 ( www.insecure.org/nmap/ )Note: Host seems down. If it is really up, but blockingour ping probes, try -P0Nmap run completed -- 1 IP address (0 hosts up) scanned in30 secondsNmap сообщает, что сканируемый компьютер, скорее всего, неработоспособен и для надежности рекомендует просканировать его скрытно, т. е. с использованием опции -P0.