linux Centos防火墙工具iptables的使用
一、安装iptables
1.1、查看是否安装
systemctl status iptables
![](http://upload-images.jianshu.io/upload_images/7200097-aa61c6acbfbdcda7.png?imageMogr2/auto-orient/strip|imageView2/2/w/439/format/webp)
输出结果表示没有安装该服务,需要先安装。
1.2、安装iptables
yum install iptables-services
![](http://upload-images.jianshu.io/upload_images/7200097-12edf113759d4f60.png?imageMogr2/auto-orient/strip|imageView2/2/w/355/format/webp)
输出结果表示安装完成。
1.3、检查是否安装成功
systemctl status iptables
![](http://upload-images.jianshu.io/upload_images/7200097-6e833010910b577c.png?imageMogr2/auto-orient/strip|imageView2/2/w/517/format/webp)
输出结果表示安装完成。
1.4、启动iptables
systemctl start iptables.service
![](http://upload-images.jianshu.io/upload_images/7200097-868f00df312dab45.png?imageMogr2/auto-orient/strip|imageView2/2/w/778/format/webp)
输出结果表示启动成功。
二、命令
2.1、系统命令
systemctl start iptables #启动
systemctl status iptables #查看运行状态
systemctl restart iptables.service #重启
systemctl stop iptables.service #停止
systemctl enable iptables.service #设置开机启动
systemctl disable iptables.service #禁止开机启动
2.2、常用命令
iptables -h #查询帮助
iptables -L -n #列出(filter表)所有规则
iptables -L -n --line-number #列出(filter表)所有规则,带编号
iptables -L -n -t nat #列出(nat表)所有规则
iptables -F #清除(filter表)中所有规则
iptables -F -t nat #清除(nat表)中所有规则
service iptables save #保存配置(保存配置后必须重启iptables)
systemctl restart iptables.service #重启
2.3、iptables常用语法
-A:追加到规则的最后一条
-D:删除记录
-I:添加到规则的第一条
-p:(proto)规定通信协议,常见的协议有:tcp、udp、icmp、all
-j:(jump)指定要跳转的目标,常见的目标有:ACCEPT(接收数据包)、DROP(丢弃数据包)、REJECT(重定向)三种,但是一般不适用重定向,会带来安全隐患
三、常见问题
若/etc/sysconfig/iptables不存在,
原因:在新安装的linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件。
解决:
在控制台使用iptables命令随便写一条防火墙规则,如:iptables -P OUTPUT ACCEPT
使用service iptables save进行保存,默认就保存到了/etc/sysconfig目录下的iptables文件中使用
3.1 开放端口
通过vi /etc/sysconfig/iptables 进入编辑增添一条-A INPUT -p tcp -m tcp --dport 8889 -j ACCEPT 即可
执行 /etc/init.d/iptables restart 命令将iptables服务重启
保存 /etc/rc.d/init.d/iptables save
注:如若不想修改iptables表,可以直接输入下面命令:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
3.2 关闭端口
iptables -I OUTPUT -p tcp --dport 80 -j DROP
3.3 开放22-80范围的端口
iptables -I INPUT -p tcp --dport 22:80 -j ACCEPT
3.4 禁止ip访问
iptables -A INPUT ! -s 192.168.255.255 -j DROP
四、常见问题
若/etc/sysconfig/iptables不存在,
原因:在新安装的linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件。
解决:
在控制台使用iptables命令随便写一条防火墙规则,如:iptables -P OUTPUT ACCEPT
使用service iptables save
进行保存,默认就保存到了/etc/sysconfig目录下的iptables文件中