web-dev-qa-db-ja.com

ヨウ素を使用したIPoverDNSの構成

私がやろうとしていること

このチュートリアルこのチュートリアル の両方に従って iodine を使用してIP-over-DNSトンネルを実装しようとしています(この質問でさらに概説します)正確にどの手順を実行したか)。ルート権限を取得したLollipopスマートフォンのクライアントとして andIodine のようなものを使用できるようにしたいと思います。

すでにOpenVPNサーバーを実行しているDebian7サーバーインスタンスがあり、正常に動作し、現在アクティブです

サーバーでiodined -c -f 10.0.0.1 -P <password> iodine.<yourdomain>.comを実行してから、UbuntuホームPCでiodine -f -P <password> iodine.<yourdomain>.comを実行すると、

接続設定が完了し、データを送信します。

何が悪いのか

その後、PCから10.0.0.1にpingを実行し、SSHで接続することもできます。しかし、ヨウ素クライアントのセットアップとインターネット接続の取得に成功していません。

Androidクライアントで、ヨウ素サーバーからping応答を受け取りますが、外部ホストからのpingはなく、インターネット接続もありません。

Androidテスト

サーバー上で、同じiodined -c -f 10.0.0.1 -P <password> iodine.<yourdomain>.comコマンドを実行します。私の根付いた株5.1Lollipop XT1040 Motorola電話で、私はandIodine1.3を実行します。

およびヨウ素設定

  • トンネルトップドメイン:iodine.<domain>.tk
  • パスワード:<password>
  • トンネルネームサーバー:<empty>
  • ネームサーバーモード:LEAVE_DEFAULT
  • ネームサーバー:<empty>
  • リクエストタイプ:AUTODETECT
  • レイジーモード:enabled
  • Rawモード:disabled
  • デフォルトのロート:enabled

接続ログ

enter image description here

接続テスト

ヨウ素サーバーからping応答を受け取りますが、example.orgからのpingはありません(example.orgは、ローカルマシンのpingに応答する実際のドメインです-まだどういうわけか正しいIPを取得できることに注意してください)。

enter image description here

詳細な構成

サーバーには、NameCheapによって提供される無料の.tkドメインと無料のDNSがあります。これらはDNSエントリです:

A Record    @           <PUBLIC IP>
A Record    tunnel      <PUBLIC IP>
A Record    www         <PUBLIC IP>
NS Record   iodine      tunnel.<domain>.tk.

IP転送が有効になっています:

# cat /proc/sys/net/ipv4/ip_forward
1

これらは、OpenVPNのためにすでに存在する私のiptablesルールでした:

# I have no idea WTF this is and what's doing here
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to <PUBLIC IP>

# OpenVPN on port 53 UDP
#iptables -t nat -A PREROUTING -p udp -d <PUBLIC IP> --dport 53 -j REDIRECT --to-port 1194

# OpenVPN on port 80 UDP
iptables -t nat -A PREROUTING -p udp -d <PUBLIC IP> --dport 80 -j REDIRECT --to-port 1194

これらは、チュートリアルに従って設定した新しいiptalbesルールです。 サーバー上でインターフェイス名が一致しないため、インターフェイス名を変更しました

### iodine
# Allow the DNS server to send and receive queries
iptables -A INPUT -p udp -m multiport --dports 53 -i venet0:0 -j ACCEPT
iptables -A OUTPUT -p udp -m multiport --dports 53 -o venet0:0 -j ACCEPT

# Allow the connected clients to talk to the server machine
iptables -A INPUT -i dns0 -j ACCEPT
iptables -A OUTPUT -o dns0 -j ACCEPT

# Forward Internet traffic
iptables -A FORWARD -i dns0 -o venet0:0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i venet0:0 -o dns0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o venet0:0 -j MASQUERADE
### /iodine

これらは私のネットワークデバイスですヨウ素を実行する前

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:180728 errors:0 dropped:0 overruns:0 frame:0
          TX packets:244367 errors:0 dropped:41 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:15273264 (14.5 MiB)  TX bytes:289916435 (276.4 MiB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:127.0.0.2  P-t-P:127.0.0.2  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:499243 errors:0 dropped:0 overruns:0 frame:0
          TX packets:495596 errors:0 dropped:13593 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:334524346 (319.0 MiB)  TX bytes:339530859 (323.8 MiB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:<PUBLIC IP>  P-t-P:<PUBLIC IP>  Bcast:<PUBLIC IP>  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

venet0:1  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:172.16.77.18  P-t-P:172.16.77.18  Bcast:172.31.255.255  Mask:255.240.0.0
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

これらは私のネットワークデバイスですヨウ素を実行した後

dns0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.0.0.1  P-t-P:10.0.0.1  Mask:255.255.255.224
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1130  Metric:1
          RX packets:745 errors:0 dropped:0 overruns:0 frame:0
          TX packets:215 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:59256 (57.8 KiB)  TX bytes:18060 (17.6 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:180728 errors:0 dropped:0 overruns:0 frame:0
          TX packets:244367 errors:0 dropped:41 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:15273264 (14.5 MiB)  TX bytes:289916435 (276.4 MiB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:127.0.0.2  P-t-P:127.0.0.2  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:498943 errors:0 dropped:0 overruns:0 frame:0
          TX packets:495359 errors:0 dropped:13549 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:334489804 (318.9 MiB)  TX bytes:339492035 (323.7 MiB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:<PUBLIC IP>  P-t-P:<PUBLIC IP>  Bcast:<PUBLIC IP>  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

venet0:1  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:172.16.77.18  P-t-P:172.16.77.18  Bcast:172.31.255.255  Mask:255.240.0.0
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
2

その後、PCから10.0.0.1にpingを実行し、SSHで接続することもできます。しかし、ヨウ素クライアントのセットアップとインターネット接続の取得に成功していません。

Androidクライアントで、ヨウ素サーバーからping応答を受け取りますが、外部ホストからのpingはなく、インターネット接続もありません。

あなたはヨウ素が何をするのか誤解していると思います。

10.0.0.1でサーバーにSSHで接続できる場合は、ヨウ素がその処理を実行し、すべてが期待どおりに機能します。

これで、SSHを使用してSOCKS5プロキシ(ssh -N -C -D 4321 [email protected])を作成できます。その後、(たとえば)Webに直接アクセスする代わりに、127.0.0.1:4321でSOCKSプロキシを使用するようにブラウザに指示します。

1
p4bl0

同様の問題がありました。(iodined)ホストへのSSH接続は正常に機能しましたが、クライアントのインターネットがありませんでした。次のルールを設定した後、それは非常にうまく機能しました(本当に遅いですが:D)。

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t filter -A FORWARD -i eth0 -o dns0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A FORWARD -i dns0 -o eth0 -j ACCEPT

参照: https://sarwiki.informatik.hu-berlin.de/IPoverDNS 永続化について。そして、テーブルルールの説明については、これを見ることができます https://www.youtube.com/watch?v=p5W8fuHoWM4 。幸運を!

0
milkpirate