LinuxForum.Fans
Тема

Правила iptables для прокси сервера

Автор: drac753 6 сообщений 2327 просмотров
#85678

прошу оценить мою конфигурацию iptables для щлюза (squiid+sams)
ppp0-подключение к нету с динамическим ip
eth0-интерфейс подключённый к локалке (192ю168.3.)

#!/bin/bash
#этот модуль позволяет работать с ftp в пассивном режиме
#modprobe nf_conntrack_ftp
#очистка цепочек
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 DROP
iptables -P FORWARD DROP

#включение логов iptables
#префиксы сообщений iptables
#iptables -A INPUT -p tcp -j LOG --log-prefix "input tcp"
#iptables -A INPUT -p icmp -j LOG --log-prefix "input icmp"
#логи входящих tcp udp icmp
#iptables -A INPUT -j LOG --log-level 4


#разрешаем все входящие пакеты на интрефейс замыкания на себя иначе ничего не работает
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#РАЗРЕШЕНЫ ТОЛЬКО ВХОДЯЩИЕ СОЗДАННЫЕ НАШИМИ ИСХОДЯЩИМИ
iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p UDP -m state --state ESTABLISHED,RELATED -j ACCEPT
#разрешаем любые входящие и исходящие по icmp
iptables -A INPUT -p icmp -j ACCEPT

iptables -A OUTPUT -p icmp -j ACCEPT
#разрешаем подключение по ssh INPUT разрешаем для того чтобы было можно конектится с любой #тачки посети
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
#разрешаем ntpdate-синхронизация времени
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT
#разрешаем ftp без пассивного режима
iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 20 -j ACCEPT
#разрешаем входящие и исходящие на на порт 80 инет и 53 - dns
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
#разрешаем исходящий на локальное зеркало

sysctl net.ipv4.ip_forward = 1 # Разрешаем шлюзу передавать транзитный трафик

iptables -A FORWARD -m conntrack --ctstate NEW -i eth0 -s 192.168.3.0/24 -j ACCEPT # Разрешаем исходящие соединения из локальной сети к интернет-хостам

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE # Маскарадим весь трафик, идущий через eth0

#85732

хорошая конфигурация

#85896

новая версия
ppp0-нет
eth0- локалка
Прокси 192.168.3.25 порт 8080

text

#!/bin/bash 
#этот модуль позволяет работать с ftp в пассивном режиме 
modprobe nf_conntrack_ftp 

#очищаем цепочки iptables -F INPUT iptables -F FORWARD iptables -F OUTPUT iptables -t nat -F PREROUTING iptables -t nat -F POSTROUTING iptables -t mangle -F

# Задаем политики по умолчанию iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT DROP

# Создаем пользовательские цепочки. iptables -N ppp0-eth0 iptables -N eth0-ppp0 iptables -N eth0-out iptables -N ppp0-out iptables -N eth0-in iptables -N ppp0-in iptables -N icmp_packets

# Направляем все входящие пакеты в соответствующие цепочки. iptables -A INPUT -d ppp0 -j ppp0-in iptables -A INPUT -d 192.168.3.25 -j eth0-in

# Направляем все исходящие пакеты в соответствующие цепочки. iptables -A OUTPUT -s ppp0 -j ppp0-out iptables -A OUTPUT -s 192.168.3.25 -j eth0-out

# Разрешаем весь трафик с петлевого интерфейса. iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT

# Разрешаем следующие типы icmp пакетов. iptables -A icmp_packets -p icmp --icmp-type 0 -j ACCEPT iptables -A icmp_packets -p icmp --icmp-type 3 -j ACCEPT iptables -A icmp_packets -p icmp --icmp-type 8 -j ACCEPT iptables -A icmp_packets -p icmp --icmp-type 11 -j ACCEPT

# Для удобства фильтрации, направляем все транзитные пакеты, # в соответствующие цепочки. # ppp0-eth0 мир -> локальная сеть # eth0-ppp0 локальная сеть -> мир iptables -A FORWARD -i ppp0 -o eth0 -j ppp0-eth0 iptables -A FORWARD -i eth0 -o ppp0 -j eth0-ppp0

# ppp0-eth0. В данную цепочку попадают все транзитные пакеты, # направленные из мира в локальную сеть. iptables -A ppp0-eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A ppp0-eth0 -j DROP

# eth0-ppp0. В данную цепочку попадают все транзитные пакеты, # направленные из локальной сети в мир. iptables -A eth0-ppp0 -p icmp -j icmp_packets iptables -A eth0-ppp0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT iptables -A eth0-ppp0 -j DROP

# eth0-in. В данной цепочке открываем порты тех служб, которые # должны быть доступны на сервере из локальной сети. iptables -A eth0-in -p icmp -j icmp_packets iptables -A eth0-in -p udp --dport 53 -j ACCEPT #DNS iptables -A eth0-in -p tcp --dport 80 -j ACCEPT #http iptables -A eth0-in -p tcp --dport 8080 -j ACCEPT #SQUID iptables -A eth0-in -j DROP

# ppp0-in. В данной цепочке открываем порты тех служб, которые # должны быть доступны на сервере из мира. Например www, smtp, ftp iptables -A ppp0-in -p icmp -j icmp_packets iptables -A ppp0-in -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A ppp0-in -j DROP

# eth0-out. iptables -A eth0-out -p icmp -j icmp_packets iptables -A eth0-out -p udp --dport 53 -j ACCEPT iptables -A eth0-out -p tcp -m multiport --dport 22,80,443 -j ACCEPT iptables -A eth0-out -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A eth0-out -j DROP

# ppp0-out. iptables -A ppp0-out -p icmp -j icmp_packets iptables -A ppp0-out -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A ppp-out -j DROP

# Производим сетевую трансляцию адресов (NAT)

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# "Заварачиваем" весь http трафик на squid. iptables -t nat -A PREROUTING -s 192.168.3.0/24 -i eth1 -p tcp -m multiport --dport 80,8080 -j REDIRECT --to-ports 8080

#85897

drac753, используйте тег [ code ] ваш текст [/ code ] без пробелов, придайте вашим сообщениям читабельный вид. Уважайте себя, гостей и пользователей linuxforum.ru

#85960

аууу народ пишите отзывы плиз smile , это мой первый фаер для шлюза wink , так что может где касяков понаделал и не вижу их

#85992

iptables v1.4.8: host/network `ppp0' not foundTry `iptables -h' or 'iptables --help' for more information
делаю ifconfig ppp0 есть , вчем прикол?

Войдите или зарегистрируйтесь, чтобы ответить.