利用Openwrt路由部署Openvpn进行两地组网
最近实践了一下利用Openwrt路由部署Openvpn进行两地组网,目标是实现两个局域网互相访问。
配置:
1.Openvpn服务端(内部局域网段172.24.1.0/24):
首先/etc/config/network配置加一个interface:
config interface 'vpn1'
option proto 'none'
option ifname 'tun1'
/etc/config/openvpn文件增加内容:
config openvpn 'tun_router'
option port '3377'
option proto 'tcp'
option dev 'tun1'
option ca '/etc/openvpn/ca.crt'
option cert '/etc/openvpn/server.crt'
option key '/etc/openvpn/server.key'
option dh '/etc/openvpn/dh2048.pem'
option server '10.0.1.0 255.255.255.0'
option client_config_dir '/etc/openvpn/ccd'
option ccd_exclusive '1'
option ifconfig_pool_persist '/tmp/ipp3.txt'
option client_to_client '1'
option keepalive '10 120'
option compress 'lzo'
option persist_key '1'
option persist_tun '1'
option status '/tmp/openvpn-status3.log'
option verb '3'
option enabled '1'
option topology 'subnet'
list push 'route 172.24.1.0 255.255.255.0'
list route '172.24.8.0 255.255.255.0'
/etc/openvpn/ccd文件夹内增加一个文件,文件名为客户端证书的common name,例如tbjj,内容为:
ifconfig-push "10.0.1.6 255.255.255.0"
iroute 172.24.8.0 255.255.255.0
然后在防火墙自定义规则里面添加:
iptables -I INPUT 1 -p tcp --dport 3377 -j ACCEPT
iptables -I INPUT 1 -p udp --dport 3377 -j ACCEPT
iptables -A FORWARD -i tun1 -s 10.0.1.0/24 -d 172.24.1.0/24 -j ACCEPT
iptables -A FORWARD -i tun1 -s 172.24.8.0/24 -d 172.24.1.0/24 -j ACCEPT
iptables -I INPUT -i tun1 -s 172.24.8.0/24 -j ACCEPT
iptables -A FORWARD -o tun1 -s 172.24.1.0/24 -j ACCEPT
2.Openvpn客户端(内部局域网段172.24.8.0/24):
首先/etc/config/network配置加一个interface:
config interface 'vpn1'
option proto 'none'
option ifname 'tun1'
/etc/config/openvpn文件增加内容:
config openvpn 'vpn_client'
option client '1'
option dev 'tun1'
option proto 'tcp'
list remote '远端地址 3377'
option remote_cert_tls 'server'
option remote_random '1'
option resolv_retry 'infinite'
option persist_key '1'
option persist_tun '1'
option ca '/etc/openvpn/ca.crt'
option cert '/etc/openvpn/tbjj.crt'
option key '/etc/openvpn/tbjj.key'
option compress 'lzo'
option verb '3'
option enabled '1'
option nobind '1'
option auth_nocache '1'
然后防火墙自定义规则添加:
iptables -I INPUT 1 -p tcp --dport 1195 -j ACCEPT
iptables -I INPUT 1 -p udp --dport 1195 -j ACCEPT
iptables -A FORWARD -i tun1 -s 172.24.1.0/24 -d 172.24.8.0/24 -j ACCEPT
iptables -I INPUT -i tun1 -s 172.24.1.0/24 -j ACCEPT
iptables -A FORWARD -i tun1 -s 10.0.1.0/24 -d 172.24.8.0/24 -j ACCEPT
iptables -A FORWARD -o tun1 -s 172.24.8.0/24 -j ACCEPT
3.最后重启两个路由,2个局域网就可以互相访问了。
参考资料:
1.http://blog.ltns.info/linux/connect_two_home_networks_using_openvpn_and_openwrt/