【服务器搭建】服务器临时授权

news/2024/11/14 13:52:51/文章来源:https://www.cnblogs.com/o-O-oO/p/18299493

#蜜罐 #钓鱼网站

场景

服务器上的业务并不想对所有人开放,只有当对方提供IP信息后才单独对相应的IP进行授权。

像这种小范围的IP授权,如果能获取到对方IP,则可以通过提前写防火墙策略,限制IP访问范围。但如果IP是动态的,比如对方的IP是互联网IP,这时就只能先等对方报自己的IP,再写放行策略。

针对这种场景,有一种特殊的端口放行机制,比如提供三个端口,要求访问者必须按指定顺序进行访问,顺序对了,真实的业务端口才会放行。一旦顺序错误则访问者的IP会被封,有点像玩探宝游戏。

这种应对策略太程序员化了,一般用户很难接受,给用户解释起来也费劲。这里使用另一种思路,提供一个登录页面,当登录成功时则放行访问者IP。

页面效果如下:

看起来是不是像钓鱼网站?这个东西的确可以当蜜罐或钓鱼网站使用,登录成功时会放行IP,登录失败时则会记录访问者的IP、账户和密码,用于反入侵日志分析。

项目地址为:

https://github.com/hyang0/ip_allow

实现原理

windows 平台使用 netsh 命令,动态添加防火墙策略。Linux 使用 ipset 和 iptables 实现IP准入。前端页面提供用户名密码的验证,后端通过操作防火墙实现放行。

使用步骤

默认使用 80 端口作为服务端口,可以在 app.py 中修改服务端口

if __name__ == '__main__':app.run(debug=False, host='0.0.0.0', port=80)

日志

用户的所有访问日志都存于 ./logs/app.log 中,其中登录成功的日志会单独存于 ./logs/allow.log 中,
登录失败的日志会存于 ./logs/deny.log 中。日志中存储了访问者的 IP|username|password , 可用于蜜罐、 钓鱼、 反入侵等事后分析。

默认密码

系统的默认用户密码为:

# 用户demo数据,请换成自己的用户数据源users = {"admin": "nzDrdSKN9JS5IGhZkwxs","user": "HIAExuX81QWw4KyM8P3W"
}

效果图:

可将代码中的用户数据换成自己的用户数据或更换认证策略。

总结

通过让用户先访问“准入”页面,系统放行后再访问真实业务的场景只适合临时授权。后台应设置好防火墙定时重置策略,防止系统长时间对外暴露。因为访问者IP是动态变化的,一直处于暴露状态会对系统带来入侵风险。

为了应对恶意扫描,可以定期处理 deny 日志,将未授权IP加入黑名单。

原创 生有可恋

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/742741.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

提质增效,还看拖拽式报表设计器

如果想实现提质、降本、增效等发展目标,可以随时来了解拖拽式报表设计器的相关优势特点。随着业务量的增大,传统的报表已经无法满足发展需要了,借助于低代码技术平台、拖拽式报表设计器的优势特点,可以助力摆脱信息孤岛、部门之间协作沟通不畅的弊端,实现高效增值的市场价…

K8S标签与标签选择器

目录一、标签1、简介2、为什么需要标签3、标签命名规范3.1、标签名3.2、标签的value4、标签的基本操作4.1、创建标签4.1.1、资源清单方式4.1.2、命令行方式4.2、查看标签4.2.1、查看刚才打标的两个pod4.2.2、通过标签过滤查询4.2.3、将标签显示在输出结果中4.3、添加标签4.3.1、…

环境配置

依赖库安装(opencv,ffmpeg,accllite,presentagent)+摄像头测试+i2c测试配置c++环境下载安装第三方依赖(opencv,ffmpeg,accllite,presentagent) 配置摄像头 配置i2c 下载测试代码并检验准备安装 #下载测试代码 cd ${HOME} #注意是主目录,不是/home git clone https:…

自己理解的TCP三次握手

### TCP 三次握手过程是怎样的? TCP的建立连接是通过三次握手来进行的。三次握手的过程如下图:说实话这个很好理解,我称之为N字型 首先我们理解到建立连接是一个虚的概念了对吧?那么我们来设计一个可靠的TCP,首先建立连接是必须的吧?相当于我们打电话,总要先说一句喂---wei…

EtherCAT总线耦合器:在欧姆龙Sysmac Studio软件里的配置步骤

EtherCAT总线适配器XD7000作为网络接口,连接主控制器(如PLC)和其他EtherCAT设备,实现实时、高效的数据交换。通过EtherCAT总线耦合器,用户能够将所有设备连接在一个主网络上,并通过一个以太网端口进行控制。EtherCAT总线耦合器能够自动检测和确定不同的设备连接方式,从而…

总结系统IO和标准IO的区别

Linux系统IO:除了open函数之外,其它的函数第一个形参都是文件描述符。对文件进行IO操作:写入和读取操作是没有缓存操作。write因为没有缓存的操作,如果IO操作的数据很多的情况下是不建议使用,特别是那种多媒体数据文本文档数据。因为没有缓存的操作,如果IO操作的数据不多的…

STM32驱动-DHT11(温湿度模块)

STM32驱动-DHT11(温湿度模块) 一、DHT11模块简介 DHT11是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片…

输出的魅力

关于一份代码不同输出的不同结果。。(luogu能A) printf快写正常cout解绑cout就离谱

大厂性能优化的10大顶级方案 (万字图文史上最全)

文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备 免费赠送 :《尼恩技术圣经+高并发系列PDF》 ,帮你 实现技术自由,…

[学习笔记] 长链剖分 - 图论

长链剖分 字面意思,不同于重链剖分,每次选取最长的树链进行剖分,直到剖完为止。其原理和重链剖分相似。建议学习长链剖分前,先学习 重链剖分。 重链剖分能做的,长链剖分都能做(当然不包括找重儿子),长链剖分还能以 \(O(nlogn)-O(1)\) 的优秀复杂度找到 \(k\) 级祖先(当…

腾讯云加速企业和个人开发创新公开课直播预告

直播预告:07/18(周四)15:00-16:00 随着人工智能与大模型的蓬勃发展,我们正步入一个由技术驱动的创新时代。Al不仅是技术革新的先锋,更是每位程序员不可或缺的“搭子”,掌握AI工具的创造、加工与使用技巧,成为广大从业者当下的挑战之一。 腾讯云高性能应用服务HAl,打造一系…

CSP提高组模拟1

T1很明显的最短路floyed算法,但是这个最大的点权却不是很好维护,但我们可以想到枚举最大的点权其实就可以相当于枚举floyed中的k,那么这时我们要对k进行一个排序操作,使得我们每次枚举的中转点k为枚举经过路径的点权最大的点从而达到同时走最短路并维护点权最大值。点击查看…