python编写网络防火墙_firewall防火墙

python编写网络防火墙_firewall防火墙firewall防火墙1防火墙简介在基于RHEL7的服务器,提供了一个firewall的动态管理的防火墙,其支持IPv4和IPv6,还支持以太网桥,并有分离运行时间和永久性配置选择。它还具备一个通向服务或者应用程序以直接增加防火墙规则的接口。2简单介绍firewall的配置文件:/etc/lib/firewalld/和/etc/firewalld/下的XML文件。配置firewall可以直接编…

大家好,欢迎来到IT知识分享网。python编写网络防火墙_firewall防火墙

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-all

firewall-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/tcp

firewall-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=http

firewall-cmd –reload

# 移除

firewall-cmd –permanent –zone=work –remove-service=http

firewall-cmd –reload

# 注意,这并不会中断已经建立的连接。如果您打算中断,您可以使用 –complete-reload 选项,但这不仅仅中断您已经移除的服务,还会中断所有已经建立的连接。

配置伪装 IP 地址

# 查询是否可用

firewall-cmd –zone=external –query-masquerade

# 允许伪装IP

firewall-cmd –zone=external –add-masquerade

# 禁用伪装IP

firewall-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_name

port: 端口,可为范围或者独立数字 格式:port port=number_or_range protocol=protocol

protocol:协议

icmp-block:用这个命令阻绝一个或多个 ICMP 类型,查看支持的icmp类型列表:firewall-cmd –get-icmptypes,格式: icmp-block name=icmptype_name

masquerade:打开规则里的 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’

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/23022.html

(0)
上一篇 2023-12-16 22:45
下一篇 2023-12-18 11:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信