https://www.jarods.org/419.html
需要打开firewalld或iptables做转发
yum -y install epel-release
然后就可以直接YUM安装Ocserv了:
yum -y install ocserv
新建一个目录,用来存放SSL证书相关文件,然后进入到这个目录内:
mkdir ssl
cd ssl
新建一个证书模板:
vim ca.tmpl
cn = "Lingxi"
organization = "Lingxi.IM"
serial = 1
expiration_days = 9999
ca
signing_key
cert_signing_key
crl_signing_key
注:Lingxi和Lingxi.IM可以根据自己的需要更改,反正都是自签证书
然后生成私钥和CA证书:
certtool --generate-privkey --outfile ca-key.pem
certtool --generate-self-signed --load-privkey ca-key.pem --template ca.tmpl --outfile ca-cert.pem
接着来生成服务器证书,还是老样子新建一个证书模板:
vim server.tmpl
cn = "192.168.2.20"
organization = "Lingxi.IM"
expiration_days = 9999
signing_key
encryption_key
tls_www_server
注:cn后面的值改成你的服务器公网IP。
然后生成私钥和证书:
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
然后我们把证书文件用移动到Ocserv默认的目录下:
cp server-cert.pem /etc/pki/ocserv/public/
cp server-key.pem /etc/pki/ocserv/private/
cp ca-cert.pem /etc/pki/ocserv/cacerts/
现在编辑ocserv的配置文件(需要改动的地方很多,如果vi不好用就自己用SFTP把这个文件下载到本地用专业的编辑器编辑):
vim /etc/ocserv/ocserv.conf
1、auth也就是验证方式要改为:
auth = “plain[passwd=/etc/ocserv/ocpasswd]”
2、默认的监听端口为443,如果你的服务器上跑着HTTPS的WEB站点,那么443端口肯定是被占用了的,所以如果有需求的话,可以更改下面的值:
TCP and UDP port number
tcp-port = 8443
udp-port = 8443
3、Anyconnect有一个设置连接欢迎信息的功能,也就是你在连接的时候会弹出一个提示框,提示框的内容就可以自行设置,如有需要可以更改下面的值:
A banner to be displayed on clients
banner = “Welcome LALA.IM”
4、Anyconnect可以限制最大允许连接的设备数量,如有需要可以更改下面这两个值:
max-clients = 16
max-same-clients = 2
5、更改服务器证书以及私钥的路径为我们刚才移动的路径:
server-cert = /etc/pki/ocserv/public/server-cert.pem
server-key = /etc/pki/ocserv/private/server-key.pem
6、更改CA证书的路径为我们刚才移动的路径:
ca-cert = /etc/pki/ocserv/cacerts/ca-cert.pem
7、取消如下几个参数的注释(去掉#号就是去掉注释):
ipv4-network = 172.35.1.0
ipv4-netmask = 255.255.255.0
An alternative way of specifying the network:
ipv4-network = 172.35.1.0/24
8、去掉如下参数的注释以及设置DNS服务器地址:
tunnel-all-dns = true
dns = 100.100.2.136
dns = 100.100.2.138
route = 192.168.1.0/24
route = 192.168.10.0/24
route = 192.168.2.0/24
route = 192.168.7.0/24
route = 192.168.0.0/24
route = 192.168.6.0/24
route = 192.168.100.0/24
现在来创建一个VPN用户:
ocpasswd -c /etc/ocserv/ocpasswd lala
删除指定的用户:
ocpasswd -c /etc/ocserv/ocpasswd -d lala
现在我们开启机器的IPV4转发功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
然后启动CentOS7的Firewalld防火墙:
systemctl start firewalld.service
放行Anyconnect的端口(我这里之前设置的是默认的443端口,如果你修改了端口,那么这里也要对应):
firewall-cmd --permanent --zone=public --add-port=8443/tcp
firewall-cmd --permanent --zone=public --add-port=8443/udp
firewall-cmd --zone=public --add-port=1723/tcp --permanent
设置转发:
firewall-cmd --permanent --add-masquerade
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -o eth0 -j MASQUERADE
注:eth0是你的公网网卡名字,每个机器的名字可能都不一样,自己用ifconfig命令查一下就行了。
重加载,让新的配置生效:
firewall-cmd --reload
现在就可以尝试运行一下Ocserv了:
ocserv -f -d 1
如果一切正常,回显的内容大致如下图所示:
确定正常后按键盘组合键Ctrl+C退出运行,现在我们就可以直接用systemctl来管理Ocserv的进程。
设置Ocserv开机启动:
systemctl enable ocserv
启动Ocserv:
systemctl start ocserv
cat /etc/sysconfig/iptables
Generated by iptables-save v1.4.21 on Fri Jan 8 21:50:10 2021
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [4:3118]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.199.0/24 -o eth0 -j MASQUERADE
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -s 192.168.101.0/24 -j MASQUERADE
COMMIT
Completed on Fri Jan 8 21:50:10 2021
Generated by iptables-save v1.4.21 on Fri Jan 8 21:50:10 2021
*filter
:INPUT ACCEPT [151:14300]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [105:26867]
COMMIT
Completed on Fri Jan 8 21:50:10 2021