HCRM博客

如何在CentOS上安装OpenVPN?

1、准备工作

关闭防火墙和SELinux:确保防火墙和SELinux不会干扰安装过程。

如何在CentOS上安装OpenVPN?-图1
(图片来源网络,侵权删除)

```bash

systemctl stop firewalld

systemctl disable firewalld

sed i 's/enforcing/disabled/' /etc/selinux/config

setenforce 0

```

如何在CentOS上安装OpenVPN?-图2
(图片来源网络,侵权删除)

2、安装依赖包

安装基础工具:确保系统具备必要的工具,如vimwget等。

```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)状态。

分享:
扫描分享到社交APP
上一篇
下一篇