HCRM博客

如何在CentOS系统下安装和配置OpenVPN?

在CentOS上配置OpenVPN涉及多个步骤,包括安装必要的软件包、生成证书、配置服务器和客户端等,以下是详细的配置指南:

一、准备工作

1、更新YUM源

如何在CentOS系统下安装和配置OpenVPN?-图1
(图片来源网络,侵权删除)

为了确保能够获取到最新的软件包,建议将YUM源更新为阿里云的YUM源,执行以下命令:

  • wget O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel7.repo

2、安装依赖的软件包

安装OpenVPN及其依赖项,包括lzo、openssl等:

  • yum install y lzo lzodevel openssl openssldevel pam pamdevel
  • yum install y pkcs11helper pkcs11helperdevel

3、确认软件包已成功安装

  • rpm qa | grep lzo
  • rpm qa | grep openssl

二、安装EasyRSA

1、安装EasyRSA

  • yum install y easyrsa

2、创建证书环境目录并复制文件

如何在CentOS系统下安装和配置OpenVPN?-图2
(图片来源网络,侵权删除)
  • mkdir p /opt/easyrsa
  • cp a /usr/share/easyrsa/3.0.8/* /opt/easyrsa/
  • cp a /usr/share/doc/easyrsa3.0.8/vars.example /opt/easyrsa/vars

3、修改vars配置文件

编辑/opt/easyrsa/vars文件,取消以下配置的注释并设置相应的值:

  • vi /opt/easyrsa/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"

4、初始化PKI目录

  • cd /opt/easyrsa/
  • ./easyrsa initpki

5、创建根证书

  • ./easyrsa buildca

6、创建服务器证书和密钥

  • ./easyrsa genreq server nopass
  • ./easyrsa sign server server

7、创建DiffieHellman文件

如何在CentOS系统下安装和配置OpenVPN?-图3
(图片来源网络,侵权删除)
  • ./easyrsa gendh

8、创建客户端证书和密钥

  • ./easyrsa genreq client nopass
  • ./easyrsa sign client client

三、安装OpenVPN服务端

1、安装OpenVPN

  • yum install y openvpn

2、生成TLS认证密钥

  • openvpn genkey secret /etc/openvpn/ta.key

3、配置server.conf文件

创建或编辑/etc/openvpn/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
  • push "route 10.66.17.0 255.255.255.0"
  • ifconfigpoolpersist ipp.txt
  • keepalive 10 120
  • maxclients 100
  • status openvpnstatus.log
  • log /var/log/openvpn.log
  • verb 3
  • clienttoclient
  • persistkey
  • persisttun
  • tlsauth ta.key 0
  • duplicatecn
  • scriptsecurity 3
  • authuserpassverify /etc/openvpn/check.sh viaenv
  • usernameascommonname

4、配置密码验证脚本和密码本

创建/etc/openvpn/check.sh脚本,用于用户名和密码验证:

  • vi /etc/openvpn/check.sh
  • #!/bin/bash
  • PASSFILE="/etc/openvpn/openvpnpass"
  • LOG_FILE="/var/log/openvpnpassword.log"
  • TIME_STAMP=$(date "+%Y%m%d %T")
  • if [ ! r "$PASSFILE" ]; then
  • echo "$TIME_STAMP: Could not open password file \"$PASSFILE\" for reading." >> $LOG_FILE
  • exit 1
  • fi
  • CORRECT_PASSWORD=$(awk '!/^;/&&!/^#/&&$1=="'${username}'"{print $2;exit}' $PASSFILE)
  • if [ "$CORRECT_PASSWORD" = "" ]; then
  • echo "$TIME_STAMP: User does not exist: username=\"${username}\",password=\"${password}\"." >> $LOG_FILE
  • exit 1
  • fi

创建或编辑密码本文件/etc/openvpn/openvpnpass,格式如下:

  • username password

赋予脚本执行权限:

  • chmod +x /etc/openvpn/check.sh

四、配置防火墙和启动服务

1、设置IP转发

  • vim /etc/sysctl.conf
  • net.ipv4.ip_forward = 1
  • sysctl p

2、配置防火墙规则

  • iptables t nat A POSTROUTING s 10.8.0.0/24 j MASQUERADE
  • service iptables save

3、启动OpenVPN服务

  • systemctl start openvpn@server.service

4、设置开机自启

  • systemctl enable openvpn@server.service

五、配置OpenVPN客户端(Windows示例)

1、下载OpenVPN客户端:从OpenVPN官方网站下载适用于Windows的客户端安装包。

2、安装客户端:按照默认设置完成安装。

3、拷贝证书和配置文件:将服务器生成的证书(ca.crt、client1.crt、client1.key)和ta.key文件拷贝到客户端机器上,创建一个名为client.ovpn的配置文件,内容如下:

  • client
  • dev tun
  • proto udp
  • remote <服务器IP> 1194
  • resolvretry infinite
  • nobind
  • user nobody
  • group nobody
  • persistkey
  • persisttun
  • ca ca.crt
  • cert client1.crt
  • key client1.key
  • remotecerttls server
  • verb 3

4、连接VPN:使用OpenVPN客户端导入client.ovpn配置文件并连接,输入之前配置的用户名和密码进行验证。

六、常见问题及解答(FAQs)

Q1: OpenVPN服务无法启动怎么办?

A1: 检查日志文件/var/log/openvpn.logopenvpnstatus.log,查看错误信息,常见原因包括配置文件错误、端口被占用、防火墙规则未正确设置等,确保所有路径和文件权限正确,并且没有拼写错误。

Q2: 客户端连接后无法访问内网资源怎么办?

A2: 确保在服务器的防火墙中设置了正确的NAT规则,允许客户端访问内网网段,检查客户端的路由表是否正确推送了内网路由,可以在server.conf文件中添加push "route <内网网段>" <子网掩码>来手动推送路由。

Q3: 如何更改OpenVPN的监听端口?

A3: 在server.conf文件中修改port指令的值即可,将port 1194改为port 2200,确保防火墙规则中也相应地更改了端口号。

Q4: 如何限制OpenVPN的最大连接数?

A4: 在server.conf文件中添加或修改maxclients指令的值。maxclients 50表示最多允许50个客户端连接,注意,这个值应该根据你的服务器性能和网络带宽来合理设置。

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

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