iptables使用方法
1.查看iptables
#详细查看iptalbes
[root@shiyan6~ ]# iptables -vnL
#查看iptables 并带序号
[root@shiyan6~ ]# iptables -vnL --line-number
#超详细查看iptables
[root@shiyan6~ ]# iptables -vvnL
2.iptables的基本使用方法
#添加
[root@shiyan7 ~ ]# iptables -t filter -A INPUT -s 172.18.17.0/16 -d172.18.17.32 -p tcp --dport 22 -j ACCEPT
#在filter表中的INPUT链上添加:
源地址是172.18.17.0/16的随机端口,可以访问目标地址为172.18.17.32的tcp协议22号端口的记录
[root@shiyan7~ ]# iptables -t filter -A OUTPUT -s 172.18.17.32 -d 172.18.17.0/16 -p tcp --sport 22 -j ACCEPT
#在filter表中的OUPPUT链上添加:
源地址是172.18.17.32的tcp协议22号端口,可以访问目标地址172.18.17.0/16随机端口的记录
[root@shiyan7~ ]# iptables -t filter -A INPUT -d 172.18.17.32 -j REJECT
#在filter表中的INPUT链上添加:
源地址是所有的IP地址所有端口,不能访问目标地址为172.18.17.32的记录
-t : 指定表
-A : 添加,向后添加,指定添加的规则连
-s : 指定源地址
-d : 指定目的地址
-p : 指定协议
--dport : 指定端口
-j : 指定允许或者拒绝[ACCEPT]|[EROP]|[REJECT]
ACCEPT |
允许访问 |
EROP |
拒绝访问(不回复) |
REJECT |
拒绝访问(给予恢复) |
#查看之前添加的iptables记录
[root@shiyan7~ ]# iptables -vnL --line-number
ChainINPUT (policy ACCEPT 7 packets, 697 bytes)
num pkts bytes target prot opt in out source destination
1 1621 118K ACCEPT tcp -- * * 172.18.0.0/16 172.18.17.32 tcp dpt:22
2 0 0 REJECT all -- * * 0.0.0.0/0 172.18.17.32 reject-with icmp-port-unreachable
ChainFORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
ChainOUTPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 576 67656 ACCEPT tcp -- * * 172.18.17.32 172.18.0.0/16 tcp spt:22
结果:172.18.17.32的主机除了22号端口只能是172.18.0.0/16段的IP能访问,其他所有的IP地址,都不能访问172.18.17.32,包括所有的端口号
测试:使用172.18.17.11访问172.18.17.32的ssh端口
[root@yum~ ]# ssh 172.18.17.32
[email protected]'spassword:
Lastlogin: Thu Apr 27 22:15:59 2017 from 172.18.17.100
[root@shiyan7~ ]#
测试成功
#插入
[root@shiyan7~ ]# iptables -t filter -I INPUT 1 -s 172.18.17.11 -d 172.18.17.32 -p tcp--dport 22 -j REJECT
#在fileter表的INPUT链上插入为1编号的记录:
172.18.17.11的所有端口都不能访问172.18.17.32的22端口
#查看iptables
[root@shiyan7~ ]# iptables -vnL --line-number
ChainINPUT (policy ACCEPT 1 packets, 229 bytes)
num pkts bytes target prot opt in out source destination
1 22 2904 REJECT tcp -- * * 172.18.17.11 172.18.17.32 tcp dpt:22reject-with icmp-port-unreachable
测试:使用172.18.17.11和172.18.17.12分别登陆
172.18.17.11主机
[root@yum~ ]# ssh 172.18.17.32
ssh:connect to host 172.18.17.32 port 22: Connection refused
登陆失败
172.18.17.12主机
[root@shiyan6~ ]# ssh 172.18.17.32
[email protected]'spassword:
Lastlogin: Thu Apr 27 22:16:12 2017 from 172.18.17.11
[root@shiyan7~ ]#
登陆成功
测试成功
#删除
#删除INPUT链上的第一条记录
[root@shiyan7~ ]# iptables -D INPUT 1
#刚刚插入拒绝172.18.17.11访问ssh服务的记录已经被删除
[root@shiyan7~ ]# iptables -vnL --line-number
ChainINPUT (policy ACCEPT 1 packets, 136 bytes)
num pkts bytes target prot opt in out source destination
1 2175 164K ACCEPT tcp -- * * 172.18.0.0/16 172.18.17.32 tcp dpt:22
2 6 596 REJECT all -- * * 0.0.0.0/0 172.18.17.32 reject-withicmp-port-unreachable
测试:使用172.18.17.11登陆
172.18.17.11主机
[root@yum~ ]# ssh 172.18.17.32
[email protected]'spassword:
Lastlogin: Thu Apr 27 22:22:26 2017 from 172.18.17.12
[root@shiyan7~ ]#
登陆成功