防火墙官方文档介绍地址:

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html#sec-Introduction_to_firewalld1

一、firewall介绍

CentOS 7中防火墙是一个非常的强大的功能,在CentOS 6.5中在iptables防火墙中进行了升级了。我的阿里云centos7中默认使用firewall,并且默认没有开启。
注意:使用阿里云服务器,先要在阿里云后台开放端口,然后关闭centos防火墙或者开放centos的对应端口,只开放centos端口,不设置阿里云端口设置,仍然不能访问!

二、firewall配置

The configuration for firewalld is stored in various XML files in /usr/lib/firewalld/ and /etc/firewalld/.

This allows a great deal of flexibility as the files can be edited, written to, backed up, used as templates for other installations and so on.

注意:以下firewalld 的操作只有重启之后才有效:service firewalld restart 重启

1、系统配置目录

/usr/lib/firewalld/services

目录中存放定义好的网络服务和端口参数,系统参数,不能修改。

centos 7 添加防火墙端口 centos7防火墙配置命令_linux

2、用户配置目录

/etc/firewalld/

centos 7 添加防火墙端口 centos7防火墙配置命令_重启_02


3、如何自定义添加端口

用户可以通过修改配置文件的方式添加端口,也可以通过命令的方式添加端口,注意,修改的内容会在/etc/firewalld/ 目录下的配置文件中还体现。

3.1、命令的方式添加端口

firewall-cmd --permanent --add-port=9527/tcp

参数介绍:

1、firewall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;

另外,firewall中有Zone的概念,可以将具体的端口制定到具体的zone配置文件中。

例如:添加8010端口

firewall-cmd --zone=public --permanent --add-port=8010/tcp

--zone=public:指定的zone为public;

添加结果如下:

centos 7 添加防火墙端口 centos7防火墙配置命令_配置文件_03


如果–znotallow=dmz 这样设置的话,会在dmz.xml文件中新增一条。

3.2、修改配置文件的方式添加端口

<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas.</description>
  <rule family="ipv4">
    <source address="122.10.70.234"/>
    <port protocol="udp" port="514"/>
    <accept/>
  </rule>

  <rule family="ipv4">
    <source address="123.60.255.14"/>
    <port protocol="tcp" port="10050-10051"/>
    <accept/>
  </rule>
 <rule family="ipv4">
    <source address="192.249.87.114"/> 放通指定ip,指定端口、协议
    <port protocol="tcp" port="80"/>
    <accept/>
  </rule>
<rule family="ipv4"> 放通任意ip访问服务器的9527端口
    <port protocol="tcp" port="9527"/>
    <accept/>
  </rule>
</zone>

上述的一个配置文件可以很好的看出:

1、添加需要的规则,开放通源ip为122.10.70.234,端口514,协议tcp;
2、开放通源ip为123.60.255.14,端口10050-10051,协议tcp;
3、开放通源ip为任意,端口9527,协议tcp;

三、firewall常用命令

1、重启、关闭、开启firewalld服务

systemctl start firewalld         # 启动,
systemctl enable firewalld        # 开机启动
systemctl stop firewalld          # 关闭
systemctl disable firewalld       # 取消开机启动
service firewalld restart 重启

2、查看firewall的状态

firewall-cmd --state

centos 7 添加防火墙端口 centos7防火墙配置命令_重启_04

3、查看防火墙规则

firewall-cmd –list-all

centos 7 添加防火墙端口 centos7防火墙配置命令_centos 7 添加防火墙端口_05

四、CentOS切换为iptables防火墙

切换到iptables首先应该关掉默认的firewalld,然后安装iptables服务。

1、关闭firewall:

systemctl stop firewalld          # 关闭
systemctl disable firewalld       # 取消开机启动

2、安装iptables防火墙

yum install iptables-services #安装

3、编辑iptables防火墙配置

vi /etc/sysconfig/iptables

下边是一个完整的配置文件:

Firewall configuration written by system-config-firewall

Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

:wq! #保存退出

service iptables start #开启
systemctl enable iptables.service #设置防火墙开机启动