Je veux configurer un OpenVPN avec route sur mon serveur Xubuntu (routeur/gateway/share/dhcp/dns/wifi/switch... tout en un).
-
WAN - enp4s0f1 - 77.xxx.xxx.xxx
-
LAN - br0 - 10.0.1.1
-
VPN - tun0 - 10.0.2.1
Je dois utiliser Tun parce que le client OpenVPN est un iphone. Je veux rediriger tout le trafic à travers le VPN et accéder à tous les services du serveur et des hôtes du réseau local.
Avec la configuration actuelle, je peux accéder à Internet et aux services fonctionnant sur le serveur via l'iphone. Le Ping de l'hôte sur le LAN vers l'iphone fonctionne.
Je ne peux pas utiliser mon DNS sur l'iphone et je ne peux pas accéder aux hôtes sur le réseau local. Le ping de l'iphone vers l'hôte sur le réseau local ne fonctionne pas.
### 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
route -n
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
Lorsque j'essaie d'ajouter une route, mon LAN ne répond plus.
route add -net 10.0.2.0/24 gw 10.0.1.1
Quelqu'un pourrait-il m'indiquer ce que je fais mal ? Je vous remercie.
Edit 1 : Ping et traceroute
Hôte vers 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) - vers le serveur :
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 à l'hôte :
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 *
Serveur - pour héberger
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
Edit 2 : Nslookup
Hébergeur : 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 (sans dns set)
google.com 59 IN SOA ns1.google.com
Email: dns-admin@google.com
Serial: 227281678
Refresh: 900
Retry: 900
Expire: 1800
Minimum TTL: 60
google.com 21599 IN NS ns3.google.com
Iphone (NSlookup) vers google.com (10.0.1.1)
Aucun résultat.
Iphone (NSlookup) vers google.com (10.0.2.1)
Aucun résultat.
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; };
};