iptables-save
and iptables-restore
tools, because if one rule is changed, it will be necessary to edit hundreds of lines of the same type. @def $WAN_0 = eth0; @def $WAN_1 = eth1; @def $WAN_2 = eth2; @def $BLOCKED_NETWORKS = ( 123.123.123.123 234.234.234.234 .... ); chain INPUT { saddr $BLOCKED_NETWORKS of ($WAN_0 $WAN_1 $WAN_2) DROP; }
wget -O - https://swupdate.openvpn.net/repos/repo-public.gpg|apt-key add - echo "deb http://build.openvpn.net/debian/openvpn/release/2.4 xenial main" > /etc/apt/sources.list.d/openvpn-aptrepo.list apt update apt upgrade apt install openvpn dnsmasq ferm
/etc/openvpn
/etc/openvpn/zaborona1.conf # /etc/openvpn/zaborona2.conf # /etc/openvpn/ccd/DEFAULT # /etc/openvpn/ccd2/DEFAULT # /etc/openvpn/logs # /etc/openvpn/ca.crt # /etc/openvpn/zaborona.help.crt # /etc/openvpn/zaborona.help.key # /etc/openvpn/dh2048.pem # Diffie-Hellman ( )
mode server # , UDP , TCP c, UDP keep-alive , NAT- CGNAT. proto tcp # L3, ip . L2 . dev-type tun # tun- dev zaborona1 # /24, /30. topology subnet # "" ipv4-, . server 192.168.224.0 255.255.252.0 # ipv6-, . . server-ipv6 2a00:1838:32:200::/112 txqueuelen 250 keepalive 300 900 persist-tun persist-key cipher AES-128-CBC ncp-ciphers AES-128-GCM #user nobody duplicate-cn log logs/zaborona1.log status logs/status1.log 30 # . . , . client-config-dir ccd ca ca.crt cert zaborona.help.crt key zaborona.help.key dh dh2048.pem
mode server port 1195 proto tcp dev-type tun dev zaborona2 topology subnet server 192.168.228.0 255.255.252.0 server-ipv6 2a00:1838:32:280::/112 txqueuelen 250 keepalive 300 900 persist-tun persist-key cipher AES-128-CBC ncp-ciphers AES-128-GCM #user nobody duplicate-cn log logs/zaborona2.log status logs/status2.log 30 client-config-dir ccd2 ca ca.crt cert zaborona.help.crt key zaborona.help.key dh dh2048.pem
push "dhcp-option DNS 192.168.224.1" push "dhcp-option DNS 74.82.42.42" # HE.net DNS push "route 74.82.42.42" # Route to HE.net DNS push "route 77.88.8.8" # Route to Yandex DNS push "dhcp-option DNS6 2001:4860:4860::8888" # Google IPv6 dns push "route-ipv6 2001:4860:4860::8888" push "dhcp-option DNS6 2001:4860:4860::8844" # Google IPv6 dns push "route-ipv6 2001:4860:4860::8844" #Persist TUN push "persist-tun" # Routes # Yandex network push "route 5.45.192.0 255.255.192.0" push "route 5.255.192.0 255.255.192.0" push "route 37.9.64.0 255.255.192.0" push "route 37.140.128.0 255.255.192.0" push "route 77.75.152.0 255.255.248.0" push "route 77.88.0.0 255.255.192.0" push "route 84.201.128.0 255.255.192.0" push "route 87.250.224.0 255.255.224.0" push "route 93.158.128.0 255.255.192.0" push "route 95.108.128.0 255.255.128.0" push "route 100.43.64.0 255.255.224.0" push "route 109.235.160.0 255.255.248.0" push "route 130.193.32.0 255.255.224.0" push "route 141.8.128.0 255.255.192.0" push "route 178.154.128.0 255.255.128.0" push "route 185.32.185.0 255.255.255.0" push "route 185.32.186.0 255.255.255.0" push "route 185.71.76.0 255.255.252.0" push "route 199.21.96.0 255.255.252.0" push "route 199.36.240.0 255.255.252.0" push "route 213.180.192.0 255.255.224.0" push "route-ipv6 2001:678:384::/48" push "route-ipv6 2620:10f:d000::/44" push "route-ipv6 2a02:6b8::/32" push "route-ipv6 2a02:5180::/32" # Mail.ru network push "route 5.61.16.0 255.255.248.0" push "route 5.61.232.0 255.255.248.0" push "route 79.137.157.0 255.255.255.0" push "route 79.137.183.0 255.255.255.0" push "route 94.100.176.0 255.255.240.0" push "route 95.163.32.0 255.255.224.0" push "route 95.163.248.0 255.255.248.0" push "route 128.140.168.0 255.255.248.0" push "route 178.22.88.0 255.255.248.0" push "route 178.237.16.0 255.255.240.0" push "route 185.5.136.0 255.255.252.0" push "route 185.16.148.0 255.255.252.0" push "route 185.16.244.0 255.255.252.0" push "route 188.93.56.0 255.255.248.0" push "route 194.186.63.0 255.255.255.0" push "route 195.211.20.0 255.255.252.0" push "route 195.211.128.0 255.255.252.0" push "route 195.218.168.0 255.255.255.0" push "route 208.87.92.0 255.255.252.0" push "route 217.20.144.0 255.255.240.0" push "route 217.69.128.0 255.255.240.0" push "route 185.6.244.0 255.255.252.0" push "route 185.30.176.0 255.255.252.0" push "route 195.218.190.0 255.255.254.0" push "route-ipv6 2a00:1148::/32" push "route-ipv6 2a00:a300::/32" push "route-ipv6 2a00:b4c0::/32" push "route-ipv6 2a04:4b40::/29" # VK.com network push "route 87.240.128.0 255.255.192.0" push "route 93.186.224.0 255.255.240.0" push "route 95.142.192.0 255.255.240.0" push "route 95.213.0.0 255.255.192.0" push "route 185.29.130.0 255.255.255.0" push "route 185.32.248.0 255.255.252.0" # Kaspersky network push "route 77.74.176.0 255.255.252.0" push "route 77.74.181.0 255.255.255.0" push "route 77.74.183.0 255.255.255.0" push "route 93.159.228.0 255.255.252.0" push "route 185.54.220.0 255.255.254.0" push "route 185.85.12.0 255.255.255.0" push "route 185.85.14.0 255.255.254.0" push "route 77.74.176.0 255.255.248.0" push "route 91.103.64.0 255.255.248.0" push "route 93.159.224.0 255.255.248.0" push "route-ipv6 2a03:2480::/33" # DrWeb push "route 178.248.232.183 255.255.255.255" push "route 178.248.233.94 255.255.255.255" push "route 195.88.252.0 255.255.254.0"
push "dhcp-option DNS 192.168.228.1" push "dhcp-option DNS 74.82.42.42" # HE.net DNS push "route 74.82.42.42" # Route to HE.net DNS push "route 77.88.8.8" # Route to Yandex DNS push "dhcp-option DNS6 2001:4860:4860::8888" # Google ipv6 dns push "route-ipv6 2001:4860:4860::8888" push "dhcp-option DNS6 2001:4860:4860::8844" # Google ipv6 dns push "route-ipv6 2001:4860:4860::8844" #Persist TUN push "persist-tun" # Routes # Yandex network push "route 5.45.192.0 255.255.192.0" push "route 5.255.192.0 255.255.192.0" push "route 37.9.64.0 255.255.192.0" push "route 37.140.128.0 255.255.192.0" push "route 77.75.152.0 255.255.248.0" push "route 77.88.0.0 255.255.192.0" push "route 84.201.128.0 255.255.192.0" push "route 87.250.224.0 255.255.224.0" push "route 93.158.128.0 255.255.192.0" push "route 95.108.128.0 255.255.128.0" push "route 100.43.64.0 255.255.224.0" push "route 109.235.160.0 255.255.248.0" push "route 130.193.32.0 255.255.224.0" push "route 141.8.128.0 255.255.192.0" push "route 178.154.128.0 255.255.128.0" push "route 185.32.185.0 255.255.255.0" push "route 185.32.186.0 255.255.255.0" push "route 185.71.76.0 255.255.252.0" push "route 199.21.96.0 255.255.252.0" push "route 199.36.240.0 255.255.252.0" push "route 213.180.192.0 255.255.224.0" push "route-ipv6 2001:678:384::/48" push "route-ipv6 2620:10f:d000::/44" push "route-ipv6 2a02:6b8::/32" push "route-ipv6 2a02:5180::/32" # Mail.ru network push "route 5.61.16.0 255.255.248.0" push "route 5.61.232.0 255.255.248.0" push "route 79.137.157.0 255.255.255.0" push "route 79.137.183.0 255.255.255.0" push "route 94.100.176.0 255.255.240.0" push "route 95.163.32.0 255.255.224.0" push "route 95.163.248.0 255.255.248.0" push "route 128.140.168.0 255.255.248.0" push "route 178.22.88.0 255.255.248.0" push "route 178.237.16.0 255.255.240.0" push "route 185.5.136.0 255.255.252.0" push "route 185.16.148.0 255.255.252.0" push "route 185.16.244.0 255.255.252.0" push "route 188.93.56.0 255.255.248.0" push "route 194.186.63.0 255.255.255.0" push "route 195.211.20.0 255.255.252.0" push "route 195.211.128.0 255.255.252.0" push "route 195.218.168.0 255.255.255.0" push "route 208.87.92.0 255.255.252.0" push "route 217.20.144.0 255.255.240.0" push "route 217.69.128.0 255.255.240.0" push "route 185.6.244.0 255.255.252.0" push "route 185.30.176.0 255.255.252.0" push "route 195.218.190.0 255.255.254.0" push "route-ipv6 2a00:1148::/32" push "route-ipv6 2a00:a300::/32" push "route-ipv6 2a00:b4c0::/32" push "route-ipv6 2a04:4b40::/29" # VK.com network push "route 87.240.128.0 255.255.192.0" push "route 93.186.224.0 255.255.240.0" push "route 95.142.192.0 255.255.240.0" push "route 95.213.0.0 255.255.192.0" push "route 185.29.130.0 255.255.255.0" push "route 185.32.248.0 255.255.252.0" # Kaspersky network push "route 77.74.176.0 255.255.252.0" push "route 77.74.181.0 255.255.255.0" push "route 77.74.183.0 255.255.255.0" push "route 93.159.228.0 255.255.252.0" push "route 185.54.220.0 255.255.254.0" push "route 185.85.12.0 255.255.255.0" push "route 185.85.14.0 255.255.254.0" push "route 77.74.176.0 255.255.248.0" push "route 91.103.64.0 255.255.248.0" push "route 93.159.224.0 255.255.248.0" push "route-ipv6 2a03:2480::/33" # DrWeb push "route 178.248.232.183 255.255.255.255" push "route 178.248.233.94 255.255.255.255" push "route 195.88.252.0 255.255.254.0"
# tun- OpenVPN. zaborona1, zaborona2 zaborona+. @def $VPN = ( zaborona+ ); # , @def $WAN_4 = eth0; @def $WAN_6 = eth0; # "" , @def $VPN_ADDR_4 = ( 192.168.224.0/22 192.168.228.0/22 ); @def $ALLOW_SSH = ( , SSH ); @def $ALLOWED_NETWORKS_V4 = ( ipv4-, ); @def $ALLOWED_NETWORKS_V6 = ( ipv6-, ); table filter { chain ZABORONA_V4 { daddr $ALLOWED_NETWORKS_V4 ACCEPT; } chain FORWARD { policy DROP; mod conntrack ctstate INVALID DROP; if $WAN_4 of $VPN mod conntrack ctstate (ESTABLISHED RELATED) ACCEPT; if $VPN of $WAN_4 jump ZABORONA_V4; } chain INPUT { saddr $ALLOW_SSH protocol tcp dport 22 ACCEPT; protocol tcp dport 22 REJECT reject-with icmp-port-unreachable; } } table nat { chain POSTROUTING { saddr $VPN_ADDR_4 of $WAN_4 MASQUERADE; } # OpenVPN chain PREROUTING { interface $WAN_4 protocol tcp dport 1194 mod conntrack ctstate NEW mod statistic mode random probability 0.50000000000 REDIRECT to-ports 1195; } } # IPv6: domain ip6 { table filter { chain ZABORONA_V6 { daddr $ALLOWED_NETWORKS_V6 ACCEPT; } chain FORWARD { policy DROP; mod conntrack ctstate INVALID DROP; if $WAN_6 of $VPN mod conntrack ctstate (ESTABLISHED RELATED) ACCEPT; if $VPN of $WAN_6 jump ZABORONA_V6; } } }
# Generated by iptables-save v1.6.0 on Fri Jun 23 19:44:10 2017 *filter :INPUT ACCEPT [54622:15244109] :FORWARD DROP [50:2520] :OUTPUT ACCEPT [59291:85277655] :ZABORONA_V4 - [0:0] -A INPUT -s 1.2.3.4/32 -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j REJECT --reject-with icmp-port-unreachable -A FORWARD -m conntrack --ctstate INVALID -j DROP -A FORWARD -i eth0 -o zaborona+ -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A FORWARD -i zaborona+ -o eth0 -j ZABORONA_V4 -A ZABORONA_V4 -d 87.240.128.0/18 -j ACCEPT -A ZABORONA_V4 -d 93.186.224.0/20 -j ACCEPT -A ZABORONA_V4 -d 95.142.192.0/20 -j ACCEPT -A ZABORONA_V4 -d 95.213.0.0/18 -j ACCEPT -A ZABORONA_V4 -d 185.29.130.0/24 -j ACCEPT -A ZABORONA_V4 -d 185.32.248.0/22 -j ACCEPT -A ZABORONA_V4 -d 5.45.192.0/18 -j ACCEPT -A ZABORONA_V4 -d 5.255.192.0/18 -j ACCEPT -A ZABORONA_V4 -d 37.9.64.0/18 -j ACCEPT -A ZABORONA_V4 -d 37.140.128.0/18 -j ACCEPT -A ZABORONA_V4 -d 77.75.152.0/21 -j ACCEPT -A ZABORONA_V4 -d 77.88.0.0/18 -j ACCEPT -A ZABORONA_V4 -d 84.201.128.0/18 -j ACCEPT -A ZABORONA_V4 -d 87.250.224.0/19 -j ACCEPT -A ZABORONA_V4 -d 93.158.128.0/18 -j ACCEPT -A ZABORONA_V4 -d 95.108.128.0/17 -j ACCEPT -A ZABORONA_V4 -d 100.43.64.0/19 -j ACCEPT -A ZABORONA_V4 -d 109.235.160.0/21 -j ACCEPT -A ZABORONA_V4 -d 130.193.32.0/19 -j ACCEPT -A ZABORONA_V4 -d 141.8.128.0/18 -j ACCEPT -A ZABORONA_V4 -d 178.154.128.0/17 -j ACCEPT -A ZABORONA_V4 -d 185.32.185.0/24 -j ACCEPT -A ZABORONA_V4 -d 185.32.186.0/24 -j ACCEPT -A ZABORONA_V4 -d 185.71.76.0/22 -j ACCEPT -A ZABORONA_V4 -d 199.21.96.0/22 -j ACCEPT -A ZABORONA_V4 -d 199.36.240.0/22 -j ACCEPT -A ZABORONA_V4 -d 213.180.192.0/19 -j ACCEPT -A ZABORONA_V4 -d 5.61.16.0/21 -j ACCEPT -A ZABORONA_V4 -d 5.61.232.0/21 -j ACCEPT -A ZABORONA_V4 -d 79.137.157.0/24 -j ACCEPT -A ZABORONA_V4 -d 79.137.183.0/24 -j ACCEPT -A ZABORONA_V4 -d 94.100.176.0/20 -j ACCEPT -A ZABORONA_V4 -d 95.163.32.0/19 -j ACCEPT -A ZABORONA_V4 -d 95.163.248.0/21 -j ACCEPT -A ZABORONA_V4 -d 128.140.168.0/21 -j ACCEPT -A ZABORONA_V4 -d 178.22.88.0/21 -j ACCEPT -A ZABORONA_V4 -d 178.237.16.0/20 -j ACCEPT -A ZABORONA_V4 -d 185.5.136.0/22 -j ACCEPT -A ZABORONA_V4 -d 185.16.148.0/22 -j ACCEPT -A ZABORONA_V4 -d 185.16.244.0/22 -j ACCEPT -A ZABORONA_V4 -d 188.93.56.0/21 -j ACCEPT -A ZABORONA_V4 -d 194.186.63.0/24 -j ACCEPT -A ZABORONA_V4 -d 195.211.20.0/22 -j ACCEPT -A ZABORONA_V4 -d 195.218.168.0/24 -j ACCEPT -A ZABORONA_V4 -d 217.20.144.0/20 -j ACCEPT -A ZABORONA_V4 -d 217.69.128.0/20 -j ACCEPT -A ZABORONA_V4 -d 195.211.128.0/22 -j ACCEPT -A ZABORONA_V4 -d 208.87.92.0/22 -j ACCEPT -A ZABORONA_V4 -d 77.74.176.0/22 -j ACCEPT -A ZABORONA_V4 -d 77.74.181.0/24 -j ACCEPT -A ZABORONA_V4 -d 77.74.183.0/24 -j ACCEPT -A ZABORONA_V4 -d 93.159.228.0/22 -j ACCEPT -A ZABORONA_V4 -d 185.54.220.0/23 -j ACCEPT -A ZABORONA_V4 -d 185.85.12.0/24 -j ACCEPT -A ZABORONA_V4 -d 185.85.14.0/23 -j ACCEPT -A ZABORONA_V4 -d 77.74.176.0/21 -j ACCEPT -A ZABORONA_V4 -d 91.103.64.0/21 -j ACCEPT -A ZABORONA_V4 -d 93.159.224.0/21 -j ACCEPT -A ZABORONA_V4 -d 8.8.8.8/32 -j ACCEPT -A ZABORONA_V4 -d 8.8.4.4/32 -j ACCEPT -A ZABORONA_V4 -d 74.82.42.42/32 -j ACCEPT -A ZABORONA_V4 -d 77.75.152.0/21 -j ACCEPT -A ZABORONA_V4 -d 185.71.72.0/21 -j ACCEPT -A ZABORONA_V4 -d 185.6.244.0/22 -j ACCEPT -A ZABORONA_V4 -d 185.30.176.0/22 -j ACCEPT -A ZABORONA_V4 -d 195.218.190.0/23 -j ACCEPT -A ZABORONA_V4 -d 195.88.252.0/23 -j ACCEPT -A ZABORONA_V4 -d 178.248.232.183/32 -j ACCEPT -A ZABORONA_V4 -d 178.248.233.94/32 -j ACCEPT COMMIT # Completed on Fri Jun 23 19:44:10 2017 # Generated by iptables-save v1.6.0 on Fri Jun 23 19:44:10 2017 *nat :PREROUTING ACCEPT [917:61256] :INPUT ACCEPT [430:26400] :OUTPUT ACCEPT [122:8320] :POSTROUTING ACCEPT [122:8320] -A PREROUTING -i eth0 -p tcp -m tcp --dport 1194 -m conntrack --ctstate NEW -m statistic --mode random --probability 0.50000000000 -j REDIRECT --to-ports 1195 -A POSTROUTING -s 192.168.224.0/22 -o eth0 -j MASQUERADE -A POSTROUTING -s 192.168.228.0/22 -o eth0 -j MASQUERADE COMMIT # Completed on Fri Jun 23 19:44:10 2017
-A PREROUTING -i eth0 -p tcp -m tcp --dport 1194 -m conntrack --ctstate NEW -m statistic --mode random --probability 0.50000000000 -j REDIRECT --to-ports 1195
listen-address=127.0.0.1,192.168.224.1,192.168.228.1 cache-size=1000
# ipv4 ipv6 net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1 net.netfilter.nf_conntrack_max=65535 net.netfilter.nf_conntrack_generic_timeout = 600 net.netfilter.nf_conntrack_icmp_timeout = 30 net.netfilter.nf_conntrack_tcp_timeout_close = 10 net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60 net.netfilter.nf_conntrack_tcp_timeout_established = 1800 net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120 net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30 net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300 net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60 net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120 net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120 net.netfilter.nf_conntrack_tcp_timeout_unacknowledged = 300 net.netfilter.nf_conntrack_udp_timeout = 60 net.netfilter.nf_conntrack_udp_timeout_stream = 180 net.ipv4.tcp_slow_start_after_idle = 0 net.ipv4.tcp_fastopen = 3 net.ipv4.tcp_rmem = 4096 262143 4194304 net.core.rmem_max = 4194304 net.core.rmem_default = 262143 net.ipv4.tcp_wmem = 4096 262143 4194304 net.core.wmem_max = 4194304 net.core.wmem_default = 262143 net.ipv4.tcp_keepalive_time = 600 net.ipv4.tcp_keepalive_intvl = 90 net.ipv4.tcp_keepalive_probes = 5 net.ipv4.tcp_congestion_control=bbr net.ipv6.conf.default.accept_redirects = 0 net.ipv6.conf.all.accept_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.secure_redirects = 0 net.ipv4.conf.default.secure_redirects = 0 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.icmp_ignore_bogus_error_responses = 1 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 net.ipv6.conf.all.accept_source_route = 0 net.ipv6.conf.default.accept_source_route = 0 net.ipv6.conf.all.use_tempaddr = 2
systemctl edit openvpn@.service [Service] LimitNOFILE=8192
# , . systemctl daemon-reload # OpenVPN. systemctl enable --now openvpn@zaborona1 systemctl enable --now openvpn@zaborona2 # dnsmasq ferm. . systemctl restart dnsmasq systemctl restart ferm
NETSH: C:\WINDOWS\system32\netsh.exe interface ipv6 set address interface=32 2a00:1838:30:7280::1149 store=active ERROR: netsh command failed: returned error code 1
What's new in 6.40rc24 (2017-Jun-20 09:38): *) ovpn - added support for topology subnet for IP mode; *) ovpn - added support for "push-continuation"; *) ovpn - fixed duplicate default gateway presence when receiving extra routes;
Source: https://habr.com/ru/post/331178/
All Articles