我正在运行 Debian 服务器,其中装有 PHP5、Apache 2.2.16 和 PHPMyAdmin(我不知道如何检查版本号)、Logcheck 和一些其他程序。
今天 Logcheck 开始附加多行这样的内容,我不知道如何阻止它们
Feb 12 15:08:03 mail suhosin[5538]: ALERT - tried to register forbidden variable '_SESSION[ConfigFile][Servers][*/foreach($_GET as $k=>$v)if($k==="eval")eval($v);/*][port]' through GET variables (attacker '64.34.176.50', file '/usr/share/phpmyadmin/index.php')
Feb 12 15:08:03 mail suhosin[3131]: ALERT - tried to register forbidden variable '_SESSION[ConfigFile][Servers][*/foreach($_GET as $k=>$v)if($k==="eval")eval($v);/*][port]' through GET variables (attacker '64.34.176.50', file '/usr/share/phpmyadmin/index.php')
Feb 12 15:08:04 mail suhosin[5548]: ALERT - tried to register forbidden variable '_SESSION[!bla]' through GET variables (attacker '64.34.176.50', file '/usr/share/phpmyadmin/index.php')
Feb 12 15:08:04 mail suhosin[3130]: ALERT - tried to register forbidden variable '_SESSION[!bla]' through GET variables (attacker '64.34.176.50', file '/usr/share/phpmyadmin/index.php')
我应该使用 IPTables 来阻止 IP 吗?或者如何使用?
如果我要使用 IPTables,我应该如何插入行?
答案1
仅使用 IPtables 来阻止这种情况将是徒劳的,因为 PHPMyAdmin 对攻击者来说是一个非常有吸引力的目标,并且您会从其他地址收到其他尝试。
您有以下选项(按可靠性排序):
- 清除 PHPMyAdmin 这个不安全的垃圾并将其从您的系统中删除。
- 如果不可能的话,请使用 Apache 配置中的以下一种或多种方法(站点配置文件或 PHPMyAdmin 目录中的 .htaccess)限制对它的访问:
- 限制对已知网络的访问,或者更好的是仅限制本地主机的访问,并使用 SSH 端口转发来访问它。
- 使用 SSL 密钥对限制访问。这种方法非常安全,但设置起来并不容易。
- 使用 HTTP 基本身份验证通过附加密码限制对 PHPMyAdmins 目录的访问。
- 使用类似 Fail2Ban 的工具来动态阻止攻击者的 IP 地址。
如果我有一个人需求PHPMyAdmin 并且懒得学习使用其他工具,我通常在用户的机器上本地安装它,并将其配置为通过 SSH 端口转发使用 MySQL,然后让用户轻松建立隧道。