如何在Ubuntu中安装OpenSnitch应用程序级防火墙

OpenSnitch 是用于MacOS的Little Snitch防火墙应用程序的Linux端口,目前被认为是beta软件。[[Later edit]]最初的OpenSnitch已被废弃,目前正在开发具有改进和错误修复的fork,因此我建议使用fork而不是未维护的项目。有关详细信息,请参见本文。
如果您正在寻找GUI附带的Linux应用程序级防火墙,请尝试一下OpenSnitch。此防火墙软件可以监视系统上运行的应用程序,阻止它们的Internet访问,直到您允许或拒绝它为止。
这是OpenSnitch的工作方式。当应用程序尝试访问Internet时,它最初被阻止,并显示一个对话框,询问您是否要允许一次,此会话或永久连接:

您还可以通过将第一个下拉列表从“允许连接”更改为“阻止连接”来阻止其访问,并以相同的方式选择持续时间(一次,一次或多次)。
从上面的屏幕快照中可以看到,提供了多种信息,例如应用程序尝试连接的域,源IP和目标IP或进程ID。
通过其托盘图标,您可以访问OpenSnitch网络统计信息,该统计信息显示有关当前进程,主机,地址,端口或用户的信息,以及当前连接的一般概述:OpenSnitch Linux应用防火墙

尽管该应用程序带有Qt图形用户界面,但也可以从命令行使用它。有关如何为OpenSnitch指定自定义规则的信息,请参阅 这个 页面。
允许或拒绝应用程序连接到Internet后,至少在目前情况下,没有GUI可以更改此设置,但是至少可以通过更改(删除或修改)规则文件来重置规则。在/ etc / opensnitchd / rules目录中(安装并运行一次OpenSnitch之后)。
OpenSnitch仍处于beta版本,因此缺乏一些功能。目前,OpenSnitch守护程序仅拦截和管理传出连接,但计划对传入连接进行支持.OpenSnitch并未为大多数Linux发行版打包(我找不到任何软件包用于Debian / Ubuntu / Linux Mint)。要下载OpenSnitch源码并查看如何安装,请查看 这个 页面。
正式提供的针对Ubuntu的OpenSnitch安装说明有点不完整,因此我在下面写了一个操作方法。

如何在Ubuntu或Linux Mint中安装OpenSnitch应用程序级防火墙

以下指南要求使用Ubuntu 18.04、18.10、19.04或19.04(或更高版本)。我没有设法在Ubuntu 16.04中构建它。这些步骤也应在Linux Mint 19上运行。*,基本OS Juno,Pop!_OS 18.04和更高版本,以及其他基于Ubuntu 18.04和更高版本的Linux发行版。
1.对于某些软件包来说,需要Go,并且为了使整个过程正常运行,需要在PATH中添加一些路径。为此,请运行以下命令:

echo "export GOPATH=$HOME/.go" >> ~/.bashrc
echo "export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:$HOME/.local/bin:$HOME/.bin" >> ~/.bashrc
. ~/.bashrc

2.安装OpenSnitch依赖项:

sudo apt install golang-go python3-pip python3-setuptools python3-slugify protobuf-compiler libpcap-dev libnetfilter-queue-dev python-pyqt5 pyqt5-dev pyqt5-dev-tools git

3.开始构建OpenSnitch及其要求:

go get github.com/golang/protobuf/protoc-gen-go
go get -u github.com/golang/dep/cmd/dep
cd $GOPATH/src/github.com/golang/dep
./install.sh
export PATH=$PATH:$GOPATH/bin
python3 -m pip install --user grpcio-tools
go get github.com/evilsocket/opensnitch
cd $GOPATH/src/github.com/evilsocket/opensnitch
make
sudo -H make install

运行go get github.com/evilsocket/opensnitch命令时,您可能会收到一条错误消息,指出未找到Go文件(无法加载程序包:github.com/evilsocket/opensnitch包:…中没有Go文件)忽略此消息,然后继续其余步骤。
上面的最后一个命令使用-H,因为某些PIP命令是由安装文件运行的,并且-H选项将HOME变量设置为目标用户的主目录,因此它不会弄乱某些权限。
4.将OpenSnitch添加到启动并启动其服务(您只需运行一次这些命令):

mkdir -p ~/.config/autostart
cd ui
cp opensnitch_ui.desktop ~/.config/autostart/
sudo systemctl enable opensnitchd
sudo service opensnitchd start

如何删除OpenSnitch

要从Ubuntu / Linux Mint系统中删除OpenSnitch,请使用本指南。这是必需的,因为OpenSnitch是从源代码而不是通过软件包安装的。
停止并禁用opensnitchd服务:

sudo service opensnitchd stop
sudo systemctl disable opensnitchd

删除已安装的OpenSnitch文件:

rm ~/.config/autostart/opensnitch_ui.desktop
rm -rf ~/.go/src/github.com/evilsocket/opensnitch
sudo rm /usr/local/bin/opensnitch-ui
sudo rm /usr/local/bin/opensnitchd
sudo rm -r /etc/opensnitchd
sudo rm -r /usr/local/lib/python3.*/dist-packages/opensnitch_ui*
sudo rm -r /usr/local/lib/python3.*/dist-packages/opensnitch/
sudo rm /etc/systemd/system/opensnitchd.service
sudo rm /etc/systemd/system/multi-user.target.wants/opensnitchd.service
sudo rm /usr/share/applications/opensnitch_ui.desktop
sudo rm /usr/share/kservices5/kcm_opensnitch.desktop
Sidebar