ocserv 搭建支持 Openconnect, Cisco AnyConnect 的网关
一、ocserv
ocserv是一个开源的SSL VPN服务器,它提供了一种安全的远程访问方式,允许用户通过互联网安全地连接到私有网络或内部资源。它的全名是"OpenConnect Server",它使用了OpenConnect协议,这是一种用于建立虚拟专用网络(VPN)连接的开源协议。
以下是一些关于ocserv的重要特点和信息:
SSL/TLS支持:ocserv使用SSL/TLS协议来加密和保护数据传输,确保数据在互联网上的传输是安全的。这使得它成为一个非常安全的VPN解决方案。
多种认证方式:ocserv支持多种认证方式,包括用户名/密码、证书、多因素认证等,使得管理员可以根据需求设置不同的身份验证方式。
跨平台支持:它可以在多种操作系统上运行,包括Linux、Unix、Windows等,因此可以适用于不同的服务器环境。
IPv6支持:ocserv具备IPv6支持,可以适应新一代互联网协议。
分组和权限控制:管理员可以灵活地配置用户组和权限,以便根据需要限制用户对特定资源的访问。
网络分流:它支持网络分流,可以根据用户的配置将流量路由到不同的目标。
易于管理:ocserv提供了管理工具和配置文件,简化了服务器的设置和管理。
ocserv是一个功能强大、安全性高的SSL VPN服务器,适用于组织和个人需要安全地远程访问内部网络资源的情况。管理员可以根据具体需求进行配置,并提供多种认证和权限控制选项。这个开源项目允许用户建立安全的远程连接,以便在互联网上安全地访问私有网络资源。
二、安装配置启动
环境 ubuntu server LTS 20.04
1 打开终端并使用以下命令来安装ocserv ,也可通过编译形式安装,无其他需求直接使用命令形式安装:
sudo apt update
sudo apt install ocserv
2 ca、私钥、公钥 生成
复制到这个目录
server-cert = /etc/ocserv/ssl/certs/公钥.pem server-key = /etc/ocserv/ssl/private/私钥.key
3 配置ocserv 安装完成后,您需要配置ocserv服务器。配置文件通常位于/etc/ocserv/ocserv.conf。可以使用文本编辑器(如nano或vim)编辑此文件:
sudo vim /etc/ocserv/ocserv.conf
一些主要的配置:
auth: 指定身份验证方式,可以是plain(用户名/密码)或cert(证书认证)等。
server-cert: 指定服务器SSL证书的路径。
default-domain: 设置默认的域名。
dns: 指定DNS服务器。
route: 配置路由,将流量路由到目标。
ipv4-network: 指定分配给VPN客户端的IPv4子网。
ipv6-network: 指定分配给VPN客户端的IPv6子网。 完成配置后,保存文件并关闭编辑器 参照以下进行修改
#VPN登录验证方式
#如果有多个验证方式,则必须全部通过验证
# 验证方式,目前先用密码登录
auth = “plain[/etc/ocserv/ocpasswd]”
# 同时连接的客户端数零表示无限制
max-clients = 10
# 限制同一客户端同时登陆数0表示无限制
max-same-clients = 6
# 服务监听的TCP/UDP端口 任意填写
tcp-port = 2000
udp-port = 2000
# 配置你的代理域名 也可不配置
default-domain = vpn3.xxx.co
# 运行ocserv的用户,更合规的区分权限,就是分组
run-as-user = ocserv
run-as-group = ocserv
# 优化网络性能
try-mtu-discovery = true
# 确保服务器正确读取用户证书
cert-user-oid = 2.5.4.3
#于配置证书分组只有在需要为不同的证书颁发者配置不同的策略、权限或路由时,才需要使用cert-group-oid选项来划分用户组。否则,可以忽略这个选项
cert-group-oid = 2.5.4.11
# 服务器证书与密钥, 用于协商对称加密密钥的非对称加密公钥和私钥,两者也称为“密钥对, 虚拟专用连接(VPN)与https类似
# 支持RSA和ECC两种非对称加密算法,证书生成自行查询,
server-cert = /etc/ocserv/ssl/certs/公钥.pem
server-key = /etc/ocserv/ssl/private/私钥.key
#用户根证书 不使用证书验证,默认配置即可
ca-cert = /etc/ocserv/ssl/certs/xxxx.pem
# VPN的地址池 避开你本地网络和需要代理的网络ip范围
ipv4-network = 10.168.20.1
ipv4-netmask = 255.255.255.0
# 客户端连上vpn后使用的dns
dns = 8.8.8.8
dns = 8.8.4.4
# 注释掉所有的route,让服务器成为gateway 所有流量均走vpn
#route = 192.168.1.0/255.255.255.0
# 路由,列出地址的流量将走vpn通道,
route = 192.168.30.1/25
# 启用cisco客户端兼容性支持
cisco-client-compat = true
3 创建用户
创建账户:
sudo ocpasswd -c /etc/ocserv/ocpasswd [user]创建用户到组: sudo ocpasswd -c /etc/ocserv/ocpasswd -g [group] [user]
封锁用户: sudo ocpasswd -c /etc/ocserv/ocpasswd -l [user]
解封用户: sudo ocpasswd -c /etc/ocserv/ocpasswd -u [user]
删除用户: sudo ocpasswd -c /etc/ocserv/ocpasswd -d [user]
删除可以直接用vim 编辑 /etc/ocserv/ocpasswd 手动删除
4 命令启动ocserv
sudo systemctl restart ocserv
三 开启路由转发功能
1 自动调整mtu
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
2 开启转发NET 切换成你自己的网卡
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
3开启 IPv4 转发编辑内核配置文件/etc/sysctl.conf,增加(或由0调整为1)以下参数
net.ipv4.ip_forward = 1
执行命令
sysctl -p
4 端口转发配置
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
iptables -I INPUT -p udp --dport 443 -j ACCEPT
5 配置好后启动 VPN:
ocserv -c /etc/ocserv.conf
确认已经开启:
root@vpn1:/etc/ocserv# netstat -tulpn | grep 443
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 2937/ocserv
tcp6 0 0 :::443 :::* LISTEN 2937/ocserv
udp 0 0 0.0.0.0:443 0.0.0.0:* 2937/ocserv
udp6 0 0 :::443 :::* 2937/ocserv
客户端支持 openconnect, Cisco AnyConnect
推荐本站淘宝优惠价购买喜欢的宝贝:
以下内容需要兑换:本文链接:https://hqyman.cn/post/8646.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~