LINUX.ORG.RU
ФорумAdmin

Вопрос по iptables


0

1
#!/bin/bash

modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe iptable_nat
#этот модуль позволяет работать с ftp в пассивном режиме
modprobe ip_nat_ftp
modprobe ip_nat_irc
#очистка цепочек
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -t nat -F PREROUTING
iptables -t nat -F POSTROUTING
iptables -t mangle -F
#Запрет всего
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

#разрешаем все входящие пакеты на интрефейс замыкания на себя иначе ничего не работает 
iptables -A INPUT -i lo -j ACCEPT

#РАЗРЕШЕНЫ ТОЛЬКО ВХОДЯЩИЕ СОЗДАННЫЕ НАШИМИ ИСХОДЯЩИМИ
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#Правила повышающие безопасность
#Блочим входящие tcp соединения не syn пакетом (либо ошибка либо атака)
iptables -I INPUT -m conntrack --ctstate NEW -p tcp ! --syn -j DROP
iptables -I INPUT -m conntrack --ctstate NEW,INVALID -p tcp --tcp-flags SYN,ACK SYN,ACK -j REJECT

#Фильтруем ICMP по типам

iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 12 -j ACCEPT

iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 4 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 11 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 12 -j ACCEPT


#Запрещаем пинги из локальной сети 

iptables -I FORWARD -s 192.168.3.0/24 -p icmp -j DROP

#Разрешаем принимать dns запросы на 53 udp и tcp порт от сервера горгаза 192.168.3.74

iptables -A INPUT -i eth0 -s 192.168.3.74 -p udp --dport 53  -j ACCEPT
iptables -A INPUT -i eth0 -s 192.168.3.74 -p tcp --dport 53  -j ACCEPT

#разрешаем доступ из локальной сети на порты 22(ssh),3128 прокси squid,80 - apache веб морды

iptables -A INPUT -i eth0 -p tcp -m multiport --dport 22,80,3128 -j ACCEPT

#Разрешаем хождение через цепочку форвард пакетов идущих в ответ на пакеты с eth0

iptables -A FORWARD -i ppp0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

#Пробрасывем ip внет на всех портах 192.168.3.50 - тот кого надо прокинуть
#iptables -A FORWARD -s 192.168.3.50 -o ppp0 -j ACCEPT
#Пробрасывем ip внет на 25,110  портах 192.168.3.90 - тот кого надо прокинуть
#iptables -A FORWARD -s 192.168.3.90 -o ppp0 -p tcp -m multiport --dport 25,110 -j ACCEPT

###Компы ходящие мимо прокси !!!####

iptables -A FORWARD -s 192.168.3.127 -o ppp0 -p tcp --dport 25 -j ACCEPT
#не работает 
#iptables -A FORWARD -s 192.168.3.127 -d 0.0.0.0/24 -o ppp0 -p tcp --dport 25 -j ACCEPT



#Маскарадим то что прошло через цепочку forward
iptables -t nat -I POSTROUTING -s 192.168.3.0/24 -o ppp0 -j MASQUERADE

Нужно дать 192.168.3.127 доступ в нет мимо прокси к любым ip на 25 порты (почтовый клиент с кучей ящиков)

сделал так

#iptables -A FORWARD -s 192.168.3.127 -d 0.0.0.0/24 -o ppp0 -p tcp --dport 25 -j ACCEPT
не заработало , если убираю -d 0.0.0.0/24
iptables -A FORWARD -s 192.168.3.127 -o ppp0 -p tcp --dport 25 -j ACCEPT
то все норамльно. Правильно ли я написал второе правило и почему не работает первое ?

Ответ на: комментарий от anonymous

А как правильно тогда сформулировать - разрешение для ip из локалки обращения к любым хостам в сети интернет на 25 порт ?

drac753 ★★ ()
Ответ на: комментарий от anonymous

тоесть правило должно быть таким

iptables -A FORWARD -s 192.168.3.127 -o ppp0 -p tcp --dport 25 -j ACCEPT

Все понял спасибо за объяснение

drac753 ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.