HCRM博客

如何在 CentOS 上搭建 VPN 服务器?

在CentOS上搭建VPN服务器是一个涉及多个步骤的过程,包括安装必要的软件、配置网络设置以及生成和管理证书等,以下是一个详细的指南,用于在CentOS系统上搭建OpenVPN服务器:

#### 一、准备工作

如何在 CentOS 上搭建 VPN 服务器?-图1
(图片来源网络,侵权删除)

1. **更新系统**:确保你的CentOS系统是最新的,打开终端并运行以下命令来更新所有已安装的软件包和依赖项:

```bash

sudo dnf update y

```

2. **安装EPEL存储库**:OpenVPN和EasyRSA在默认的CentOS存储库中不可用,因此需要安装EPEL存储库,运行以下命令来安装它:

```bash

如何在 CentOS 上搭建 VPN 服务器?-图2
(图片来源网络,侵权删除)

sudo dnf install epelrelease y

```

3. **安装OpenVPN和EasyRSA**:安装OpenVPN和EasyRSA(一种PKI管理工具):

```bash

sudo dnf install openvpn easyrsa y

```

4. **创建EasyRSA目录**:为EasyRSA创建一个新目录,并创建从/usr/share/easyrsa到该目录的符号链接:

```bash

mkdir ~/easyrsa

ln s /usr/share/easyrsa/3/* ~/easyrsa/

```

5. **设置目录权限**:确保目录的所有者是你的非root用户,并限制对该用户的访问:

```bash

sudo chown sammy:sammy ~/easyrsa

chmod 700 ~/easyrsa

```

#### 二、配置PKI

1. **编辑vars文件**:使用你喜欢的文本编辑器(如nano)编辑vars文件,以设置私钥和证书请求的参数:

```bash

cd ~/easyrsa

sudo nano vars

```

在文件中添加以下行:

```plaintext

set_var EASYRSA_ALGO "ec"

set_var EASYRSA_DIGEST "sha512"

```

保存并关闭文件。

2. **初始化PKI目录**:运行以下命令来初始化PKI目录:

```bash

./easyrsa initpki

```

3. **生成服务器私钥和证书签名请求(CSR)**:运行以下命令来生成服务器的私钥和CSR:

```bash

./easyrsa buildca

```

按照提示输入CA信息,完成后,运行以下命令来生成服务器的私钥和CSR:

```bash

./easyrsa genreq server nopass

```

4. **签署服务器证书**:使用CA签署服务器证书:

```bash

./easyrsa signreq server server

```

5. **生成DiffieHellman参数**:运行以下命令来生成DH参数:

```bash

openvpn genkey secret ta.key

```

6. **构建CRL**:运行以下命令来生成证书吊销列表(CRL):

```bash

./easyrsa gencrl

```

#### 三、配置OpenVPN服务器

1. **复制证书和密钥到OpenVPN目录**:将生成的证书和密钥复制到OpenVPN的适当目录中:

```bash

sudo cp pki/ca.crt pki/issued/server.crt pki/private/server.key pki/dh.pem /etc/openvpn/

```

2. **配置OpenVPN服务器**:编辑OpenVPN的主配置文件`/etc/openvpn/server.conf`,根据需要进行调整,一个基本的示例配置如下:

```plaintext

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

cipher AES256CBC

user nobody

group nobody

persistkey

persisttun

status openvpnstatus.log

verb 3

```

请根据你的网络环境和需求调整这些设置,你可以更改端口号(默认为1194)、协议(UDP或TCP)以及加密算法等。

3. **启动OpenVPN服务**:运行以下命令来启动OpenVPN服务:

```bash

sudo systemctl start openvpn@server

```

为了确保OpenVPN在系统重启时自动启动,可以运行以下命令:

```bash

sudo systemctl enaBLe openvpn@server

```

#### 四、客户端配置

要让客户端连接到你的OpenVPN服务器,你需要将服务器的证书和密钥复制到客户端机器上,并配置客户端配置文件,以下是一个简单的客户端配置文件示例:

```plaintext

client

dev tun

proto udp

remote your_server_ip 1194

resolvretry infinite

nobind

persistkey

persisttun

remotecerttls server

cipher AES256CBC

verb 3

BEGIN CERTIFICATE

...(在这里粘贴你的CA证书)...

END CERTIFICATE

BEGIN CERTIFICATE

...(在这里粘贴你的客户端证书)...

END CERTIFICATE

BEGIN PRIVATE KEY

...(在这里粘贴你的客户端私钥)...

END PRIVATE KEY

BEGIN OpenVPN Static key V1

...(在这里粘贴你的TLS密钥)...

END OpenVPN Static key V1

```

将此配置文件保存为`client.ovpn`,并将其放在客户端机器上的某个位置,你可以使用OpenVPN客户端软件连接到服务器,在Windows上,你可以双击`client.ovpn`文件来启动连接;在Linux上,你可以使用以下命令:

```bash

sudo openvpn config client.ovpn

```

#### 五、常见问题与解答

Q1: 如果无法连接到VPN服务器怎么办?

A1: 确保服务器的防火墙允许OpenVPN流量(默认端口1194),你可能需要运行以下命令来允许流量:

```bash

sudo firewallcmd permanent addservice=openvpn

sudo firewallcmd reload

```

检查服务器日志(通常位于`/var/log/openvpn.log`或`/var/log/messages`)以获取有关连接问题的更多信息。

Q2: 如果客户端无法验证服务器证书怎么办?

A2: 确保你已正确复制服务器证书和CA证书到客户端配置文件中,检查服务器证书是否已过期或被吊销,如果问题仍然存在,尝试重新生成服务器证书和CA证书。

Q3: 如果遇到性能问题怎么办?

A3: OpenVPN使用加密来保护数据传输,这可能会对性能产生一定影响,如果你遇到性能问题,可以尝试更改加密算法(例如从AES256CBC改为AES128CBC)或调整其他配置参数以优化性能,降低加密强度可能会增加安全风险。

Q4: 如果需要远程访问内部网络资源怎么办?

A4: OpenVPN允许你通过VPN隧道安全地访问内部网络资源,确保你的内部网络路由设置正确,以便VPN客户端可以通过VPN隧道访问所需的资源,你可能需要在服务器上配置路由规则来实现这一点,你可以使用`iptables`来添加路由规则:

```bash

sudo iptables t nat A POSTROUTING s 10.8.0.0/8 o eth0 j MASQUERADE

sudo iptables A FORWARD m state state RELATED,ESTABLISHED j ACCEPT

sudo iptables A FORWARD s 10.8.0.0/8 d your_internal_network/24 j ACCEPT

```

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/8979.html

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