Notes
  • 简介
  • Linux
    • Ubuntu
      • Ubuntu 20.04 ARM64 修改PAGE_SIZE 64k
    • Samba
      • CentOS7安装Samba
      • 简单案例
      • 审计
      • 相关命令
    • Systemd
    • FPM 打包 nginx rpm 包
    • rpm 打包-从二进制文件进行打包
    • Centos7 重置密码
    • CentOS7搭建kvm并创建虚拟机
    • CentOS7-KVM 嵌套虚拟化
    • CentOS7 KVM GPU 穿透
    • Bonding
    • CentOS7 发送邮件
    • CentOS7 安装 OpenVPN
    • Linux 多线路由策略
    • Webmin 安装
    • NoVNC 安装
    • SRS-RTMP 服务部署
    • CentOS7 安装 MongoDB
    • confluence 安装
    • jira 安装
    • crowd 安装
    • ScriptRunner For Jira
    • ScriptRunner For Confluence
    • Ubuntu VNC
    • Ubuntu18.04-VNC 安装
    • deb 打包
    • iptables
    • debian 保持软件包一致
    • Ubuntu18.04 编译安装 grpc
    • CentOS7 安装 odoo13
    • Pacemaker 入门
    • Firewalld Rich Language
    • PHP Xdebug
    • CentOS7.3 编译安装 Python3.6
    • 葫芦儿打包
    • CentOS7 安装 Tomcat8
    • CentOS7 安装 JDK
    • GuacamoleServer 编译安装
    • FreeBSD7.0安装AMP
    • CentOS7 换源
    • deb下载并离线安装
    • pip下载并离线安装
  • Network
    • 案例一
  • AI
    • 微调Qwen2.5
    • Qwen2.5 VL AWQ量化
    • qwen2.5 填充权重
  • JavaScript
  • Zabbix
    • CentOS7 安装 Zabbix4.0 LTS
    • Zabbix 加密连接
    • Zabbix 主动和被动模式
    • Zabbix 配置邮件报警
    • Zabbix 监控 MySQL
  • 数据库
    • MySQL
      • CentOS7 Install MySQL5.7
      • MySql 主从配置
      • CentOS7 安装 Percona XtraDB Cluster
      • MySql 压力测试-sysbench
      • MariaDB Galera Cluster
      • 备份脚本
    • MongoDB
      • 启用账号密码登录
      • 备份脚本
  • Nginx
    • CentOS7 安装 Nginx
    • Nginx 配置
    • nginx-http-flv-module
    • Nginx-WebDAV
  • Docker
    • CentOS7 安装 Docker
    • Dockerfile
    • DockerSwarm 集群
    • Docker 安装 guacamole
  • Python
    • 虚拟环境
  • Windows
    • Windows 问题集合
    • 迅雷自动安装 Chrome 插件
    • RDP 注册表
    • Rdp File Setting
    • 本地组策略对象(LGPO)工具
    • 禁用应用联网
    • SQL Server 问题处理
    • SQL Server Trigger
    • NSIS 脚本
    • 使用QEMU运行ARM64 CentOS7
    • DOS 脚本
    • Windows 11 设置旧版右键菜单
    • 远程桌面二次验证
  • Apple
    • AppStore 应用开发及上架
    • Apple 打包 Golang WebDav 制作 pkg 安装包
  • Android
    • Android Studio创建具有root权限的虚拟机
    • Android读写挂载system
    • Android安卓CA至系统
  • 证书
    • 证书名称(主题)
    • 证书扩展
    • SSL 自签
    • 免费 https 证书申请
  • 树莓派
    • 树莓派系统烧录及系统打包制作
    • 树莓派基础操作
    • 树莓派安装 NextCloud
    • 树莓派安装 LNMP
    • 树莓派自定义开机界面和登录提示
    • 树莓派安装 HomeAssistant
    • HomeAssistant 配置
    • 树莓派自动挂载 U 盘
    • 树莓派安装 vsftpd
    • vsftpd 配置文件详解
  • ceph
    • ceph-deploy 部署 ceph nautilus 版本
    • ceph dashboard
  • OpenStack
    • OpenStack VM 配置 Virtual IP
    • OpenStack Glance 对接 Ceph RBD 存储
    • OpenStack Cinder Volumes 对接 Ceph RBD 存储
    • OpenStack 集群搭建
    • OpenStack Rocky 单节点部署
    • OpenStack Rocky 集群部署
    • OpenStack CentOS6 镜像制作
    • OpenStack-Ubuntu 镜像制作
    • Openstack-Windows 镜像制作
    • OpenStack-RBD 导入镜像
    • OpenStack-Rocky 灾备
    • rbd-mirror
  • FFmpeg
    • CentOS7 静态编译FFmpeg
    • MacOS10.12静态编译FFmpeg
    • CentOS7 Arm64静态编译FFmpeg
    • 使用NVIDIA显卡
    • 脚本
  • Other
    • 华为一碰传标签制作
    • 常用软件
    • wireguard
由 GitBook 提供支持
在本页
  • 服务端
  • 客户端配置
  1. Linux

CentOS7 安装 OpenVPN

服务端

  • 环境

    操作系统:CentOS 7.6.1810

    OpenVPN:2.4.9

    easy-ras:3.0.7

  • 安装epel源

    yum install -y epel-release
  • 安装软件包

    yum install -y openvpn easy-rsa
  • 开启转发功能

    echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
    sysctl -p
  • 拷贝配置文件

    cp /usr/share/doc/openvpn-2.4.9/sample/sample-config-files/server.conf /etc/openvpn
  • 修改/etc/openvpn/server.conf文件

    # 使用1194端口
    port 1194
    # 使用tcp协议
    proto tcp
    # 使用tun虚拟网卡设备(还有一种是Tap)
    dev tun
    # 指定server端证书路径
    ca ca.crt
    # 指定server端证书路径
    cert server.crt
    # 指定server端密钥路径
    key server.key
    # 定义Diffie hellman文件
    dh dh2048.pem
    # 为了获得SSL/TLS提供的额外安全性,创建一个“HMAC防火墙”来帮助阻止DoS攻击和UDP端口泛滥
    tls-auth ta.key 0
    cipher AES-256-CBC
    # 启用vpn子网
    topology subnet
    # openvpn 网段
    server 10.8.0.0 255.255.255.0
    # 添加openvpn路由
    push "route 10.8.0.0 255.255.0.0"
    # 向客户端推送的DNS信息
    push "dhcp-option DNS 223.5.5.5"
    # 记录虚拟IP地址与客户端的关联记录
    ifconfig-pool-persist ipp.txt
    # 保持VPN会话,每10秒Ping一次,如果在120秒的时间段内没有收到Ping,则假设远程对等机关闭
    keepalive 10 120
    # 开启Lzo数据压缩
    comp-lzo
    # 运行openvpn的用户和组
    user nobody
    group nobody
    # 通过keepalive检测超时后,重新启动VPN,不重新读取keys,保留第一次使用的keys
    persist-key
    # 通过keepalive检测超时后,重新启动VPN,一直保持tun或者tap设备是linkup的.否则网络连接,会先linkdown然后再linkup
    persist-tun
    # 当前连接信息,每分钟重写一次
    status openvpn-status.log
    # 日志记录冗长级别
    verb 3
    # 配置客户端静态IP
    client-config-dir ccd
  • 创建ccd目录

    mkdir /etc/openvpn/ccd
  • 复制easy-rsa脚本

    mkdir -p /etc/openvpn/easy-rsa/
    cp -rf /usr/share/easy-rsa/3.0.7/* /etc/openvpn/easy-rsa
  • 切换/etc/openvpn/easy-rsa目录

    cd /etc/openvpn/easy-rsa
  • 创建服务的证书

    #建立一个空的pki结构,生成一系列的文件和目录
    ./easyrsa init-pki
    #创建ca  密码 和 cn那么需要记住
    ./easyrsa build-ca nopass
    #创建服务端证书  common name 最好不要跟前面的cn那么一样
    ./easyrsa gen-req server nopass
    #签约服务端证书
    ./easyrsa sign server server
    #创建Diffie-Hellman
    ./easyrsa gen-dh
    # 创建ta.key
    openvpn --genkey --secret /etc/openvpn/ta.key
  • 拷贝证书到openvpn配置目录

    cp /etc/openvpn/easy-rsa/pki/dh.pem /etc/openvpn/dh2048.pem
    cp /etc/openvpn/easy-rsa/pki/ca.crt /etc/openvpn/
    cp /etc/openvpn/easy-rsa/pki/issued/server.crt /etc/openvpn/
    cp /etc/openvpn/easy-rsa/pki/private/server.key /etc/openvpn/
  • 启动服务

    systemctl start openvpn@server.service
    systemctl status openvpn@server.service
    systemctl enable openvpn@server.service
  • 配置防火墙

    firewall-cmd --add-port=1194/tcp
    firewall-cmd --permanent --add-port=1194/tcp
    # firewall-cmd --permanent --add-masquerade
    # firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o ens33 -j MASQUERADE
    # firewall-cmd --reload

客户端配置

  • 登录服务端,创建客户端证书

    cd /etc/openvpn/easy-rsa
    # 创建 zhxlp的证书,zhxlp客户端名称,唯一
    ./easyrsa gen-req zhxlp nopass
    # 签约zhxlp证书
    ./easyrsa sign client zhxlp
  • 下载证书拷贝到客户端~目录

    /etc/openvpn/easy-rsa/pki/ca.crt
    /etc/openvpn/easy-rsa/pki/private/zhxlp.key
    /etc/openvpn/easy-rsa/pki/issued/zhxlp.crt
    /etc/openvpn/ta.key
  • 配置客户端固定 IP(可选)

    echo 'ifconfig-push 10.8.0.10 255.255.255.0' > /etc/openvpn/ccd/zhxlp
  • 安装软件包

    yum install -y epel-release
    yum install -y openvpn
  • 拷贝证书到配置目录

    cp ~/ca.crt /etc/openvpn/
    cp ~/zhxlp.key /etc/openvpn/
    cp ~/zhxlp.crt /etc/openvpn/
    cp ~/ta.key /etc/openvpn/
  • 配置客户端配置文件

    cat > /etc/openvpn/client.conf << EOF
    # 使用TLS加密传输
    tls-client
    # 配置证书和密钥路径
    ca ca.crt
    cert zhxlp.crt
    key zhxlp.key
    # 指定协议
    proto tcp
    # 指定服务器地址和端口
    remote 192.168.2.55 1194 tcp-client
    # 虚拟网卡类型
    dev tun
    # vpn子网
    topology subnet
    # 为了获得SSL/TLS提供的额外安全性
    tls-auth ta.key 1
    cipher AES-256-CBC
    # 数据压缩
    comp-lzo
    # 连接状态
    status openvpn-status.log
    pull
    EOF
  • 启动服务

    systemctl start openvpn@client.service
    systemctl status openvpn@client.service
    systemctl enable openvpn@client.service
上一页CentOS7 发送邮件下一页Linux 多线路由策略

最后更新于3年前