Python 到 IPTables 最安全的更改方式

Python 到 IPTables 最安全的更改方式

有谁知道从 Python 更改 IPTables 最安全的方法是什么?

对于一个学校项目,我们正在构建一个简单的强制门户。当用户在门户上通过身份验证(通过 python 和 mariadb)时,python 会向 IPTables 发送命令以授予其 IP 访问权限。

但执行此操作的最佳方法是什么?我确信这不是通过将确切的命令放入 Python 中来实现的。是通过运行shell脚本吗?但是如何才能在 shell 脚本中发送他们的 IP 地址呢?

答案1

你可以这样做:

import subprocess

ip = get_ip() # you have to create the code to fetch IP in this variable
subprocess.run(["/usr/sbin/iptables", "-A", "-p", "tcp", "-s", ip, "-j", "ACCEPT"])
#                                                               ^
#                                                               |
#                                                      This is a variable

答案2

您可以像 Gilles 提到的那样运行 shell 命令,也可以使用类似的库python iptables

另外,使用 ipset 对于此类任务更加方便。

创建 ipset 如下

ipset create allowed_list hash:ip

iptables 规则就像

iptables -A INPUT -m set --match-set allowed_list src -j ACCEPT

添加/删除 IP 地址

ipset add allowed_list 10.0.0.1
ipset del allowed_list 10.0.0.2

相关内容