文档说明:只记录关键地方;
缘由:
小破站,自己用,不挂广告,不推广,也不允许搜索引擎抓取(robots.txt不允许抓取)
但是每天依然是有大量的漏洞扫描、嗅探,还有伪装成搜索引擎然后抓取,这就勾起了好奇心 。
前面的叙述,都是废话
真实原因: 流量费贵
屏蔽原理 ipset + iptables (真正起作用的是 netfilter)
2 句命令实现屏蔽IP的功能
nftables 和 iptables 都是 netfilter 管理工具,真正起作用的是 netfilter(linux内核防火墙)
规则少的话还是用iptables
小破站,用不上BGP协议屏蔽IP地址的功能,但是可以使用它提供的黑名单
话不多说,直接上脚本
# 屏蔽IP或者IP地址段功能
ipset create blocklist-ip hash:net
iptables -I INPUT -m set --match-set blocklist-ip src -j DROP
# 下面添加需要屏蔽的IP地址
ipset add blocklist-ip 34.100.239.202
ipset add blocklist-ip 51.75.123.107
# 查看 blocklist-ip 集合的内容
ipset list blocklist-ip
准备好了屏蔽功能,下面就是添加需要屏蔽的IP了
获取要屏蔽的IP地址
方式一 读取nginx日志,并把匹配的规则,读取出来
方式二
wget -O public-ip-blacklist/ustc-blacklist.txt http://hpfeeds.ustc.edu.cn/list.php?txt
wget -O public-ip-blacklist/neu-ssh-blacklist.txt http://antivirus.neu.edu.cn/ssh/lists/neu.txt
wget -O public-ip-blacklist/ustc-mailblackip.txt http://blackip.ustc.edu.cn/mailblackip.php?txt
方式三
打开此网站 https://tool.nbqykj.cn/network/scan/ssh
打开浏览器控制台,然后执行下列代码,然后复制所有ip地址即可
let ips=[]
document.querySelectorAll('table tbody tr').forEach((value,key,array)=>{
ips.push(value.querySelector('td').innerText.trim())
})
console.log(ips.join('\n'))
参考文档
- 利用 ipset 封禁大量 IP
- iptables四表五链
- 四表五链
- netfilter/iptables 是什么关系, 他们和netfilter 什么关系
- 过渡到 nftables
- linux下iptables的用法,Linux中IPtables命令的使用方法
- 对 nftables 进行基准测试
- iptables与Netfilter概念
- 利用BGP协议自动封锁IP
- IP黑名单数据源1
- IP黑名单数据源2
- IP黑名单数据源3
- IP黑名单数据源4
- IP黑名单数据源5