بِلاکر بَلایا


پیمان مسئول DevOps یک سایت شده که چند کاربر بَلا دارد که ریکوئست‌های زیادی می‌زنند و پیمان می‌خواهد آن‌ها را بلاک کند.

به پیمان کمک کنید از روی فایل لاگ nginx بتواند آن دسته از IPهایی که بیشتر از n ریکوئست در دقیقه زده‌اند را با استفاده از iptables بلاک کند. او برای این کار یک اسکریپت bash نیاز دارد که argumentهای آدرس فایل لاگ و عدد n را دریافت کند.

برای دانلود پروژه‌ی اولیه روی این لینک کلیک کنید.

نکات تکمیلی🔗

۱. نمونه لاگ nginx که در داوری استفاده می‌شود در فایل nginx_logs_sample در پروژه‌ی اولیه ( این لینک ) قرار دارد. بخشی از این لاگ نمونه:

148.251.49.20 - - [20/May/2021:19:05:24 +0000] "GET /downloads/product_2 HTTP/1.1" 200 931 "-" "Wget/1.13.4 (linux-gnu)"
104.131.19.181 - - [20/May/2021:19:05:31 +0000] "GET /downloads/product_1 HTTP/1.1" 404 328 "-" "Debian APT-HTTP/1.3 (1.0.1ubuntu2)"
37.16.72.129 - - [20/May/2021:19:05:25 +0000] "GET /downloads/product_1 HTTP/1.1" 304 0 "-" "Debian APT-HTTP/1.3 (0.8.10.3)"
37.16.72.129 - - [20/May/2021:19:05:01 +0000] "GET /downloads/product_1 HTTP/1.1" 404 340 "-" "Debian APT-HTTP/1.3 (0.8.10.3)"
37.16.72.129 - - [20/May/2021:19:05:41 +0000] "GET /downloads/product_1 HTTP/1.1" 404 337 "-" "Debian APT-HTTP/1.3 (0.8.10.3)"
Plain text

۲. برای نمونه اسکریپتی که شما می‌نویسید با دستور زیر اجرا و داوری خواهد شد:

bash blocker.sh nginx_logs_sample 7
Shell

پس از اجرای دستور فوق با فایل لاگ نمونه که در پروژه اولیه در اختیارتان است، باید IP های زیر در iptables بلاک شوند:

129.67.24.6
130.199.3.165
137.117.180.46
137.117.183.81
137.117.184.211
137.117.184.219
148.251.112.153
148.251.23.199
173.255.243.139
174.103.128.249
178.62.213.239
180.179.174.219
185.20.227.198
186.67.186.2
192.133.141.142
193.84.27.10
200.28.3.2
200.28.3.3
209.177.145.225
216.46.173.126
217.168.17.5
50.57.209.100
54.144.73.8
54.165.189.135
54.172.110.13
54.172.164.189
54.173.226.7
54.194.93.59
54.213.131.92
54.244.94.5
54.77.28.244
54.84.191.5
5.63.153.125
5.63.157.73
65.39.197.164
72.32.152.84
74.125.60.158
80.91.33.133
84.208.15.12
85.21.237.138
89.191.68.234
94.236.106.132
94.242.57.74
94.242.58.153
94.242.58.216
Plain text

نحوه ارسال پاسخ🔗

شما تنها مجاز به ارسال فایل blocker.sh هستید.

extensionFromNameblocker.sh
#!/bin/bash

log_path=$1
n=$2

# TODO: Block IPs with more than n request per minute by iptables
Bash
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.