# $wan - внешний интерфейс
# $internal - внутренний интерфейс
# $internal_subnet - диапазон IP-адресов внутренней сети
# $tun_subnet - диапазон IP-адресов сети OpenVPN
# $tun_ip2 - один из IP-адресов в подсети OpenVPN
# $internal_ip1 - IP-адрес шлюза во внутренней сети
# $internal_ip3 - один из IP-адресов во внутренней сети; компьютер с RDP-доступом
# $port_for_openvpn, $port_for_transmission - соответственно внешние порты для OpenVPN и Transmission
# Generated by iptables-save v1.6.1 on Sun Sep 10 22:04:03 2017
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [11995:17808563]
:TCP - [0:0]
:UDP - [0:0]
:fw-interfaces - [0:0]
:fw-open - [0:0]
:interfaces - [0:0]
:open - [0:0]
-A INPUT -s 127.0.0.0/8 -i $wan -j DROP
-A INPUT -s 192.168.0.0/16 -i $wan -j DROP
-A INPUT -s 172.16.0.0/12 -i $wan -j DROP
-A INPUT -s 10.0.0.0/8 -i $wan -j DROP
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -j interfaces
-A INPUT -p icmp -m icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 3 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 12 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -j open
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -f -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -p tcp -m recent --set --name TCP-PORTSCAN --mask 255.255.255.255 --rsource -j REJECT --reject-with tcp-reset
-A INPUT -p udp -m recent --set --name UDP-PORTSCAN --mask 255.255.255.255 --rsource -j REJECT --reject-with icmp-port-unreachable
-A INPUT -j REJECT --reject-with icmp-proto-unreachable
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -j fw-interfaces
-A FORWARD -j fw-open
-A FORWARD -j REJECT --reject-with icmp-host-unreachable
-A TCP -p tcp -m recent --update --seconds 60 --name TCP-PORTSCAN --mask 255.255.255.255 --rsource -j REJECT --reject-with tcp-reset
-A TCP -s $tun_ip2 -d $internal_ip1 -p tcp --dport 21 -j ACCEPT
-A UDP -p udp -m recent --update --seconds 60 --name UDP-PORTSCAN --mask 255.255.255.255 --rsource -j REJECT --reject-with icmp-port-unreachable
-A fw-interfaces -s $tun_ip2/32 -d $internal_ip3/32 -i tun0 -p tcp -m tcp --dport 3389 -j ACCEPT
-A fw-interfaces -i $internal -j ACCEPT
-A fw-interfaces -s $tun_subnet/16 -d $internal_subnet/16 -i tun0 -j DROP
-A fw-interfaces -i tun0 -j ACCEPT
-A interfaces -i lo -j ACCEPT
-A interfaces -i $internal -j ACCEPT
-A open -i $wan -p tcp -m tcp --dport $port_for_transmission -j ACCEPT
-A open -i $wan -p udp -m state --state NEW -m udp --dport $port_for_openvpn -j ACCEPT
COMMIT
# Completed on Sun Sep 10 22:04:03 2017
# Generated by iptables-save v1.6.1 on Sun Sep 10 22:04:03 2017
*nat
:PREROUTING ACCEPT [1047254:79013676]
:INPUT ACCEPT [475742:27967758]
:OUTPUT ACCEPT [1334746:86050937]
:POSTROUTING ACCEPT [1354682:86848493]
-A POSTROUTING -s $internal_subnet/16 -o $wan -j MASQUERADE
-A POSTROUTING -s $tun_subnet/24 -o $wan -j MASQUERADE
COMMIT
# Completed on Sun Sep 10 22:04:03 2017