在CentOS 7中,引入了一个新的服务,Firewalld,下面一张图,让大家明确的了解Firewall与iptables之间的关系与区别。

安装它,只需
|
|
如果需要图形界面的话,则再安装
一、介绍
防火墙守护firewalld服务引入了一个信任级别的概念来管理与之相关联的连接与接口。它支持ipv4与ipv6,并支持网桥,采用firewall-cmd (command)或firewall-config (gui)来动态的管理kernel netfilter 的临时或永久的接口规则,并实时生效而无需重启服务。
zone
Firewall 能将不同的网络连接归类到不同的信任级别,Zone 提供了以下几个级别:
drop: 丢弃所有进入的包,而不给出任何响应
block: 拒绝所有外部发起的连接,允许内部发起的连接
public: 允许指定的进入连接
external: 同上,对伪装的进入连接,一般用于路由转发
dmz: 允许受限制的进入连接
work: 允许受信任的计算机被限制的进入连接,类似 workgroup
home: 同上,类似 homegroup
internal: 同上,范围针对所有互联网用户
trusted: 信任所有连接
过滤规则
source: 根据源地址过滤
interface: 根据网卡过滤
service: 根据服务名过滤
port: 根据端口过滤
icmp-block: icmp 报文过滤,按照 icmp 类型配置
masquerade: ip 地址伪装
forward-port: 端口转发
rule: 自定义规则
其中,过滤规则的优先级遵循如下顺序:
source
interface
firewalld.conf
二、使用方法
|
|
0. 配置firewalld
|
|
查看设置
具体的规则管理,可以使用firewall-cmd,具体的使用方法可以
1. 查看规则
查看运行状态
查看已被激活的Zone信息
查看指定接口的Zone信息
查看指定级别的接口
查看指定级别的所有信息,譬如public
查看所有级别被允许的信息
查看重启后所有Zones级别中被允许的服务,即永久放行的服务
2. 管理规则
|
|
添加某接口至某信任等级,譬如添加eth0至public,永久修改
设置public为默认的信任级别
a. 管理端口
列出dmz级别的被允许的进入端口
允许tcp端口8080至dmz级别
允许某范围的udp端口至public级别,并永久生效
b. 网卡接口
列出public zone所有网卡
将eth0添加至public zone,永久
eth0存在与public zone,将该网卡添加至work zone,并将之从public zone中删除
删除public zone中的eth0,永久
c. 管理服务
添加smtp服务至work zone
移除work zone中的smtp服务
d. 配置external zone中的ip地址伪装
查看
打开伪装
关闭伪装
e. 配置public zone的端口转发
要打开端口转发,则需要先
然后转发tcp 22端口至3753
转发22端口数据至另一个ip192.168.1.100的相同端口上
转发22端口数据至ip192.168.1.100的2055端口上
f. 配置public zone的icmp
查看所有支持的icmp类型
列出
添加echo-request屏蔽
移除echo-reply屏蔽
g.IP封禁
|
|
以上都是一些常用方法,更多高级方法,请参考:
- 红帽官网:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html
- Fedora社区:https://fedoraproject.org/wiki/FirewallD
转载自:https://havee.me/linux/2015-01/using-firewalls-on-centos-7.html