Ivanovo Linux Users Group -  
Форум Помощь Поиск Вход
Предыдущая Следующая Вверх Тема Администрирование / Работа с сетью / Простейшая защита от сканов сети (8071 хитов)
- Написал(а) LOE (Site/forum admin) Дата 18.11.05 10:09
Итак, идем дальше в деле защиты от атак ;-)

Для отслеживания атак в реальном времени, можно применить мощную и функциональную систему типа snort
Однако, не всегда нужна такая большая система, хватит простейшего средства блокирования разного рода попыток сканов (или атак).

Представляю скрипт, который делает такую работу.
2 части: настройка iptables и сам скрипт

# создаем необходимые правила для блокировки и логирования пакетов на отслеживаемый порт

# новый чейн
iptables -N attacks
iptables -F attacks
# логирование
iptables -A attacks -j LOG --log-prefix "Attack: "

# блокировка. при отсутствии будет логирование
iptables -A FORWARD -p tcp -i eth1 --dport 22 -j attacks


Далее, необходимо запустить скриптик, который, при возникновении опасной ситуации, создает необходимые блокирующие правила:

#!/bin/sh

OLDSRC=1

# бесконечный цикл чтения файла
tail -f -n 0 /var/log/syslog | \
        ( while read LINE
        do
                SRC=`echo $LINE | grep 'Attack:' | egrep -o 'SRC=[^ ]+' | cut -c5-`
                DST=`echo $LINE | grep 'Attack:' | egrep -o 'DST=[^ ]+' | cut -c5-`
                # проверка на SRC адреса - чтобы исключить срабатывание на пакеты с "хороших" хостов
                case "x$SRC" in
                        x1.2.3.4) ;;
                        x) ;;
                        *)
                        # при сканах - тьма входящих пакетов. срабатывать надо 1 раз
                        if [ "x$SRC" != "x$OLDSRC" ]
                        then
                                # вывести на консоль данные
                                echo -n "$SRC $DST " ; date
                                # прописать блокирующее правило
                                /usr/sbin/iptables -I attacks -s $SRC -j DROP
                                # записать лог в файлик :-)
                                echo -n "$S $D " >> LOG
                                /usr/bin/date >> LOG
                                OLDSRC=$SRC
                        fi
                        ;;
                esac
        done )

Как обычно - решение дается as is. Его можно/нужно дорабатывать, например, на проверку и DST валидных адресов.

У данного решения есть 1-2 довольно больших недостатка (довольно объективных).
Их нахождение оставляется вам как "домашнее задание" ;-)
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - Написал(а) James Дата 21.11.05 05:44
Можно воспользоватся данной програмкой впринципе редостовляет возможности для выбора

http://www.linuxrsp.ru/artic/portsentry1.html

И в настройке  несложна.
Parent Написал(а) LOE (Site/forum admin) Дата 21.11.05 10:50
Прога от 2001 года.
Сайт переводит на сайт cisco.
У меня, конечно, валяется файлик portsentry-1.0.tar.gz, и я его в то время даже пробовал. Но что-то мне не нравилось.

Такие проги дают достаточно большую загрузку процессора. Если тачка еще и другие задачи выполняет - это напрягает.
Мой метод - прост и элегантен ;-)
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - Написал(а) James Дата 22.11.05 09:13
Лог Attack надо чистить  современем ??

после перезагрузки наработанные правила пропадут??

порты которые надо защищать  надо будет прописывать в iptables даже если их много 21:24 и далее
:-)
Parent Написал(а) LOE (Site/forum admin) Дата 22.11.05 11:36
Я дал болванку. А вы уж размышляйте.

Правила _естественно_ пропадут после перезагрузки.
Лога "Attack" у меня в скрипте _нет_ Есть чейн attacks, чистить его или нет - ваше дело.
На какие порты включать проверку - опять же личное дело каждого.

Суть в том, что если идет скан или подбор пароля, то пакеты идут с одного ИП и ограниченное время.
Достаточно блокировать пакеты на промежуток времени, чтобы пресечь подобные штуки.
"No! Try not! Do. Or do not. There is no try." -- Yoda
Предыдущая Следующая Вверх Тема Администрирование / Работа с сетью / Простейшая защита от сканов сети (8071 хитов)

Powered by mwForum 2.12.0 © 1999-2007 Markus Wichitill

Page created in 0.080s with 10 database queries.