Linux 加入小组

5个成员 20个话题 创建时间:2018-03-18

CentOS安装部署OpenVPN

发表于2018-03-18 1055次查看
  1. 安装 openssl 依赖
    yum -y install openssl openssl-devel
  2. 安装 lzo 依赖
    yum -y install lzo
  3. 安装 openvpn 以及加密工具
    yum -y install openvpn easy-rsa
  4. 拷贝证书密钥生成工具
    cp -r /usr/share/easy-rsa/ /etc/openvpn/
  5. 修改vars证书信息
    cd /etc/openvpn/easy-rsa/2.*/ && vim vars
    将证书内容修改为以下信息(用户根据自己的信息填写)
    export KEY_COUNTRY="CN"
    export KEY_PROVINCE="BeiJing"
    export KEY_CITY="TongZhou"
    export KEY_ORG="IOI6"
    export KEY_EMAIL="vpn@ioi6.com"
    export KEY_OU="IOI6"

    KEY_COUNTRY:标明国家简介编码

    KEY_PROVINCE:标明所在国家省份

    KEY_CITY:标明所在国家城市

    KEY_ORG:标明组织

    KEY_EMAIL:标明邮箱信息

    KEY_OU:标明单位信息(于KEY_ORG相同)

  6. 检查加密信息配置
    cd /etc/openvpn/easy-rsa/2.*/ && vim vars
    查看以下信息的准确性,如果不准确,请修改
    export KEY_SIZE=2048
    export CA_EXPIRE=3650
    export KEY_EXPIRE=3650
    export KEY_NAME="EasyRSA"
  7. 初始化环境
    cd /etc/openvpn/easy-rsa/2.*/ && rm -rf keys && source vars
    NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keys
    出现以上NOTE, 可以忽略
  8. 清除keys目录下所有与证书相关的文件
    ./clean-all
  9. 生成根(ca)证书
    cd /etc/openvpn/easy-rsa/2.*/ && ./build-ca
  10. 生成服务端证书及密钥
    cd /etc/openvpn/easy-rsa/2.*/ && ./build-key-server server
    一直回车,出现两次输入 y/n 时,输入 y 回车即可
  11. 创建迪菲·赫尔曼密钥,会生成dh2048.pem文件(生成过程比较慢,在此期间不要去中断它)
    cd /etc/openvpn/easy-rsa/2.*/ && ./build-dh
  12. 生成 ta (防DDos攻击、UDP淹没等恶意攻击)
    openvpn --genkey --secret /etc/openvpn/easy-rsa/2.*/keys/ta.key
    至此,所有生成的证书和密钥均位于/etc/openvpn/easy-rsa/2.*/keys
  13. 配置服务端 server.conf
    vim /etc/openvpn/server.conf
    在文件中输入以下内容:
    # 如果主机是阿里云的 ECS,需要绑定ECS的外网地址 (使用ifconfig查看eth1网卡对应的IP)
    local 阿里云ECS外网IP
     
    # VPN 监听的端口
    port 443
     
    # VPN 使用的协议, client和server必需一致
    proto udp
    dev tap
     
    # VPN认证相关文件
    ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
    cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
    key /etc/openvpn/easy-rsa/2.0/keys/server.key
    dh /etc/openvpn/easy-rsa/2.0/keys/dh2048.pem
     
    # VPN 地址(即连接VPN产生的IP地址)
    server 10.8.0.0 255.255.255.0
     
    ifconfig-pool-persist /data/openvpn/ip/ipp.txt
     
    # 重要:在阿里云中为保证连接VPN后可以正常访问 10.12.1.* 网段的机器需要将该网段推送到客户端去
    push "route 10.12.1.0 255.255.255.0"
     
    client-to-client
    duplicate-cn
    keepalive 10 120
    tls-auth /etc/openvpn/easy-rsa/2.0/keys/ta.key 0
    comp-lzo
    persist-key
    persist-tun
     
    # VPN日志文件
    status /data/openvpn/log/openvpn-status.log
    log-append /data/openvpn/log/openvpn.log
     
    verb 5
  14. 创建相应的文件夹
    mkdir -p /data/openvpn/ip /data/openvpn/log
  15. 启动OpenVPN服务
    systemctl start openvpn@server
  16. 开启路由转发并使其生效
    sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf && sysctl -p
  17. 配置防火墙
    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 10.162.xxx.xxx
    service iptables save

    10.8.0.0: 地址为 server.conf 配置文件中的地址

    10.162.xxx.xxx是阿里ECS的内网地址(ifconfig eth0) 

  18. 重启OpenVPN服务
    systemctl restart openvpn@server
  19. 生成客户端证书
    每一个登陆的VPN客户端需要有一个证书,每个证书在同一时刻只能供一个客户端连接。
    cd /etc/openvpn/easy-rsa/2.*/ && ./build-key shicheng

    shicheng: 客户端文件名称,随意填写。

    将服务端生成的以下文件

    ca.crt                 服务器认证文件

    shicheng.crt     客户端生成的文件

    shicheng.key    客户端生成的文件

    ta.key                 防止ddos攻击生成文件

    拷贝到需要连接vpn的机器上

  20. 配置客户端编写 shicheng.ovpn (*.vopn随便填写)
    client
     
    # 此处必须要和服务端一致,否则无法连接
    proto udp
    dev tap
     
    # 远程OpenVPN服务器地址及端口,以空格隔开
    remote x.x.x.x xxx
     
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
     
    # 以下几个文件为服务器拷贝下来的文件,需和客户端配置文件在同一目录,如果不在同一目录请写绝对文件路径
    ca ca.crt
    cert shicheng.crt
    key shicheng.key
    tls-auth ta.key 1
     
    ns-cert-type server
    comp-lzo
    verb 5
    将文件保存为 *.vopn 文件即可
发表回复
你还没有登录,请先 登录或 注册!
话题作者
大数据资深研发工程师

新加组员

热门小组