网站首页 > 技术教程 正文
前言
公司开发了后台系统网站,用于对接各种公司开发的设备;
网站部署在机房,通过防火墙将内网服务器和公网ip进行了映射;
场景一:只允许域名访问网站,不允许通过ip访问
描述:如果你的网站没有配置此类的拦截规则,那么大概率会遭到恶意请求攻击。全球的公网ip是都是暴露在大众下的,每天都有大量的扫描工具在不停的扫描,一旦扫描到你的公网ip,继而进行端口扫描,你的web也就不可避免的暴露出来。
示例:
...
server {
listen 80;
server_name www.abcd.com;
if ($host != 'www.abcd.com') {
return 403;
}
location / {
...
}
}
...
通过上述配置,只有web端使用 www.abcd.com 的域名访问才不会被拦截,其余的都会返回403的错误;
杠精抬杠:我通过ip可以反查到对应的域名啊,这样也就可以攻击了;
我:这个配置是拦截了大部分自动扫描的机器人,如果通过反查再进行攻击,就属于人为的定向攻击了,另当别论;出门左转,不送!
场景二:允许多个域名访问网站,不允许通过ip访问
描述:如果有多个域名指向同一个公网ip呢?对,通常我们也会用域名的方式进行功能区分。比如:blog.abcd.com 是博客网站,www.abcd.com是公司系统网站......
示例配置:
...
server {
listen 80;
server_name www.abcd.com blog.abcd.com;
set $flag 0;
if ($host = 'www.poct.cloud') {
set $flag 1;
}
if ($host = 'blog.abcd.com') {
set $flag 1;
}
if ($flag != 1) {
return 403;
}
location / {
...
}
}
...
看懂了不,先设置一个变量flag,初始值为0;如果使用 www.poct.cloud 访问的,flag就会变成1,后面以此类推,最后判断 flag 的值,为0还是为1;如果不是使用www或blog来访问的,flag就还保持默认值,判断flag不为1,则返回403;满足任意条件,则flag为1,则通过。
场景三:多网卡ip,配置拦截和放行规则
在实际环境中刚改完,问题就来了,另一个开发部门的同事找过来,说请求403了。排查、对接发现,他们使用了内网的网卡进行的请求,被我配置的ip访问限制给拦截了;
系统有两个网卡,一个是 192.168.10.10(通过防火墙和公网ip做了映射),一个是 172.10.10.10(另一个部门开发的设备通过vpn来访问的,设备的请求通过vpn到达172.10.10.10,例如:https://172.10.10.10/api/)。
示例配置:
...
server {
listen 80;
server_name www.abcd.com blog.abcd.com;
set $flag 0;
if ($host = 'www.poct.cloud') {
set $flag 1;
}
if ($host = 'blog.abcd.com') {
set $flag 1;
}
if ($host = '172.10.10.10') {
set $flag 1;
}
if ($flag != 1) {
return 403;
}
location / {
...
}
}
...
再加一个flag参数的判断就ok了;
猜你喜欢
- 2024-10-11 妙呀!给旧手机安装个nginx,就可以访问网站了?
- 2024-10-11 nginx报错bind() to 0.0.0.0:80 failed 10013access permissions
- 2024-10-11 Nginx防止浏览器下载文件直接打开
- 2024-10-11 Nginx为什么快到根本停不下来?(为什么使用nginx)
- 2024-10-11 关于Nginx服务器下部署Vue项目,报405。解决方案
- 2024-10-11 nginx禁止用户访问.htaccess(nginx禁止访问文件)
- 2024-09-16 nginx访问控制Access Control的问题
- 2024-09-16 配置Nginx的访问控制(nginx访问权限设置)
- 2024-09-16 nginx防盗链,nginx访问控制,nginx代理
- 2024-09-16 nginx 400 状态码问题探究(nginx报错400)
你 发表评论:
欢迎- 最近发表
-
- Linux新手必看:几种方法帮你查看CPU核心数量
- linux基础命令之lscpu命令(linux中ls命令的用法)
- Linux lscpu 命令使用详解(linux常用ls命令)
- 如何查询 Linux 中 CPU 的数量?这几个命令要知道!
- 在linux上怎么查看cpu信息(linux如何查看cpu信息)
- 查看 CPU 的命令和磁盘 IO 的命令
- 如何在CentOS7上改变网卡名(centos怎么改网卡名字)
- 网工必备Linux网络管理命令(网工必备linux网络管理命令是什么)
- Linux 网络命令知多少(linux 网络 命令)
- Linux通过命令行连接wifi的方式(linux命令行连接无线网)
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)