iptables不让指定地址访问指定端口
iptables -A INPUT -s 10.116.0.194 -p tcp --dport 22 -j DROP
iptables -I INPUT -s 10.116.0.194 -p tcp --dport 22 -j DROP
注释:
1、参数“-A"代表新增规则,即增加在指定规则链的最末端,即最后生效,如果该规则链内上方有与新增规则冲突的规则,则该条规则不会生效;生效顺序为规则链排列顺序,即按照规则链数字排序来生效;
2、参数“-I"(大写的i)代表插入规则,即将新增规则插入到规则链的第一个规则中,优先生效。
删除规则
#查看规则及顺序
iptables -L -n --line-number
回显如下:
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP tcp -- 192.168.1.20 0.0.0.0/0 tcp dpt:22
2 IPSET_INPUT all -- 0.0.0.0/0 0.0.0.0/0
3 IN_SDP_WL all -- 0.0.0.0/0 0.0.0.0/0
4 IN_SDP_HIDE all -- 0.0.0.0/0 0.0.0.0/0
5 REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1443 option=252 flags:0x17/0x02 reject-with tcp-reset
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 DOCKER-USER all -- 0.0.0.0/0 0.0.0.0/0
2 DOCKER-ISOLATION-STAGE-1 all -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
4 DOCKER all -- 0.0.0.0/0 0.0.0.0/0
5 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
6 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
7 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
8 DOCKER all -- 0.0.0.0/0 0.0.0.0/0
9 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
10 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
#删除指定规则
iptables -D INPUT 1
注释:
1、INPUT为iptables规则链名称;
2、数字“1”为上述命令回显中规则链中规则顺序,规则顺序的数字并非一成不变的,举例:将第一条规则删除后,第二条规则的序号会变为1,因此执行删除规则的时候需要额外注意规则序号
3、上述命令含义:删除INPUT规则链中第一条规则
不让指定地址访问服务器指定端口
#不让指定地址访问服务器的443端口,未使用默认规则链的情况下
iptables -I DOCKER-USER -s 10.116.0.194 -p tcp --dport 8901 -j DROP
iptables -I DOCKER-USER -s 10.116.0.194 -p tcp --dport 443 -j DROP
#不让指定地址访问服务器的18081端口
iptables -I DOCKER-USER -s 10.116.0.194 -p tcp --dport 8081 -j DROP
iptables -I DOCKER-USER -s 10.116.0.194 -p tcp --dport 18081 -j DROP
#不让指定地址访问服务器的22端口
iptables -I DOCKER-USER -s 10.116.0.194 -p tcp --dport 22 -j DROP
规则永久生效
执行完规则修改后,需要执行以下命令将规则写入到本地(机制类似于交换机配置刷新到本地)
service iptables save