Xubuntuサーバーでルートを使用してOpenVPNをセットアップしたい(ルーター/ゲートウェイ/共有/ dhcp/dns/wifi /スイッチ...すべて1つに)。
WAN-enp4s0f1-77.xxx.xxx.xxx
LAN-br0-10.0.1.1
VPN-tun0-10.0.2.1
OpenVPNクライアントはiphoneなので、Tunを使用する必要があります。 VPNを介してすべてのトラフィックをリダイレクトし、LAN内のサーバーおよびホスト上のすべてのサービスにアクセスしたい。
現在の設定では、iphoneを介してサーバーで実行されているインターネットやサービスにアクセスできます。 Host on LANからiphoneへのpingが機能しています。
IPhoneでDNSを使用できず、LAN上のホストにアクセスできません。 iphoneからHost on LANへのpingが機能していません。
### server.conf
local 77.xxx.xxx.xxx
port 1194
proto tcp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh2048.pem
;topology subnet
server 10.0.2.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
Push "route 10.0.1.0 255.255.255.0"
Push "redirect-gateway def1"
;Push "dhcp-option DNS 10.0.2.1"
client-to-client
keepalive 10 120
tls-auth /etc/openvpn/ta.key 0
cipher AES-256-CBC
user nobody
group nogroup
tun-mtu 1500
mssfix 1450
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append /var/log/openvpn/openvpn.log
verb 3
### client.ovpn
client
dev tun
proto tcp
remote 77.xxx.xxx.xxx 1194
cipher AES-256-CBC
nobind
tun-mtu 1500
mssfix 1450
ca ca.crt
dh dh2048.pem
tls-auth ta.key 1
cert client_phone.crt
key client_phone.key
ns-cert-type server
verb 3
pull
### IPtables
# Generated by iptables-save v1.6.1 on Sat Dec 29 20:47:38 2018
*nat
:POSTROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 10.0.2.0/24 -o enp4s0f1 -j MASQUERADE
-A POSTROUTING -o enp4s0f1 -j MASQUERADE
COMMIT
# Completed on Sat Dec 29 20:47:38 2018
# Generated by iptables-save v1.6.1 on Sat Dec 29 20:47:38 2018
*mangle
:PREROUTING ACCEPT [9:438]
:INPUT ACCEPT [3:184]
:FORWARD ACCEPT [6:254]
:OUTPUT ACCEPT [5:632]
:POSTROUTING ACCEPT [11:886]
COMMIT
# Completed on Sat Dec 29 20:47:38 2018
# Generated by iptables-save v1.6.1 on Sat Dec 29 20:47:38 2018
*filter
:OUTPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:INPUT DROP [0:0]
-A INPUT -p tcp -m tcp -i enp4s0f1 --dport 1194 -j ACCEPT
-A INPUT -p tcp -m tcp -i enp4s0f1 --dport 41 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i br0 -j ACCEPT
-A INPUT -m state -i enp4s0f1 --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp ! -i enp4s0f1 -j ACCEPT
-A INPUT -i tun0 -j ACCEPT
-A FORWARD -s 10.0.2.0/24 -i tun0 -o enp4s0f1 -j ACCEPT
-A FORWARD -m conntrack -d 10.0.2.0/24 -i enp4s0f1 -o tun0 --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 10.0.2.0/24 -d 10.0.1.0/24 -i tun0 -o br0 -j ACCEPT
-A FORWARD -s 10.0.1.0/24 -d 10.0.2.0/24 -i br0 -o tun0 -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -i br0 -j ACCEPT
-A FORWARD -m state -i enp4s0f1 --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p icmp ! -i enp4s0f1 -j ACCEPT
-A FORWARD -i tun0 -j ACCEPT
COMMIT
# Completed on Sat Dec 29 20:47:38 2018
### sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.conf.all.accept_source_route = 1
net.ipv4.conf.all.send_redirects = 1
net.ipv4.conf.all.accept_redirects = 1
0.0.0.0 77.xxx.xxx.xxx 0.0.0.0 UG 100 0 0 enp4s0f1
10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
10.0.2.0 10.0.2.2 255.255.255.0 UG 0 0 0 tun0
10.0.2.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
77.xxx.xxx.xxx 0.0.0.0 255.255.255.240 U 0 0 0 enp4s0f1
77.xxx.xxx.xxx 0.0.0.0 255.255.255.255 UH 100 0 0 enp4s0f1
ルートを追加しようとすると、LANストップが応答します。
route add -net 10.0.2.0/24 gw 10.0.1.1
誰かが私が間違っていることを私に指摘できますか?ありがとうございました
編集1: pingおよびtraceroute
ホストからIphone
ping 10.0.2.6
Pinging 10.0.2.6 with 32 bytes of data:
Reply from 10.0.2.6: bytes=32 time=110ms TTL=63
tracert 10.0.2.6
Tracing route to 10.0.2.6 over a maximum of 30 Hops
1 <1 ms <1 ms <1 ms HTPC-IMON [10.0.1.1]
2 51 ms 48 ms 54 ms 10.0.2.6
Trace complete.
Iphone(iNetTools-Comsoft.com)-サーバーへ:
PING 10.0.1.1 (10.0.1.1): 56 data bytes
64 bytes from 10.0.1.1: icmp_seq=0 ttl=32 time=88.080
Trace route 10.0.1.1 (10.0.1.1), 5 relative Hops max, 52 byte packets
1 10.0.1.1 (10.0.1.1) 97.182 ms 193.557 ms 201.693 ms
Iphoneからホストへ:
PING 10.0.1.10 (10.0.1.10): 56 data bytes
Request timeout for icmp_seq 0
traceroute to 10.0.1.10 (10.0.1.10), 5 relative Hops max, 52 byte packets
1 10.0.2.1 (10.0.2.1) 64.630 ms 127.072 ms 129.492 ms
2 ***
3 ***
4 ***
5 *
サーバー-ホストへ
ping 10.0.1.10
PING 10.0.1.10 (10.0.1.10) 56(84) bytes of data.
64 bytes from 10.0.1.10: icmp_seq=1 ttl=128 time=0.308 ms
inetutils-traceroute -I 10.0.1.10
traceroute to 10.0.1.10 (10.0.1.10), 64 Hops max
1 10.0.1.10 0,251ms 0,147ms 0,251ms
編集2:Nslookup
google.comへのホスト
Server: UnKnown
Address: 10.0.1.1
Non-authoritative answer:
Name: google.com
Addresses: 2a00:1450:4014:801::200e
172.217.23.206
Iphoneからgoogle.comへ(DNSセットなし)
google.com 59 IN SOA ns1.google.com
Email: [email protected]
Serial: 227281678
Refresh: 900
Retry: 900
Expire: 1800
Minimum TTL: 60
google.com 21599 IN NS ns3.google.com
Iphone(NSlookup)からgoogle.com(10.0.1.1)
検索結果はありません。
Iphone(NSlookup)からgoogle.com(10.0.2.1)
検索結果はありません。
Bind9
options {
directory "/var/cache/bind";
forwarders {
8.8.8.8;
};
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
check-names master ignore;
check-names slave ignore;
check-names response ignore;
listen-on { 127.0.0.1; 10.0.1.1;10.0.2.1; };
};
DNSはこれをクライアント構成に追加することで機能するはずです。
dhcp-option DNS 10.0.1.1
サーバー設定にPush dhcp dnsが含まれています-これはコメントがなく、openvpnサーバーネットワークに設定されていない場合に機能します。 DNSはありません-私がお勧めしないサーバーをそこに構成する場合を除きます。
あなたのルート追加コマンドは私には意味がありません-openvpnは必要なルーティングを設定します。
ファイアウォールの設定は問題ないようです。つまり、電話がLANにpingできない場合(ちなみにどのようにpingするのですか?どのアプリですか?)、tracerouteの結果は調査に役立ちます。
server.confにいくつかの問題が見られます:
問題ではありませんが、client.confでは、「pull」は「client」を指定すると冗長になります。クライアント/プルオプションを使用すると、VPNサーバーが設定をプッシュできます。詳細は their man page を参照してください。