1、准备工作
关闭防火墙和SELinux:确保防火墙和SELinux不会干扰安装过程。
```bash
systemctl stop firewalld
systemctl disable firewalld
sed i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
```
2、安装依赖包
安装基础工具:确保系统具备必要的工具,如vim
、wget
等。
```bash
yum install y vim wget lrzsz gccc++ openssl openssldevel nettools lzo lzodevel pam pamdevel
```
下载并安装OpenVPN和EasyRSA:从官方源下载最新版本的OpenVPN和EasyRSA。
```bash
mkdir /tmp/install
cd /tmp/install
wget HTTPS://swupdate.openvpn.org/community/releases/openvpn2.5.6.tar.gz
wget https://github.com/OpenVPN/easyrsa/releases/download/v3.0.8/EasyRSA3.0.8.tgz
tar zxvf openvpn2.5.6.tar.gz
tar zxvf EasyRSA3.0.8.tgz
```
编译并安装OpenVPN:解压后进入目录进行编译和安装。
```bash
cd openvpn2.5.6
./configure prefix=/data/openvpn/
make && make install
echo e "PATH=\$PATH:/data/openvpn/sbin" > /etc/profile.d/openvpn256.sh
source /etc/profile
```
3、配置证书生成环境
初始化EasyRSA:将EasyRSA复制到OpenVPN目录下,并初始化PKI目录。
```bash
cp r EasyRSA3.0.8 /data/openvpn/easyrsaserver
cd /data/openvpn/easyrsaserver
cp /usr/share/doc/easyrsa/3.0.8/vars.example vars
vim vars # 编辑vars文件,设置相关参数,
set_var EASYRSA_DN "cn_only"
set_var EASYRSA_REQ_COUNTRY "CN"
set_var EASYRSA_REQ_PROVINCE "GuangDong"
set_var EASYRSA_REQ_CITY "GuangZhou"
set_var EASYRSA_REQ_ORG "IT"
set_var EASYRSA_REQ_EMAIL "IT@qq.com"
set_var EASYRSA_NS_SUPPORT "yes"
./easyrsa initpki
```
创建CA和服务器证书:生成CA证书和服务器证书,用于服务端身份验证。
```bash
./easyrsa buildca nopass
./easyrsa genreq openvpnserver nopass
./easyrsa signreq server openvpnserver
```
生成DiffieHellman密钥:用于密钥交换。
```bash
./easyrsa gendh
```
4、配置OpenVPN服务端
生成TLS认证密钥:用于增强安全性。
```bash
openvpn genkey secret /etc/openvpn/ta.key
```
编写配置文件:编辑OpenVPN的配置文件server.conf
。
```bash
vim /data/openvpn/sampleconfigfiles/server.conf
# 基本配置示例:
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
server 10.8.0.0 255.255.255.0
ifconfigpoolpersist ipp.txt
keepalive 10 120
maxclients 100
user nobody
group nobody
persistkey
persisttun
status openvpnstatus.log
log /var/log/openvpn.log
verb 3
```
启动OpenVPN服务:启动并设置为开机自启。
```bash
systemctl start openvpn@server
systemctl enable openvpn@server
```
5、配置防火墙和IP转发
放行OpenVPN流量:允许OpenVPN流量通过防火墙。
```bash
firewallcmd permanent addservice openvpn
firewallcmd reload
```
启用IP转发:确保系统支持IP转发,以实现网络通信。
```bash
sysctl w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
```
6、客户端配置
生成客户端证书:为每个客户端生成独特的证书和密钥。
```bash
./easyrsa genreq client1 nopass
./easyrsa signreq client client1
```
编写客户端配置文件:创建client.ovpn
文件,包含连接信息。
```bash
vim /data/openvpn/ccenvconfigfiles/client.ovpn
# 基本配置示例:
client
dev tun
proto udp
remote <server_ip> 1194
resolvretry infinite
nobind
ca ca.crt
cert client1.crt
key client1.key
tlsauth ta.key 1
cipher AES256CBC
complzo
verb 3
```
分发客户端配置文件:将生成的客户端证书和client.ovpn
文件分发给客户端,以便他们能够连接到VPN服务器。
相关问答FAQs
1、为什么需要使用证书和密钥?
证书和密钥的作用:在OpenVPN中,证书和密钥用于身份验证和加密通信,确保数据传输的安全性,服务器和客户端各自持有一对公钥和私钥,通过非对称加密算法进行安全通信,根证书用于签发服务器和客户端证书,确保信任链的完整性。
2、如何检查OpenVPN是否正常运行?
检查方法:可以通过查看OpenVPN的日志文件来确认其运行状态,日志文件通常位于/var/log/openvpn.log
,可以使用命令systemctl status openvpn@server
检查服务状态,如果一切正常,你应该看到服务处于active (running)状态。