一、firewall-cmd使用说明
- firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;第二个就是加入了防火墙的“zone”概念
- firewalld有图形界面和工具界面,由于我在服务器上使用,图形界面请参照官方文档,本文以字符界面做介绍
- firewalld的字符界面管理工具是
firewall-cmd
,可以多参考firewalld-cmd –help
命令学习 - firewalld默认配置文件有两个:
/usr/lib/firewalld/
(系统配置,尽量不要修改)和/etc/firewalld/
(用户配置地址),用户配置文件主要是:/etc/firewalld/firewalld.conf
zone概念:
硬件防火墙默认一般有三个区,firewalld引入这一概念系统默认存在以下8个区域(根据文档自己理解,如果有误请指正):
- drop:默认丢弃所有包
- block:拒绝所有外部连接,允许内部发起的连接
- public:指定外部连接可以进入
- external:这个不太明白,功能上和上面相同,允许指定的外部连接
- dmz:和硬件防火墙一样,受限制的公共连接可以进入
- work:工作区,概念和workgoup一样,也是指定的外部连接允许
- home:类似家庭组
- internal:信任所有连接
centos7默认安装了firewalld,若没有安装,执行 yum install firewalld firewalld-config
安装
二、应用
2.1 基础使用及状态
|
|
|
|
2.2 服务器防火墙IP、端口配置
永久的开放需要的端口:
2.3 复杂的防火墙设置
(1) rich-rules
firewalld复杂的设置配置参数是rich-rules
, 可以先通过firewall-cmd --zone=public --list-rich-rules
目录打印出所有的复杂设置。
|
|
(2) 配置 external zone 中的 ip 地址伪装
|
|
(3) 配置 public zone 的端口转发
要打开端口转发,则需要先
(4) 配置 public zone 的 icmp
|
|
2.4 防火墙永久设置
注意,firewalld的设置默认是临时的,如果要永久生效,需加参数 --permanent
|
|
2.5 IP 封禁
我最常用的语句:firewall-cmd --permanent --zone=public --ipset=blacklist --add-entry=119.39.248.76
|
|
三、常见错误处理
3.1 Failed to start firewalld.service: Unit firewalld.service is masked.
问题现象: Failed to start firewalld.service: Unit firewalld.service is masked.
错误,切firewall无法重启。
解决方法:
四·常用配置
初始防火墙配置:
|
|
制定IP服务授权: