Skip to main content

UFW 的 Python 包装器

项目描述

pyufw

UFW(简单防火墙)的 python 包装器,iptables 的包装器。

安装

pyufw 可从 PyPi 获得。您可以使用 pip 下载它:

$ pip3 install pyufw

还要确保安装了ufw。根据您的发行版,包可能被命名为ufwpython-ufw.

文档

您的脚本必须以 root 权限运行。导入模块后,ufw 安全检查将开始,您可能会看到一些警告消息。将开始以下检查:

  • 是 setuid 或 setgid(对于非 Linux 系统)
  • 检查脚本是否由 root 拥有
  • 检查绝对路径中的每个组件是否都归 root 所有
  • 如果脚本是组可写的,则发出警告
  • 如果脚本路径的一部分是组可写的,则发出警告
import pyufw as ufw

启用防火墙

启用 ufw 防火墙并在启动时启用。

ufw.enable()

禁用防火墙

禁用 ufw 防火墙并在启动时禁用。

ufw.disable()

重置防火墙

将防火墙返回到它的安装默认值。incoming=deny, outgoing=allow, routed=reject
默认规则是:

  • allow SSH
  • allow to 224.0.0.251 app mDNS
ufw.reset()

获取状态

返回一个字典。状态为'active''inactive'。如果防火墙处于活动状态,还将包括默认策略和规则列表。

ufw.status()
{ 
   'status':'active',
   'default':{ 
      'incoming':'deny',
      'outgoing':'allow',
      'routed':'reject'
   },
   'rules':{ 
      1:'allow out on tun0',
      2:'allow in on tun0'
   }
}
{
    'status': 'inactive'
}

设置默认值

为 和incoming设置默认策略。可供选择的策略是和。outgoingroutedallowdenyreject

ufw.default(incoming='deny', outgoing='allow', routed='reject')

添加规则

添加或插入规则。要插入规则,您可以指定规则编号,但这是可选的。
查看man ufw规则语法。
返回添加的原始 iptables 规则(如果您感兴趣)

ufw.add("allow 22")
ufw.add("allow 22", number=3)
"allow -p all --dport 22 -j ACCEPT both"

删除规则

删除规则。您可以指定规则本身、规则编号或*删除所有规则的字符串。

ufw.delete("allow 22")
ufw.delete(3)
ufw.delete('*')

获取规则

获取当前规则的列表。返回一个以规则编号为索引的字典。

ufw.get_rules()
{ 
   1:'allow out on tun0',
   2:'allow in on tun0',
   3:'allow 22'
}

显示收听

返回一组侦听端口、应用程序和适用的规则。
数组包含一系列具有以下结构的元组:
(str transport, str listen_address, int listen_port, str application, dict rules)

ufw.show_listening()
[
    ('tcp', '*', '22', 'openssh', {
        3: 'allow 22'
    }), 
    ('tcp', '*', '57621', 'spotify', {}), 
    ('udp', '*', '1900', 'spotify', {}), 
    ('udp', '224.0.0.251', '5353', 'chrome', {}), 
    ('udp', '224.0.0.251', '5353', 'chrome', {}), 
    ('udp', '*', '68', 'dhclient', {})
]

设置日志记录

设置 ufw 日志记录级别。选择:'on', 'off', 'low', 'medium', 'high', 'full'。查看man ufw有关日志记录的更多信息。

ufw.set_logging('on')

获取原始 iptables 输出

以下资源镜像 ufw cli 命令并返回相同的未格式化字符串输出。也许对调试更有用。

ufw.show_raw()
ufw.show_builtins()
ufw.show_before_rules()
ufw.show_user_rules()
ufw.show_logging_rules()

类似的酷项目

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pyufw-0.0.3.tar.gz (5.1 kB 查看哈希

已上传 source

内置分布

pyufw-0.0.3-py3-none-any.whl (6.0 kB 查看哈希

已上传 py3