要使用Python脚本自动化管理Linux防火墙规则,你可以使用firewalld
库(如果你的系统使用的是Firewalld)或者直接使用iptables
命令
首先,确保你已经安装了firewalld
库。在基于Debian的系统上,可以使用以下命令安装:
sudo apt-get install python3-firewall
然后,创建一个名为firewall_manager.py
的Python脚本,并添加以下内容:
import firewalld
# 连接到firewalld服务
fw = firewalld.Firewall()
# 获取当前运行状态
status = fw.getStatus()
print("Firewalld status:", status)
# 添加一个新的区域(例如,名为'myzone'的区域)
new_zone = "myzone"
if not fw.zoneExists(new_zone):
fw.newZone(new_zone, {"target": "ACCEPT", "icmp-block-inversion": "no"})
print(f"New zone '{new_zone}' created.")
else:
print(f"Zone '{new_zone}' already exists.")
# 将新区域设置为默认区域
fw.setDefaultZone(new_zone)
print(f"Default zone set to '{new_zone}'.")
# 向新区域添加一条规则,允许来自IP地址192.168.1.100的SSH流量
source_ip = "192.168.1.100"
service = "ssh"
fw.addRichRule(f"rule family=ipv4 source address={source_ip} service name={service} accept", new_zone)
print(f"Added rule to allow SSH traffic from {source_ip}.")
# 重新加载防火墙配置
fw.reload()
print("Firewalld configuration reloaded.")
这个脚本首先连接到firewalld服务,然后检查并创建一个新的防火墙区域(如果不存在)。接着,将新区域设置为默认区域,并向其中添加一条规则,允许来自指定IP地址的SSH流量。最后,重新加载防火墙配置以应用更改。
要运行此脚本,请在终端中输入以下命令:
sudo python3 firewall_manager.py
注意:这个示例仅适用于使用Firewalld的Linux发行版。如果你的系统使用的是iptables,你需要使用subprocess
模块来执行相应的命令。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。