安装 ocserv
yum -y install epel-release yum -y install ocserv yum install iptables-services
2. 准备证书
可以自签不过推荐申请免费证书
自签证书:
$ vi ca.tmpl cn = "AnyConnect" organization = "Pool" serial = 1 expiration_days = 3650 ca signing_key cert_signing_key crl_signing_key $ certtool --generate-privkey --outfile ca-key.pem $ certtool --generate-self-signed --load-privkey ca-key.pem --template ca.tmpl --outfile ca-cert.pem
生成服务器证书,cn 必须填自己服务器的 IP 或域名
$ vi server.tmpl cn = "Your IP or Doname" organization = "Host" expiration_days = 3650 signing_key encryption_key tls_www_server $ certtool --generate-privkey --outfile server-key.pem $ 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
复制证书到对应目录
cp server-cert.pem /etc/pki/ocserv/public/server-cert.pem cp server-key.pem /etc/pki/ocserv/private/server-key.pem
3. 配置ocserv
$vi /etc/ocserv/ocserv.conf 修改一下值 auth = "plain[passwd=/etc/ocserv/ocserv.passwd,otp=/etc/ocserv/ocserv.otp]" tcp-port = 443 #可以自定义 udp-port = 443 #可以自定义 max-clients = 16 server-cert = /etc/pki/ocserv/public/server.pem server-key = /etc/pki/ocserv/private/server.key default-domain = 404sec.com ipv4-network = 10.10.78.0/24 dns = 8.8.8.8 dns = 114.114.114.114 cisco-client-compat = true route = default
在/etc/pam.d/ocserv 添加
auth requisite pam_oath.so debug usersfile=/etc/ocserv/ocserv.otp window=20
添加用户
1、常规密码登录用户添加
$ ocpasswd 404sec -c /etc/ocserv/ocserv.passwd 然后输入两次密码
2、OTP账户设置
$ echo "HOTP 404sec - $(head -c 16 /dev/urandom |xxd -c 256 -ps)" >>/etc/ocserv/ocserv.otp
查看 /etc/ocserv/ocserv.otp中的KEY粽子
您可以使用以下命令打印“404sec”的前5个密码
$ oathtool -w 5 KEY 生产5个
生产base32 密钥
$ echo 0xKEY| xxd -r -c 256 | base32
如果提示 base32: command not found 表示当前版本的coreutils里面没有BASE32 ,更新coreutils请看这里
二维码连接拼接
otpauth://hotp/404sec@404sec.com?secret=BASE32KEY&issuer=COMPANY&counter=1
设置iptables
修改系统配置,允许转发
$ vi /etc/sysctl.conf net.ipv4.ip_forward = 1 $ sysctl -p
设置转发与访问权限
iptables -t nat -A POSTROUTING -s 10.10.78.0/24 -o eth0 -j MASQUERADE iptables -D FORWARD -s 10.10.78.0/24 -j ACCEPT iptables-A INPUT-p tcp-m state--state NEW--dport 443-j ACCEPT iptables-A INPUT-p tcp-m state--state NEW--dport 443-j ACCEPT
启动OCSERV
ocserv -f -d 1