![ç»å](https://habrastorage.org/getpro/habr/post_images/702/fa3/48f/702fa348fa073421bc73a884a2ff5948.png)
ãã¹ãŠã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã äžã®ãã¹ãŠã®VPNãããã³ã«ã«é倧ãªè匱æ§ã ããããªããŠæãïŒ
å ã é»è²ã®èŠåºãããã£ãGeektimesã«æ²èŒããããã¥ãŒã¹ã¯ãæ倧ã®VPNãµãŒãã¹ã®1ã€ã§ãããã©ã€ããŒãã€ã³ã¿ãŒãããã¢ã¯ã»ã¹ããèŠã€ãã£ããè匱æ§ãã«å¯Ÿãã5,000ãã«ã®å ±é ¬ã«ã€ããŠè¿°ã¹ãŠããŸãã ããããã¯ãŒã«ã«ãšã£ãŠå®å šã«æçœãªå žåçãªãã®ã«å¯ŸããŠ5,000ãã«ã§ããïŒããšç§ã¯ãä¿¡ããããªãã»ã©ïŒããšèããã³ã¡ã³ãã§ç§ã®digããè¡šæããåæã«2 1å°ã®ã³ã³ãã¥ãŒã¿ãŒäžã®ããå€ãã®ã€ã³ã¿ãŒããããããã€ããŒïŒçä¿¡èŠæ±ãžã®åçã¯ãå¿ ãããåããããã€ããŒãšåãIPãçµç±ããããã§ã¯ãªããèŠæ±åŽã¯ãŸã£ããæåŸ ããŠããŸããã 2çªç®ã®ãããã€ããŒã®ä»£ããã«VPNæ¥ç¶ããããšæ³åããå Žåããããã€ããŒã®IPã¢ãã¬ã¹ã«ãªã¯ãšã¹ããéä¿¡ãããšãç¹å®ã®æ¡ä»¶äžã§ãIP VPNãµãŒããŒãããªã¯ãšã¹ããžã®å¿çãè¿ãããããšããããŸãã
![ç»å](https://habrastorage.org/getpro/habr/post_images/36d/d38/97e/36dd3897ef8a8b17e54f19f14c43132c.png)
ããã¯ã©ã®ããã«èµ·ãããŸããïŒ
VPNã«æ¥ç¶ãããšã以åã«ISPãä»ããŠèšå®ãããŠããããã©ã«ãã«ãŒãããVPNãä»ããã«ãŒãã«å€æŽãããŸããããŒãã§ãªãã¹ã³ããããŒããžã®çä¿¡æ¥ç¶ãåãå ¥ããã¢ããªã±ãŒã·ã§ã³ã¯ãçä¿¡ãã±ãããžã®å¿çãçæãããšãã«ãäž»ã«ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«äŸåããŸãã ããã¯ããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã1ã€ãããªãå Žåã«å¹æçã§ãããOSãšãããã³ã«ã«å¿ããŠãããã€ãã®ã€ã³ã¿ãŒãã§ã€ã¹ã§ç¶æ³ãå€ãããŸãã
Windows
- OpenVPNïŒdef1ïŒ-UDPã¯VPNã€ã³ã¿ãŒãã§ãŒã¹ãçµç±ããTCPã¯æ£ããåäœããŸã
- IPsec IKEv2-UDPã¯VPNã€ã³ã¿ãŒãã§ã€ã¹ãééããTCPã¯ããããããŸã
OS X ïŒ
- OpenVPNïŒdef1ïŒ-UDPã¯VPNã€ã³ã¿ãŒãã§ãŒã¹ãééããTCPã¯ãããããããŸã
- IPsec IKEv2-UDPã¯VPNã€ã³ã¿ãŒãã§ãŒã¹ãééããTCPã¯æ£ããåäœããŸã
Linux ïŒ
- OpenVPNïŒdef1ïŒ-UDPããã³TCPã¯ãrp_filter = 0ã§VPNã€ã³ã¿ãŒãã§ã€ã¹ãééããrp_filter = 1ã§ç Žæ£ãããŸãã
Linuxã«ã¯ãã»ãšãã©ã®ææ°ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã§ããã©ã«ãã§æå¹ã«ãªã£ãŠãããªããŒã¹ãã¹ãã£ã«ã¿ãªã³ã°ïŒrp_filterïŒã®çŽ æŽãããèšå®ããããŸãã ãã£ã«ã¿ãŒãæå¹ã«ãªã£ãŠããå ŽåãããŒãã§ãªãã¹ã³ããŠããããã°ã©ã ã¯ãOSãå¥ã®ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠåçãéä¿¡ããããšç¢ºä¿¡ããŠããå Žåãçä¿¡ããŒã¿ãåä¿¡ããŸããã äžéšã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ïŒå°ãªããšãDebianã§ã¯ïŒã§ã¯ããã®ãªãã·ã§ã³ã¯ããã©ã«ãã§ç¡å¹ã«ãªã£ãŠããŸããããã®çç±ã¯æããã§ã¯ãããŸããã
æ®å¿µãªãããWindowsãšOS Xã§ã¯ããã®ãããªæ©èœã¯ãããŸããã
ããã¯ã©ãããŠé£ããã®ã§ããããïŒ
ã芧ã®ãšãããUDPããŒãã§ãªãã¹ã³ããŠããã¢ããªã±ãŒã·ã§ã³ãžã®çä¿¡ãã±ããã®ã¿ã«åé¡ããããŸãã äžè¬çãªãŠãŒã¶ãŒã®ã³ã³ãã¥ãŒã¿ãŒã«ãã®ãããªã¢ããªã±ãŒã·ã§ã³ãå€æ°ååšããããšã¯ãŸããããŸããããååãšããŠããã€ãã¯äŸç¶ãšããŠååšããŸããBittorrent
ãåç¥ãããããŸããããããšãã°ç±³åœããã€ãããã©ã³ã¹ããªãŒã¹ããªã¢ãã«ãããè±åœãªã©ã®äžéšã®åœã§ã¯ãèäœæš©ææè ã®èŠæ±ã«å¿ããŠãé¢å¿ã®ããBitTorrenté ä¿¡ã®åå è ã远跡ããç¹å¥ãªçµç¹ããããŸãã 圌ãã¯BitTorrentãã©ãã«ãŒãšDHTãããã¯ãŒã¯ã«æ¥ç¶ããç¹å®ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã®ãã¹ãŠã®IPã¢ãã¬ã¹ãä¿åããåŸã§ã幞çŠã®æçŽããéä¿¡ã§ããããã«ããŸãã -ããã¯ãã¹ãŠéæ³ã§ããããã®ããžãã¹ã«å¯ŸããŠçœ°éãæ¯æãå¿ èŠãããããšã ãããã®åœã®å± äœè ã¯ããããã®æªäººã®ã¹ãã£ããŒã«é¥ããªãããã«ãä»ã®ãæªéçºãåœã§VPNã䜿çšããŠãããäŒæ¥ã¯ããã«ã€ããŠæ²ããã§ããŸãããããã£ãŠãç¥ç財ç£æš©ã®äŸµå®³ãç£èŠããäŒæ¥ã¯ããã®ã«ãŒãã£ã³ã°æ©èœãã©ã®ããã«æŽ»çšã§ããŸããã
- ãããã€ããŒããçœããïŒã«ãŒãã£ã³ã°å¯èœãªïŒIPã¢ãã¬ã¹ãæäŸãããŠãŒã¶ãŒã¯ãVPNã«æ¥ç¶ããBitTorrentã¯ã©ã€ã¢ã³ããèµ·åããŠãé åžã®ããŠã³ããŒãåŸãæ®ã£ãŠããããã€ãã®ãã¡ã€ã«ãããŠã³ããŒãããŸãã BitTorrentã¯ã©ã€ã¢ã³ãã¯ããŒãããªãã¹ã³ããå¿ èŠã«å¿ããŠUPnPãä»ããŠããŒããéããŸãã
- ç£èŠäŒç€Ÿã¯ããŠãŒã¶ãŒã®VPNãµãŒããŒã®IPã¢ãã¬ã¹ãšããŒããå«ãããã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã®ãã¹ãŠã®IPã¢ãã¬ã¹ãåéããŸãã
- å瀟ã¯ãã€ã³ã¿ãŒãããäžã®ãã¹ãŠã®IPã¢ãã¬ã¹äžã®BitTorrentã¯ã©ã€ã¢ã³ãã«ã以åã«åéããããŒãã«UDPãã±ããã倧éã«éä¿¡ããŸãã 10ã®ã¬ããããã£ãã«ã䜿çšãããšãæ°åå以å ã«çãŸãããšãã§ããŸãã
- ãããã€ããŒã®ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ãžã®çä¿¡ãã±ãããåä¿¡ãããŠãŒã¶ãŒã®BitTorrentã¯ã©ã€ã¢ã³ãã¯ãIP VPNãµãŒããŒããVPNã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠå¿çãéä¿¡ããŸãã
- å瀟ã¯ãé¢å¿ã®ããçŽ æãé åžããŠããå®éã®IPã¯ã©ã€ã¢ã³ããçºèŠããŸãã
ç§ã®æèŠã§ã¯ãã»ãšãã©ãã¹ãŠã®BitTorrentã¯ã©ã€ã¢ã³ããæåã®èµ·åæã«ã©ã³ãã ãªããŒããéžæããã€ã³ã¿ãŒãããäžã®ãã¹ãŠã®ããŒããšãã¹ãŠã®IPã¢ãã¬ã¹ã«ã¡ãã»ãŒãžãéä¿¡ã§ããããããã®ã¢ãããŒããæªçšããããšã¯éåžžã«åé¡ã§ãåžžã«è¡ãã®ã¯é£ããã ãã ãã8999ã6881ãªã©ã®æšæºããŒãã䜿çšããã客æ§ãããŸãã
ãã®ãããªã¯ã©ã€ã¢ã³ããšã®æ¥ç¶ã¯æšæºãããã¯ãŒã¯ã¹ã¿ãã¯ã§ã¯æ©èœããŸãããããã®ãããªæ¥ç¶ã確ç«ãããããã«å€æŽã§ããŸãã
Skype
ãã®ææ³ã䜿çšãããšãVPNã䜿çšããŠããå Žåã«é¢å¿ã®ããSkypeãŠãŒã¶ãŒã®å®éã®IPãèŠã€ããããšãã§ããŸãã Skypeãã°ã€ã³çµç±ã§ãŠãŒã¶ãŒã®IPãšããŒãã衚瀺ããå€æ°ã®ãããªãã¯SkypeãªãŸã«ããŒããããŸãã 次ã«ãèäœæš©ææè ã䜿çšããã®ãšåãææ³ã«é Œãå¿ èŠããããŸã-ã€ã³ã¿ãŒãããå šäœã§UDPããŒãã«ããŒã¿ãéä¿¡ããçãã«åŸããŸãã ã»ãšãã©ãã¹ãŠã®ãã¿ãSkypeã«éä¿¡ã§ããããšã¯æ³šç®ã«å€ããŸãïŒ nmapã®ãã°ãããnpingããã°ã©ã ã䜿çšããŸãã# nping --udp -p 13318 --data-string 'hellothere!' -c 1 serv.valdikss.org.ru Starting Nping 0.7.00 ( https://nmap.org/nping ) at 2015-12-20 19:54 MSK SENT (0.0157s) UDP 195.154.127.59:53 > 92.42.31.8:13318 ttl=64 id=10802 iplen=39 RCVD (0.0859s) UDP 185.61.149.121:4272 > 195.154.127.59:53 ttl=54 id=1534 iplen=32 Max rtt: N/A | Min rtt: N/A | Avg rtt: N/A Raw packets sent: 1 (39B) | Rcvd: 1 (46B) | Lost: 0 (0.00%) Nping done: 1 IP address pinged in 1.01 seconds
èªåãå®ãæ¹æ³ã¯ïŒ
ãã®æ©èœã¯ããã»ã©å€§ããªåé¡ã§ã¯ãªããšæããŸãããæè¡çãªèŠ³ç¹ãããã®ãããªãªãŒã¯ãé²ãæ¹æ³ã¯ãŸã çåã§ããLinuxã§ã¯ããã¹ãŠãéåžžã«ç°¡åã§ã-IPv4ã®ãªãã·ã§ã³ãèšå®ããã ãã§ã
net.ipv4.conf.*.rp_filter
1ãã€ã³ã¹ããŒã«ãããŠããªãå Žåã ç§ã®VPNã€ã³ã¿ãŒãã§ãŒã¹ã¯tun0
ãšåŒã°
tun0
ãç§ã®ã€ã³ã¿ãŒãããã€ã³ã¿ãŒãã§ãŒã¹ã¯
wlp3s0
ãš
wlp3s0
ã®ã§ã次ã®ããšãè¡ããŸãã
# sysctl net.ipv4.conf.all.rp_filter=1 # sysctl net.ipv4.conf.default.rp_filter=1 # sysctl net.ipv4.conf.tun0.rp_filter=1 # sysctl net.ipv4.conf.wlp3s0.rp_filter=1
ãŸããIPv6ã®å Žåãiptablesã«ãŒã«ãè¿œå ããå¿ èŠããããŸãã
# ip6tables -t raw -A PREROUTING -m rpfilter --invert -j DROP
Windowsã«ã¯åŒ·åãªWindowsãã£ã«ã¿ãªã³ã°ãã©ãããã©ãŒã ããããããã䜿çšããŠãŠãŒã¶ãŒç©ºéã«éåžžã«æè»ãªãã¡ã€ã¢ãŠã©ãŒã«ã«ãŒã«ãçŽæ¥èšè¿°ã§ããŸãããããååã§ãªãå Žåã¯ãã«ãŒãã«ãã©ã€ããŒãèšè¿°ããŸãã
Windows 10ã®DNSãªãŒã¯ã®å Žåã®ããã«ãOpenVPNã®ãã©ã°ã€ã³ãšããŠãWindowsã§ã®ãªããŒã¹ãã¹è»¢éã®é¡äŒŒæ§ãå®è£ ããããšããŸããã 圌ã¯æ¬¡ã®ããšãè¡ããŸãã
- ã¢ãã¬ã¹10.0.0.0/8ã172.16.0.0/12ã192.168.0.0/16ã169.254.0.0/16ããã³ã¢ã¯ãã£ããªãããã¯ãŒã¯ã¢ããã¿ãŒã®ãµããããããã®çä¿¡IPv4ãŠããã£ã¹ãUDPãã±ãããèš±å¯ããŸãã fd00 :: / 8ãfe80 :: / 10ããã³ã¢ã¯ãã£ããªãããã¯ãŒã¯ã¢ããã¿ãŒã®ãµãããããæã€ãã¹ãŠã®çä¿¡IPv6ãŠããã£ã¹ãUDPãã±ããã
- VPNã€ã³ã¿ãŒãã§ã€ã¹ã®å€éšããã®ãã¹ãŠã®æ°ãããŠããã£ã¹ãUDPãã±ããããããã¯ããŸãã
ããã¯æ¬æ ŒçãªãªããŒã¹ãã¹ãã©ã¯ãŒãã£ã³ã°ã§ã¯ãããŸããããéåžžã«ããŸãæ©èœããŸããUDPèŠæ±ã«å¯Ÿããå¿çã¯ãã«ãŒãã£ã³ã°ã§ããªãã¢ãã¬ã¹ã®ç¯å²ããæ¥ãå Žåã«ã®ã¿VPNãã³ãã«ã«éãããŸããããã®å ŽåãVPNåŽã§ãããããããŸã以æ¥ã®ãµãŒã㌠å®éããããã¯ã«ãŒãã£ã³ã°äžå¯èœã§ãïŒç¹å®ã®ããŒã«ã«ãããã¯ãŒã¯å ã§ã®ã¿æ©èœããŸãïŒã UDPã䜿çšããããã°ã©ã ïŒããšãã°ãBitTorrent SyncïŒã¯LANå ã§åäœãåæ¢ããããããã€ããŒãµããããäžã®é£æ¥è ã¯åŒãç¶ãæ£ããé£çµ¡ã§ããŸãã
ãããããã©ã°ã€ã³ãããŠã³ããŒãã§ããŸãïŒ github.com/ValdikSS/openvpn-block-incoming-udp-plugin
OS Xã§ã¯ããã¹ãŠãããè€éã§ããPFã¯æ°ããUDPãã±ããã®ã¿ã®ãã£ã«ã¿ãªã³ã°ãèš±å¯ããªããããããŒã«ã«ã¢ãã¬ã¹ããããã€ããŒãµãããããVPNãµãŒããŒèªäœãé€ããã¹ãŠã®çä¿¡UDPããããã¯ããå¿ èŠããããŸãã ããã¯ãããšãã°ãå¿ èŠã«å¿ããŠDNSãããã€ããŒã䜿çšã§ããªãããã§ãã çããåŸãããªãã ãã§ãIP DNSãµãŒããŒããã¯ã€ããªã¹ãã«ç»é²ããå¿ èŠããããŸãã
ãããã«ãããããã¯ãããã次ã®ããã«å®è¡ã§ããŸãã
echo 'pass in quick proto udp from 10.0.0.0/8 to any pass in quick proto udp from 192.168.0.0/16 to any pass in quick proto udp from 172.16.0.0/12 to any pass in quick proto udp from 169.254.0.0/16 to any pass in quick proto udp from 185.61.149.121/32 to any block in quick on ! utun1 proto udp to any' | sudo pfctl -Ef -
ããã§ã 185.61.149.121
ã¯VPNãµãŒããŒã®IPã¢ãã¬ã¹ã§ããã
utun1
ã¯VPNã€ã³ã¿ãŒãã§ã€ã¹ã§ãã
ããšãã
ããªãããã¹ãŠæªåœ¹ã§ããããã®æ©èœãæªçšããããšããå Žåãnetfilterã䜿çšããŠLinuxã§ããã±ãŒãžããã°ã«èšé²ãããšåœ¹ç«ã¡ãŸãã 次ã®iptablesã«ãŒã«ãè¿œå ããã ãã§ååã§ãã ç«æããã®ãã¹ãŠã®ãã±ãããå®å šã«è¡šç€ºãããŸãã iptables -I INPUT -m conntrack -p udp --sport 4455 --ctstate NEW -j LOG
4455ã¯èå³ã®ããããŒãã§ãã
ãã®æ©èœã«é¢ããã¡ãã»ãŒãžã11ã®VPNãããã€ããŒã«éä¿¡ãã5ããã®ã¿å¿çãåä¿¡ããŸããïŒ ãã©ã€ããŒãã€ã³ã¿ãŒãããã¢ã¯ã»ã¹ ã ããŒãã§ã¯ããã©ã€ãã·ãŒ ãããã³Mullvadã¯ãçä¿¡æ¥ç¶ããããã¯ããæ©èœãåããæŽæ°ãããã¯ã©ã€ã¢ã³ãããªãªãŒã¹ããŸããã VPNãšã®é¢ä¿ã æè¡çã«ã¯æ£ããã®ã§ãããã¯ã©ã€ã¢ã³ãã¯ä»ã®ã¯ã©ã€ã¢ã³ãã®åé¡ïŒIPv6ãDNSãWebRTCãªãŒã¯ïŒããä¿è·ãããŠãããå¥ã®ã¯ã©ã€ã¢ã³ããè¿œå ããªãã®ã¯è¬ã®ãŸãŸã§ãã Cryptostormã®ã¹ã¿ããã¯Windowsã¬ãžã¹ããªããŒãèŠæ±ããŸããããããã«ã¯ãªããŒã¹ãã¹ãã©ã¯ãŒãã£ã³ã°ãå«ãŸããŠããã¯ãã§ãããæ©èœãããTorGuardã¯åœŒãããã®è³ªåã«çããåŸäœãæžããŸããã§ããã
ã¡ãªã¿ã«ã OpenVPN 2.3.9ã«ã¯ãWindowsãšã©ãŒã®å€æ°ã®ä¿®æ£ãšãWindows 8.1ããã³10ã§ã®DNSãªãŒã¯ãä¿®æ£ããåŸ æã®ãªãã·ã§ã³
--block-outside-dns
ãä»å±ããŠããŸãã
ãã©ã€ããŒãã€ã³ã¿ãŒãããã¢ã¯ã»ã¹ãã5,000ãã«ãããŒãã§ã¯ããã©ã€ãã·ãŒãã1,000ãã«ããã«ããããã1,300ãã«ãåãåããŸããããã1ã€ã®ãã³ã»ã³ã¹ã§ãæ£çŽèšã£ãŠå°ãæ°ãŸããã§ãã ãéã®äžéšã¯OpenVPNãšstrongSwanã®éçºè ã«éãããŸãã