龙空技术网

Linux安装部署OpenVPN

爱学习de小乌龟 1898

前言:

此时大家对“ubuntu创建tap”大概比较关怀,我们都需要分析一些“ubuntu创建tap”的相关资讯。那么小编在网络上网罗了一些有关“ubuntu创建tap””的相关文章,希望姐妹们能喜欢,兄弟们一起来了解一下吧!

本次部署的通过账户与密码进行认证,实现多人登录使用VPN,只需要分发固定的证书和用户名、密码就可以,简单快捷。

一、软件与规划网络

软件版本:

Centos7.6

easy-rsa 3.0.8

OpenVPN 2.4.9

网络环境规划:

VPN客户端地址段:10.98.1.0/24

VPN服务器网卡地址:10.99.1.253

VPN流量出设备NAT为10.99.1.253

二、基础环境配置2.1、关闭SElinux

setenforce 0sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
2.2、开启内核转发
grep -qF "net.ipv4.ip_forward" /etc/sysctl.conf  || echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.confsysctl -p
2.3、关闭Firewall防火墙
systemctl stop firewalldsystemctl disable firewalld
三、服务器安装与部署3.1、软件与环境安装

本文使用yum来安装openvpn,openvpn及其依赖的一些包在epel源上,首先先安装epel源。

yum -y update#更新软件包yum install -y epel-release#安装epel源yum install -y openssl lzo pam openssl-devel lzo-devel pam-develyum install -y easy-rsa#安装依赖包yum install -y openvpn#安装openvpn
3.2、easy-rsa配置证书密钥
cp -rf /usr/share/easy-rsa/3.0.8 /etc/openvpn/server/easy-rsacd /etc/openvpn/server/easy-rsa#复制easy-rsa工具find / -type f -name "vars.example" | xargs -i cp {} . && mv vars.example vars#复制vars.example并重命名vars

配置vars文件,文件也有该内容不过是注释的,可以直接再最后追加如下内容:

cat << EOF >> /etc/openvpn/server/easy-rsa/varsset_var EASYRSA_REQ_COUNTRY     "CN"# 国家set_var EASYRSA_REQ_PROVINCE    "BJ"# 省set_var EASYRSA_REQ_CITY        "BeiJing"# 城市set_var EASYRSA_REQ_ORG         "Lin"# 组织set_var EASYRSA_REQ_EMAIL       "test@xxshell.com"# 邮箱set_var EASYRSA_REQ_OU          "Lin"# 拥有者set_var EASYRSA_KEY_SIZE        2048# 长度set_var EASYRSA_ALGO            rsa# 算法set_var EASYRSA_CA_EXPIRE      36500# CA证书过期时间,单位天set_var EASYRSA_CERT_EXPIRE    36500# 签发证书的有效期是多少天,单位天EOF

生成证书与私钥:

./easyrsa init-pki./easyrsa build-ca nopass#生成CA证书,需要填写组织名称,随便写。./easyrsa build-server-full server nopass./easyrsa gen-dhopenvpn --genkey --secret ta.key
3.3、创建日志存储与用户目录
mkdir -p /var/log/openvpn/# 日志存放目录mkdir -p /etc/openvpn/server/user# 用户管理目录chown -R openvpn:openvpn /var/log/openvpn# 配置权限
3.4、创建用户名密码文件
echo 'vpnuser01 admin123456' >> /etc/openvpn/server/user/psw-file#后续添加用户直接在该文件下添加就可以;chmod 600 /etc/openvpn/server/user/psw-filechown openvpn:openvpn /etc/openvpn/server/user/psw-file
3.5、创建密码检查脚本

创建一个shell文件/etc/openvpn/server/user/checkpsw.sh,内容如下:

#!/bin/shPASSFILE="/etc/openvpn/server/user/psw-file"LOG_FILE="/var/log/openvpn/password.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 1fiCORRECT_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 1fiif [ "${password}" = "${CORRECT_PASSWORD}" ]; then  echo "${TIME_STAMP}: Successful authentication: username=\"${username}\"." >> ${LOG_FILE}  exit 0fiecho "${TIME_STAMP}: Incorrect password: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE}exit 1

赋予密码检查脚本权限:

chmod 700 /etc/openvpn/server/user/checkpsw.shchown openvpn:openvpn /etc/openvpn/server/user/checkpsw.sh
3.7、创建OpenVPN服务器配置文件

编辑/etc/openvpn/server/server.conf文件,并写入以下内容:

(也可以复制一份模板文件进行改写,模板文件路径 /usr/share/doc/openvpn-2.4.9/sample/sample-config-files/server.conf

port 10444proto udpdev tunuser openvpngroup openvpn#配置证书信息ca /etc/openvpn/server/easy-rsa/pki/ca.crtcert /etc/openvpn/server/easy-rsa/pki/issued/server.crtkey /etc/openvpn/server/easy-rsa/pki/private/server.keydh /etc/openvpn/server/easy-rsa/pki/dh.pemtls-auth /etc/openvpn/server/easy-rsa/ta.key 0#配置账号密码的认证方式auth-user-pass-verify /etc/openvpn/server/user/checkpsw.sh via-envscript-security 3verify-client-cert noneusername-as-common-nameclient-to-clientduplicate-cn#配置网络信息server 10.98.1.0 255.255.255.0push "route 10.99.1.0 255.255.255.0"push "route 172.16.0.9 255.255.255.255"compress lzocipher AES-256-CBCkeepalive 10 120persist-keypersist-tunverb 3reneg-sec 0#配置日志存放位置log /var/log/openvpn/server.loglog-append /var/log/openvpn/server.logstatus /var/log/openvpn/status.log

设置server.conf配置文件软链接,因为程序获取的配置文件为:.server.conf

cd /etc/openvpn/server/ln -sf server.conf .service.conf
3.8、设置NAT规则或防火墙规则

需要配置一条NAT的规则,这里我使用的是iptables,下面也有firewalld的示例(网卡eth0名称根据实际修改),如果你VPN互访是通过路由通信则不需要配置NAT规则

iptables:

systemctl stop firewalldsystemctl disable firewalld    #关闭firewalld防火墙yum -y install iptables-servicessystemctl enable iptables.servicesystemctl start iptables.serviceiptables -t nat -A POSTROUTING -s 10.98.1.0/24 -o eth0 -j MASQUERADE #添加NAT规则 iptables-saveiptables-save > /etc/sysconfig/iptables   #保存iptable规则并开机自动加载 [root@Cloud_Pool_OpenVPN ~]# iptables -t nat -nvL #查看nat规则

firewalld(建议使用iptables):

#设置防火墙开机自启动systemctl enable firewalld --nowfirewall-cmd --public --add-masquerade  # 允许防火墙伪装IPfirewall-cmd --public  --add-port=10444/udpfirewall-cmd --public --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.98.1.0/24 -o eth0 -j MASQUERADEfirewall-cmd --reload
3.9、启动服务并设置开机自动启动
rpm -ql openvpn |grep service# 查看service名/usr/lib/systemd/system/openvpn-client@.service/usr/lib/systemd/system/openvpn-server@.service/usr/lib/systemd/system/openvpn@.servicesystemctl start openvpn-server@.service.service# 启动systemctl status openvpn-server@.service.service#检查服务状态systemctl enable openvpn-server@.service.service#设置开机自启
四、Windows客户端配置

因为我们前面配置的是账号密码认证,所以我们只需要下载ca.crt、ta.key文件即可,从server上将生成的ca.crtta.key下载到客户端的配置文件config下。ca.crt在/etc/openvpn/server/easy-rsa/pki/下

在config目录(目录位置:C:\Users\[用户名]\OpenVPN\config\)下新建一个文件 client.ovpn,文件内容如下:

clientproto udpdev tunauth-user-passremote  10444ca ca.crttls-auth ta.key 1remote-cert-tls servercipher AES-256-CBCauth-nocachepersist-tunpersist-keyreneg-sec 0compress lzoverb 3mute 10

配置完成就可以进行连接测试了:

参考文章:

标签: #ubuntu创建tap #ubuntu下编写udp #ubuntu 网卡配置开机自启动 #ubuntu开机启动时间设置时间设置 #ubuntumv