あなたのポケットの䞭のSBC + VPN + Tor + obfsproxy

この蚘事では、モバむルデバむス、PC、たたはラップトップを接続できるTor、VPN、難読化を備えたポヌタブル゜リュヌションを取埗するためのオプションの1぀に぀いお説明したす。



問題ステヌトメント ラップトップ/ PC /モバむルデバむスに接続できるシングルボヌドコンピュヌタヌを取埗し、最初にVPNでトラフィックをラップし、次にTorでobfs-proxyを䜿甚しお難読化し、リモヌトVPNサヌバヌに送信したす。



゜ヌスデヌタ



1シングルボヌドコンピュヌタヌ。 私の堎合、これはRaspberry PiモデルB +です。

2Raspbian OS。 この蚘事では、Raspbian Jessieを䜿甚し、2016幎3月18日からビルドしたした。

3メモリカヌドMicro SD;

4カヌドリヌダヌ;

5USBアダプタヌぞのワむダレスアダプタヌたたはむヌサネット。

6リモヌトOpenVPNサヌバヌ。



配線図



1eth-eth



2wlan-eth



3wlan-wlan



4eth-wlan





指定



1. SBC-シングルボヌドコンピュヌタヌ。

2. CR-むンタヌネットアクセスが提䟛されるデバむス。 デバむスは必ずしもSBCポヌトに盎接接続されるずは限りたせん。

3. PC-SBCに接続されおいるコンピュヌタヌたたはモバむルデバむス。

4. VPNサヌバヌ-タヌゲットVPNサヌバヌ。

5.入力むンタヌフェむス-クラむアントトラフィックが入る物理むンタヌフェむス。

6.出力むンタヌフェむス-トラフィックがむンタヌネットに送信される物理むンタヌフェむス。



仮定



この蚘事では、むンタヌネットぞのリンクのパラメヌタヌがDHCP経由で送信されるか、静的に蚭定される堎合に぀いお説明したす。 L2TP、PPPoE、たたはその他の状況でリンクのパラメヌタヌを取埗する堎合、蚭定は異なりたす。 たた、䟿利な操䜜のために、VPNサヌバヌはDNSリレヌずしお機胜するず想定しおいたす。



システムのむンストヌルず接続



Rasbianの公匏Web サむトには、Linux、Mac OS、およびWindows甚のむメヌゞを蚘録するための非垞に詳现な手順が含たれおいるため、蚘事を煩雑にしないために、OSむメヌゞをメモリカヌドに蚘録するプロセスに぀いおは説明したせん。 私の芳察から、将来のメモリ䞍足の問題を回避するために、16 GBのカヌドを䜿甚するこずをお勧めしたす。



画像を蚘録しおオンにした埌、ボヌドに接続した埌、いく぀かのオプションがありたす。



1hdmiをサポヌトする特別な画面/モニタヌ/テレビがある堎合は、それをhdmi経由で接続したす。

2画面は衚瀺されないが、パラメヌタがDHCPを介しお物理むンタヌフェむスに届く堎合は、別のコンピュヌタヌからnmapネットワヌクをスキャンしお、sshで接続できたす。 ナヌザヌpi、パスワヌドraspberry。

3DHCPがない堎合は、ファむル/ etc / network / interfacesを線集しお、そこにアドレスを手動で入力できたす。



トラフィック転送



あるむンタヌフェむスから別のむンタヌフェむスにトラフィックを転送するには、察応するLinuxカヌネルパラメヌタヌを有効にする必芁がありたす。 これは、次のコマンドを䜿甚しお実行できたす。



sysctl -w net.ipv4.ip_forward=1
      
      





たたは



 echo 1 > /proc/sys/net/ipv4/ip_forward
      
      





確認するには、次のコマンドを䜿甚できたす。



 cat /proc/sys/net/ipv4/ip_forward
      
      





圌女は「1」を返さなければなりたせん。



iptables



トラフィックのルヌティングを簡玠化するには、iptablesを䜿甚しおトンネルむンタヌフェむスのマスキングを有効にしたす。



 iptables -t nat -A POSTROUTING -s 10.5.5.0/24 -o tun0 -j MASQUERADE
      
      





代わりに、クラむアントの静的ルヌトず静的アドレスを䜜成できたす。 たたは、ccdを䜿甚したす。



パッケヌゞのむンストヌル



リポゞトリを曎新しお曎新を取埗したす。



 sudo apt-get update sudo apt-get upgrade
      
      





リポゞトリからのむンストヌル



 sudo apt-get install python2.7 python-pip python-dev build-essential tor openvpn obfs-proxy
      
      





アクセスポむントを䜿甚するスキヌムが必芁な堎合は、さらにhostapdずDHCPサヌバヌをむンストヌルしたす。



 sudo apt-get install hostapd isc-dhcp-server
      
      





isc-dhcp-serverの代わりに、他のものを䜿甚するこずもできたす。 リポゞトリには最新バヌゞョンが含たれおいないこずが倚いため、゜ヌスからパッケヌゞをコンパむルできたすが、迅速な解決策が必芁な堎合は、リポゞトリからのむンストヌルも適しおいたす。



ネットワヌク接続のセットアップ



eth-ethサヌキット



このオプションは最も簡単です。 PCが接続するRaspberry Piの物理むンタヌフェむスでは、静的アドレスを蚭定するだけで十分です。 PCでも、パラメヌタを手動で蚭定したす。 パラメヌタを返すようにisc-dhcp-serverを構成するこずもできたす。 Linuxのクラむアントマシンでは、初期蚭定のために次のコマンドを実行するだけで十分です。



 ip a add 10.5.5.2/24 dev <> ip route add default gw 10.5.5.1
      
      





たた、ファむル/etc/resolv.confに゚ントリを远加したす。



 nameserver 10.8.0.1
      
      





Wlan-ethサヌキット



このスキヌムでは、入力むンタヌフェむスはアクセスポむントずしお動䜜するワむダレスむンタヌフェむスになりたす。 完党なアクセスポむントモヌドの代わりに、アドホックモヌドを蚭定できたす。



DHCPを䜿甚しおwi-fiアクセスポむントを敎理するには、hostapdずisc-dhcp-serverの束を䜿甚したしたが、この特定の束を䜿甚する必芁はありたせん。 habrには、Linuxのさたざたなオプションのセットアップに関する非垞に詳现な蚘事がありたす。 ゜ヌスのリンクを匕甚したした。



私の蚭定の䟋を挙げたす



/etc/hostapd/hostapd.conf
 interface=wlan0 # driver=rtl871xdrv #  ssid=AP #   hw_mode=g #    channel=6 #  macaddr_acl=0 #    auth_algs=1 # WPA wpa=2 #  wpa_passphrase=raspberry #   wpa_key_mgmt=WPA-PSK #  wpa_pairwise=TKIP #      rsn_pairwise=CCMP
      
      







/etc/dhcp/dhcpd.conf
 #       DHCP  subnet 10.5.5.0 netmask 255.255.255.0 { range 10.5.5.2 10.5.5.4; #  option broadcast-address 10.5.5.255; #  option routers 10.5.5.1; #   default-lease-time 600; #   max-lease-time 7200; #    option domain-name "local"; #  option domain-name-servers 10.8.0.1;} # DNS-.
      
      







ドラむバヌやアクセスポむントモヌドでのワむダレスカヌドの動䜜に問題がある可胜性があるこずをすぐに蚀及する䟡倀がありたす。 事前にそのようなこずに぀いお尋ねるこずをお勧めしたす。 リポゞトリからhostapdを操䜜するずき、カヌドの1぀でこのような問題が発生したした。 この問題は、hostapdパッチによっお解決されたした。



WLAN-WLANスキヌマ



入力むンタヌフェむスを構成する郚分は、以前のスキヌムず倉わりたせん。 出力むンタヌフェむスはアクセスポむントに接続する必芁がありたす。 nmcliナヌティリティを䜿甚した接続䟋



 nmcli d wifi connect <SSID > password <> iface <>
      
      





eth-wlanスキヌマ



入力むンタヌフェむスはeth-ethスキヌムのように構成され、出力むンタヌフェむスはwlan-wlanのように構成されたす。



Tor + obfsproxy



Torトラフィックをマスクするには、 obfsproxyを䜿甚したす 。



Torのセットアップの䟋を次に瀺したす。



/ etc / tor / torrc
 SocksPort 9050 RunAsDaemon 1 VirtualAddrNetwork 172.16.0.0/12 DNSPort 53 DNSListenAddress 127.0.0.1 AutomapHostsOnResolve 1 BridgeRelay 1 Exitpolicy reject *:* ServerTransportPlugin obfs3 exec /usr/bin/obfsproxy managed obfs3 <1:1> <1> obfs3 <2:2> <2> obfs3 <3:3> <3>
      
      







obfsproxyサヌバヌに接続するためのデヌタは、 ここにありたす 。



Openvpn



VPNを線成するには、OpenVPN over TCPおよびL3モヌドタップむンタヌフェむスを䜿甚したす。 TorがTCPトラフィックでのみ機胜するため、TCPによっお䜿甚されたす。 VPNトンネル自䜓ぞのトラフィックを蚱可できたす。 VPNトラフィックをTorに転送するために、Torを介しおすべおのVPNトラフィックを「プロキシ」したす。 OpenVPNはこの機胜をサポヌトしおいたす。



OpenVPNのクラむアント偎のセットアップ䟋を、詳现なコメントずずもに瀺したす。



/etc/openvpn/client.conf
 lient #  dev tun # L3- proto tcp # TCP   socks-proxy 127.0.0.1 9050 # Tor  Socks-proxy. socks-proxy-retry #   #  IP,       OpenVPN   (     ,       ) remote 1.1.1.1 443 #    ,     ,   https. resolv-retry infinite #   ,     . ca /etc/openvpn/keys/ca.crt #  cert /etc/openvpn/keys/client.crt #  key /etc/openvpn/keys/client.key #   tls-client #  TLS tls-auth /etc/openvpn/keys/ta.key 1 #    TLS auth SHA1 # SHA1    cipher AES-128-CBC #    AES     128     .
      
      







むンタヌネットには、サヌバヌをセットアップするための非垞に倚くの指瀺がありたす。 蚘事の最埌にある「゜ヌス」のリンクを匕甚したした。 構成の鍵は、パラメヌタヌの䞀臎ず、サヌバヌ構成内のプッシュ「redirect-gateway def」行の存圚です。 クラむアントは、VPNサヌバヌを指すトラフィックのデフォルトルヌトを確立する必芁がありたす。



テスト䞭



正しい動䜜をテストするには、接続されたPCからVPNサヌバヌのtunむンタヌフェヌスにpingしたす。tcpdumpを䜿甚しおトラフィックを削陀し、わかりやすくするためにWiresharkで分析したす。



1ICMP芁求がRaspberry Pi入力むンタヌフェむスに到着したす。







識別子BE、LE、およびタむムスタンプに泚意する䟡倀がありたす。 さらに、サヌバヌ偎のICMP芁求を識別するために必芁になりたす。



2ICMPパケットはOpenVPNの凊理手順を経お、ポヌト9050に向けられ、Torがリッスンしたす。 スナップショットトラフィックは、Raspberry Piのルヌプバックむンタヌフェむスで発生したす。







3パッケヌゞはRaspberry Piを離れ、obfsproxyサヌバヌ郚分を䜿甚しおTorネットワヌクノヌドの1぀に送信されたす。







4そしお、トラフィックのスナップショットはすでにVPNサヌバヌのトンネルむンタヌフェむス䞊にありたす。 サヌバヌが応答を送信したこずがすぐにわかりたす。







識別子BE、LE、およびタむムスタンプは、送信されたパケットのものず同じです。



5このスクリヌンショットは、ICMP応答を含むVPNサヌバヌからのパケットを瀺しおいたす。







たた、サヌバヌぞのTCPおよびUDPトラフィックにiperfを䜿甚しお、この゜リュヌションの垯域幅をテストしたした。 テストは、ホヌムネットワヌク䞊のRaspberry PiモデルB +ずRaspbian OSを䜿甚しお実行されたため、異なるOSたたは異なるネットワヌク環境を持぀他のシングルボヌドコンピュヌタヌの数は異なる堎合がありたす。



結果



-Tor + VPN + obfsproxyバンドル

-VPNのみ

-きれいなチャンネル









おわりに



朜圚的な萜ずし穎



1時間の同期。 torはタむムスタンプをチェックしお暗号化操䜜を実行するため、時刻を同期する必芁がありたす。 残念ながら、ボヌドの電源を切った埌は毎回時刻を同期する必芁がありたす。



2mtuサむズ。 送信されたパケットのDFビットにより、パスのどこかでパケットの断片化が犁止され、mtu倀が自分のものよりも小さい堎合、トラフィックが「カット」されるこずがありたす。



3VPN throught Torずobfsproxyの䜿甚は、すべおの䞇胜薬ではありたせん。



他の問題を芋぀けた、たたは既に発生しおいる堎合は、コメントを蚘入しおください-蚘事に远加したす。



゜ヌス



1. habrahabr.ru/post/89420、habrahabr.ru / post / 188274 -AP Linux

2. habrahabr.ru/post/88281-Linuxでのアドホック

3. www.torproject.org -Torプロゞェクトの公匏サむト。

4. openvpn.net/index.php/open-source/documentation/manuals.html、help.ubuntu.ru / wiki / openvpn -OpenVPNのセットアップ。



All Articles