适应不同网络连接的桌面防火墙

servicewall的Python项目详细描述


服务墙

期待什么

ServiceWall是用于笔记本电脑和所有连接到 几个不同的网络。它将丢弃传入的请求,除了那些 你允许的。您允许的每项服务都将被记住:

  • 对于您连接到的网络(领域的规则集),或
  • 对于未注册的网络(默认规则集)

目前默认的规则集是:接受sshDHCP传入 连接。ssh可以从任何地方接受连接,而DHCP可以从任何地方接受连接 仅在本地网络上接受(与您连接到同一网关)。 所有新规则将仅限于此本地网络。

在您更改默认设置之前,它不会记住您连接的网络 规则集。一旦你这样做了,它就会写下网络领域的标识符, 以及默认规则集和您添加的规则。现在当你连接 对于另一个网络,它将把这个已标识的规则放在一边,并尝试找到 新网络的规则集。如果找不到,它会退回到 默认规则集。当您重新连接到标识的网络时,它将 自动恢复你选择的规则(这里的魔法包括一个网络 调度员告诉IT网络变化)。

默认规则集还有一些基本的状态规则:接受ICMP请求, 接受本地主机循环中的所有连接,接受已建立的连接,删除 无效的数据包,并记录任何丢弃的数据包。

什么是not所期望的

此防火墙对传入的通信量起作用;它在服务器上不会很有用 需要转发任何东西。

目前,你不能指望它能让任何车辆从 本地网络域(ssh除外,它是一种“特殊的” 规则)。目前,您既不能更改 命令行;您必须手动编辑/etc/servicewall/realms.json 那。

所以基本上,如果你的设备不是一台笔记本电脑,你可以用它作为个人设备 软件不应该真正安装。

安装

依赖性

必需的依赖项是python 3iptablessystemd,或者 NetworkManagersystemd-networkd已启用。如果你在笔记本电脑上运行Linux, 你应该准备好了。

也需要一些python包,但是如果您使用一个像样的安装 像pip这样的方法,它们应该管理得很好。这些是:

  • 可选:python-argcomplete
  • 构建时间:python-setuptools
  • python-iptables
  • python-netifaces
  • python-argparse

您可能真的希望命令行有python-argcomplete 完成工作。当你在寻找 允许的服务。

安装

获得所需的依赖项后,请使用以下命令安装包:

# pip install servicewall

对于那些使用arch linux的用户,很快就会有一个pkgbuild脚本。 进入奥尔。试试看!

用法

默认情况下防火墙被禁用。现在启用,并在启动时启用:

# braise enable

(您确实得到了相应的disable)。一旦启动,默认 行为是除去来自任何地方和 DHCP来自本地网络。所有的外出都是允许的。

要了解状态的详细信息,请使用:

# braise status

servicewall使用由jhansonxi提供的服务定义。它们将服务链接到端口 需要。要允许特定服务,请执行以下操作:

# braise allow service "Service Name"

它将把这个服务添加到这个领域的定义中。如果你连接到 在另一个地方上网,这个地方的规则将被搁置,并且 当你再次连接到它时被带回来。你可以搬回去 braise disallow service ...

不知道您要允许的服务的确切名称是什么?你需要 收件人:

# braise show services

名单很长。一旦你想要一个 服务,请执行

# braise show service "Service Name"
如果您想知道哪些服务使用端口80,请执行

# braise show port 80

这些规则与一个字符串一起存储,该字符串标识您所在的网络 连接到,在名为realm_defs的字典中。要询问,请执行:

# braise show realms

最后,防火墙记录掉的所有内容;有一个日志处理器 包括工具;请使用

# braise show logs

# braise show logs since NUMBER_OF_SECONDS

版权所有

此软件受GNU版本3的版权保护 执照。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Spark sample()函数是否复制数据?   java如何在API中返回单例列表?   java我可以生成提供输入/输出的哈希函数吗?   如何“使用MATLAB或JAVA”从文本文件中读取数字并将其保存在数组中?   java如何将十进制转换为十六进制?   JavaPostXML文件   java XStream如何在XML中不存在带注释的字段时引发异常   java Tomcat启动批处理问题   java AccessControlException与同一代码库中的小程序类   java如何将长本地时间戳转换为字符串UTC时间戳   java在同一个JavaVM中有多个沙盒   改进LDAP的Java代码   拖放后未附加到DOM的java元素   java通过socket发送压缩数据