firewall
一、firewall介绍
CentOS 7中防火墙是一个非常的强大的功能,在CentOS 6.5中在iptables防火墙中进行了升级了。
1、官方介绍
动态防火墙守护进程防火墙提供了一个动态管理的防火墙,支持网络“区域”为网络及其相关连接和接口分配信任级别。它支持IPv4和IPv6防火墙设置。它支持以太网桥,并具有运行时和永久配置选项的分离。它还具有用于直接添加防火墙规则的服务或应用程序的接口。
2、什么是区域Zone:
网络区域定义了网络连接的可信等级。这是一个 一对多的关系,这意味着一次连接可以仅仅是一个区域的一部分,而一个区域可以用于很多连接。
3、哪个区域可用?
由firewalld 提供的区域按照从不信任到信任的顺序排序。
4、区域的分类?
防火墙可以用来根据用户决定对设备的信任程度和网络中的流量将网络分成不同的区域。NetworkManager通知firewalld接口属于哪个区域。可以通过NetworkManager或通过防火墙配置工具更改接口的指定区域,防火墙配置工具可以为您打开相关的NetworkManager窗口。
/etc/firewalld/区域设置是可以快速应用于网络接口的预设设置范围。这里列出了一个简短的解释:
drop
Any incoming network packets are dropped, there is no reply. Only outgoing network connections are possible.
任何传入的网络分组都被丢弃,没有应答。只有传出的网络连接是可能的。
block
Any incoming network connections are rejected with an icmp-host-prohibited message for IPv4 and icmp6-adm-prohibited for IPv6. Only network connections initiated from within the system are possible.
任何传入的网络连接被拒绝。只有从系统内部发起的网络连接才是可能的。
public
For use in public areas. You do not trust the other computers on the network to not harm your computer. Only selected incoming connections are accepted.
用于公共场所。您不信任网络上的其他计算机不会损害您的计算机。只接受选择的传入连接。
external
For use on external networks with masquerading enabled especially for routers. You do not trust the other computers on the network to not harm your computer. Only selected incoming connections are accepted.
用于在外部网络上使用,尤其是为路由器启用伪装。您不信任网络上的其他计算机不会损害您的计算机。只接受选择的传入连接。
dmz
For computers in your demilitarized zone that are publicly-accessible with limited access to your internal network. Only selected incoming connections are accepted.
对于你的非军事区的计算机来说,可以通过有限的内部网络访问。只接受选择的传入连接。
work
For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.
用于工作区域。你主要信任网络上的其他计算机而不损害你的计算机。只接受选择的传入连接。
home
For use in home areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.
用于家庭区域。你主要信任网络上的其他计算机而不损害你的计算机。只接受选择的传入连接。
internal
For use on internal networks. You mostly trust the other computers on the networks to not harm your computer. Only selected incoming connections are accepted.
用于内部网络。你主要信任网络上的其他计算机而不损害你的计算机。只接受选择的传入连接。
trusted
All network connections are accepted.
It is possible to designate one of these zones to be the default zone. When interface connections are added to NetworkManager, they are assigned to the default zone. On installation, the default zone in firewalld is set to be the public zone.
可以指定这些区域中的一个为默认区域。当接口连接被添加到NetworkManager时,它们被分配到默认区域。在安装时,FielWald中的默认区域设置为公共区域。
二、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
目录中存放定义好的网络服务和端口参数,系统参数,不能修改。
2、用户配置目录
/etc/firewalld/
3、如何自定义添加端口
用户可以通过修改配置文件的方式添加端口,也可以通过命令的方式添加端口,注意,修改的内容会在/etc/firewalld/目录下的配置文件中还体现。
3.1、命令的方式添加关闭端口
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --zone=public --permanent --remove-port=80/tcp
参数介绍:
1、firewall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;
另外,firewall中有Zone的概念,可以将具体的端口制定到具体的zone配置文件中。
例如:添加8080端口
firewall-cmd --zone=public --permanent --add-port=8080/tcp
--zone=public:指定的zone为public;
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"/> 放通指定ip,指定端口、协议
<port protocol="udp" port="514"/>
<accept/>
</rule>
<rule family="ipv4"> 放通任意ip访问服务器的9527端口
<port protocol="tcp" port="9527"/>
<accept/>
</rule>
</zone>
上述的一个配置文件可以很好的看出:
1、添加需要的规则,开放通源ip为122.10.70.234,端口514,协议udp;
2、开放通源ip为任意,端口9527,协议tcp;
三、firewall常用命令
1、重启、关闭、开启firewalld.service服务
service firewalld restart 重启
service firewalld start开启
service firewalld stop 关闭
2、查看firewall服务状态
systemctl status firewalld
3、查看firewall的状态
firewall-cmd --state
4、查看防火墙规则
firewall-cmd --list-all
四、CentOS切换为iptables防火墙
切换到iptables首先应该关掉默认的firewalld,然后安装iptables服务。
1、关闭firewall:
service firewalld stop
systemctl disable firewalld.service #禁止firewall开机启动
2、安装iptables防火墙
yum install iptables-services #安装
3、具体配置参见iptables那篇文章
service iptables start #开启
systemctl enable iptables.service #设置防火墙开机启动