仅为选定的应用程序限制网络

仅为选定的应用程序限制网络

在 Linux 环境中是否可以限制仅在选定的应用程序上使用网络?

可以这么说,我的移动调制解调器上的预付费数据限制非常有限,并且我只想使用该数据限制来连接到 SSH。同时限制其他每个应用程序访问网络。

有没有什么解决办法?如果能轻松恢复正常就更好了。

答案1

iptables,Linux 防火墙,可以做到这一点。

iptable -F
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

请记住不要通过远程 SSH 会话执行此操作。

第一条规则将刷新现有的防火墙规则,第二条和第三条分别阻止传入和传出流量。第四条规则阻止 FORWARD,但这可能与您无关。然后,您可以按如下方式添加要允许的流量条目。

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

您尚未指定 Linux 版本,但您可以在命令行中执行这些命令,然后使用 iptables-save 保存配置。或者,您可以编辑/etc/sysconfig/iptables(在基于 RHEL 的发行版上,可能在其他发行版上?)并保存这些命令(减去 iptables 前缀,即-A INPUT -p tcp --dport 22 -j ACCEPT),然后使用 iptables-restore 加载它们。

答案2

您可以使用以下规则保护更多或限制 ssh 连接。以下规则仅允许来自 192.168.100.X 网络的传入 ssh 连接。

iptables -A 输入 -i eth0 -p tcp -s 192.168.100.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j 接受 iptables -A 输出 -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j 接受

相关内容