From b7c9ff1c68a6e77bfa8149620b1a3fd1864a0811 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20P=C4=99dzich?= Date: Tue, 30 Jul 2024 17:37:51 +0200 Subject: [PATCH] Send the message only once to let fail2ban do its thing --- index.mjs | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/index.mjs b/index.mjs index 369cbf6..b4e2d8d 100644 --- a/index.mjs +++ b/index.mjs @@ -10,22 +10,17 @@ const randomDelay = () => Math.floor(Math.random() * delayDiff + minDelay); const server = createServer((req, res) => { const connOpenDate = new Date(); const dateText = connOpenDate.toLocaleString('pl'); - const attacker = req.headers['x-forwarded-for']; + const scannerIP = req.headers['x-forwarded-for']; const host = req.headers['x-forwarded-host']; const endpoint = `${req.method} ${req.url}`; let charIdx = 0; - console.log(`[${dateText}] ${attacker} targeted ${host} on ${endpoint}`); + console.log(`[${dateText}] ${scannerIP} targeted ${host} on ${endpoint}`); const hang = () => { if (res.closed) return; - - if (charIdx === msg.length) { - charIdx = 0; - res.write('\n'); - } else { - res.write(msg[charIdx++]); - } + else if (charIdx === msg.length) res.end('\n'); + else res.write(msg[charIdx++]); setTimeout(hang, randomDelay()); }; @@ -36,11 +31,12 @@ const server = createServer((req, res) => { const connCloseDate = new Date(); const timeDiff = connCloseDate.getTime() - connOpenDate.getTime(); const dateText = connCloseDate.toLocaleString('pl'); - const diffText = new Date(timeDiff).toISOString().substring(11, 19); + const diffText = new Date(timeDiff).toISOString().substring(14, 19); - console.log( - `[${dateText}] ${attacker} aborted connection after ${diffText}` - ); + const hangResult = + charIdx === msg.length ? 'received the message' : 'aborted connection'; + + console.log(`[${dateText}] ${scannerIP} ${hangResult} after ${diffText}`); }); });