1. 创建端口集合、黑名单ip集合、白名单ip 集合
2. 首次访问非正确的端口,即认为是黑名单ip
3. 若是黑名单ip 且不是白名单ip drop
4. 通过本次请求 标记为白名单ip
## 设置黑名单 ip
ipset create scanner-ip-set hash:ip## 设置白名单
ipset create white-ip-set hash:ip## 设置公共端口
ipset create pub-port-set bitmap:port range 0-65535### 查看集合ipset list## 删除集合里的元素
ipset del scanner-ip-set 103.3.120.114
ipset add white-ip-set 127.0.0.1
设置iptables规则
## 请求非公共端口的加入黑名单ip
iptables \-I INPUT 1 \-p tcp --syn \-m set ! --match-set pub-port-set dst \-m set ! --match-set white-ip-set src \-j SET --add-set scanner-ip-set src ## 来源ip 是黑名单列表的,拒绝访问
iptables \-A INPUT \-p tcp --syn\-m set --match-set scanner-ip-set src \-m set ! --match-set white-ip-set src \-j DROP### 通过规则2 ,不在黑名单中,添加白名单
iptables \-A INPUT \-p tcp --syn \-m set ! --match-set scanner-ip-set src \-j SET --add-set white-ip-set src ## 查看规则
iptables -L
## 删除规则
iptables -D INPUT 1