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
对客户端证书进行签名,最后将生成的客户端证书和私钥文件发送给客户端。