前言:
此刻朋友们对“nginx访问”大致比较着重,我们都想要学习一些“nginx访问”的相关资讯。那么小编在网摘上汇集了一些对于“nginx访问””的相关文章,希望小伙伴们能喜欢,姐妹们一起来了解一下吧!前言
公司开发了后台系统网站,用于对接各种公司开发的设备;
网站部署在机房,通过防火墙将内网服务器和公网ip进行了映射;
场景一:只允许域名访问网站,不允许通过ip访问
描述:如果你的网站没有配置此类的拦截规则,那么大概率会遭到恶意请求攻击。全球的公网ip是都是暴露在大众下的,每天都有大量的扫描工具在不停的扫描,一旦扫描到你的公网ip,继而进行端口扫描,你的web也就不可避免的暴露出来。
示例:
...server { listen 80; server_name ; if ($host != ';) { return 403; } location / { ... }}...
通过上述配置,只有web端使用 的域名访问才不会被拦截,其余的都会返回403的错误;
杠精抬杠:我通过ip可以反查到对应的域名啊,这样也就可以攻击了;
我:这个配置是拦截了大部分自动扫描的机器人,如果通过反查再进行攻击,就属于人为的定向攻击了,另当别论;出门左转,不送!
场景二:允许多个域名访问网站,不允许通过ip访问
描述:如果有多个域名指向同一个公网ip呢?对,通常我们也会用域名的方式进行功能区分。比如:blog.abcd.com 是博客网站,是公司系统网站......
示例配置:
...server { listen 80; server_name blog.abcd.com; set $flag 0; if ($host = ';) { set $flag 1; } if ($host = 'blog.abcd.com') { set $flag 1; } if ($flag != 1) { return 403; } location / { ... }}...
看懂了不,先设置一个变量flag,初始值为0;如果使用 访问的,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,例如:)。
示例配置:
...server { listen 80; server_name blog.abcd.com; set $flag 0; if ($host = ';) { 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了;
标签: #nginx访问