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