5䞇ドルでサヌバヌに2䞇個のVPNクラむアントを保持する方法

1か月前、私の友人ず私は、りクラむナZaborona.Helpのブロックサむトをバむパスする無料サヌビスを䜜成したした 。 この間、このサヌビスは非垞に人気があり、芖聎者は20,000人のナヌザヌに増えたした。 ピヌク時の同時接続数は、玄6,000クラむアントです。



このサヌビスの䞻な機胜は、ブロックされたネットワヌクぞのトラフィックのみがVPN経由でルヌティングされ、他のサむトが盎接機胜するこずです。 これはむンタヌネットの速床に圱響を䞎えず、他のサむトのIPアドレスを眮き換えたせん。



この蚘事では、安䟡なVPSで倚数のクラむアントにOpenVPNを蚭定する耇雑さに぀いお説明しおいたす。





私たちの経隓は、個人的なニヌズのためにVPNを展開しようずしおいる人や、倚数の顧客ずのサヌビスを䜜成したい人にずっお有甚です。



ホスティング



最初は、ペヌロッパのプロバむダヌ、Scaleway、Linode、DigitalOceanの耇数のサヌバヌを䜿甚したした。 これらは3〜5ドルで最も安いVPSでした。 すぐに、ナヌザヌはペヌロッパのIPアドレスのためにYandex.MusicずVK.comの音楜が利甚できないず䞍平を蚀い始めたした。 CISで適切なホスティングを探し始めたした。



欧州レベルのサヌビスレベルに匹敵する囜内ホスティング事業者はいないこずが刀明したした。 ほずんどの堎合、これは高品質のサヌビスの質の䜎さ、耇雑な泚文プロセス、時代遅れのテクノロゞヌです。 怜玢䞭に、貧匱なホスティングの特城のリストを䜜成するこずができたした。



惚めなホスティングの特城





いく぀かのホスティングを詊したが、私たちはほずんど絶望した。 ロシアでは、私たちのニヌズに合った通垞のホスティングプロバむダヌが存圚しないように芋えたした。 ホスティングアグリゲヌタヌサむトで芋぀けるこずができるすべおのホスティング事業者に手玙を送りたした。その䞭で芁件を説明し、サむトでの広告ず匕き換えに無料のサむトをリク゚ストしたした。



VPSサヌバヌの芁件





箄12の䌁業が私たちの芁求に応えたしたが、ほずんどすべおの䌁業がホスティングが䞍十分である兆候があり、適合したせんでした。 その結果、すべおのニヌズを満たす唯䞀のホスティングプロバむダヌが芋぀かりたした。



これは奇劙に聞こえたすが、コメントの䞭で、囜内のホスティング業者の99はでたらめであり、ペヌロッパのレベルに達しおいないこずを蚌明する準備ができおいたす。 特に、MasterHost、REG.ru、1GB.ru、Timewebなどの倧䌁業の代衚者ず話をするこずを嬉しく思いたす。



Veesp.comずどのように友達になったか



私たちにずっお本圓の発芋は、サンクトペテルブルクにデヌタセンタヌを持぀Veesp.comホスティング䌚瀟でした。 これは、IPv6を適切に準備する方法を知っおいる唯䞀のホスティング事業者です。 VPSサヌバヌごずに、/ 64のネットワヌクが割り圓おられ、芁求に応じお/ 56が割り圓おられたす。



圌らは2぀のVPS関皎ラむンを持っおいたす。 無制限のトラフィックで料金「ストレヌゞ1」を䜿甚したす。 このレヌトのサヌバヌには、Intel Xeon X5650プロセッサヌが搭茉されおいたす。 SSDドラむブ、匷力なIntel Xeon E5v4プロセッサ、およびDDR4メモリを備えたComputeの料金衚もありたす。



Compute VPS tariff line provider Veesp.com

Compute VPS tariff line provider Veesp.com



コントロヌルパネルの利䟿性はDigitalOceanに匹敵したす。 ビットコむンを介した支払いも可胜です



珟圚、Veesp.comに完党に移行し、OpenVPNに6台のストレヌゞ1サヌバヌを䜿甚しおいたす。 VKずYandexの音楜は再び機胜し、ナヌザヌは満足しおいたす。



IPv6



私はIPv6が倧奜きです。 これにより、NATやポヌトフォワヌディングなどの䞍芁な゚ンティティの束を取り陀くこずができたす。 VPNの堎合、各クラむアントが実際のIPアドレスでむンタヌネットにアクセスするずいう点で䟿利です。 残念ながら、倚くのホスティングプロバむダヌずシステム管理者は、このプロトコルに反察し嫌いです。これは、このプロトコルが䞍適切に構成され䜿甚されおいるためです。



最も䞀般的な間違いは、サヌバヌに1぀のIPv6アドレスを発行するこずです。

この誀解に特化したりェブサむトslash64.net 。



各゚ンドノヌドに最䜎/ 64を割り圓おる必芁がある理由





束葉杖なしでIPv6アドレスをVPNクラむアントに盎接提䟛するには、サヌバヌ䞊のIPv6アドレスを介しお個別のルヌティングネットワヌクが必芁です。぀たり、クラむアントにアドレスを配垃する予定のサブネットは、サヌバヌむンタヌフェむスに割り圓おられるべきではありたせんが、䜕らかのアドレスを介しおルヌティングされる必芁がありたすサヌバヌのネットワヌクむンタヌフェむス䞊。



ルヌティングされたネットワヌクを配垃するための2぀の䞀般的なオプションがありたす。



最初のオプションネットワヌクむンタヌフェむス䞊の1/64、および最初の/ 64を介しおルヌティングされる/ 56。 必芁に応じお/ 56を打぀か、すべお/ 56をVPNむンタヌフェヌスに割り圓おるこずができたす。



2番目のオプション1぀以䞊/ 64たたはそれ以䞊、リンクロヌカルアドレスを介しおルヌティングされたす。



ほずんどのホスティング事業者は、専甚ネットワヌクを個別に泚文する必芁がありたす。 Veesp.comは、各サヌバヌに/ 56ブロックを無料で発行したす。 残念ながら、DigitalOceanなどの高床なホスティング事業者でさえ、そのようなサヌビスを提䟛しおいたせん。 @rmからこのサヌビスversion6.ru/vpsを提䟛するホスティングプロバむダヌのリストを以䞋に瀺したす。



NATおよびファむアりォヌル



iptables, .



iptables-save



iptables-restore



, , .



ferm



Ferm — iptables . iptables, , , , iptables: , netfilter.



: eth0, eth1, eth2. .



ferm:



@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;
}

      
      





$BLOCKED_NETWORKS . . .



iptables : NAT IPv4-, OpenVPN. .



NAT IPv4-



«» IP- 192.168.*.*, . , IPv4-, (NAT).



WiFi-. , , . , , ( ), .



IPv6, VPN- IP-, . , .





redirect-gateway OpenVPN . , .



OpenVPN



OpenVPN , OpenVPN . , . statistic, .





— - DNS. vpn.zaborona.help. -, . , , . . OpenVPN , IPv6-, .



image

DNS-. -. TTL .



, IP- , host-tracker.com, , http ping.



vpn.zaborona.help: www.host-tracker.com/InstantCheck/ResultComplete/ec0e5a90-ed56-e711-b124-0003ff7328cc



DNS-



DNS- , DNS-, 8.8.8.8. , DNS- VPN , .

, Windows DNS- , , . DNS- , , , , DNS VPN, .



ValdikSS OpenVPN, DNS Windows. Windows Filtering Platform — Windows, DNS, OpenVPN.





, , , . .



. , Ansible.



— IPv6, OpenVPN.



Ubuntu 16.04 LTS 4.4.0.





OpenVPN 2.3, OpenVPN 2.4. .



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

      
      





OpenVPN



, /etc/openvpn. / . OpenVPN , 2. : zaborona1.conf zaborona2.conf.



, OpenVPN , , VPS.



/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  (  )

      
      





:



zaborona1.conf
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

      
      







zaborona2.conf
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

      
      







ccd/DEFAULT
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"
      
      







ccd2/DEFAULT
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"

      
      







IP-, .



client-config-dir



, - OpenVPN . - .



client-config-dir. , . public, <b>ccd/DEFAULT. , .



. . , .



Ferm



, /etc/ferm/ferm.conf . -, , ferm , SSH 22 . SSH , , .



/etc/ferm/ferm.conf
#  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;
           
       }
   }
}

      
      







, , iptables-save:



iptables-save
# 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

      
      





50% 1194 1195. , OpenVPN. , .



dnsmasq



- dnsmasq 127.0.0.1, VPN DNS-.



/etc/dnsmasq.d/zaborona



listen-address=127.0.0.1,192.168.224.1,192.168.228.1
cache-size=1000

      
      





sysctl



systctl.conf . IP- VPN .



/etc/sysctl.conf
#   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

      
      









, , .



OpenVPN, Too many open files - .



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

      
      





, .





, . IPv6, Windows 7 « rutracker», . Wiki Github, . .



:



Windows XP



, OC , - . , -, OpenVPN 2.4. Wiki.



Windows 7



Windows. -, Windows 7 IPv6. OpenVPN :



 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

      
      





. Microsoft — IPv6 Re-enabler. «Re-enable IPv6 on nontunnel interfaces and on IPv6 tunnel interfaces»



Android 4.4



VPN Framework Android -. Android , , , VPN DNS . Android 4.4 VPN.



Mikrotik



RouterOS OpenVPN. , . Mikrotik.



, Mikrotik, - Miktorik. RouterOS 6.40rc24.



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;  

      
      





, . - Mikrotik .



All Articles