linux防火墙

RHEL7 安全性指南4.5

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

iptables和firewall区别

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值