Блокировка трафика в Linux
Иногда ваш сервер пытаются DDoS-ить с определенного ИПшника, и если его не заблокировать, он или они могут «положить» его. По этому, я в своей теме «Блокировка трафика в Linux» расскажу как можно заблокировать трафик в Linux как по определенному ИП адресу, так и для определенного интерфейса без использования IPtables или других фаэрволов. Сделать это можно так:
Необходимо добавить определенное правило в брэндмауэр (Это в данном примере не подходит) или можно так же использовать для этих целей таблицу маршрутизации и т. н. null route.
Null route или как его по другому называют — blackhole route — это такая запись в таблице маршрутизации, которая перенаправляет ВЕСЬ входящий трафик «в никуда».
Блокировка атакующего IP-адреса.
Например, ваш надоедливый IP-адрес и вы его хотите запретить обмен трафиком, предположим это — 21.17.95.29. То, для того чтобы добавить нулевой маршрут в таблицу маршрутизации, стоит выполнить:
# ip route add blackhole 21.17.95.29
или можно заблочить ВЕСЬ трафик по интерфейсу (как в примере выше, но для всех ИП):
# ip ro add IP via 127.0.0.1
Вышеприведённым правилом, мы весь трафик направленный в ответ к атакующему хосту, будет блокирован, что не даст ему возможности установить соединение. Проверить можно таким способом:
$ ping 21.17.95.29
или
$ ip route get 21.17.95.29
В ответ получите:
RTNETLINK answers: Network is unreachable
Собственно, цель достигнута.
Для удаления маршрута который вы добавили достаточно выполнить простою команду для удаления маршрута:
# ip route del blackhole 21.17.95.29
Блокировка трафика в Linux, я выполнил все то что хотел.