Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #######################################################################################################
- ### Переменные окружения
- #######################################################################################################
- IPT="/sbin/iptables"
- WAN1_IF="eth0" # внешний интерфейс
- WAN1_IP="server1" # внешний IP адрес
- VPS_LAN="10.0.0.0/8" # внутренняя сеть VPS
- LO_IF="lo" # loopback-интерфейс
- LO_IP="127.0.0.1" # loopback-адрес
- LOOPBACK="127.0.0.0/8" # loopback-петля
- POLICY="ACCEPT" # политика по умолчанию (ACCEPT/DROP)
- #######################################################################################################
- ### Сброс правил
- #######################################################################################################
- $IPT -F
- $IPT -X
- $IPT -t nat -F
- $IPT -t mangle -F
- $IPT -P INPUT $POLICY
- $IPT -P FORWARD $POLICY
- $IPT -P OUTPUT $POLICY
- modprobe ip_conntrack ip_conntrack_enable_ve0=1
- modprobe ip_conntrack_ftp
- #######################################################################################################
- ### Переброс портов в VPS
- #######################################################################################################
- ## VPS main (DNS)
- $IPT -t nat -A PREROUTING -p tcp -d $WAN1_IP --dport 53 -i $WAN1_IF -j DNAT --to-destination 10.0.0.10:53
- $IPT -t nat -A PREROUTING -p udp -d $WAN1_IP --dport 53 -i $WAN1_IF -j DNAT --to-destination 10.0.0.10:53
- #######################################################################################################
- ### Правила фильтрации
- #######################################################################################################
- ## Правила для входящего трафика c VPS
- $IPT -N vps-in
- $IPT -F vps-in
- # можно всё :)
- $IPT -A vps-in -j ACCEPT
- ## Входящие icmp запросы (пинг etc)
- $IPT -N icmp-in
- $IPT -F icmp-in
- $IPT -A icmp-in -m state --state NEW -p icmp --icmp-type echo-request -j ACCEPT
- $IPT -A icmp-in -m state --state NEW -p icmp --icmp-type time-exceeded -j ACCEPT
- $IPT -A icmp-in -m state --state NEW -p icmp --icmp-type destination-unreachable -j ACCEPT
- ## Исходящие icmp запросы (пинг etc)
- $IPT -N icmp-out
- $IPT -F icmp-out
- ## Разрешаем icmp-reply в ответ на icmp-request'ы
- $IPT -A icmp-out -p icmp --icmp-type 8 -j ACCEPT
- $IPT -A icmp-out -m state --state NEW -p icmp --icmp-type time-exceeded -j ACCEPT
- $IPT -A icmp-out -m state --state NEW -p icmp --icmp-type destination-unreachable -j ACCEPT
- ## Разрешает пакеты с уже установленный соединений
- $IPT -N statefull
- $IPT -F statefull
- $IPT -A statefull -m state --state ESTABLISHED,RELATED -j ACCEPT
- ## Веб траффик
- $IPT -N http-in
- $IPT -F http-in
- ## Почтовый траффик (smtp)
- $IPT -N smtp-in
- $IPT -F smtp-in
- #######################################################################################################
- ### Применение правил фильтрации
- #######################################################################################################
- ## Задание правил для входящего траффика
- $IPT -A INPUT -s $VPS_LAN -j vps-in
- $IPT -A INPUT -p icmp -j icmp-in
- # Переправляем входящие на петлю, при его включении заметно улучшение отклика при ssh-авторизации
- # (хотя это сомнительно)
- $IPT -A INPUT -i $LO_IF -d $LOOPBACK -j ACCEPT
- $IPT -A INPUT -j statefull
- ## Задание правил для сквазного траффика в VPS
- $IPT -A FORWARD -i $WAN1_IF -p tcp --dport 80 -j http-in
- $IPT -A FORWARD -i $WAN1_IF -p tcp --dport 25 -j smtp-in
- $IPT -A FORWARD -s $VPS_LAN -j ACCEPT
- $IPT -A FORWARD -j statefull
- #$IPT -t nat -A POSTROUTING -o $WAN1_IF -j MASQUERADE
- $IPT -t nat -A POSTROUTING -s $VPS_LAN -o $WAN1_IF -j SNAT --to $WAN1_IP
- ## Задание правил для исходящего траффика
- $IPT -A OUTPUT -s $VPS_LAN -j ACCEPT
- $IPT -A OUTPUT -p icmp -j icmp-out
- $IPT -A OUTPUT -o $LO_IF -j ACCEPT
- $IPT -A OUTPUT -o $WAN1_IF -j ACCEPT
- $IPT -A OUTPUT -j statefull
- ## ipsec
- $IPT -A INPUT -i eth0 -p udp --dport 500 -j ACCEPT
- $IPT -A INPUT -i eth0 -p udp --dport 4500 -j ACCEPT
- $IPT -A INPUT -i eth0 -p 50 -j ACCEPT
- $IPT -A INPUT -i eth0 -p 51 -j ACCEPT
Advertisement
Add Comment
Please, Sign In to add comment