Vyos OpenVPN (SSL TLS+User Auth) 本地PAM认证 SSLVPN服务器搭建

实现目标

搭建基于OpenVPN (SSL TLS + User Auth)的SSLVPN服务器,支持PAM本地用户认证登录,支持多用户登录。

1、安装环境

  • Vyos 1.3 (debian 10.13)
  • OpenVPN 2.5.1
  • Easyrsa
  • Python3( python-pam )

1.1、证书生成

OpenVPN 证书与配置
cp -r /usr/share/easy-rsa/ /config/my-easy-rsa-config
cd /config/my-easy-rsa-config
mv vars.example vars

echo -e 'set_var EASYRSA_DN      		"org"
set_var EASYRSA_REQ_COUNTRY     "CN"
set_var EASYRSA_REQ_PROVINCE    "GD"
set_var EASYRSA_REQ_CITY        "QY"
set_var EASYRSA_REQ_ORG 		"psales"
set_var EASYRSA_REQ_EMAIL       "sslvpn@psales.org"
set_var EASYRSA_REQ_OU          "sslvpn"
set_var EASYRSA_KEY_SIZE        2048' >> vars

# central 为服务器证书
# branch1 为客户端证书
./easyrsa init-pki

./easyrsa build-ca		                       #输入加密文本文本

./easyrsa gen-req central nopass

./easyrsa sign-req server central		   #输入加密文本文本

./easyrsa gen-dh

./easyrsa build-client-full branch1 nopass

// 把证书、密钥等导入到OpenVPN目录
sudo mkdir /config/auth/openvpn
sudo cp pki/ca.crt /config/auth/openvpn
sudo cp pki/dh.pem  /config/auth/openvpn
sudo cp pki/private/central.key /config/auth/openvpn
sudo cp pki/issued/central.crt  /config/auth/openvpn

// tls-auth 私钥
sudo openvpn --genkey tls-auth /config/auth/openvpn/ta.key

# 回到vyo用户目录
cd /home/vyos

1.2、用户认证脚本

# 给vyos添加 apt 软件源 安装python-pam 模块
sudo chmod 777 /etc/apt/sources.list
sudo echo -e'deb http://deb.debian.org/debian/ buster main
deb-src http://deb.debian.org/debian/ buster m
在 CentOS 7 上搭建 OpenVPN 服务器并配置 DHCP 服务,可以让你的每个连接的客户端自动获取 IP 地址,通常需要以下几个步骤: 1. **安装必备软件**: - 更新系统并安装基本包: ``` sudo yum update -y sudo yum install openvpn dhcp-server ``` 2. **启动 DHCP 服务**: 首先,编辑 `/etc/dhcp/dhcpd.conf` 文件,创建一个新的虚拟网段并设置相关的参数。例如,如果你想要将网络范围设为 `192.168.100.0/24`,添加以下内容: ```conf subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.100 192.168.100.200; // 设置可用的IP范围 option routers <your-router-ip>; // 指定默认路由器 option domain-name-servers <your-dns-servers>; // 指定DNS服务器 } ``` 3. **配置 OpenVPN 服务器**: 在 `/etc/openvpn/server.conf` 或者新建一个文件,比如 `/etc/openvpn/ip_list.txt`,列出每个客户端的用户名(也可以是IP地址),并对应一个静态IP地址。比如: ``` client-config-dir /path/to/client/configs user nobody group nogroup push "dhcp-option DNS <your-dns-servers>" push "dhcp-option routers <your-router-ip>" # 如果使用ip_list.txt address <client-username>:<static-ip> ``` 然后通过 `push` 命令把这些配置推送给每个连接的客户端。 4. **启动 OpenVPN 和 DHCP 服务**: ``` sudo systemctl start openvpn@server-instance-name.service sudo systemctl enable openvpn@server-instance-name.service sudo systemctl start dhcpd sudo systemctl enable dhcpd ``` 5. **客户端连接与验证**: 客户端需要下载 OpenVPN 的配置文件,并使用相应的用户名和密码进行连接。 **注意**: - 请替换上述命令中的 `<your-router-ip>`、`<your-dns-servers>` 和具体的 IP 范围等信息为实际值。 - 这是一个基本示例,实际部署时还需要考虑安全性和性能优化,如防火墙规则、认证策略以及日志管理等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值