linux下屏蔽大量非法ip地址

1.安装ipset命令

#安装ipset
yum install ipset

2. ipset命令相关应用


#删除iplist
ipset destroy banthis

#创建规则:
ipset create banthis hash:net maxelem 1000000

#添加规则:
ipset add banthis 1.1.1.1/32

#列出规则:
ipset list

#保存规则:
ipset save banthis -f banthis.txt

#编辑规则:
vim  banthis.txt

#导入iplist
ipset restore -f banthis.txt

3. 配置iptables规则

#iptables执行规则
iptables -I INPUT -m set --match-set banthis src -p tcp --destination-port 80 -j DROP

#查找所有规则
iptables -L INPUT --line-numbers

#删除一条规则
iptables -D INPUT 11 (注意,这个11是行号,是iptables -L INPUT --line-numbers 所打印出来的行号)
##次数说明,比如你删除第一条规则后,其后的规则都会发生变化,所以建议每删除一条就进行查看一次ip。有些规则不能删哦。。```

### 4. 实例 

a. 清空需要配置的规则名称


[root@localhost ~]# ipset destroy banthis


b. 编辑配置文件

```bash
[root@localhost ~]#vim banthis.txt
##文件内容写法:
create banthis hash:net family inet hashsize 1024 maxelem 1000000
add banthis 1.179.183.27

##create 后是名称 
##hash:net 代表的是集合的类型。IP集有多个类型。hash:net类型的IP集使用哈希来存储多个CIDR块。
##maxelem 1000000  设置ip个数上限

c.导入配置文件

[root@localhost ~]#ipset restore -f banthis.txt
确保成功:
[root@localhost ~]#ipset list

d.加入iptables配置规则

[root@localhost ~]#iptables -I INPUT -m set --match-set banthis src -p tcp --destination-port 80 -j DROP
#查看规则是否生效:
[root@localhost ~]#iptables -L INPUT --line-numbers
##如果看到字样
num  target     prot opt source               destination         
1    DROP       tcp  --  anywhere             anywhere             match-set banthis src tcp dpt:http

##则说明it is oook.

e. 删除规则

[root@localhost ~]#iptables -D INPUT 1

更多欢迎访问:http://www.mykernel.cn/

你可能感兴趣的:(linux下屏蔽大量非法ip地址)