Nginx 访问控制

 

目录

1. 传输层禁止访问

 2. 应用层访问控制


访问控制有两个方式,一种是在OSI模型的四层传输层,一种是在第七层应用层。

主机防火墙就是在四层传输控制,nginx就是在七层应用控制。

1. 传输层禁止访问

在进行访问控制前,先开启防火墙

systemctl start firewalld.service

比如我先查看我的虚拟机系统连接了那些  ip 地址

Nginx 访问控制_第1张图片

可以看到192.168.164.1,这是NAT模式的网卡的网关,也就是们的物理机其实是使用的VMnet8 虚拟网卡的ip地址进行连接的,如果我通过防火墙将这个ip地址给封了,那么再建立新的ssh连接应该就连不上这个虚拟机了。

 直接在终端执行下面的命令行进行访问禁止

firewall-cmd --add-rich-rule='rule family=ipv4 source address="192.168.164.1" drop'

 连接看效果

ssh 连接不上

Nginx 访问控制_第2张图片

 之前部署的网站也访问不了

Nginx 访问控制_第3张图片

 这是因为我在传输层直接把 ip 禁止了,想要恢复访问的话就关闭防火墙

systemctl stop firewalld.service

 或者释放出来

firewall-cmd --remove-rich-rule='rule family=ipv4 source address="192.168.164.1" drop'

 2. 应用层访问控制

在进行访问控制前,先将防火墙关闭

systemctl stop firewalld.service

allow 允许;加入白名单,允许访问

deny 拒绝;拉黑的,加入黑名单,被禁止访问

 比如我在我的 a.fly.com 网站进行访问控制,就直接在 server 配置文件中加入 allow、deny

deny 192.168.164.1; # 黑名单,不允许192.168.61.1访问这个网站
allow 0.0.0.0/0; # 白名单,0.0.0.0/0表示所有ip都在白名单

 Nginx 访问控制_第4张图片

Nginx 访问控制_第5张图片

 然后进行访问查看效果,控制成功

Nginx 访问控制_第6张图片

 可以查看日志,

cat /var/log/nginx/error.log

七层禁止、没有首页html文件、文件没有读取权限,比如nginx访问某些文件,用的nginx用户身份,如果某个网站的文件,nginx用户没有读取权限,那么也是403

你可能感兴趣的:(Ngnix,nginx,网络,服务器)