在 CentOS 7 上搭建 Cisco AnyConnect ocserv

这篇具有很好参考价值的文章主要介绍了在 CentOS 7 上搭建 Cisco AnyConnect ocserv。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

@

目录
    • 1. 安装 ocserv (OpenConnect server)
    • 2.生成证书
      • 1) 创建工作文件夹
      • 2) 生成 CA 证书
      • 3) 生成本地服务器证书
      • 4) 生成客户端证书(不生成)
    • 3. 配置 ocserv
    • 4.创建用户
    • 5.配置系统设置
      • 1) 开启内核转发
      • 2) 配置iptables规则(不需要配置)
      • 3) 放行端口(必须配置)
    • 6.测试
  • Tips:

1. 安装 ocserv (OpenConnect server)

ocserv 是一个 OpenConnect SSL VPN 协议服务端,0.3.0 版后兼容使用 AnyConnect SSL VPN 协议的终端。
官方主页:http://www.infradead.org/ocserv/

ocserv 已经在 epel 仓库中提供了,所以可以直接通过 yum 安装

yum install epel-release
yum install ocserv

2.生成证书

阅读官方文档

1) 创建工作文件夹

mkdir /opt/anyconnect
cd /opt/anyconnect/

2) 生成 CA 证书

certtool --generate-privkey --outfile ca-key.pem
cat >ca.tmpl <<EOF
cn = "VPN CA"
organization = "Big Corp"
serial = 1
expiration_days = 3650
ca
signing_key
cert_signing_key
crl_signing_key
EOF
certtool --generate-self-signed --load-privkey ca-key.pem \
--template ca.tmpl --outfile ca-cert.pem

把生成的 ca-cert.pem 放到 /etc/ocserv/

cp ca-key.pem /etc/ocserv/

3) 生成本地服务器证书

certtool --generate-privkey --outfile server-key.pem
cat >server.tmpl <<EOF
cn = "VPN server"
organization = "MyCompany"
serial = 2
expiration_days = 3650
encryption_key
signing_key
tls_www_server
EOF
certtool --generate-certificate --load-privkey server-key.pem \
--load-ca-certificate ca-cert.pem --load-ca-privkey ca-key.pem \
--template server.tmpl --outfile server-cert.pem

把生成的 server-cert.pemserver-key.pem 放到 /etc/ocserv/

cp server-cert.pem server-key.pem /etc/ocserv/

4) 生成客户端证书(不生成)


3. 配置 ocserv

vim /etc/ocserv/ocserv.conf

# 使用密码登录注释掉
#auth = "pam"
auth = "plain[/etc/ocserv/ocpasswd]"

# 端口 TCP and UDP port number
tcp-port = 443
udp-port = 443

# 证书地址
server-cert = /etc/ocserv/server-cert.pem
server-key = /etc/ocserv/server-key.pem

# 取消注释设置客户端IP段
ipv4-network = 192.168.111.0
ipv4-netmask = 255.255.255.0

# 取消注释设置客户端DNS
dns = 114.114.114.114


# 必须配置一个自己连接的VPN服务器IP段,允许访问下面的网段
route = 192.168.0.0/255.255.0.0

4.创建用户

#username为你要添加的用户名
ocpasswd -c /etc/ocserv/ocpasswd username

5.配置系统设置

1) 开启内核转发

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

sysctl -p

2) 配置iptables规则(不需要配置)

# 对指定的表 table 进行操作,添加一个规则,把192.168.111.0的流量指定到ens36出去
iptables -t nat -A POSTROUTING -s 192.168.111.0 -o ens36 -j MASQUERADE

iptables -A FORWARD -i vpns+ -j ACCEPT
iptables -A FORWARD -o vpns+ -j ACCEPT

# 保存路由表
iptables-save > /etc/sysconfig/iptables

3) 放行端口(必须配置)

firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=443/udp
firewall-cmd --add-masquerade --permanent #必须配置,重要
firewall-cmd --reload

6.测试

现在我们可以开启服务器试试了

ocserv -c /etc/ocserv/ocserv.conf -f -d 10

如果没有问题,那么就可以配置成开机运行了

systemctl enable ocserv
systemctl start ocserv

Tips:

注意:一定要配置route=VPN自己的IP段,否则连接VPN后无法访问VPN服务器文章来源地址https://www.toymoban.com/news/detail-711045.html

#ocserv支持多种认证方式,这是自带的密码认证,使用ocpasswd创建密码文件
#ocserv还支持证书认证,可以通过Pluggable Authentication Modules (PAM)使用radius等认证方式
auth = "plain[passwd=/etc/ocserv/ocpasswd]"
#指定替代的登录方式,这里使用证书登录作为第二种登录方式
enable-auth = "certificate"
#证书路径
server-cert = /etc/ocserv/server-cert.pem
server-key = /etc/ocserv/server-key.pem
#ca路径
ca-cert = /etc/ocserv/ca-cert.pem
#从证书中提取用户名的方式,这里提取的是证书中的 CN 字段作为用户名
cert-user-oid = 2.5.4.3
#最大用户数量
max-clients = 16
#同一个用户最多同时登陆数
max-same-clients = 10
#tcp和udp端口
tcp-port = 4433
udp-port = 4433
#运行用户和组
run-as-user = ocserv
run-as-group = ocserv
#虚拟设备名称
device = vpns
#分配给VPN客户端的IP段
ipv4-network = 10.12.0.0
ipv4-netmask = 255.255.255.0
#DNS
dns = 8.8.8.8
dns = 8.8.4.4



#注释掉全部route的字段,这样表示所有流量都通过 VPN 发送
#route = 192.168.1.0/255.255.255.0
#route = 192.168.5.0/255.255.255.0

#只允许访问下面的网段
route = 192.168.0.0/255.255.0.0
route = 172.16.0.0/255.255.0.0
route = 120.79.158.102/255.255.255.255
route = 120.79.166.14/255.255.255.255
# 采用账号密码方式认证
auth = "plain[passwd=/etc/ocserv/ocpasswd]"

# 设置服务器监听端口,默认的是443端口,但是会和https冲突,
# 可以设置成任意不冲突的端口
tcp-port = 4433
udp-port = 4433

# 程序以哪个用户和组运行
run-as-user = ocserv
run-as-group = ocserv

# socket文件
socket-file = /var/run/ocserv.sock

# 默认证书配置
server-cert = /etc/pki/ocserv/public/server.crt
server-key = /etc/pki/ocserv/private/server.key

# 开启lz4压缩
compression = true

# 隔离工作,默认不动
isolate-workers = true

# 最大客户端数量,0表示无限数量
max-clients = 16

# 同一用户可以同时登陆的客户端数量
max-same-clients = 5

# 默认不动
rate-limit-ms = 100
# 服务器统计重置时间,不动
server-stats-reset-time = 604800

# 保持连接,每隔多少秒向客户端发送连接数据包,防止断线。
# IOS系统5分钟会关闭后台数据通讯,然后就会断线。
# 因此将keepalive和mobile-dpd设置成200秒
keepalive = 200
dpd = 90
mobile-dpd = 200

# udp端口无传输25秒后转成tcp端口
switch-to-tcp-timeout = 25

# 启用MTU转发以优化性能
try-mtu-discovery = true

# 空闲断开时间,如果想无限期连接,注释这两行
# idle-timeout=1200
# mobile-idle-timeout=2400

# 仅使用TLS1.2以上版本
cert-user-oid = 0.9.2342.19200300.100.1.1
tls-priorities = "NORMAL:%SERVER_PRECEDENCE:%COMPAT:-RSA:-VERS-SSL3.0:-ARCFOUR-128:-VERS-TLS1.0:-VERS-TLS1.1"

# 认证超时时间
auth-timeout = 240
# 最小重新认证时间
min-reauth-time = 300
max-ban-score = 80
ban-reset-time = 1200
cookie-timeout = 324000
deny-roaming = false
rekey-time = 172800
rekey-method = ssl
use-occtl = true
pid-file = /var/run/ocserv.pid
device = vpns
predictable-ips = true

# 默认域名,修改为你的域名或ip地址,这个设置没有任何作用
default-domain = xxx.com:4433

# 配置自定义私有IP地址范围,注释默认的两行
#ipv4-network = 192.168.1.0
#ipv4-netmask = 255.255.255.0
ipv4-network = 10.70.25.0
ipv4-netmask = 255.255.255.0

# 以VPN隧道传输所有DNS查询
tunnel-all-dns = true

# 更改DNS服务器(国内服务器就填写国内dns)
dns = 8.8.8.8
dns = 1.1.1.1

# 允许思科客户端连接
cisco-client-compat = true

# 以下路由表不通过VPN隧道,直接本地网络连接
# 一定要添加自己服务器的ip地址,否则连上VPN后打不开自己的网站
no-route = x.x.x.x / 255.255.255.255

到了这里,关于在 CentOS 7 上搭建 Cisco AnyConnect ocserv的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • centos下安装ftp-读取目录列表失败-

    默认路径:   /var/ftp/pub anonymous : Filezilla 传输设置要选“主动”,否则会出现 状态: 读取目录列表… 命令: PWD 响应: 257 “/” is your current location 命令: TYPE I 响应: 200 TYPE is now 8-bit binary 命令: PASV 响应: 227 Entering Passive Mode (140,143,228,107,154,6) 命令: MLSD 错误: 20 秒后无活动,连接

    2024年02月15日
    浏览(42)
  • centos 9 安装mysql 到系统指定目录

    在CentOS 9上安装MySQL并将其安装到系统指定目录的步骤如下: 首先,确认已经正确配置了CentOS 9的网络连接。 打开终端并使用root用户登录。 添加MySQL Yum存储库。执行以下命令: 安装MySQL服务器和客户端软件包。执行以下命令: 启动MySQL服务。执行以下命令: 运行MySQL安全性脚

    2024年04月22日
    浏览(26)
  • Centos7安装编译ffmpeg到指定目录

    1、官网下载tar包 2、解压usr/local目录 3、编译准备 4、安装设置 5、编译安装 6、修改文件/etc/ld.so.conf 输入  ldconfig  使修改生效 7、查看ffmpeg版本 8、配置系统变量 打开配置文件 vi /etc/profile 在export PATH之后添加: 1、下载静态安装包  John Van Sickle - FFmpeg Static Builds 安装到:/u

    2024年02月12日
    浏览(59)
  • CentOS系统环境搭建(十五)——CentOS安装Kibana

    centos系统环境搭建专栏🔗点击跳转 关于Elasticsearch的安装请看CentOS系统环境搭建(十二)——CentOS7安装Elasticsearch。 🔗https://www.elastic.co/downloads/past-releases/kibana-7-17-6 若你是centos64位服务器,下载LINUX X86_64,下载后上传到linux服务器。 上传至/usr/local/ 进入/usr/local/ 执行解压 编

    2024年02月12日
    浏览(33)
  • CentOS系统环境搭建(七)——Centos7安装MySQL

    centos系统环境搭建专栏🔗点击跳转 坦诚地说,本文中百分之九十的内容都来自于该文章🔗Linux:CentOS7安装MySQL8(详),十分佩服大佬文章结构合理,文笔清晰,我曾经在这篇文章指导下成功安装mysql。今天,想把内容搬运写到此博客,方便查看。 1.1、卸载 MariaDB 1.1.1、Mari

    2024年02月12日
    浏览(55)
  • CentOS系统环境搭建(四)——Centos7安装Java

    centos系统环境搭建专栏🔗点击跳转

    2024年02月12日
    浏览(52)
  • CentOS系统环境搭建(十三)——CentOS7安装nvm

    centos系统环境搭建专栏🔗点击跳转 在我们的日常开发中经常会遇到这种情况:手上有好几个项目,每个项目的需求不同,进而不同项目必须依赖不同版的 NodeJS 运行环境。如果没有一个合适的工具,这个问题将非常棘手。由此nvm应运而生。nvm是一个node管理工具。使用 nvm No

    2024年02月12日
    浏览(42)
  • CentOS系统环境搭建(五)——Centos7安装maven

    centos系统环境搭建专栏🔗点击跳转 maven下载官网 压缩包放置到/usr/local 在最下面追加 重载环境变量 进入 /usr/local/apache-maven-3.9.2/conf/ 设置setting文件(不再赘述)。

    2024年02月12日
    浏览(57)
  • CentOS系统环境搭建(十二)——CentOS7安装Elasticsearch

    centos系统环境搭建专栏🔗点击跳转 🔗https://www.elastic.co/downloads/past-releases/elasticsearch-7-17-6 若你是centos64位服务器,下载LINUX X86_64,下载后上传到linux服务器。 上传至/usr/local/ 进入/usr/local/ 执行解压 若你电脑性能强劲,这个应该可以不改。 修改为1g内存占用。 在当前版本,已

    2024年02月12日
    浏览(50)
  • CentOS系统环境搭建(十九)——CentOS7安装chat GPT

    centos系统环境搭建专栏🔗点击跳转 基于上一篇文章CentOS系统环境搭建(十八)——CentOS7安装Docker20.10.12和docker compose v2,你已经安装了docker20以上的版本。那么,安装chatGPT只需要两步。 拉取镜像 运行容器 让 gpt 解释一下这句指令: 这是一个使用Docker运行一个名为\\\"yidadaa/ch

    2024年02月09日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包