Temat: OpenVPN połączenie między dwoma sieciami
Witam
Potrzebuję wykonać konfigurację VPN pomiędzy dwoma routerami WRT160NL, do tej pory skonfigurowałem:
WRT160NL-serwer, hostname Serafin:
root@Serafin:~$ ifconfig
br-lan inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
eth1 inet addr:192.168.12.185 Bcast:192.168.12.255 Mask:255.255.255.0
tun0 inet addr:10.0.1.1 P-t-P:10.0.1.2 Mask:255.255.255.255
root@Serafin:~$ cat /etc/openvpn/openvpn.conf
dev tun
port 1194
proto udp
keepalive 10 120
persist-key
persist-tun
mode server
server 10.0.1.0 255.255.255.0
ifconfig-pool-persist /tmp/ipp.txt
verb 3
tls-server
push "route 10.0.1.0 255.255.255.0"
client-to-client
#logowanie
log-append /tmp/log/openvpn.log
status /tmp/log/openvpn.status
#certyfikaty
dh /etc/ssl/dh1024.pem
ca /etc/ssl/cacert.pem
cert /etc/ssl/servercert.pem
key /etc/ssl/private/serverkey.pem_wp
root@Serafin:~$ cat /etc/config/firewall
config 'defaults'
option 'syn_flood' '1'
option 'input' 'ACCEPT'
option 'output' 'ACCEPT'
option 'forward' 'REJECT'
option 'drop_invalid' '1'
config 'zone'
option 'name' 'lan'
option 'network' 'lan'
option 'input' 'ACCEPT'
option 'output' 'ACCEPT'
option 'forward' 'REJECT'
config 'zone'
option 'name' 'wan'
option 'network' 'wan'
option 'input' 'REJECT'
option 'output' 'ACCEPT'
option 'forward' 'REJECT'
option 'masq' '1'
option 'mtu_fix' '1'
config 'forwarding'
option 'src' 'lan'
option 'dest' 'wan'
config 'rule'
option 'name' 'Allow-DHCP-Renew'
option 'src' 'wan'
option 'proto' 'udp'
option 'dest_port' '68'
option 'target' 'ACCEPT'
option 'family' 'ipv4'
config 'rule'
option 'name' 'Allow-Ping'
option 'src' 'wan'
option 'proto' 'icmp'
option 'icmp_type' 'echo-request'
option 'family' 'ipv4'
option 'target' 'ACCEPT'
config 'rule'
option 'name' 'Allow-DHCPv6'
option 'src' 'wan'
option 'proto' 'udp'
option 'src_ip' 'fe80::/10'
option 'src_port' '547'
option 'dest_ip' 'fe80::/10'
option 'dest_port' '546'
option 'family' 'ipv6'
option 'target' 'ACCEPT'
config 'rule'
option 'name' 'Allow-ICMPv6-Input'
option 'src' 'wan'
option 'proto' 'icmp'
list 'icmp_type' 'echo-request'
list 'icmp_type' 'destination-unreachable'
list 'icmp_type' 'packet-too-big'
list 'icmp_type' 'time-exceeded'
list 'icmp_type' 'bad-header'
list 'icmp_type' 'unknown-header-type'
list 'icmp_type' 'router-solicitation'
list 'icmp_type' 'neighbour-solicitation'
option 'limit' '1000/sec'
option 'family' 'ipv6'
option 'target' 'ACCEPT'
config 'rule'
option 'name' 'Allow-ICMPv6-Forward'
option 'src' 'wan'
option 'dest' '*'
option 'proto' 'icmp'
list 'icmp_type' 'echo-request'
list 'icmp_type' 'destination-unreachable'
list 'icmp_type' 'packet-too-big'
list 'icmp_type' 'time-exceeded'
list 'icmp_type' 'bad-header'
list 'icmp_type' 'unknown-header-type'
option 'limit' '1000/sec'
option 'family' 'ipv6'
option 'target' 'ACCEPT'
config 'include'
option 'path' '/etc/firewall.user'
config 'rule'
option '_name' 'ssh'
option 'src' 'wan'
option 'target' 'ACCEPT'
option 'proto' 'tcp'
option 'dest_port' '22'
config 'rule'
option '_name' 'www_luci'
option 'src' 'wan'
option 'target' 'ACCEPT'
option 'proto' 'tcp'
option 'dest_port' '80'
config 'rule'
option '_name' 'openvpn'
option 'src' 'wan'
option 'target' 'ACCEPT'
option 'proto' 'udp'
option 'dest_port' '1194'
config 'rule'
option '_name' 'ftp'
option 'src' 'wan'
option 'target' 'ACCEPT'
option 'proto' 'udp'
option 'dest_port' '21'
config 'rule'
option '_name' 'openvpn_lan'
option 'src' 'lan'
option 'target' 'ACCEPT'
option 'proto' 'udp'
option 'dest_port' '1194'
root@Serafin:~$ cat /etc/firewall.user
# This file is interpreted as shell script.
# Put your custom iptables rules here, they will
# be executed with each firewall (re-)start.
iptables -I OUTPUT -o tap+ -j ACCEPT
iptables -I INPUT -i tap+ -j ACCEPT
iptables -I FORWARD -o tap+ -j ACCEPT
iptables -I FORWARD -i tap+ -j ACCEPT
iptables -I OUTPUT -o tun+ -j ACCEPT
iptables -I INPUT -i tun+ -j ACCEPT
iptables -I FORWARD -o tun+ -j ACCEPT
iptables -I FORWARD -i tun+ -j ACCEPT
iptables -I OUTPUT -o tun0 -j ACCEPT
iptables -I INPUT -i tun0 -j ACCEPT
iptables -I FORWARD -o tun0 -j ACCEPT
iptables -I FORWARD -i tun0 -j ACCEPT
root@Serafin:~$ cat /etc/init.d/routing
#!/bin/sh /etc/rc.common
# routing potrzebny do komunikacji pomiedzy hostami w VPN
START=99
start() {
sleep 100
route add -net 192.168.2.0 netmask 255.255.255.0 gw 10.0.1.2
}
WRT160NL, hostname Stroza:
root@Stroza:~$ ifconfig
br-lan inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0
eth1 inet addr:192.168.138.2 Bcast:192.168.138.255 Mask:255.255.255.0
tun0 inet addr:10.0.1.6 P-t-P:10.0.1.5 Mask:255.255.255.255
root@Stroza:~$ cat /etc/openvpn/openvpn.conf
client
dev tun
proto udp
remote 91.X.Y.Z 1194
persist-key
persist-tun
ca /etc/openvpn/cacert.pem
cert /etc/openvpn/strozacert.pem
key /etc/openvpn/strozakey.pem_wp
#logowanie
log-append /tmp/log/openvpn.log
status /tmp/log/openvpn.status
verb 3
root@Stroza:~$ cat /etc/config/firewall
config 'defaults'
option 'syn_flood' '1'
option 'input' 'ACCEPT'
option 'output' 'ACCEPT'
option 'forward' 'REJECT'
option 'drop_invalid' '1'
config 'zone'
option 'name' 'lan'
option 'network' 'lan'
option 'input' 'ACCEPT'
option 'output' 'ACCEPT'
option 'forward' 'REJECT'
config 'zone'
option 'name' 'wan'
option 'network' 'wan'
option 'input' 'REJECT'
option 'output' 'ACCEPT'
option 'forward' 'REJECT'
option 'masq' '1'
option 'mtu_fix' '1'
config 'forwarding'
option 'src' 'lan'
option 'dest' 'wan'
config 'rule'
option 'name' 'Allow-DHCP-Renew'
option 'src' 'wan'
option 'proto' 'udp'
option 'dest_port' '68'
option 'target' 'ACCEPT'
option 'family' 'ipv4'
config 'rule'
option 'name' 'Allow-Ping'
option 'src' 'wan'
option 'proto' 'icmp'
option 'icmp_type' 'echo-request'
option 'family' 'ipv4'
option 'target' 'ACCEPT'
config 'rule'
option 'name' 'Allow-DHCPv6'
option 'src' 'wan'
option 'proto' 'udp'
option 'src_ip' 'fe80::/10'
option 'src_port' '547'
option 'dest_ip' 'fe80::/10'
option 'dest_port' '546'
option 'family' 'ipv6'
option 'target' 'ACCEPT'
config 'rule'
option 'name' 'Allow-ICMPv6-Input'
option 'src' 'wan'
option 'proto' 'icmp'
list 'icmp_type' 'echo-request'
list 'icmp_type' 'destination-unreachable'
list 'icmp_type' 'packet-too-big'
list 'icmp_type' 'time-exceeded'
list 'icmp_type' 'bad-header'
list 'icmp_type' 'unknown-header-type'
list 'icmp_type' 'router-solicitation'
list 'icmp_type' 'neighbour-solicitation'
option 'limit' '1000/sec'
option 'family' 'ipv6'
option 'target' 'ACCEPT'
config 'rule'
option 'name' 'Allow-ICMPv6-Forward'
option 'src' 'wan'
option 'dest' '*'
option 'proto' 'icmp'
list 'icmp_type' 'echo-request'
list 'icmp_type' 'destination-unreachable'
list 'icmp_type' 'packet-too-big'
list 'icmp_type' 'time-exceeded'
list 'icmp_type' 'bad-header'
list 'icmp_type' 'unknown-header-type'
option 'limit' '1000/sec'
option 'family' 'ipv6'
option 'target' 'ACCEPT'
config 'include'
option 'path' '/etc/firewall.user'
config 'rule'
option '_name' 'ssh'
option 'src' 'wan'
option 'target' 'ACCEPT'
option 'proto' 'tcp'
option 'dest_port' '22'
config 'rule'
option '_name' 'www_luci'
option 'src' 'wan'
option 'target' 'ACCEPT'
option 'proto' 'tcp'
option 'dest_port' '80'
config 'rule'
option '_name' 'openvpn'
option 'src' 'wan'
option 'target' 'ACCEPT'
option 'proto' 'udp'
option 'dest_port' '1194'
config 'rule'
option '_name' 'ftp'
option 'src' 'wan'
option 'target' 'ACCEPT'
option 'proto' 'udp'
option 'dest_port' '21'
config 'rule'
option '_name' 'openvpn_lan'
option 'src' 'lan'
option 'target' 'ACCEPT'
option 'proto' 'udp'
option 'dest_port' '1194'
root@Stroza:~$ cat /etc/firewall.user
# This file is interpreted as shell script.
# Put your custom iptables rules here, they will
# be executed with each firewall (re-)start.
iptables -I OUTPUT -o tap+ -j ACCEPT
iptables -I INPUT -i tap+ -j ACCEPT
iptables -I FORWARD -o tap+ -j ACCEPT
iptables -I FORWARD -i tap+ -j ACCEPT
iptables -I OUTPUT -o tun+ -j ACCEPT
iptables -I INPUT -i tun+ -j ACCEPT
iptables -I FORWARD -o tun+ -j ACCEPT
iptables -I FORWARD -i tun+ -j ACCEPT
iptables -I OUTPUT -o tun0 -j ACCEPT
iptables -I INPUT -i tun0 -j ACCEPT
iptables -I FORWARD -o tun0 -j ACCEPT
iptables -I FORWARD -i tun0 -j ACCEPT
root@Stroza:~$ cat /etc/init.d/routing
#!/bin/sh /etc/rc.common
# routing potrzebny do komunikacji pomiedzy hostami w VPN
START=99
start() {
sleep 150
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.1.5
}
Efekt jest taki jak na schemacie:

Potrzebuje uzyskać połączenie z każdego hosta w sieci 192.168.1.0 do 192.168.2.0 i odwrotnie
Wydaje Mi się że coś jest nie tak z routingiem, niestety nie mogę dojść dlaczego nie działa. Próbowałem kłaść firewalla na obydwóch urządzeniach, niestety efekt taki sam.
W razie niejasności ze schematem proszę o pytania.
Bardzo proszę o "świeże spojrzenie na problem".