firewall防火墙

firewall防火墙,第1张

概述firewall防火墙1 防火墙简介在基于RHEL7的服务器,提供了一个firewall的动态管理的防火墙,其支持IPv4和IPv6,还支持以太网桥,并有分离运行时间和永久性配置选择。它还具备一个通向服务或者应用程序以直接增加防火墙规则的接口。2 简单介绍firewall的配置文件:/etc/lib/firewalld/和/etc/firewalld/下的XML文件。配置firewall可以直接编辑配置文件,也可以使用firewall-cmd命令行工具。3 防火墙使用查看firewalld的状态firewall-cmd --state查看活动分区类别firewall-cmd --get-active-zones查看当前分配的接口firewall-cmd --get-zone-of-interface=ens33查看分配的区域的所有接口:firewall-cmd --zone=public --list-interfaces找出公共区域的所有设置firewall-cmd --zone=public --list-allfirewall-cmd --list-all关闭|开启所有的输入和输出的数据包(禁用)# 关闭所有输入输出的数据包firewall-cmd --panic-on# 开启再次输入输出的数据包firewall-cmd --panic-off# 查看panic模式的状态(yes启用 no退出)firewall-cmd --query-panic重新加载防火墙# 重新加载防火墙,不中断用户连接(不丢失状态信息)firewall-cmd --reload# 重新加载防火墙并中断用户连接(丢失状态信息),防火墙出现严重问题才执行firewall-cmd --complete-reload为分区增加接口# 把em1增加到公共分区,增加--permanent选择并重新加载防火墙,是之永久生效firewall-cmd --zone=public --add-interface=em1设置分区(将一个端口加入分区)# 设置默认分区,立即生效,不需要重新加载防火墙firewall-cmd --set-default-zone=public# 将一个端口加入分区firewall-cmd --zone=public --permanent --add-port=8080/tcpfirewall-cmd --reload# 查看开发的端口firewall-cmd --zone=public --list-ports# 删除firewll-cmd --zone=pubic --remove --remove-port=8080/tcp将一个服务(http)加入到分区# 加入firewall-cmd --permanent --zone=work --add-service=httpfirewall-cmd --reload# 移除firewall-cmd --permanent --zone=work --remove-service=httpfirewall-cmd --reload# 注意,这并不会中断已经建立的连接。如果您打算中断,您可以使用 --complete-reload 选项,但这不仅仅中断您已经移除的服务,还会中断所有已经建立的连接。配置伪装 IP 地址# 查询是否可用firewall-cmd --zxternal --query-masquerade# 允许伪装IPfirewall-cmd --zxternal --add-masquerade# 禁用伪装IPfirewall-cmd --zxternal --remove-masquerade配置端口转发,地址转发# 将22端口转发到3753端口,使用tcp协议firewall-cmd --zxternal --add-forward-port=port=22:proto=tcp:toport=3753# 原本发往22端口的程序包现在被转发到地址是192.0.2.55下相同的端口firewall-cmd --zxternal --add-forward-port=port=22:proto=tcp:toaddr=192.0.2.55# 将22端口的数据包转发到192.0.2.55下的2055端口firewall-cmd --zxternal /--add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.0.2.55使用直接接口增加一个自定义规则# 增加一个自定义规则到 “IN_public_allow” 链里:firewall-cmd --direct --add-rule ipv4 filter IN_public_allow0 -m tcp -p tcp --dport 666 -j ACCEPT# 从 “IN_public_allow” 链移除一个自定义规则:firewall-cmd --direct --remove-rule ipv4 filter IN_public_allow0 -m tcp -p tcp --dport 666 -j ACCEPT# 列出 “IN_public_allow” 链中的规则:firewall-cmd --direct --get-rules ipv4 filter IN_public_allow配置rich language语法:格式:# 添加firewall-cmd [--zone=zone] --add-rich-rule='rule' [--timeout 9=seconds]# 移除firewall-cmd [--zone=zone] --remove-rich-rule='rule'# 检查是否存在firewall-cmd [--zone=zone] --query-rich-rule='rule'多规则结构:rule [family="<rule family>"][ source address="<address>" [invert="True"] ][ destination address="<address>" [invert="True"] ][ <element> ][ log [prefix="<prefix text>"] [level="<log level>"] [limit value="rate/duration"] ][ audit ][ accept|reject|drop ]多规则命令:source:指定源地址,不支持使用主机名。可以通过增加 invert="true" 或 invert="yes" 来颠倒源地址命令的意思。所有提供的地址都匹配。destination:通过制定目的地址,目标可以被限制在目的地址中。service:服务名称是 firewalld 提供的其中一种服务。可以通过 firewall-cmd --get-services查看。格式: service name=service_nameport: 端口,可为范围或者独立数字 格式:port port=number_or_range protocol=protocolprotocol:协议icmp-block:用这个命令阻绝一个或多个 ICMP 类型,查看支持的icmp类型列表:firewall-cmd --get-icmptypes,格式: icmp-block name=icmptype_namemasquerade:打开规则里的 IP 伪装。用源地址而不是目的地址来把伪装限制在这个区域内。在此,指定一个动作是不被允许的。forward-port:从一个带有指定为 tcp 或 udp 协议的本地端口转发数据包到另一个本地端口,或另一台机器,或另一台机器上的另一个端口.格式:forward-port port=number_or_range protocol=protocol /to-port=number_or_range to-addr=address运行来自主机192.168.1.3的所有IPv4流量firewall-cmd --zone=public --add-rich-rule="rule family='ipv4' source address=192.168.1.3 accept"拒绝来自主机192.168.1.4到22端口的tcp流量firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address=192.168.1.4 port port=22 protocol=tcp reject'允许主机10.1.0.3到80端口的IPv4的TCP流量,并转发到65530端口上firewall-cmd --zone=public --add-rich-rule 'rule family=ipv4 source address=10.1.0.3 forward-port port=80 protocol=tcp to-port=65530'

<h1 ID="firewall防火墙">firewall防火墙
<h2 ID="防火墙简介">1 防火墙简介

在基于RHEL7的服务器,提供了一个firewall的动态管理的防火墙,其支持IPv4和IPv6,还支持以太网桥,并有分离运行时间和永久性配置选择。它还具备一个通向服务或者应用程序以直接增加防火墙规则的接口。

firewall的配置文件:/etc/lib/firewalld//etc/firewalld/下的XML文件。配置firewall可以直接编辑配置文件,也可以使用firewall-cmd命令行工具。

查看firewalld的状态
firewall-cmd --state
查看活动分区类别
firewall-cmd --get-active-zones
查看当前分配的接口
firewall-cmd --get-zone-of-interface=ens33
查看分配的区域的所有接口:
firewall-cmd --zone=public --List-interfaces
找出公共区域的所有设置
firewall-cmd --zone=public --List-allfirewall-cmd --List-all
关闭|开启所有的输入和输出的数据包(禁用)
# 关闭所有输入输出的数据包firewall-cmd --panic-on# 开启再次输入输出的数据包firewall-cmd --panic-off# 查看panic模式的状态(yes启用 no退出)firewall-cmd --query-panic
重新加载防火墙
# 重新加载防火墙,不中断用户连接(不丢失状态信息)firewall-cmd --reload# 重新加载防火墙并中断用户连接(丢失状态信息),防火墙出现严重问题才执行firewall-cmd --complete-reload
为分区增加接口
# 把em1增加到公共分区,增加--permanent选择并重新加载防火墙,是之永久生效firewall-cmd --zone=public --add-interface=em1
设置分区(将一个端口加入分区)
# 设置默认分区,立即生效,不需要重新加载防火墙firewall-cmd --set-default-zone=public# 将一个端口加入分区firewall-cmd --zone=public --permanent --add-port=8080/tcpfirewall-cmd --reload# 查看开发的端口firewall-cmd --zone=public --List-ports# 删除firewll-cmd --zone=pubic --remove --remove-port=8080/tcp
将一个服务(http)加入到分区
# 加入firewall-cmd --permanent --zone=work --add-service=httpfirewall-cmd --reload# 移除firewall-cmd --permanent  --zone=work --remove-service=httpfirewall-cmd --reload# 注意,这并不会中断已经建立的连接。如果您打算中断,您可以使用 --complete-reload 选项,但这不仅仅中断您已经移除的服务,还会中断所有已经建立的连接。
配置伪装 IP 地址
# 查询是否可用firewall-cmd --zone=external --query-masquerade# 允许伪装IPfirewall-cmd --zone=external --add-masquerade# 禁用伪装IPfirewall-cmd --zone=external --remove-masquerade
配置端口转发,地址转发
# 将22端口转发到3753端口,使用tcp协议firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=3753# 原本发往22端口的程序包现在被转发到地址是192.0.2.55下相同的端口firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.0.2.55# 将22端口的数据包转发到192.0.2.55下的2055端口firewall-cmd --zone=external /      --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.0.2.55
使用直接接口增加一个自定义规则
# 增加一个自定义规则到 “IN_public_allow” 链里: firewall-cmd --direct --add-rule ipv4 filter IN_public_allow \      0 -m tcp -p tcp --dport 666 -j ACCEPT# 从 “IN_public_allow” 链移除一个自定义规则:firewall-cmd --direct --remove-rule ipv4 filter IN_public_allow \      0 -m tcp -p tcp --dport 666 -j ACCEPT# 列出 “IN_public_allow” 链中的规则:firewall-cmd --direct --get-rules ipv4 filter IN_public_allow
配置rich language语法:
格式:
# 添加firewall-cmd [--zone=zone] --add-rich-rule='rule' [--timeout 9=seconds]# 移除firewall-cmd [--zone=zone] --remove-rich-rule='rule'# 检查是否存在firewall-cmd [--zone=zone] --query-rich-rule='rule'

多规则结构:

rule [family=""]    [ source address="" [invert="True"] ]    [ destination address="" [invert="True"] ]    [  ]    [ log [prefix=""] [level=""] [limit value="rate/duration"] ]    [ audit ]    [ accept|reject|drop ]

多规则命令:

source:指定源地址,不支持使用主机名。可以通过增加 invert="true" 或 invert="yes" 来颠倒源地址命令的意思。所有提供的地址都匹配。destination:通过制定目的地址,目标可以被限制在目的地址中。service:服务名称是 firewalld 提供的其中一种服务。可以通过 firewall-cmd --get-services查看。格式: service name=service_nameport: 端口,可为范围或者独立数字 格式:port port=number_or_range protocol=protocolprotocol:协议icmp-block:用这个命令阻绝一个或多个 ICMP 类型,查看支持的icmp类型列表:firewall-cmd --get-icmptypes,格式: icmp-block name=icmptype_namemasquerade:打开规则里的 IP 伪装。用源地址而不是目的地址来把伪装限制在这个区域内。在此,指定一个动作是不被允许的。forward-port:从一个带有指定为 tcp 或 udp 协议的本地端口转发数据包到另一个本地端口,或另一台机器,或另一台机器上的另一个端口.格式:forward-port port=number_or_range protocol=protocol /            to-port=number_or_range to-addr=address            

运行来自主机192.168.1.3的所有IPv4流量

firewall-cmd --zone=public --add-rich-rule="rule family='ipv4' source address=192.168.1.3 accept" 

拒绝来自主机192.168.1.4到22端口的tcp流量

firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address=192.168.1.4 port port=22 protocol=tcp reject'

允许主机10.1.0.3到80端口的IPv4的TCP流量,并转发到65530端口上

firewall-cmd --zone=public --add-rich-rule 'rule family=ipv4 source address=10.1.0.3 forward-port port=80 protocol=tcp to-port=65530'
总结

以上是内存溢出为你收集整理的firewall防火墙全部内容,希望文章能够帮你解决firewall防火墙所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1050571.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存