centos7.2 部署openvpn
时间: 2023-10-10 22:09:26 浏览: 225
1. 安装OpenVPN
首先,安装OpenVPN及其依赖包:
```
yum install -y epel-release
yum install -y openvpn easy-rsa
```
2. 生成证书
创建一个目录用于存储证书:
```
mkdir /etc/openvpn/easy-rsa
cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/
```
编辑文件 `/etc/openvpn/easy-rsa/vars`,修改以下变量:
```
export KEY_COUNTRY="CN"
export KEY_PROVINCE="Beijing"
export KEY_CITY="Beijing"
export KEY_ORG="My Company"
export KEY_EMAIL="admin@example.com"
export KEY_OU="My Unit"
```
切换到 `/etc/openvpn/easy-rsa/` 目录,执行以下命令:
```
./easyrsa init-pki
./easyrsa build-ca
./easyrsa gen-dh
./easyrsa gen-req server nopass
./easyrsa sign-req server server
./easyrsa gen-req client nopass
./easyrsa sign-req client client
```
以上命令中,第一行初始化PKI(public key infrastructure)目录,第二行生成CA(Certificate Authority)证书,第三行生成DH(Diffie-Hellman)参数,第四行生成服务器证书请求,第五行签署服务器证书请求,第六行生成客户端证书请求,第七行签署客户端证书请求。
3. 配置OpenVPN
创建配置文件 `/etc/openvpn/server.conf`,并添加以下内容:
```
port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key
dh /etc/openvpn/easy-rsa/pki/dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
```
以上配置文件中,`port` 指定OpenVPN监听的端口号,`proto` 指定使用的协议(UDP或TCP),`dev` 指定使用的虚拟网络设备,`ca`、`cert`、`key`、`dh` 分别指定证书和私钥文件的路径,`server` 指定虚拟IP地址池,`ifconfig-pool-persist` 指定分配的IP地址和客户端名称的持久化存储文件,`push` 指令用于将服务端配置推送给客户端,`keepalive` 指定心跳包的时间间隔和重试次数,`cipher` 指定加密算法,`user`、`group` 指定OpenVPN进程的运行用户和组,`persist-key`、`persist-tun` 分别指定持久化存储密钥和虚拟网络设备,`status` 指定状态日志文件,`verb` 指定日志输出级别。
4. 启动OpenVPN
启动OpenVPN服务:
```
systemctl start openvpn@server
```
查看服务状态:
```
systemctl status openvpn@server
```
如果服务正常运行,可以通过以下命令查看OpenVPN服务器的IP地址:
```
ip addr show tun0
```
5. 客户端配置
在客户端电脑上安装OpenVPN客户端,下载证书和配置文件:
```
scp root@<server_ip>:/etc/openvpn/easy-rsa/pki/ca.crt <destination_folder>
scp root@<server_ip>:/etc/openvpn/easy-rsa/pki/issued/client.crt <destination_folder>
scp root@<server_ip>:/etc/openvpn/easy-rsa/pki/private/client.key <destination_folder>
scp root@<server_ip>:/etc/openvpn/client.ovpn <destination_folder>
```
编辑文件 `client.ovpn`,将以下内容替换为实际值:
```
remote <server_ip> 1194
proto udp
dev tun
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
cipher AES-256-CBC
```
将 `ca.crt`、`client.crt` 和 `client.key` 移动到OpenVPN客户端的配置目录,例如 `/etc/openvpn/client/`。
启动OpenVPN客户端:
```
openvpn --config /etc/openvpn/client/client.ovpn
```
如果连接成功,可以通过以下命令查看客户端的IP地址:
```
ip addr show tun0
```
阅读全文