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.32ssh端口

[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.3222端口

 

#查看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.11172.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~ ]#

登陆成功