23.07.2011 10:08
OlegON
 
Бывает, что есть необходимость быстро и безболезненно заблокировать IP-адрес. Причем, для меня задача осложняется тем, что блокировать траффик надо не только входящий траффик (к своему компу), но и транзитный, проходящий на открытые сервера внутренней сети, посколькую я сижу за шлюзом, получается. Не сложно, но как-то необычно, поскольку транзитный и входящий траффики в iptables находятся в разных таблицах. Накидал скриптик block.sh со следующим содержимым:

Код:
#!/bin/bash
REMOTE_HOST=$1
echo $REMOTE_HOST BANNED!
sudo /sbin/iptables -I PREROUTING -t mangle -s $REMOTE_HOST/32 -j DROP
в данном случае еще на этапе прероутинга конкретный хост отбрасывается (/32 маска). Пользуюсь, вроде работает, хотя были замечания, что так делать нельзя, дескать на этом этапе еще не вся информация о пакетах получается. Не знаю, еще раз подтверждаю работоспособность.
Для ускорения операции открываю .bashrc своей домашней директории и добавляю туда запись:
Код:
alias block="/usr/scripts/ip_block";
теперь достаточно написать в консоли block 8.8.8.8 и этот адрес перестанет беспокоить меня и мои сервера.
Часовой пояс GMT +3, время: 08:19.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.