适应不同网络连接的桌面防火墙
servicewall的Python项目详细描述
服务墙
期待什么
ServiceWall是用于笔记本电脑和所有连接到 几个不同的网络。它将丢弃传入的请求,除了那些 你允许的。您允许的每项服务都将被记住:
- 对于您连接到的网络(领域的规则集),或
- 对于未注册的网络(默认规则集)
目前默认的规则集是:接受ssh
和DHCP
传入
连接。ssh
可以从任何地方接受连接,而DHCP
可以从任何地方接受连接
仅在本地网络上接受(与您连接到同一网关)。
所有新规则将仅限于此本地网络。
在您更改默认设置之前,它不会记住您连接的网络 规则集。一旦你这样做了,它就会写下网络领域的标识符, 以及默认规则集和您添加的规则。现在当你连接 对于另一个网络,它将把这个已标识的规则放在一边,并尝试找到 新网络的规则集。如果找不到,它会退回到 默认规则集。当您重新连接到标识的网络时,它将 自动恢复你选择的规则(这里的魔法包括一个网络 调度员告诉IT网络变化)。
默认规则集还有一些基本的状态规则:接受ICMP请求, 接受本地主机循环中的所有连接,接受已建立的连接,删除 无效的数据包,并记录任何丢弃的数据包。
什么是not所期望的
此防火墙对传入的通信量起作用;它在服务器上不会很有用 需要转发任何东西。
目前,你不能指望它能让任何车辆从 本地网络域(ssh除外,它是一种“特殊的” 规则)。目前,您既不能更改 命令行;您必须手动编辑/etc/servicewall/realms.json 那。
所以基本上,如果你的设备不是一台笔记本电脑,你可以用它作为个人设备 软件不应该真正安装。
安装
依赖性
必需的依赖项是python 3
、iptables
、systemd
,或者
NetworkManager
或systemd-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的版权保护 执照。