2017年3月15日星期三

阿里云部署openvpn L2L - C/S架构 (or site to site)

0x00 基于LAN-TO-LAN的阿里云部署C/S架构openvpn

      这次依然使用openvpn的C/S架构,但是实现的是LAN-TO-LAN vpn,实现两边的内网互访。而不是默认的c/s架构,只能由client访问到服务器内网的资源。
环境:
         OpenVPN 2.3.14 x86_64-redhat-linux-gnu
         CentOS release 6.5 (Final)


0x01  点对点VPN

        1.不需要开启iptables
2.添加合适的路由,可以在openvpn的配置文件下去完成
3.需要开启数据包转发功能,在/etc/sysctl.conf下去配置
4.查看路由表的方法:
route -n
netstat -nr
linux增加路由与删除路由
route add -net 172.16.11.0 netmask 255.255.255.0 dev tun0 gw 10.8.0.1
route del -net 172.16.11.0 netmask 255.255.255.0 dev tun0 gw 10.8.0.2
windows添加静态路由
route add 10.8.0.0 mask 255.255.255.0 172.16.11.196

0x02 一些调试与排错技巧

        配置文件快速查看
            grep "^[^#;]" server.conf 
 
        vpn调试工具
            在指定接口下抓限定条件的数据包
            tcpdump -i tun0 -n dst 10.8.1.11
            tcpdump -i tun0 -n src 172.16.11.198
 
         linux下的openvpn客户端
              apt-get install openvpn
              openvpn --config ali.ovpn
              注意:openvpn --config config/ali.ovpn 这样会有问题,不能启动
              只能到指定文件夹下去加载配置文件,才不会出错

        查看证书的命令
               openssl x509 -noout -text -in xxname.crt

        根据证书的common name,里面有五个信息可以看
       Issuer   --  CA的信息
       subject  --  项目或者用户的信息
       signature Algorithm  -- 签名算法
       Validity   --  证书有效期
       Public-Key Length  -- 公钥长度
主要根据subject的common name,即CN

0x03 完成两边网络互访的关键配置项

       首先我把server.conf里面的注释内容翻译了一下
# 分配指定的ip地址给指定的客户端
# 或者连接的客户端后面有私有子网也需要有VPN访问
# 使用子目录名“ccd”为指定客户端添加配置文件
# (详细内容请看man page)

# 举例: (CN: Common Name)
# 假设客户端证书的CN是“Thelonious”
# 有一个小型子网在他连接VPN的电脑后面
# 比如 192.168.40.128/255.255.255.248.
# 首先,把下面两行注释掉
;client-config-dir ccd
;route 172.16.11.0 255.255.255.0
# 然后创建一个ccd/Thelonious的文件,写入一行:
#   iroute 192.168.40.128 255.255.255.248
# 这将允许Thelonious后面的私有子网去访问VPN
# 这个例子将只会工作在路由模式而不是桥接模式
# [i.e.] 也就是,你使用的是 “dev tun” 与 “server” 指令

# 举例:
# 假设你想给Thelonious一个固定的VPN IP地址:10.9.0.1
# 首先,把下面两行注释掉
;client-config-dir ccd
;route 10.9.0.0 255.255.255.252
# 然后把下面内容加入 ccd/Thelonious
#   ifconfig-push 10.9.0.1 10.9.0.2
注意文件的命名必须严格按照证书里面CN来命名

没有评论:

发表评论