当前位置:   article > 正文

ubuntu openpn, aws, iptable 配置网络

openpn

需求:

一个路由器, 一台ubuntu机器, 若干其它电脑,手机,通过ubuntu代理整个网络, 需要外部有一个服务器,这里使用亚马逊的aws。

整体网络图:

1:首先配置ubuntu:

/etc/network/interfaces  

配置eth0, 作为内网网关


auto eth0

iface eth0 inet static

address 192.168.10.1

netmask 255.255.255.0

2:配置inner路由:
连接inner路由的wan口, 配置静态路由 192.168.10.2, 网关192.168.10.1
3:设置ubuntu 开启ipv4 的报文转发 直接修改内核参数
echo 1 > /proc/sys/net/ipv4/ip_forward
或者 使用sysctl
4:设置对192.168.10.0/24 网段的nat转化
iptables -t nat -s 192.168.10.0/24  -A POSTROUTING -j MASQUERADE
iptable 命令参考下面的pdf
5: 这时候 内网可以通过ubuntu 来访问外网,但是不能, 接下来配置openpn
6:aws 上的openVpn 服务器段配置参考 下面
   在openvpn 的doc目录, 有 sample_keys 可以暂时拿来使用~ 将ca.crt, client.crt client.key 拷贝的本地,这些key的权限一般都需要设置成chmod 400
   同样设置aws 的 ip_forward = 1,
   设置aws的 iptables 的nat 转发机制, ptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 1.2.3.4 #1.2.3.4为你的vps IP
7:配置ubuntu服务器上的openvps 客户端
   拿到 ca.crt, client.crt, client.key 这些文件, 同时 安装了openpn之后, 将 /usr/share/doc/openvpn/client.config 拷贝到/etc/openvpn
   作为客户端的配置 , 配置一下其中的remote 设置为aws的 域名
   可以添加 log openvpn.log, 记录一下日志
   同时把上面三个 证书文件 放到 /etc/openvpn 下面
   重启openvpn 服务,这时候 成功的话可以看到 ifconfig tun0 端口
8:设置路由将来自内网192.168.10.1 的报文 全部经由 tun0 端口发出
解决方案参考
iproute 支持多个路由表,可以设定特定的报文使用特定的路由表
vim /etc/iproute2/rt_tables

增加一个路由表

这里是内网的路由的IP

设定  ip rule add from 192.168.4.2 table tableB 报文按照tableB

向tableB 增加路由

下面的 via 是 tun0 设备的的ip


ip route add default via 192.168.99.5 dev tun0 table tableB
 
ok
 

9:配置完成, 内网可以通过 vpn 连接facebook了~



遇见诡异问题:

删除openvpn 增加的0.0.0.0/1路由

重新启动计算机

ip route flush cache 清理 路由缓存

ip route show cache | grep 192.168.10.  查看内网的路由情况

http://blog.chinaunix.net/uid-1838361-id-66515.html

内网设备的DNS 问题:

如果内网设备使用另外设置的DNS解析而不是 通过OpenVPN进行解析,就会出错,需要设置默认DNS 为 内网网关



src: 192.168.99.6

via: 192.168.99.5 dev tun0

192.168.99.1

转载于:https://my.oschina.net/u/186074/blog/95680

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/567256
推荐阅读
相关标签
  

闽ICP备14008679号