Помогите с Iptables работает Почти все )
Господа линуксоиды нужна ваше помощь с ИПтаблес. Настроил все отлично сервер раздает интернет закрыты все порты в интернет кроме нужных. сайт с интернета виден. НО ппри подключении ВПН соеденения к серверу через pptp все настройки блокировки сбрасываються Т.Е самба открыта из интернета и прочее. уже все препробывал но при подключении ВПН такая тарабарщина. Помогите плиз.
Скрипт по шаблону делал
#!/bin/sh
# FireWall by Vitaliy DeviL'ev [devilev@mail.ru]
# — — — — —
# Настраиваем интерфейс, который смотрит в инет.
INET_IP=«235.30.122.29»
INET_IFACE=«ppp0»
INET_BROADCAST=«95.70.16.29»
# Настраиваем интерфейс, который смотрит в локалку
LAN_IP=«192.168.0.9»
LAN_IP_RANGE=«192.168.0.9/24»
LAN_IFACE=«eth0»
# Настраиваем интерфейс, который localhost. Внимание! Это лучше не менять!
LO_IFACE=«lo»
LO_IP=«127.0.0.1»
# Как будем обращаться к iptables
IPTABLES=«iptables»
# Очистим все таблицы нашей огненной стены.
$IPTABLES -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
# Подгружаем необходимые нам модули.
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe ip_nat_pptp
# Модули, которые нам сейчас не пригодятся
#/sbin/modprobe ipt_owner
#/sbin/modprobe ipt_REJECT
#/sbin/modprobe ipt_MASQUERADE
#/sbin/modprobe ip_conntrack_ftp
#/sbin/modprobe ip_conntrack_irc
#/sbin/modprobe ip_nat_ftp
#/sbin/modprobe ip_nat_irc
# Без этого ничего у нас не заработает
echo «1» > /proc/sys/net/ipv4/ip_forward
# Запрещаем все
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
# Создание цепочек.
# Цепочка для «плохих» пакетов"
$IPTABLES -N bad_tcp_packets
# Цепочки для ICMP, TCP и UDP
$IPTABLES -N allowed
$IPTABLES -N tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_packets
# Обрезаем «плохие» пакеты
$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix «New not syn:»
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
# Остальное пропускаем
$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP
# Правила для TCP-протокола
# FTP
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 20 -j allowed
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 5021 -j allowed
# SSH
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
# Web
$IPTABLES -A tcp_packets -p TCP -s $INET_IP --dport 80 -j allowed
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --sport 8080 -j allowed
# IDENTD service (IRC, etc)
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed
# SMTP (25)
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 25 -j allowed
# Client-Bank 1024, 1239, 1240
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 1024 -j allowed
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 1239 -j allowed
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 1240 -j allowed
# ICQ
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 5190 -j allowed
# Torrent
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 32032 -j allowed
# Webmin
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 10000 -j allowed
# Копируя это правила вы можете открывать любые порты:
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport XXX -j allowed
$IPTABLES -A tcp_packets -p TCP -s $INET_IP --dport 5900 -j allowed
$IPTABLES -A tcp_packets -p TCP -s $INET_IP --dport 3000 -j allowed
$IPTABLES -A tcp_packets -p TCP -s $INET_IP --dport 1723 -j allowed
$IPTABLES -A tcp_packets -p gre -j allowed
$IPTABLES -A tcp_packets -p TCP -s $INET_IP --dport 47 -j allowed
# UDP ports
# DNS
$IPTABLES -A udp_packets -p UDP -s $INET_IP --destination-port 53 -j ACCEPT
# NTP (time service)
$IPTABLES -A udp_packets -p UDP -s $INET_IP --destination-port 123 -j ACCEPT
# MultiMedia Data-Voice Port (speak freely, etc)
$IPTABLES -A udp_packets -p UDP -s $INET_IP --destination-port 2074 -j ACCEPT
# ICQ
$IPTABLES -A udp_packets -p UDP -s $INET_IP --destination-port 4000 -j ACCEPT
# Torrent
$IPTABLES -A udp_packets -p UDP -s $INET_IP --destination-port 32032 -j ACCEPT
# Блокирует широковещательные пакеты в сетях Microsoft Network
$IPTABLES -A udp_packets -p UDP -i $INET_IFACE -d $INET_BROADCAST --destination-port 135:139 -j DROP
# Блокируем DHCP запросы извне
$IPTABLES -A udp_packets -p UDP -i $INET_IFACE -d 255.255.255.255 --destination-port 67:68 -j DROP
# ICMP, чтобы был ping :)
$IPTABLES -A icmp_packets -p ICMP -s $LAN_IP --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s $LAN_IP --icmp-type 11 -j ACCEPT
# Цепочки INPUT
$IPTABLES -A INPUT -p tcp -j bad_tcp_packets
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT
$IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT
# Правила для пакетов из Интернет
$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
$IPTABLES -A INPUT -p TCP -s $INET_IP --dport 139 -j DROP
$IPTABLES -A INPUT -p TCP -s $INET_IP --sport 137:139 -j DROP
# Отсеивание левого траффика от Microsoft Network
$IPTABLES -A INPUT -i $INET_IFACE -d 224.0.0.0/8 -j DROP
#
# Трафик журналируется, на случай необходимости поиска причин возникающих проблем.
# Не более 3х пакетов в минуту
#
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix «IPT INPUT packet died: »
# Цепочки FORWARD
$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets
# Пропуск пакетов из локальной сети без ограничений
# Пропуск пакетов в локальную сеть только в ответ на установленное соединение из локальной сети
$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Журналирование сброшеных пакетов в цепочке FORWARD
$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix «IPT FORWARD packet died: »
# Цепочки OUTPUT
# Цепочка регулирования локального трафика с брандмауэра!
$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -s $INET_IP -m multiport --dport 137:139 -j DROP
$IPTABLES -A OUTPUT -p tcp -s $INET_IP -m multiport --dport 137:139 -j DROP
# По традиции жерналируем
$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix «IPT OUTPUT packet died: »
# Таблица NAT
# Цепочки POSTROUTING
# Заворачивание трафика на прокси. Об этом позже.
#$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -p tcp --dport 80 -j REDIRECT --to-port 8080
# Врубаем простой IP-форвардинг и NAT
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP