Centos6.9配置防火墙iptables规则

阿里云centos服务器需要设置iptables防火墙规则,才能使用端口访问。目前只配置INPUT,OUTPUT和FORWORD都是ACCEPT的规则。

一、检查iptables服务状态
service iptables status
iptables: Firewall is not running.

如果显示如下,则说明iptables服务是有安装的,但是没有启动服务。
如果没有安装的话可以直接yum安装

yum install -y iptables

生成配置文件

vim /etc/sysconfig/iptables

保存退出
Esc 再按 shift + : 输入wq回车退出

启动iptables

service iptables start
iptables: Applying firewall rules:                         [  OK  ]

看一下当前iptables的配置情况

iptables -L -n
#会显示如下
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

如果显示这样就说明iptables服务已经启动了

二、配置规则

常用添加端口规则

#允许对外请求的返回包
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#允许icmp包通过
iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
#允许来自于lo接口的数据包,如果没有此规则,将不能通过127.0.0.1访问本地服务
iptables -A INPUT -i lo -j ACCEPT

#常用端口
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 23 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT

#过滤所有非以上规则的请求
iptables -P INPUT DROP

#如果要添加内网ip信任(接受其所有TCP请求)
#注:(**.**.**.**)为IP,下同
iptables -A INPUT -p tcp -s **.**.**.** -j ACCEPT

#要封停一个IP,使用下面这条命令
iptables -I INPUT -s **.**.**.** -j DROP
#要解封一个IP,使用下面这条命令
iptables -D INPUT -s **.**.**.** -j DROP

保存重启防火墙

/etc/init.d/iptables save
service iptables restart

其他方法:

# 打开配置文件
vim /etc/sysconfig/iptables
# 加入如下语句:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
# 保存(按Esc退出编辑)
:wq
# 重启防火墙,修改完成
service iptables restart

其他常用命令(不是一定要做)

#允许所有入栈规则
iptables -P INPUT ACCEPT
#清空默认所有规则
iptables -F
#清空自定义的所有规则
iptables -X
#计数器置0
iptables -Z
三、关闭端口

常用删除端口规则

# 查看当前端口所在行数
iptables -L -n --line-number
# 删除指定序列的端口(下面是删除第五条端口)
iptables -D INPUT 5
# 确认是否已经删除,可以重新查看列表
iptables -L -n --line-number

其他方法:

# 打开配置文件
vim /etc/sysconfig/iptables 

# 直接删除对应端口的那句 !!!!

# 保存(按Esc退出编辑)
:wq
# 重启防火墙,修改完成
service iptables restart
四、保存规则,重启iptables服务
#保存修改
/etc/init.d/iptables save

#查看规则是否添加成功
vim /etc/sysconfig/iptables

#添加到iptables服务自启动
chkconfig iptables on

#重启iptables服务
service iptables restart

查看正在启用的端口情况,看上面有没有你刚加上的端口

netstat -tl

查看所有添加进去的端口(包含启用的和未启用的端口)

/etc/init.d/iptables status

按 i 进入编辑状态,按esc可退出编辑状态

#退出
:q
#保存并退出
:wq
#保存并退出。
:x 
#强制退出,但不保存
:q!