【发布时间】:2021-04-13 18:05:08
【问题描述】:
我正在寻找将 IP 地址自动列入iptables 的最佳方法。 ip 地址和端口列表来自一个 JSON 文件/accept-rules.json,其格式如下:
[
{
"ip": "1.2.3.4",
"cidr": 32,
"protocol": "tcp",
"port": 3306
},
{
"ip": "2.4.5.6",
"cidr": 32,
"protocol": "tcp",
"port": 80
},
{
"ip": "5.6.7.8",
"cidr": 32,
"protocol": "tcp",
"port": 443
},
{
"ip": "6.8.3.1",
"cidr": 32,
"protocol": "tcp",
"port": 53
}
]
我需要一个 bash 或 python 脚本来读取 json 文件并创建 ACCEPT iptables 规则。基于上述json 的示例ACCEPT 规则应如下所示:
iptables -A INPUT -s 1.2.3.4/32 -p tcp -m tcp --dport 3306 -j ACCEPT
iptables -A INPUT -s 2.4.5.6/32 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -s 5.6.7.8/32 -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -s 6.8.3.1/32 -p tcp -m tcp --dport 53 -j ACCEPT
知道最好的编码方式吗?
【问题讨论】:
-
为什么选择 Bash?这将更容易用 Python 或 Perl 或任何其他支持 JSON 的语言编写代码。
-
你真的希望它出现在 bash 中吗?
-
bash是最好的,但同意,Python 可能是最适合的。 Python 很好。