среда, 16 марта 2011 г.

iptables - Великий и Могучий !


ССЫЛКИ
Описание iptables на русском, кратко http://easylinux.ru/node/190
Инструкции по iptables для DD-WRT http://www.dd-wrt.com/wiki/index.php/Iptables_command

СОДЕРЖАНИЕ

0. Общие команды
1Удаление всех записей из таблицы nat:
2. Включение SNAT:
3. Проброс портов DNAT.
4. Блокирование потра для сети
5Блокирование диапазона портов для определенного ip-адреса
6. Установка определенного кол-ва подключений в минуту для ssh. Защита от Брутфорса по 22 порту ssh.

7. Блокирование определенного mac-адреса


0. Общие команды
Просмотр всех правил:
iptables -nvL 

1. Удаление всех записей из таблицы nat:
iptables -F -t nat



2. Включение SNAT:
iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 195.234.200.50

iptables -D POSTROUTING №  // удаление правила 




3. Проброс портов DNAT.

      а) проброс 80-ого  порта, для того что-бы заходить через веб-браузер(порт 80) на устройство, которое находиться за nat'ом:
iptables -t nat -I PREROUTING -p tcp -d 195.234.200.50 --dport 1001 -j DNAT --to-destination 192.168.1.2:80
После этого в браузере набираем реальный ip-адрес и указваем порт (к примеру 1001):
http://195.234.200.50:4001
Таким образом мы зайдем на устройство 192.168.1.2 на порт 80.
 

      б) проброс 22-ого потра для того что бы заходить на устройство через ssh(порт 22) протокол:
iptables -t nat -I PREROUTING -p tcp -d 195.234.203.82 --dport 1002 -j DNAT --to-destination 192.168.1.2:22
Для того что бы зайти указываем реальный ip-адрес и порт:
ssh -v -p 1002 root@195.234.200.50
Этой командой мы подключимся в устройству 192.168.1.2 к порту 22(ssh)




 4. Блокирование потра для сети (192.168.1.0/24)
iptables -I FORWARD -s 192.168.1.0/24 -p tcp --sport 64483   -j DROP
iptables -I FORWARD -s 192.168.1.0/24 -p tcp --dport 64483   -j DROP
iptables -I FORWARD -s 192.168.1.0/24 -p udp --sport 64483   -j DROP
iptables -I FORWARD -d 192.168.1.0/24 -p tcp --sport 64483   -j DROP

 5Блокирование диапазона портов для определенного ip-адреса в FORWARD (для торрентов)
iptables -I FORWARD -s 195.234.202.98 -p tcp  --dport 1000:65535 -j DROP
#iptables -I FORWARD -s 195.234.202.98 -p tcp  --sport 1000:65535 -j DROP
#iptables -I FORWARD -d 195.234.202.98 -p tcp --dport 1000:65535 -j DROP
iptables -I FORWARD -d 195.234.202.98 -p tcp --sport 1000:65535 -j DROP
iptables -I FORWARD -s 195.234.202.98 -p udp --dport 1000:65535 -j DROP
#iptables -I FORWARD -s 195.234.202.98 -p udp --sport 1000:65535 -j DROP
#iptables -I FORWARD -d 195.234.202.98 -p udp --dport 1000:65535 -j DROP
iptables -I FORWARD -d 195.234.202.98 -p udp --sport 1000:65535 -j DROP
6. Установка определенного кол-ва подключений в минуту для ssh.  Защита от Брутфорса по 22 порту ssh.

iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP

 
7. Блокирование определенного mac-адреса

В Linux:
iptables -I FORWARD -m mac --mac-source  00:17:31:d4:16:32 -j  REJECT --reject-with tcp-reset

На устройставх под DD-WRT:
http://www.dd-wrt.com/wiki/index.php/Iptables#Restrict_access_by_MAC_address
Сначало проверяем полгружен ли модуль для работы iptables с mac-адресами:
lsmod | grep ipt_mac
Ели нет, то подгружаем:
insmod ipt_mac
Добавляем команду
iptables -I FORWARD -m mac --mac-source  00:17:31:d4:16:32 -j DROP
либо
iptables -I FORWARD -m mac --mac-source  00:17:31:d4:16:32 -j  REJECT --reject-with tcp-reset