#阿里云轻量服务器没有安全组
1、需要打开firewalld 或 iptables 做转发
yum -y install epel-release
报错:No such command: epel-release. Please use /usr/bin/yum --help
(1)进入配置文件内,删除所有的.repo文件(也可以备份)
1、进入配置文件
cd /etc/yum.repos.d/
2、删除旧的配置文件
rm *.repo
输入“y”回车确认
(2)ls 确保该目录下的.repo文件已完全删除
注意必须全部删除,或全部移除备份到别处,否则就算你切换的 yum 源,
也还是会报上面的错
(3)下载可以用的.repo文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
搞定了再:
yum -y install epel-release
成功
2、安装ocserv
yum -y install ocserv
3、 进入etc文件夹查看ssl 列表
cd /etc
ls
如果没有创建新的
mkdir ssl
cd ssl
新建一个证书模板:
vi ca.tmpl
添加按INSERT键添加文本
cn = "cn"
organization = "fu.IM"
serial = 1
expiration_days = 9999
ca
signing_key
cert_signing_key
crl_signing_key
保存退出vi:长按住ESC键 ,输入:wq 回车
注:'cn'和'fu.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.1.21"
organization = "fu.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/
注意:一定要在ssl文件夹下操作
4、编辑ocserv的配置文件
vim /etc/ocserv/ocserv.conf
vim编辑器,显示行标
按insert进入编辑模式,长按住esc 输入:set nu 回车
vim编辑器,查找功能
按insert进入编辑模式,长按住esc 输入:/auth 回车。auth是要查找的内容
vim编辑器,输入错误 操作错误,回退
按insert进入编辑模式,长按住escu :u回车。
4.1 、auth也就是验证方式要改为:
按insert进入编辑模式,长按住esc 输入:/auth = 回车。找到auth
auth = "plain[passwd=/etc/ocserv/ocpasswd]"
4.2、默认的监听端口为443,如果你的服务器上跑着HTTPS的WEB站点,那么443端口肯定是被占用了的,所以如果有需求的话,可以更改下面的值:
按insert进入编辑模式,长按住esc 输入:/tcp-port 回车。auth是要查找的内容
tcp-port = 8443
udp-port = 8443
4.3、Anyconnect有一个设置连接欢迎信息的功能,也就是你在连接的时候会弹出一个提示框,提示框的内容就可以自行设置,如有需要可以更改下面的值:
banner = “Welcome fu.IM”
4.4、Anyconnect可以限制最大允许连接的设备数量,如有需要可以更改下面这两个值:
max-clients = 16
max-same-clients = 2
4.5、更改服务器证书以及私钥的路径为我们刚才移动的路径:
server-cert = /etc/pki/ocserv/public/server-cert.pem
server-key = /etc/pki/ocserv/private/server-key.pem
4.6、更改CA证书的路径为我们刚才移动的路径:
ca-cert = /etc/pki/ocserv/cacerts/ca-cert.pem
4.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
5、现在来创建一个VPN用户:
ocpasswd -c /etc/ocserv/ocpasswd abc123
ps:abc123 是设置的用户名
现在我们开启机器的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 --query-port=80/tcp
#查看永久打开的端口号
firewall-cmd --list-ports --permanent
#查看临时打开的端口号
firewall-cmd --list-ports
# 关闭临时端口
firewall-cmd --remove-port=80/tcp
# 关闭永久端口
firewll-cmd --remove-port=80/tcp --permanent
# 配置结束后需要输入重载命令并重启防火墙以生效配置
firewall-cmd --reload
systemctl restart firewalld
#开机启动防火墙
systemctl enable firewalld
#关闭某个端口
firewall-cmd --zone=public --remove-port=8080/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
报错:note: vhost:default: setting 'plain' as primary authentication method
原因:配置文件错误 这里是 server-cert 和 server-key 地址手动输入错误
显示下面这个玩意 不懂对不对
note: vhost:default: setting 'plain' as primary authentication method
note: setting 'file' as supplemental config option
listening (TCP) on 0.0.0.0:500...
listening (TCP) on [::]:500...
listening (UDP) on 0.0.0.0:500...
listening (UDP) on [::]:500...
ocserv[105274]: sec-mod: reading supplemental config from files
ocserv[105274]: sec-mod: sec-mod initialized (socket: /var/lib/ocserv/ocserv.sock.cc28d10c.0)
确定正常后按键盘组合键Ctrl+C退出运行,
6、现在我们就可以直接用systemctl来管理Ocserv的进程。
设置Ocserv开机启动
systemctl enable ocserv
启动Ocserv:
systemctl start ocserv
cat /etc/sysconfig/iptables
#报错 没有文件
#1、停止并屏蔽firewalld服务:
#停止:
systemctl stop firewalld
#屏蔽:
systemctl mask firewalld
#2、安装iptables-service软件包:
yum install iptables-services
#3、在引导时启用iptables服务:
systemctl enable iptables
#4、启动iptables服务:
systemctl start iptables
#5、保存防火墙规则:
service iptables save