Centos7搭建CiscoAnyConnect

2022-10-04 14:38:44 浏览数 (1)

配置环境

代码语言:javascript复制
yum -y install epel-release #安装EPEL源
yum install ocserv #安装ocserv

配置OpenConnectServer

准备证书

创建证书目录
代码语言:javascript复制
cd ~
mkdir certificates
cd certificates
  • 在此目录下创建一个名为 ca.tmpl 的CA证书模板,写入如下语句:
代码语言:javascript复制
cn = "Aierpf" 
organization = "aierpf.cn" 
serial = 1 
expiration_days = 3650
ca 
signing_key 
cert_signing_key 
crl_signing_key
生成CA密钥
  • 使用certtool --generate-privkey --outfile ca-key.pem
代码语言:javascript复制
certtool --generate-self-signed --load-privkey ca-key.pem --template ca.tmpl --outfile ca-cert.pem
生成服务器证书
  • 这里注意cn项必须对应你服务器的域名或IP,模板名称是 server.tmpl ,内容如下:
代码语言:javascript复制
cn = "Your hostname or IP" 
organization = "aierpf.cn" 
expiration_days = 3650
signing_key 
encryption_key
tls_www_server
生成服务器密钥
  • 使用certtool --generate-privkey --outfile server-key.pem
代码语言:javascript复制
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
移动证书文件:
代码语言:javascript复制
cp ca-cert.pem /etc/ssl/my-ca-cert.pem
cp server-cert.pem /etc/ssl/my-server-cert.pem
cp server-key.pem /etc/ssl/my-server-key.pem

准备配置文件

  • 我们把配置文件放到ocserv默认读取的位置:
代码语言:javascript复制
mkdir /etc/ocserv
cd ~/ocserv-0.10.8
cp doc/sample.config /etc/ocserv/ocserv.conf

> ps:配置文件可以在源码目录找到:

代码语言:javascript复制
wget ftp://ftp.infradead.org/pub/ocserv/ocserv-0.10.8.tar.xz
tar xvf ocserv-0.10.8.tar.xz
cd ocserv-0.10.8

> 配置文件可以参考官方手册来写,不过这里我们重点要确保以下条目正确:

代码语言:javascript复制
# 登陆方式,目前先用密码登录
auth = "plain[/etc/ocserv/ocpasswd]"
# 允许同时连接的客户端数量
max-clients = 4
# 限制同一客户端的并行登陆数量
max-same-clients = 2
# 服务监听的IP(服务器IP,可不设置)
listen-host = 1.2.3.4
#配置客户端获取到的IP地址(自定义)
ipv4-network = 10.8.0.0/24
#添加客户端获取的DNS
dns = 192.168.0.7
# 服务监听的TCP/UDP端口(选择你喜欢的数字)
tcp-port = 9000
udp-port = 9001
# 自动优化VPN的网络性能
try-mtu-discovery = true
# 确保服务器正确读取用户证书(后面会用到用户证书)
cert-user-oid = 2.5.4.3
# 服务器证书与密钥(如果有自己的共有证书,可在此处替换为相应路径)
server-cert = /etc/ssl/private/my-server-cert.pem
server-key = /etc/ssl/private/my-server-key.pem
# 客户端连上vpn后使用的dns
dns = 8.8.8.8
dns = 8.8.4.4
# 注释掉所有的route,让服务器成为gateway
#route = 192.168.1.0/255.255.255.0
# 启用cisco客户端兼容性支持
cisco-client-compat = true
#定义user-profile
user-profile = /etc/ocserv/profile.xml

测试服务和添加用户

代码语言:javascript复制
ocpasswd -c /etc/ocserv/ocpasswd username
#username为你要添加的用户名
systemctl start ocserv

> Debug

代码语言:javascript复制
ocserv -c /etc/ocserv/ocserv.conf -f -d 1

防火墙和路由转发

代码语言:javascript复制
iptables -F
iptables -X
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
iptables-save
service iptables save
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf #添加net.ipv4.ip_forward = 1到/etc/sysctl.conf文件最后一行,如果已存在,修改或者无视
sysctl -p #使修改立即生效

客户端使用

下载客户端

Cisco AnyConnect客户端【Mac、安卓、windows】

遇到的坑

  1. Centos 7.4 版本yum安装ocserv会报错:Processing Dependency: libhttp_parser.so.2 缺少依赖包

> 解决办法: 参考链接

代码语言:javascript复制
wget https://kojipkgs.fedoraproject.org//packages/http-parser/2.7.1/3.el7/x86_64/http-parser-2.7.1-3.el7.x86_64.rpm
rpm -ivh http-parser-2.7.1-3.el7.x86_64.rpm
  • 未完待续。。。

0 人点赞