前言

之前写了一个简单的工具,可以使用户通过web访问来实时对访客IP进行加白,以便该用户访问该服务器上的其他服务 见 https://github.com/yumusb/flask_active_service

利用工作之余写了一个简单(简陋)的web面板,可以在线对iptables的INPUT链进行管理。从而对能与服务器产生主动通信的IP、端口进行方便、有效的限制。web服务由flask提供。

效果图

安装效果图,安装时候默认对ssh服务端口历史登录SSH的IP当前flask服务进行加白处理。

管理效果图:可以在线对IP或者端口进行放行。比如要提供web服务,就需要手动对80、443进行放行。也可以一键清空已经添加的IP规则和端口规则。

安装与使用

由于网络问题,安装使用gitee的相关资源进行安装。可以通过SSH连接到你的服务器后,以root用户运行以下脚本进行安装。

bash <(curl -L -s https://gitee.com/yumusb/flask_iptables_manager/raw/master/run.sh)

脚本会自动安装所需要的依赖,与下载运行程序所需的文件。全程仅需手动输入一下服务运行的端口号即可。

安装完成后会给出一个形似 http://1xx.xx.xx.xx:端口/e3dd838a 的链接(e3dd838a为随机生成),访问这个链接可以对访客IP进行加白。加白后的IP不受限制访问服务器资源【详情可以了解 iptables -I INPUT -s IP地址 -j ACCEPT 】。在上面链接后面加上 /admin/变成http://1xx.xx.xx.xx:端口/e3dd838a/admin/ 即可看到效果图2页面。

有什么作用?

此工具只是为了帮助你更方便的操作Iptables,一切功能都由iptables提供。目前我觉得有两点实用之处。

  1. 防止恶意探测

    当前网络空间存在很多爬虫、探测机器。对全网的服务器的端口进行探测。我们可以对外只放行需要的端口,以防止其他服务被不必要探测。也可以实时对需要访问的访客IP进行加白,以便业务正常运行。

  2. 防止恶意攻击

    正如前两天很火的宝塔面板严重BUG事件,有很多同学受影响造成数据丢失。其实宝塔也有提供IP白名单功能。但是有很多同学觉得麻烦,没有使用。如果可以的话,可以只对外界放行80、443端口,不需要外界访问的端口只允许白名单IP访问,会避免很多不必要的麻烦产生。使用本脚本就可以很方便的完成此类需求。

其他

功能定制化比较高,也就牺牲了灵活性;比如只能放行某个端口给所有人访问、或者只能放行某IP访问服务器的所有端口。不能完全使用Iptables的功能,希望使用者不会被限制住想法,可以进一步去了解iptables的使用,以配置更适合自己的安全规则!