CentOS安装OpenVPN
准备工作

1、关闭防火墙和SELinux:
关闭防火墙:执行命令systemctl stop firewalld 和systemctl disable firewalld。
关闭SELinux:编辑/etc/selinux/config 文件,将enforcing 改为disabled,然后运行setenforce 0。
2、安装依赖包:
使用yum install y vim wget lrzsz gccc++ openssl openssldevel nettools lzo lzodevel pam pamdevel 命令安装所需的依赖包。
3、下载OpenVPN和EasyRSA:

创建目录并进入:mkdir /tmp/install && cd /tmp/install。
下载OpenVPN:wget https://swupdate.openvpn.org/community/releases/openvpn2.5.6.tar.gz。
下载EasyRSA:wget https://github.com/OpenVPN/easyrsa/releases/download/v3.0.8/EasyRSA3.0.8.tgz。
安装OpenVPN和EasyRSA
1、解压并编译OpenVPN:
解压缩OpenVPN:tar zxvf openvpn2.5.6.tar.gz。

进入目录并编译:cd openvpn2.5.6 && ./configure prefix=/data/openvpn/ && make && make install。
添加环境变量:在/etc/profile.d/ 目录下创建openvpn256.sh 文件并写入PATH=$PATH:/data/openvpn/sbin,然后执行source /etc/profile。
2、安装EasyRSA:
解压缩EasyRSA:tar zxvf EasyRSA3.0.8.tgz。
移动到目标目录:mv EasyRSA3.0.8 /data/EasyRSA。
服务端配置
1、准备CA签发机构环境:
拷贝EasyRSA:cp r /data/EasyRSA /data/openvpn/easyrsaserver。
准备默认变量文件:egrep v "^$|^#" vars.example >vars。
编辑vars文件,设置CA证书有效期为100年,服务器证书有效期为10年。
2、创建CA机构与服务器证书:
初始化PKI目录:./easyrsa initpki。
创建CA机构:./easyrsa buildca nopass。
创建服务端证书:./easyrsa genreq openvpnserver nopass。
3、配置OpenVPN服务:
建立keys文件夹并将证书文件拷贝到该目录。
修改配置文件server.conf,设置虚拟网段、路由转发等参数。
启动OpenVPN服务:openvpn daemon config server.conf。
客户端配置
1、生成客户端证书和密钥:
创建客户端证书申请文件:./easyrsa genreq client nopass。
签名客户端证书:./easyrsa sign client client。
2、配置客户端:
复制模板配置文件client.conf 并进行修改,添加远程主机和加密模式等参数。
打包上传至客户端进行连接。
表格归纳
| 步骤 | 操作 | 说明 |
| 1 | 关闭防火墙和SELinux | 确保系统安全设置不干扰OpenVPN的安装和运行 |
| 2 | 安装依赖包 | 提供必要的软件和工具支持 |
| 3 | 下载OpenVPN和EasyRSA | 获取所需软件包 |
| 4 | 解压并编译OpenVPN | 安装OpenVPN到指定目录 |
| 5 | 安装EasyRSA | 安装证书生成工具 |
| 6 | 准备CA签发机构环境 | 配置证书生成环境 |
| 7 | 创建CA机构与服务器证书 | 生成必要的证书文件 |
| 8 | 配置OpenVPN服务 | 设置虚拟网段、路由转发等 |
| 9 | 生成客户端证书和密钥 | 为客户端提供连接凭证 |
| 10 | 配置客户端 | 修改配置文件以适应具体需求 |
FAQs
1、如何检查OpenVPN是否成功启动?
回答:可以通过命令netstat lntup | grep 1194 查看OpenVPN是否在监听端口1194,如果看到相关进程信息,则表示OpenVPN已成功启动。
2、如何生成新的客户端证书?
回答:首先在服务端执行./easyrsa genreq client nopass 生成客户端证书申请文件,然后使用./easyrsa sign client client 对客户端证书进行签名,最后将生成的客户端证书和私钥文件发送给客户端。
