firewall基本理解
firewall和iptables都只是防火墙策略管理工具,firewall是iptables管理工具的升级。
firewall服务
firewall服务使用XML配置文件,文件储存在/etc/lib/firewalld/service/目录下记录了firewalld服务信息。
firewall终端管理工具
firewall -cmd 是配置防火墙配置管理工具的cLI版本命理格式firewall-cmd[参数…]
firewalld 的基本操作
实验一
1、启动firewalld
systemctl start firewalld
产看版本
firewall-cmd --version
2、检查防火墙是否运行
firewall-cmd --state
3、列出支持的区域列表
firewall-cmd --get-zones
firewall 的缺省区域位public
4、区域相关设置
产看当前区域
firewall-cmd --get-active-zones
更改区域为家庭区域
firewall-cmd --set-default-zones=home 配置区域立即生效
找出当前分配了接口(例如eth0)区域
firewall-cmd --get-zone-of-interface=eth0
找出一个区域(例如home区域)的所有接口
firewall-cmd --zone=home --list-interface
列出一个区域的所有设置
firewall-cmd --zone=public --list-all
5、应急模式
阻止所有网络连接
firewall-cmd --panic-on
恢复连接
firewall-cmd --panic-off
查看是否启用应急模式
firewall-cmd --query-panic
实验二
1、重新加载防火墙
重新加载防火墙。并不中断用户连接
firewall-cmd --reload
重新加载中段连接
firewall-cmd --complete-reload
2、列出某个区域所有开放的端口
firewall-cmd --zone=dmz --list-ports
3、要将一个端口加入一个区域,
例如,允许 TCP流量通过端口 80 进入dmz分区,输入以下命令
firewall-cmd --zone=dmz -add-port=80/tcp
如果是端口范围可以使用
比如允许public区域 3000 到 3020 的udp端口
firewall-cmd --zone=public --add-port=3000-3020/udp
4、服务管理设置(列出的服务不一定启用)
firewall-cmd --get-service
列出某个区域中启用的服务
firewall-cmd --zone=home --list-services dhcpv6=client
要把一个区域加入到区域 例如smtp计入public区域
firewall-cmd --zone=public --add-service=smtp
把一个区域移除服务
firewall-cmd --zone=public --remove-service=smtp
5、IP伪装功能
启用区域中的IP伪装功能,私有网络地址被隐藏并映射到一个公有IP,常用于路由。
使用如下命令检查区域是否启用ip伪装功能
firewall-cmd --zone=zone --query-masquerade
如果可用,屏幕会显示 yes,不可用显示no
允许伪装IP,可以使用如下命令:
firewall-cmd --zone=home --add-masquerade
firewall-cmd --zone=home --query-masquerade
禁用伪装ip :
firewall -cmd --zone=bublic --remove-masquerade
6、ICMP阻塞功能
阻止一个或多个 ICMP 类型。要获得被支持的 ICMP 类型列表,输入以下命令:
firewall-cmd --get-icmptypes
启用区域的ICMP阻塞功能
firewall-cmd --zone=zone --add-icmp-block=<icmptype>
禁用区域的ICMP阻塞功能
firewall-cmd --zone=zone --remove-icmp-block=<icmptype>
查询区域的ICMP阻塞状态
firewall-cmd --zone=zone --query-icmp-block=<icmptype>
例如,阻塞public区域的响应应答报文:
firewall-cmd --zone=public --add-icmp-block=echo-reply
7、配置端口转发
可以配置端口映射到另外一个端口,端口映射到另外一个地址上的相同端口,端口映射到另外一台主机上的不同端口, 在配置端口转发之前需要将IP伪装打开
firewall-cmd --zone=external --add-masquerade
将本机的80端口转发到8080端口
firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080
映射到另外一个地址上的相同端口
firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=192.168.99.100
端口映射到另外一台主机上的不同端口
firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.99.100
移除本机80到8080端口的转发:
firewall-cmd --zone=external --remove-forward-port=port=80:proto=tcp:toport=8080
移除本机80端口到主机192.168.99.100的80端口的映射
查询区域内的端口转发可以使用如下命令:
firewall-cmd --zone=zone --query-forward-port
8、设置永久保留
上面所有的配置都是临时性的配置,当重启/载服务或重启系统后,配置将不再保留。如果需要将设置永久保留,则需要使用–permanent 选项,当然永久选项不直接影响运行时的状态,只有在增加 --permanent 选项并重新加载防火墙,永久选项才会生效
用法:将–permanent设置为第一个参数,即可将临时性的设置为永久性生效的配置
比如这条配置:
firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=192.168.99.100
只需要加一个 “–permanent”参数即可设置为永久
firewall-cmd --permanent --zone=external --add-forward-port=port=80:proto=tcp:toaddr=192.168.99.100