特別なソフトウェアをインストールしなくても、すべてのデバイスがVPNに接続できるように、ホームサーバーをOpenVPNゲートウェイとして設定しようとしています。私のサーバーでUbuntu 14.04を実行しています。
ホストには3つのインターフェースがあります。
- eth0 - IPアドレス10.0.1.253は、ゲートウェイではなく内部NATネットワークにあります(ゲートウェイはインターネット接続を提供する10.0.1.1です)。
- wlan0 - VPN経由で提供したい無線LANの所有者/ゲートウェイであるIPアドレス10.0.2.1。 Hostapdおよびisc-dhcp-serverは、このインターフェースでクライアントを管理するために使用されます。
- tun0 - IPアドレス10.8.8.86、これはVPN接続です。
「通常の」インターネットアクセスを許可したいサーバーで実行されているいくつかのプロセスがあるため、サーバーのデフォルトパスをVPNに変更したくありません。
次のコマンドを使用してVPNネットワークのデフォルトパスを設定しました(表示されているすべてのコマンドはsudoを介してルートとして実行されます)。
echo "201 vpn" >> /etc/iproute2/rt_tables
ip rule add fwmark 1 table vpn
ip route add default via 10.8.8.86 table vpn
ip route flush cache
そして、次のように偽装します。
echo 1 | tee /proc/sys/net/ipv4/ip_forward
iptables -A PREROUTING -i wlan0 -t mangle \! -d 10.0.1.0/24 -j MARK --set-mark 1
iptables -t nat -A POSTROUTING -s 10.0.2.0/24 \! -d 10.0.1.0/24 -o tun0 -j MASQUERADE
私も追加しました。
iptables -A FORWARD -i tun0 -j ACCEPT
しかし、これは何の違いもないようです。
私が見たのは、トラフィックがtun0デバイスにルーティングされ、正しく偽装されていますが、戻りメッセージが消え、wlan0リクエストに再ルーティングされないことです。
例を添付して問題を見つけるためにtcpdumpを実行しました。これは、wlan0ネットワーク上のデバイスからWebサイトを要求したときに発生します。
wlan0側:
tcpdump -n -i wlan0 not port mdns
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
17:54:18.703395 IP 10.0.2.2.53203 > 208.67.222.222.53: 46870+ A? www.whatismyip.com. (36)
17:54:19.706732 IP 10.0.2.2.53203 > 208.67.222.222.53: 46870+ A? www.whatismyip.com. (36)
17:54:22.714178 IP 10.0.2.2.53203 > 8.8.4.4.53: 46870+ A? www.whatismyip.com. (36)
17:54:23.717681 IP 10.0.2.2.53203 > 8.8.4.4.53: 46870+ A? www.whatismyip.com. (36)
17:54:26.725358 IP 10.0.2.2.53203 > 208.67.222.222.53: 46870+ A? www.whatismyip.com. (36)
17:54:32.081146 ARP, Request who-has 10.0.2.1 tell 10.0.2.2, length 28
17:54:32.081192 ARP, Reply 10.0.2.1 is-at 80:1f:02:49:47:a0, length 28
17:54:35.744061 IP 10.0.2.2.53203 > 208.67.222.222.53: 46870+ A? www.whatismyip.com. (36)
DNS 要求が表示されますが、応答がありません。
tun0側から:
tcpdump -i tun0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
17:54:18.703494 IP 10.8.8.86.53203 > resolver1.opendns.com.domain: 46870+ A? www.whatismyip.com. (36)
17:54:19.011244 IP resolver1.opendns.com.domain > 10.8.8.86.53203: 46870 2/0/0 A 141.101.120.15, A 141.101.120.14 (68)
17:54:19.706815 IP 10.8.8.86.53203 > resolver1.opendns.com.domain: 46870+ A? www.whatismyip.com. (36)
17:54:20.009089 IP resolver1.opendns.com.domain > 10.8.8.86.53203: 46870 2/0/0 A 141.101.120.14, A 141.101.120.15 (68)
17:54:22.714279 IP 10.8.8.86.53203 > google-public-dns-b.google.com.domain: 46870+ A? www.whatismyip.com. (36)
17:54:23.075728 IP google-public-dns-b.google.com.domain > 10.8.8.86.53203: 46870 2/0/0 A 141.101.120.15, A 141.101.120.14 (68)
17:54:23.717755 IP 10.8.8.86.53203 > google-public-dns-b.google.com.domain: 46870+ A? www.whatismyip.com. (36)
17:54:24.059747 IP google-public-dns-b.google.com.domain > 10.8.8.86.53203: 46870 2/0/0 A 141.101.120.15, A 141.101.120.14 (68)
17:54:26.725404 IP 10.8.8.86.53203 > resolver1.opendns.com.domain: 46870+ A? www.whatismyip.com. (36)
17:54:35.744099 IP 10.8.8.86.53203 > resolver1.opendns.com.domain: 46870+ A? www.whatismyip.com. (36)
17:54:36.046371 IP resolver1.opendns.com.domain > 10.8.8.86.53203: 46870 2/0/0 A 141.101.120.14, A 141.101.120.15 (68)
これは、VPN接続からDNS応答が返されたことを示します。
私が逃したことについての提案はありますか?