iptables 安装和使用详细介绍
一、安装iptables
1、centos7 安装
yum install iptables iptables-services -y
成功的标识:
[root@node2 ~]# rpm -qa | grep iptables
iptables-1.4.21-28.el7.x86_64
iptables-services-1.4.21-28.el7.x86_64
卸载
1、卸载iptables-1.4.21-28.el7.x86_64.rpm,会同时卸载 iptables和 iptables-services
2、如果卸载iptables-services-1.4.21-28.el7.x86_64.rpm,则只会卸载其自己
3、/etc/sysconfig/iptables其实是iptables-services产生的
4、清空/etc/sysconfig/iptables,仍然可以启动iptables
2、centos6安装
安装一样,但是centos6只有一个ipv4 rpm包
yum install iptables iptables-services -y
成功的标识:
[root@node6 ~]# rpm -qa | grep iptables
iptables-1.4.7-19.el6.x86_64
iptables-ipv6-1.4.7-19.el6.x86_64
二、iptables 常用规则
1、iptables的规则是从上往下的依次执行
只要匹配上,就不再往下匹配
-A 从上往下插入命令,这个是写先允许,后拒绝的命令
-I 从下往上插入命令,这个是写先拒绝,后允许的命令
2、限制特定IP端口访问
栗子1:
只允许192.168.199.202 访问本机的 22端口
PS:如果限制22端口
,则会让终端工具无法连接。
iptables -A INPUT -s 192.168.199.202 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
栗子2:
只允许192.168.199.202 访问本机的 3306 8080端口
iptables -A INPUT -s 192.168.199.202/32 -p tcp -m multiport --dport 3306,8080 -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dport 3306,8080 -j DROP
栗子3:
范围端口写法如下:
iptables -I INPUT -s 192.168.199.202/32 -p tcp --dport 1000:2000 -j ACCEPT
OR
iptables -A INPUT -s 192.168.199.202/32 -p tcp -m multiport --dport 21,1000:2000 -j ACCEPT
栗子4:
范围IP写法如下
iptables -I INPUT -m iprange --src-range 192.168.199.1-192.168.199.200 -p tcp --dport 2181 -j ACCEPT
栗子5:
直接拒绝别的机器访问
#拒绝所有人访问本机8888端口
iptables -I INPUT -p tcp --dport 8888 -j REJECT
#拒绝指定主机192.168.199.200访问本机80端口,输入命令:
iptables -I INPUT -s 192.168.1.200 -j DROP
三、一些思考
1、关于允许特定ip访问本机特定端口
我在192.168.199.201上设置防火墙
只允许192.168.199.202访问201的21端口
规则如下:
iptables -I INPUT -p tcp --dport 21 -j DROP
iptables -I INPUT -s 192.168.199.202 -p tcp --dport 21 -j ACCEPT
规则效果:
除202以外的机器不能访问201的21端口
但是:
所有机器都可以访问201的其他端口,比如80,3306…
结果如图:
2、 封闭了随机端口32768 ~ 65535
可能造成:没办法完成tcp3次握手
举个栗子:
假如在192.168.199.201执行规则如下
iptables -A INPUT -s 192.168.199.202/32 -p tcp -m multiport --dport 3306,32768:65535 -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dport 3306,32768:65535 -j DROP
效果:
如果在203机器上去访问201的2181端口,可能会无法访问