我需要支持人员能够通过 Web 打开防火墙漏洞。我知道这是权限噩梦,但我不得不这么做。我已经创建了一个可以做到这一点的 perl 程序,但是当我通过 Web 从 apache 运行的 perl 脚本运行 iptables-restore 命令时,我得到了
FATAL: Module ip_tables not found. ...
iptables-restore v1.4.3.1:
iptables-restore: unable to initialize table 'filter' ...
我在这个机器上一直使用 iptables,但显然不需要 ip_tables 模块。如果我以 root 身份从控制台运行相同的脚本,则不会出现问题。任何帮助都值得感激。
答案1
我建议使用 lighthttpd 或类似程序运行 perl 脚本,该脚本将设置为以 root 而不是 apache 身份运行,并且监听非标准端口(如 12345)。
以下是使用 perl 配置 lighthttpd 的方法: http://www.cyberciti.biz/tips/lighttpd-howto-setup-cgi-bin-access-for-perl-programs.html
另外,不要忘记在 lighthttpd 中注释掉 server.username 和 server.groupname。
为了获得更好的安全性,最好至少引入 http 身份验证并限制可以访问该端口的 IP。
答案2
我将为此部署 WebMin。