Бруй В.В., Карлов С.В. - Linux-сервер - пошаговые инструкции - инсталляции и настройки (1077321), страница 60
Текст из файла (страница 60)
При этом сервер доступен с других систем, просто PortSentry обнаружил сканирование портов drwalbr.und и выполнил команду, определенную в конфигурационном файле/etc/portsentry/portsentry.conf в строке:KILL_ROUTE="/sbin/route add -host $TARGET$ reject"Шаг 4Просканируйте порты системы, на которой установлен PortSentry в третий раз с использованием опции -P0:[root@drwalbr /]# nmap -O -P0 www.dymatel.undStarting nmap V. 2.54BETA34 ( www.insecure.org/nmap/ )Warning: OS detection will be MUCH less reliable becausewe did not find at least 1 open and 1 closed TCP portAll 1556 scanned ports on www.dymatel.und (172.16.181.100)are: filteredToo many fingerprints match this host for me to give anaccurate OS guessNmap run completed -- 1 IP address (1 host up) scanned in1946 secondsNmap выдает сообщение о том, что все порты на сканируемом сервере закрыты. Тем не менее, с других систем сервер www.dymatel.und доступен.Шаг 5Для определения компьютеров, доступ с которых к серверу с установленной программой PortSentryзакрыт, c консоли сервера выполните команду:[root@www /]# /sbin/route…drwalbr.und 255.255.255.255 !H 0 - 0 172.16.181.0 *255.255.255.0U 0 0 0 eth0192.168.0.0 *255.255.0.0U 0 0 0 eth1127.0.0.0*255.0.0.0U 0 0 0 lodefault172.16.181.1 0.0.0.0UG 0 0 0 eth0Шаг 6Для снятия блокировки доступа с drwalbr.und выполните команду:[root@www /]# route del -host drwalbr.und rejectи удалите строки, содержащие сведения о блокировке доступа c drwalbr.und.Из файла /var/portsentry/portsentry.history – строку:1051283728 - 04/25/2003 19:15:28 Host: 172.16.181.103/172.16.181.103Port: 410 TCP Blockedи строку:1051283729 - 04/25/2003 19:15:29 Host: 172.16.181.103/172.16.181.103Port: 1 UDP BlockedГлава 18.
PortSentry – программное обеспечение для атоматического ограничения доступа...245Из файла /var/portsentry/portsentry.blocked.atcp – строку:1051283728 - 04/25/2003 19:15:28 Host: 172.16.181.103/172.16.181.103Port: 410 TCP BlockedИз файла /var/portsentry/portsentry.blocked.audp – строку:1051283729 - 04/25/2003 19:15:29 Host: 172.16.181.103/172.16.181.103Port: 1 UDP BlockedУдаление этих строк необходимо для возможности осуществления повторной блокировки доступа сdrwalbr.und, т.
к. перед выполнением блокировки PortSentry осуществляет проверку наличияблокировки, руководствуясь содержимым файлов portsentry.history, portsentry.blocked.atcpи portsentry.blocked.audp.Для проверки восстановления доступа с drwalbr.und повторно выполните команду:[root@www /]# /sbin/route…172.16.181.0 *255.255.255.0U 0 0 0 eth0192.168.0.0 *255.255.0.0U 0 0 0 eth1127.0.0.0*255.0.0.0U 0 0 0 lodefault172.16.181.1 0.0.0.0UG 0 0 0 eth0В выводе команды должна отсутствовать строка, содержащая запись для блокировки доступа с системы drwalbr.und, т.
е.:drwalbr.und 255.255.255.255 !H 0 - 0 -246Часть 4. Программное обеспечение для ограничения доступа к серверу...Глава 19Snort – программное обеспечение для обнаружения попыток вторженияВ этой главе:1. Ограничения и допущения2. Пакеты3. Компиляция, оптимизация и инсталляция Snort4. Конфигурирование Snort5. Тестирование Snort6. Выполнение Snort в среде chroot-jailГлава 19.
Snort – программное обеспечение для обнаружения попыток вторжения247Как бы хорошо ни была защищена система, всегда существует возможность ее взлома. И для системного администратора было бы лучше узнавать о попытках взлома еще до того, как одна из них увенчаетсяуспехом. Поэтому особенно важны средства, позволяющие не только обнаружить факт проникновения всистему, но и предупредить о предстоящем вторжении.Snort – это сетевая система обнаружения вторжений (Intrusion Detection Systems, IDS), способная выполнять в режиме реального времени анализ сетевого трафика с целью обнаружения попыток взлома илипоиска уязвимостей вашей системы (например, таких, как переполнения буфера, CGI-атак, сканированияпортов, определения типа операционной системы, идентификации версий используемых сетевых сервисов ит.
п.).Авторы настоятельно рекомендуют установить Snort и использовать его в качестве оружия в борьбепротив спамеров, различных взломщиков программной защиты и других покушений на вашу безопасность.Ограничения и допущенияИсходные коды находятся в каталоге /var/tmp.Все операции выполняются пользователем с учетной записью root.Используется дистрибутив ASPLinux 7.3 (Vostok).Перекомпиляция ядра не требуется.Процедуры, описанные в этой главе, могут оказаться применимыми для других версий ядра и дистрибутивов Linux, но авторы это не проверяли.ПакетыПоследующие рекомендации основаны на информации, полученной с домашней страницы проектаSnort по состоянию на 20.04.2003.
Регулярно посещайте домашнюю страницу проектаhttp://www.snort.org/ и отслеживайте обновления. Исходные коды Snort содержатся в архивеsnort-version.tar.gz (последняя доступная на момент написания главы стабильная версия snort1.9.1.tar.gz).Для нормальной работы Snort необходимо программное обеспечение, разрабатываемое в рамках проекта tcpdump/libcap. Регулярно посещайте домашнюю страницу проекта http://www.tcpdump.org/ иотслеживайте обновления.Snort использует функции библиотеки LIBCAP. Исходные коды библиотеки содержатся в архивеlibpcap-version.tar.gz (последняя доступная на момент написания главы стабильная версияlibpcap-0.7.2.tar.gz);Для реализации некоторых дополнительных настроек Snort необходима программа TCPDUMP, позволяющая переводить сетевую плату в режим promiscuous. В этом режиме фиксируется каждый пакет, проходящий по кабелю, к которому подключен сетевой интерфейс.
В обычном режиме сетевые платы регистрируют только пакеты, адресованные на поддерживаемый ею адрес и широковещательные адреса. Исходные коды программы содержатся в архиве tcpdump-version.tar.gz (последняя доступная на моментнаписания главы стабильная версия tcpdump-3.7.2.tar.gz).Компиляция, оптимизация и инсталляция SnortШаг 1Осуществите проверку подлинности имеющегося в вашем распоряжении архива с исходными кодамис использованием процедур, описанных в шаге 1 раздела «Компиляция, оптимизация и инсталляцияOpenSSL» главы 12.Шаг 2Распакуйте архив с исходными кодами libpcap-0.7.2.tar.gz в каталоге /var/tmp, откомпилируйте и проинсталлируйте библиотеку:[root@drwalbr tmp]# tar xzpf libpcap-0.7.2.tar.gz[root@drwalbr tmp]# cd libpcap-0.7.2[root@drwalbr libpcap-0.7.2]# ./configure[root@drwalbr libpcap-0.7.2]# make[root@drwalbr libpcap-0.7.2]# find /* > /root/libcap1[root@drwalbr libpcap-0.7.2]# make install[root@drwalbr libpcap-0.7.2]# find /* > /root/libcap2[root@drwalbr libpcap-0.7.2]# diff /root/libcap1 /root/libcap2 >/root/libcap.installed[root@drwalbr libpcap-0.7.2]# mv /root/libcap.installed/very_reliable_place/libcap.installed.YYYYMMDD248Часть 4.
Программное обеспечение для ограничения доступа к серверу...ЗАМЕЧАНИЕ Вы можете установить библиотеку из rpm-пакета libcap-1.10-8.i386.rpm, для этогоперейдите в каталог, в котором находятся пакеты, входящие в состав дистрибутива ASPLinux 7.3, и выполните команду:[root@drwalbr distrib]# rpm –ihv libcap-1.10-8.i386.rpmШаг 3Распакуйте архив с исходными кодами tcpdump-3.7.2.tar.gz в каталоге /var/tmp, откомпилируйте и проинсталлируйте программу:[root@drwalbr tmp]# tar xzpf tcpdump-3.7.2.tar.gz[root@drwalbr tmp]# cd tcpdump-3.7.2[root@drwalbr tcpdump-3.7.2]# ./configure[root@drwalbr tcpdump-3.7.2]# make[root@drwalbr tcpdump-3.7.2]# find /* > /root/tcpdump1[root@drwalbr tcpdump-3.7.2]# make install[root@drwalbr tcpdump-3.7.2]# find /* > /root/tcpdump1[root@drwalbr tcpdump-3.7.2]# diff /root/tcpdump1 /root/ tcpdump2 >/root/tcpdump.installed[root@drwalbr tcpdump-3.7.2]# mv /root/libcap.installed/very_reliable_place/libcap.installed.YYYYMMDDЗАМЕЧАНИЕ Вы можете установить программу из rpm-пакета tcpdump-3.6.2-12.asp.i386.rpm,для этого перейдите в каталог в котором находятся пакеты, входящие в состав дистрибутива ASPLinux 7.3, ивыполните команду:[root@drwalbr distrib]# rpm –ihv tcpdump-3.6.2-12.asp.i386.rpmШаг 4Распакуйте архивы с исходными кодами Snort в каталоге /var/tmp:[root@drwalbr tmp]# tar xzpf snort-1.9.1.tar.gz[root@drwalbr tmp]# cd snort-1.9.1Шаг 5Создайте специального пользователя, от имени которого будет запускаться Snort:[root@drwalbr snort-1.9.1]# groupadd -g 69 snort > /dev/null 2>&l || :[root@drwalbr snort-1.9.1]# useradd -u 69 -g 69 -s /bin/false -M -r -d/var/log/snort snort > /dev/null 2>&l || :Шаг 6Проверьте наличие, а при необходимости добавьте в конец файла /etc/shells строку:/bin/false/Шаг 7Отконфигурируйте исходные коды Snort:[root@drwalbr snort-1.9.1]# CFLAGS="-O2 -march=i686 -funroll-loops"; export CFLAGS./configure \--prefix=/usr \--sysconfdir=/etc \--localstatedir=/var \--mandir=/usr/share/man \--with-opensslШаг 8Откомпилируйте и проинсталлируйте Snort, создайте список проинсталлированных файлов и сохраните его в надежном месте:[root@drwalbr snort-1.9.1]# make[root@drwalbr snort-1.9.1]# find /* > /root/snort1[root@drwalbr snort-1.9.1]# make install[root@drwalbr snort-1.9.1]# mkdir -p /var/log/snort[root@drwalbr snort-1.9.1]# mkdir -p /etc/snort[root@drwalbr snort-1.9.1]# chown -R snort.snort /var/log/snort/[root@drwalbr snort-1.9.1]# cd etc/[root@drwalbr etc]# install classification.config /etc/snort/[root@drwalbr etc]# cd ../rulesГлава 19.
Snort – программное обеспечение для обнаружения попыток вторжения249[root@drwalbr rules]# install snort.conf *.rules /etc/snort/[root@drwalbr rules]# chmod 0644 /etc/snort/*[root@drwalbr rules]# strip /usr/bin/snort[root@drwalbr rules]# cd /var/tmp/snort-1.9.1[root@drwalbr rules]# find /* > /root/snort2[root@drwalbr rules]# diff /root/snort1 /root/snort2 >/root/snort.installed[root@drwalbr rules]# mv /root/snort.installed/very_reliable_place/snort.installed.YYYYMMDDШаг 9Удалите архивы и каталоги с исходными кодами программ:[root@drwalbr snort-1.9.1]# cd /var/tmp[root@drwalbr tmp]# rm –r snort-1.9.1.tar.gz tcpdump-3.7.2.tar.gzlibpcap-0.7.2.tar.gz[root@drwalbr tmp]# rm –rf snort-1.9.1 tcpdump libpcap-0.7.2Конфигурирование SnortКонфигурирование Snort осуществляется с использованием следующих файлов:• основного конфигурационного файла /etc/snort/snort.conf;• файла инициализации /etc/init.d/snort.Шаг 1Отредактируйте в соответствии с приведенными ниже рекомендациями и вашими потребностямифайл /etc/snort/snort.conf:var HOME_NET $eth0_ADDRESSvar EXTERNAL_NET anyvar SMTP $HOME_NETvar HTTP_SERVERS $HOME_NETvar SQL_SERVERS $HOME_NETvar DNS_SERVERS $HOME_NETvar RULE_PATH ./preprocessor frag2preprocessor stream4: detect_scans,detect_state_problemspreprocessor stream4_reassemble: both,ports allpreprocessor http_decode: 80preprocessor rpc_decode: 111 32771preprocessor bopreprocessor telnet_decodepreprocessor portscan: $HOME_NET 4 3 portscan.logpreprocessor portscan-ignorehosts: 212.45.28.122 212.45.28.123output alert_syslog: LOG_AUTH LOG_ALERTinclude classification.configгде строка:var HOME_NET $eth0_ADDRESSопределяет прослушиваемый сетевой интерфейс.Строка:var EXTERNAL_NET anyопределяет отслеживаемые IP-адреса.