我对这个话题的理解遇到了严重的障碍。
短篇小说。
我记录了僵尸网络对具有 500 个域的服务器的访问。例如,许多机器人会查找 WordPress 网站。当我生成 404 时,我会记录下来,我每天会遇到数千个这样的错误。我使用来自 $_SERVER['REMOTE_ADDR'] 的 IP 地址生成了一份主要违规者报告,并希望阻止他们。我知道机器人可以更改它们使用的地址,但我遵循这一原则,即使是安全工具集中最薄弱的环节也可能有所帮助
我的日志中的字段如下
DateStamp、404、我用于进一步分析的标志、URL_String、ServerName Constant、URL、远程 IP 常量、来自 $_SERVER['REMOTE_ADDR'] 的 BAD_IP
Example log report entries
2020-03-02 00:09:24,404,1,Wp-content/plugins,SERVER_NAME,ablog1.com,remote ip,163.172.116.48
2020-03-02 00:09:48,404,1,page,SERVER_NAME,www.abloganother.com,remote ip,5.9.77.102
2020-03-02 00:09:50,404,1,Wp-loginphp/index,SERVER_NAME,athirdblogcom,remote ip,165.227.7.157
I want to generate IPTABLES rules for the worst offenders
Example
iptables -A INPUT -s 163.172.116.48/24 -j DROP
iptables -A INPUT -s 5.9.77.102/24 -j DROP
iptables -A INPUT -s 165.227.7.157/24 -j DROP
斜线 /24 只是猜测。我想知道可以调用哪些 PHP 或其他函数来为给定的 IP 地址生成 CIDR
但是,我无法真正理解 CIDR 的含义。我查看了 iptab 和 ipcalc。我查看了以下工具:http://www.subnet-calculator.com/
我还是很困惑。
我有一个选项是在记录 404 时生成 CDIR,如果我知道如何为 CDIR 编写计算,我只需通过编写一个名为 calc_CDIR($_SERVER['REMOTE_ADDR']); 的函数来计算它。
2)我很乐意使用任何其他计算程序、函数等。
但遗憾的是,我现在还不知道如何验证它。这是一个当我显示 404 时写入日志的片段
if ($log_error)
{
if(!empty($page)) {
$msg1 = date('Y-m-d H:i:s') . ',404,1,'. $page . ',SERVER_NAME,' . $_SERVER['SERVER_NAME'] .',remote ip,' . (string)$_SERVER['REMOTE_ADDR'];
if(!error_log( $msg1. "\n", 3, $The404s)) {
log_message('debug', "error_log failed " . $The404s);
}
} else {
$msg2 = date('Y-m-d H:i:s') . ',404,2,page not set,SERVER_NAME,' . $_SERVER['SERVER_NAME'] . ',remote ip,' . (string)$_SERVER['REMOTE_ADDR'];
if(!error_log( $msg2. "\n", 3, $The404s)) {
log_message('debug', "error_log failed " . $The404s);
}
}
我今年 66 岁,开始在 IBM 大型机上编程。我编写过 UNIX 守护程序和 Windows DLL,但我从未理解过互联网寻址。
我最好的猜测是我可以使用https://www.php.net/manual/en/function.ip2long.php但正如我所说,我不知道如何验证我的结果
您能告诉我的任何事都会很有帮助。
我用 15 分钟编写了第一个程序。我用 3 个小时敲击键盘。我用 5 分钟编写了第一个 BASH 脚本。我用了一天时间才发现必须在脚本前面加上 .(句号)才能执行脚本。