linux 设置防火墙黑名单,【转】Linux防火墙(iptables)之黑名单

iptables删除规则

So if you would like to delete second rule :

iptables -D INPUT 2

------------------------------

如果你愿意,你可以保存特定的IP集到一个文件中,以后可以从文件中还原:

ipset save banlist-fbanlist.txt

ipset destroy banlist

ipset restore-fbanlist.txt

-------------------------------------------------

再来说说今天的主题,黑名单。

第一阶段:发现

有一天发现 服务器的 /var/log/btmp文件有点大,所以搜索了一下

/var/log/btmp这个文件记录错误的登录尝试,执行lastb命令就可以查看到最后一个不成功的登录尝试.

如果文件太大可删除了再重新生成一个新的空文件。

得到了一个lastb命令,发现大量的ssh登录信息,多的令人发指。好吧,让我来分析一下哪些IP次数最多

#存文件便于以下的操作

lastb >> lastb.log

#过滤其它字段,只保留ip数据

cat lastb.log|awk -F " " ‘{print $3}‘ >> ips.log

#记录ip的出现次数

cat ips.log | sort | uniq -c >> ip_uniq.log

#最终形成列表

cat ip_uniq.log|sort -k1,1nr >> output.log

有些同学说分段的命令完全可以合成一个嘛,使用高大上的管道符号。是的,形成一条命令即:

lastb | awk -F " " ‘{print $3}‘ | sort | uniq -c | sort -k1,1nr >> output.log

现在output.log的内容如下图

format,png

暴光它

到此第一阶段完成,我知道了哪些IP曾对我的服务器进行过疯狂的访问。下一部就是写到iptables的黑名单中。

第二阶段:处理

挑选请求次数超过5次的,大概有1000来条。

问题来了,我需要一条一条加到iptables吗? 答案是肯定的,肯定不是了。 今天我所遇到的问题,所能想到的方案,几乎前辈们已经都已经实践过了。

神器登场: ipset,非自带,请用yum install ipset安装

简单讲一下 ipset 的使用

#创建一个名称为 blacklist 的IP集合,最大容量为10000

ipset create blacklist hash:ip maxelem 100000

#查看你的IP集

ipset list

#增加ip

ipset add blacklist 1.1.1.1

#再次查看IP集

ipset list

format,png

ipset list结果

好的, ipset基本使用已经初见。现在将刚才的恶意IP导入到ipset中

#方法有点蹩脚

grep -o ‘[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}‘ output.log | awk ‘{print "ipset add blacklist",$0}‘|sh

最后呢,将ipset与iptables关联即可

iptables -I INPUT -m set --match-set banthis src -p tcp --destination-port 80 -j DROP

/etc/init.d/iptables save

屏蔽后再尝试ssh连接服务器,结果就如下图,嗯 ,是的,结束。

format,png

ssh尝试登录

第三阶段:扩展

比本文针对性强,同时给出了iblocklist,这个网站已搜集了大量的恶意IP,可以拿使用来,这才是生产生。

---------------------------------------------------------------------------补充------------

自动IP地址禁用

现在你应该看到了IP集合的强大了。维护IP黑名单是一件繁琐和费时的工作。实际上,有很多免费或者收费的服务可以来帮你完成这个。一个额外的好处是,让我们看看如何自动将IP黑名单加到IP集中。

首先让我们从iblocklist.com得到免费的黑名单,这个网站有不同的免费和收费的名单。免费的版本是P2P格式。

接下来我要使用一个名为iblocklist2ipset的开源Python工具来将P2P格式的黑名单转化成IP集。

使用的下面命令安装iblocklist2ipset:

Shell

1

pip install iblocklist2ipset

pip是python管理包的工具,一般服务器自带,无需安装。

在一些发行版如Fedora,你可能需要运行:

Shell

1

python-pip install iblocklist2ipset

现在到iblocklist.com,抓取任何一个P2P列表的URL(比如"level1"列表)。

d81ab3a6f237a8ff9077a102327a71d5.png

粘帖URL到下面的命令中。

Shell

1

iblocklist2ipset generate--ipset banthis"http://list.iblocklist.com/?list=ydxerpxkpcfqjaybcssw&fileformat=p2p&archiveformat=gz"banlist.txt

上面的命令运行之后,你会得到一个名为banlist.txt的文件。如果查看它的内容,你会看到像这些:

Shell

1

2

3

4

5

6

7

8

create banlist hash:net family inet hashsize131072maxelem237302

add banlist1.2.4.0/24

add banlist1.2.8.0/24

add banlist1.9.75.8/32

add banlist1.9.96.105/32

add banlist1.9.102.251/32

add banlist1.9.189.65/32

add banlist1.16.0.0/14

你可以用下面的ipset命令来加载这个文件:

Shell

1

ipset restore-fbanlist.txt

现在可以查看自动创建的IP集:

Shell

1

ipset list banlist

在写这篇文章时候,“level1”类表包含了237,000个屏蔽的IP列表。你可以看到很多IP地址已经加入到IP集中了。

最后,创建一条iptables命令来屏蔽这些坏蛋!

Shell

1

iptables-IINPUT-mset--match-set banlist src-ptcp--destination-port80-jDROP

总结

屏蔽IP难免带来误伤,所以可以周期性释放,比如定期把已经加入关黑名单一周的IP释放出来,再犯规再给送进去。

我的网站,攻击者IP大部分都是河南郑州的,一看服务器都是景安网络的服务器,也是醉醉的。

原文:https://www.cnblogs.com/oxspirt/p/10272384.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统的防火墙是一种网络安全策略工具,它通过控制进出主机的数据包流量来保护系统免受攻击。其中,“白名单”防火墙策略是指只允许特定IP地址、端口或服务的访问,而对于其他请求则予以拒绝。 ### Linux系统防火墙白名单详解 #### 1. **配置原理** - 白名单防火墙的核心思想是在网络接入点设置规则,只允许已知来源(即白名单内的IP地址)发起连接尝试,并对所有未列出的来源自动阻断。 - 这种方法相对于黑名单更为安全,因为它默认假设一切未知的流量都是潜在威胁,并主动阻止它们。 #### 2. **常见应用** - 系统管理员可以使用白名单来限制外部服务器对内部系统的访问,尤其是当内部网络需要对外部提供有限的服务时,如Web服务器、数据库服务等。 - 对于关键基础设施或敏感数据处理环境,采用严格的白名单策略能显著提高安全性,减少非预期的外部访问风险。 #### 3. **实现方式** - **iptables**: 这是一个广泛使用的Linux命令行防火墙工具。通过iptables规则,可以配置白名单策略。例如,允许特定IP地址的TCP连接: ```bash sudo iptables -A INPUT -s [白名单IP] -p tcp --dport [目标端口] -j ACCEPT ``` - **Firewalld**: 作为iptables的一个图形界面替代品,firewalld提供更易于管理的防火墙规则。创建自定义区域并添加白名单规则: ```bash sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --reload ``` 上述命令示例允许公共区域能访问HTTP服务,其中`[白名单IP]`需替换为你想要添加到白名单的具体IP。 #### 4. **注意事项** - 配置白名单时务必谨慎,因为一旦将错误的IP地址误认为“可信”,可能会导致新的安全漏洞。 - 定期更新和审核白名单列表,移除不再需要的或已知有问题的条目。 - 使用白名单的同时应考虑结合其他的网络安全措施,比如入侵检测系统(IDS)、入侵防御系统(IPS)等,构建多层次的安全防护体系。 --- **相关问题**: 1. **如何在Linux上使用iptables配置白名单防火墙规则?** 2. **在实际部署中,什么时候应该启用白名单防火墙策略?** 3. **白名单策略与黑名单策略相比,在实施过程中有哪些优势和劣势?**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值