CentOS7使用Ocser一键搭建CiscoAnyconnect服务器

32次阅读

共计 2606 个字符,预计需要花费 7 分钟才能阅读完成。

作者: 黄高明
日期: 2019-06-14
类别: vpn 系列
标题: CentOS7 使用 Ocserv 搭建 CiscoAnyconnect 服务器

介绍

AnyConnect 作为 Cisco 专有技术,其服务端只能运行在 Cisco 设备上,即如果没有购买 Cisco 相关设备,将无法使用 AnyConnect 服务端。而 OpenConnect(ocserv)的出现解决了这一个问题,OpenConnect 是一个开源项目,其目标是在相对廉价的 linux 设备上运行与 AnyConnect 协议兼容的服务端,以此来使用该协议而不需要购买 Cisco 专有设备。
AnyConnect 目前支持 Windows 7+ / Android / IOS / Mac,其他设备没有客户端所以无法使用,例如 XP 系统。

OpenConnect 特点:

  • 我们需要的是安全内网访问,不是快速地绕过防火墙… 而且后期需要加入证书认证
  • OpenVPN 协议特征过于明显,虽然 AnyConnect 协议特征也十分明显,但是由于目前只有一些大厂在用,一般而言直接拨位与海外的 VPN 网关不容易受到干扰或受到的干扰较小
  • 对于例如 iOS/BlackBerry BBOS 系统而言,一般自带 AnyConnect 连接工具
  • 多系统支持,Windows 7+ / Android / IOS / Mac

部署

请撮:https://www.pvcreate.com/index.php/archives/193/

配置

主配置文件
/etc/ocserv/ocserv.conf

注意以上一键部署脚本会自动添加 route 配置,如果你想连接上 anyconnect 之后,全部流量都走 vpn 的话,请注释该配置文件以 route 开头的配置。如果只有部分网段走 vpn 的话,可以自行配置。比如连接上 vpn 之后,只有访问公司 192.168.0.0/25 网段才走 vpn,可以在该配置文件之后添加
route=192.168.0.0/255.255.255.0

auth = "plain[passwd=/etc/ocserv/ocpasswd]"
tcp-port = 443
udp-port = 443
run-as-user = ocserv
run-as-group = ocserv
socket-file = ocserv.sock
chroot-dir = /var/lib/ocserv
isolate-workers = true
max-clients = 1024
max-same-clients = 10
keepalive = 32400
dpd = 90
mobile-dpd = 1800
switch-to-tcp-timeout = 25
try-mtu-discovery = false
server-cert = /etc/pki/ocserv/public/server.crt
server-key = /etc/pki/ocserv/private/server.key
tls-priorities = "NORMAL:%SERVER_PRECEDENCE:%COMPAT:-VERS-SSL3.0"
auth-timeout = 240
min-reauth-time = 300
max-ban-score = 50
ban-reset-time = 300
cookie-timeout = 86400
deny-roaming = false
rekey-time = 172800
rekey-method = ssl
use-occtl = true
pid-file = /var/run/ocserv.pid
device = vpns
predictable-ips = true
ipv4-network = 192.168.8.0/21
dns = 8.8.8.8
dns = 8.8.4.4
ping-leases = false
cisco-client-compat = true
dtls-legacy = true

参数解释

# 选择喜欢的登录方式,如果想使用证书登录的话应该把 auth="certificate" 前的井号删掉并在下面这行的前面加上井号。第 5 点会提到
auth = "plain[/etc/ocserv/ocpasswd]"

# 允许同时连接的总客户端数量,比如下面的 4 就是最多只能 4 台设备同时使用
max-clients = 4

#不同用户用同一个用户名可以同时登录,下面限制的是多少同名用户可以同时使用。改成 0 就是不作限制
max-same-clients = 2

# ocserv 监听的 IP 地址,千万别动动了就爆炸
#listen-host = [IP|HOSTNAME]

# 服务监听的 TCP/UDP 端口,如果没有搭网站的话就用 TCP443/UDP80 好了
tcp-port = 443
udp-port = 80

# 开启以后可以增强 VPN 性能
try-mtu-discovery = true

# 让服务器读取用户证书(后面会用到用户证书)cert-user-oid = 2.5.4.3

# 服务器证书与密钥
server-cert = /etc/ssl/selfsigned/server-cert.pem
server-key = /etc/ssl/selfsigned/server-key.pem

# 服务器所使用的 dns,我们使用 Google 提供的 DNS
dns = 8.8.8.8
dns = 8.8.4.4

#把 route = * 全注释掉就是了
#route = 192.168.1.0/255.255.255.0

# 使 ocserv 兼容 AnyConnect
cisco-client-compat = tru

用户配置 /etc/ocserv/ocpasswd

user:*:$5$AUmpA0nrORBa4M1K$sfEvgp70uiunAD9QHaUm.lgKid9lgYCYumsO0OKsB0C

命令

创建用户
ocpasswd -c /etc/ocserv/ocpasswd user

删除用户
ocpasswd -c /etc/ocserv/ocpasswd -d user

启动服务
service ocserv start

关闭服务器
service ocserv stop

重启服务
service ocserv restart

添加开机启动项
chkconf ocserv on

相关文章

序号 标题
1 通过脚本一键安装 ocserv(anyconnect 服务端)
2 CentOS7 使用 Ocser 搭建 CiscoAnyconnect 服务器(配置使用)
3 通过脚本一键安装 openvpn
4 OpenVPN 同时监听 TCP 和 UDP 端口
5 CentOS 7 安装配置 PPTP

正文完
 0