技术日志

记录分享邓杰律师从事网络技术工作点点滴滴。

位置:首页>资讯动态>技术日志

Linux Centos7.X系统中,如何利用iptables和ipset屏蔽恶意ip访问?

点击复制标题网址

——温馨提示——

已复制到剪贴板,可粘贴到下一处。


时间:2023-11-04   访问量:1174

编者按:IPSET重启会消失创建ipset((hash:net包括ip段,hash:ip仅含单个ip)ipset create badlist hash:net删除ipsetipset destroy badlist指定ipset容量。默认可以存储65536个元素ipset create badlist hash:ip maxelem 10000003.加入一个ip或者IP段ipset add badlist 10.20.30.0/24ipset add badlist 183.46.194.1074.去除名

        一、了解iptables和IPSET基本背景知识

        iptables 是 Linux 系统中用于配置和管理网络数据包过滤规则,控制流量的进出。它使用链(chains)和规则(rules)的概念,基于数据包的源地址、目标地址、端口等信息进行过滤和转发。ipset 是一个用于管理大规模 IP 地址集合的工具,它提供了高效的数据结构和命令行接口,用于存储和操作 IP 地址、网络和端口的集合。它与 iptables 结合使用,可以更高效地过滤和匹配数据包,提供优化性能和灵活性的防火墙规则管理方案。

        ipset 和 iptables 通常结合使用,通过将 ipset 创建的 IP 地址集合与 iptables 结合,可以更快速地进行 IP 地址过滤和匹配操作。iptables 规则可以引用 ipset 的集合名称,从而将这些集合中的 IP 地址应用于具体的过滤规则。使用 ipset 可以实现对 IP 地址的分组、分类和管理,而 iptables 提供了对数据包的详细控制和过滤功能。结合使用 ipset 和 iptables,可以更灵活和高效地管理大规模的 IP 地址集合和防火墙规则,提供更好的网络安全保护。

        相关链接:

https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/security_guide/sec-setting_and_controlling_ip_sets_using_iptables

https://zhuanlan.zhihu.com/p/580178712?utm_id=0

————————————

iptables和IPSET保存在内存中,重启会消失

————————————

        二、查看了解iptables和ipset现状情况。

iptables -V

查看iptables默认规则(查看iptables默认规则,发现在默认规则下,INTPUT链允许来自任何主机的访问。)

iptables -L

查看当前服务器已创建的所有ipset

ipset list

查看当前服务器已创建的指定ipset

ipset list badlist

        三、对iptables和ipset进行个性化定制。

        (一)创建设置ipset规则。

创建ipset((hash:net包括ip段,hash:ip仅含单个ip)

ipset create badlist hash:net 

ipset create badlist hash:ip

指定ipset容量。默认可以存储65536个元素

ipset create badlist hash:ip maxelem 1000000


删除某个ipset

ipset destroy badlist

删除所有ipset

ipset destroy

加入一个ip或者IP段

ipset add badlist 183.46.194.107

ipset add badlist 10.20.30.0/24

···  ···

检测某个ip是否已经存在。

ipset test badlist 14.150.144.39

手动一个个添加非常慢,只能针对小量处理ip场景使用。

去除ipset中特定ip

ipset del badlist 10.20.30.12

配置好ipset后,需要及时保存,以防重启后丢失。

ipset save badlist -f /www/wwwroot/badlist.txt

(如果你有成百上千甚至上万的ip需要处理,可先对badlist.txt文件进行编辑处理后保存,然后再通过恢复ipset设置命令大批量导入IP。)

        (二)创建设置iptables规则

针对ipset,在iptables中创建相应规则

iptables -I INPUT -m set --match-set badlist src -p tcp -j DROP

保存iptables设置

iptables-save > /etc/sysconfig/iptables


        四、服务器重启后,如何恢复iptables和ipset相关设置

————————————

        如果iptables中包含有ipset,则iptables对ipset存在依赖关系。无论是手动恢复还是自动恢复,ipset设置恢复必须在前,iptables设置恢复必须在后,才能把两者全部恢复。如果您颠倒了顺序,把iptables设置恢复放在前,则恢复iptables设置将因为没有先恢复ipset设置依赖而失败。

————————————

        (一)手动恢复方案

手动恢复ipset设置(必须在前)

ipset restore -f /www/wwwroot/badlist.txt

手动恢复iptables设置(必须在后)

iptables-restore < /etc/sysconfig/iptables

        (二)自动恢复方案

利用开机自启文件为/etc/rc.d/rc.local自动恢复ipset和iptables设置

编辑开机自启文件为/etc/rc.d/rc.local并在其末尾处添加两行代码

ipset restore -f /www/wwwroot/badlist.txt

iptables-restore < /etc/sysconfig/iptables

保存。

按照开机自启文件为/etc/rc.d/rc.local文件中提示给其赋予执行权限

chmod +x /etc/rc.d/rc.local

        五、重启服务器查看是否生效。

————————

        如何定时自动定时将/www/wwwroot/badip.txt中的ip导入到ipset中的badlist集合中(后续延伸,尚未验证,存在问题。)

可以使用批处理命令

for ip in $(cat /www/wwwroot/badip.txt); do ipset add badlist $ip; done


批量添加有重复时自动略过继续添加

ipset -exist add badlist 14.150.144.39  

批量添加有重复时自动终止,提示有重复。

ipset add badlist 14.150.144.39


发表评论:

评论记录:

未查询到任何数据!
关于律师
————受人之托,忠人之事————
深圳数据合规律师
邓杰律师

专业

专注执业领域事务

尽责

全力办理委托事项

务实

扎实维护合法权益

邓杰系深耕于数据合规领域复合型资深专业律师,其律师执业证号为14403201810022100。邓杰律师现(曾)任WEB前端开发工程师、WEB服务器维护工程师、计算机信息网络安全员、深圳市人民政府听证员、深圳市政府采购评审专家(法律类)、深圳市某区政府系统公职律师,在网络领域和政府系统从业多年,深刻理解网络前沿技术和行政程序运行规则,十分擅长互联网+平台领域数据合规法律实务,可为政府、企业和个人在数据合规领域提供富有针对性的非诉、诉讼、仲裁、执行等法律风险防控解决方案,能有效维护当事人的各类合法权益。

扫一扫,存名片

深圳数据合规律师名片

律师名片

QQ扫一扫

深圳数据合规律师qq

QQ咨询

电话咨询

邓杰律师电话:13715198118

请输入您的联系电话,座机请加区号

电话咨询

微信扫一扫

深圳数据合规律师微信

微信联系