Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Transparent Firewall + anti DDoS  (Прочитано 3073 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн necro

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Transparent Firewall + anti DDoS
« : 23 Мая 2010, 20:45:20 »
Приветствую!
В сетях и в безопасности знания имеются, но вот в *nix не силен. интересует следующее:
1. Схема

Интернет----L2---> Ubuntu Server ---L2----> Web Server

2. Можно ли настроить Ubuntu Server как транспарент фаервол,  т.е. чтобы выступал бриджом для трафика, при этом c не угодными мне пакетами делал, что я хочу?
3. Нужно, чтобы все хосты пытающиеся установить соединение с веб сервером, чаще чем N раз в час/сутки заносились в black list и трафик от них дропался.

Знаю, что стоит копать в сторону IPtables. Буду признателен за ссылки (доки читать умею, думаю разберусь), но если будут примеры, то вообще прекрасно.

P.S. Нужно срочно, поэтому решил кинуть пост на форум и параллельно попытаться самостоятельно найти решение.


Пользователь решил продолжить мысль 23 Мая 2010, 21:16:14:
для фильтрации как я понял надо использовать IPtables + модуль CONNLIMIT

Теперь наверное интересует только один момент. Можно ли организовать IPtables + модуль CONNLIMIT в режиме моста.
« Последнее редактирование: 23 Мая 2010, 21:16:14 от necro »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28365
    • Просмотр профиля
Re: Transparent Firewall + anti DDoS
« Ответ #1 : 23 Мая 2010, 22:52:05 »
Что имеется в виду "в режиме моста"?
Если веб-сервер - отдельная машина, вариантов заворачивания на неё трафика из интернета через промежуточный шлюз - вагон и маленькая тележка.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Transparent Firewall + anti DDoS
« Ответ #2 : 23 Мая 2010, 23:04:02 »
Интернет----L2---> Ubuntu Server ---L2----> Web Server
L2 это OSI Layer 2 или еще чего?

2. Можно ли настроить Ubuntu Server как транспарент фаервол,  т.е. чтобы выступал бриджом для трафика, при этом c не угодными мне пакетами делал, что я хочу?
Есть требования делать это именно бриджем? Или можно обойтись межсетевым шлюзом? Если первое, то для фильтрации копай в сторону ebtables. второе iptables.

3. Нужно, чтобы все хосты пытающиеся установить соединение с веб сервером, чаще чем N раз в час/сутки заносились в black list и трафик от них дропался.
Если без моста, то всё просто.

Оффлайн necro

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Transparent Firewall + anti DDoS
« Ответ #3 : 31 Мая 2010, 21:55:54 »
Что имеется в виду "в режиме моста"?
В режиме моста значит объединить в bridge два сетевых интерфейса.

В общем разобрался, всё очень просто:
1. Настройки бриджа
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
ifconfig eth0 0.0.0.0
ifconfig eth1 0.0.0.0
ifconfig br0 up

2. После того как настроили бридж в таблице filter необходимо писать все правила в цепочки FORWARD, так как весь трафик проходящий.

Пользователь решил продолжить мысль 31 Мая 2010, 22:10:18:
Интернет----L2---> Ubuntu Server ---L2----> Web Server
L2 это OSI Layer 2 или еще чего?
L2 - это канальный уровень модели OSI

2. Можно ли настроить Ubuntu Server как транспарент фаервол,  т.е. чтобы выступал бриджом для трафика, при этом c не угодными мне пакетами делал, что я хочу?
Есть требования делать это именно бриджем? Или можно обойтись межсетевым шлюзом? Если первое, то для фильтрации копай в сторону ebtables. второе iptables.
Есть требования делать именно бриджом, иначе бы не спрашивал. IPtables отлично подходит для этой задачи.

3. Нужно, чтобы все хосты пытающиеся установить соединение с веб сервером, чаще чем N раз в час/сутки заносились в black list и трафик от них дропался.
Если без моста, то всё просто.
Как это можно сделать в режиме моста? Ткните хотя бы куда рыть:)
« Последнее редактирование: 31 Мая 2010, 22:10:18 от necro »

Оффлайн necro

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Transparent Firewall + anti DDoS
« Ответ #4 : 03 Июня 2010, 15:19:40 »
Удалось разобраться самому, правда так как опыта мало, не знаю насколько красивым получилось решение. На стенде всё работает, после проверки в бою станет ясно.

В общем решение выглядит следующим образом:

1. Настраиваем бридж (пример настроек прилагал выше)
2. Устанавливаем модуль ipset - нужен для того, чтобы iptables мог работать с большим количеством ip адресов:
    sudo apt-get install ipset
    sudo apt-get install netfilter-extensions-source
    sudo apt-get install linux-headers-2.6.26-1-686
    sudo m-a build netfilter-extensions
    sudo m-a update && m-a a-i netfilter-extensions

3. Создал хеш таблицу для ip адресов:
    ipset -N blacklist iphash

4. Настраиваем iptables. Использовал модуль recent, который позволяет собрать список всех адресов источников и считать количество переданных ими пакетов, в моём случае это будут syn пакеты, количество которых будет равно количеству попыток установить соединение с сервером.

#В этой цеопчке вы формируем список всех адресов источников и количества обращений
iptables -N iplist
iptables -A iplist -m recent --set -j RETURN

#В этой цепочке фильтруем трафик
iptables -A FORWARD -d 172.20.1.1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -d 172.20.1.1 -p tcp --dport 80 -m conntrack --ctstate NEW -j iplist
iptables -A FORWARD -d 172.20.1.1 -m set --set blacklist src -j DROP  // берем адреса из ipset
iptables -P FORWARD ACCEPT

5. модуль recent по умолчанию список всех адресов заносист в файл /proc/net/ipt_recent/DEFAULT в формате:
src=192.168.1.100 ttl: 65 last_seen: 46746371 oldest_pkt: 3 45205899, 45205918, 45233353

где src= адрес источника, oldest_pkt: количество пакетов от источника (в нашем случае 3 syn пакета)

Пишем скрипт, выполняющий следующую задачу: если кол-во значение после oldest_pkt: > N, то заночим адрес в файл blacklist. Затем выгружаем адреса из файла blacklist в утилиту ipset, при помощи команды:
print `/usr/sbin/ipset -q -A blacklist $da[1]`;

$da[1] - строка в файле blacklist, соответствует ip адресу.

Полный пример скрипта приводить не буду.

6. Добавляем задание на выполнение скрипта в cron.

Хотелось бы услышать комментарии, так как возможно я чего-то не учитываю или уткнусь на какие-нить грабли, например производительность. Кстати хотелось бы знать как расчитать какое кол-во адресов можно блокировать с использованием утилиты ipset и как это отражается на производительности.

P.S Думаю кому-нибудь будет полезно. Возможно такому же начинающему изучение Linux и iptables.







Оффлайн coolman

  • Участник
  • *
  • Сообщений: 156
  • :)
    • Просмотр профиля
Re: Transparent Firewall + anti DDoS
« Ответ #5 : 04 Октября 2010, 20:00:53 »
-m set --set

вот можно поподробнее как вылавливать Ip из можеля recent добовлять их в фал или в правила, желательно что бы повторяющиеся не заносились, где-то чето подобное видел, но докумекать не мог, а щас не могу найти.
iptables

Оффлайн coolman

  • Участник
  • *
  • Сообщений: 156
  • :)
    • Просмотр профиля
Re: Transparent Firewall + anti DDoS
« Ответ #6 : 21 Ноября 2010, 23:42:48 »
и еще вопрос ;D , как в iptables можно отслеживать повторяющийся трафик, пример досят index.php, потом раз переключились на search.php
для транзитного трафика :coolsmiley: :idiot2:
iptables

Оффлайн coolman

  • Участник
  • *
  • Сообщений: 156
  • :)
    • Просмотр профиля
Re: Transparent Firewall + anti DDoS
« Ответ #7 : 25 Ноября 2010, 23:42:22 »
ясно
iptables

 

Страница сгенерирована за 0.051 секунд. Запросов: 23.