Недавние распределенные атаки, типа "Отказ в обслуживании", стали основной "головной болью" для Интернет. Настроив соответствующую фильтрацию вы сможете предотвратить наступление катастрофических последствий, вызванных такого рода атаками.
Основная задача -- настроить фильтры таким образом, чтобы пакеты, с исходящими адресами, не принадлежащими вашей сети, не смогли бы покинуть ее. Это предотвратит возможность отправки всякой "гадости" в Интернет.
Прежде, чем приступить к делу, нарисуем схему подключения локальной сети к Интернет:
[Интернет] ---<E3, T3...>--- [Linux router] --- [Офис]
eth1 eth0
Зададим начальные условия:
# tc qdisc add dev eth0 root handle 10: cbq bandwidth 10Mbit avpkt 1000
# tc class add dev eth0 parent 10:0 classid 10:1 cbq bandwidth 10Mbit rate \
10Mbit allot 1514 prio 5 maxburst 20 avpkt 1000
Если у вас более высокоскоростное подключение -- измените эти цифры соответствующим образом.
Теперь необходимо определиться с "шириной" канала для ICMP-трафика.
Чтобы найти типовое значение для вашей сети, можно воспользоваться утилитой
tcpdump, запустив ее с перенаправлением вывода в файл.
Затем, с помощью этого файла, вы сможете подсчитать количество ICMP-пакетов, отправляемых
вашей сетью в единицу времени.
Если вариант подсчета экспериментальным путем вам не подходит, попробуйте ограничиться 10% общей пропускной способности. Построим наш класс:
# tc class add dev eth0 parent 10:1 classid 10:100 cbq bandwidth 10Mbit rate \
100Kbit allot 1514 weight 800Kbit prio 5 maxburst 20 avpkt 250 \
bounded
Он ограничивает пропускную способность канала величиной 100 Кбит/сек. А теперь подключим к нему
фильтр для ICMP-пакетов:
# tc filter add dev eth0 parent 10:0 protocol ip prio 100 u32 match ip
protocol 1 0xFF flowid 10:100
| Назад | В начало документа | Вперед |
| Защита от SYN flood. | К началу раздела | Управление приоритетами для трафика различных типов. |