У меня есть случайные IP-адреса, постоянно нацеленные на мой сервер Apache. Пример того, что я записал в свой журнал:
80.108.96.31 - - [18/Aug/2017:16:16:08 +0000] "GET /machine.xml HTTP/1.1" 403 520 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)"
200.163.163.189 - - [18/Aug/2017:16:16:08 +0000] "GET /machine.xml HTTP/1.1" 403 520 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)"
45.51.75.129 - - [18/Aug/2017:16:16:08 +0000] "GET /user.xml HTTP/1.1" 403 517 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)"
83.130.137.207 - - [18/Aug/2017:16:16:08 +0000] "GET /user.xml HTTP/1.1" 403 517 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0C; .NET4.0E)"
180.191.87.191 - - [18/Aug/2017:16:16:08 +0000] "GET /machine.xml HTTP/1.1" 403 520 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3)"
Я реализовал fail2ban для проверки журнала доступа и запрета на год, но в итоге у меня были эти огромные журналы доступа, и диск сервера был заполнен только журналами доступа. Помогите, пожалуйста.
Вероятно, вы захотите установить LogRotate, чтобы журналы были немного аккуратнее.
Fail2Ban может работать для того, что вы пытаетесь сделать, но вам может потребоваться создать несколько подробных фильтров, чтобы получить результаты, которые вы ищете, просто указав Fail2Ban в журнале доступа и установка длительного таймера не поможет вообще.
Также, если вы получаете так много запросов, это, вероятно, распределенная атака, и блокировка одного IP-адреса за раз с помощью Fail2Ban может быть не лучшим подходом, однако, если вы хотите это сделать, я бы специально создал фильтры. для user.xml, machine.xml и для всех, кто создает более нескольких 403-х за определенный период времени.
Возможно, вы захотите создать свои собственные правила брандмауэра и отбросить любой трафик из большей части мира - вы можете найти списки IP-блоков «известных злоумышленников» и просто запретить все эти блоки - вы также можете выполнить поиск в WHOIS IP-адресов, приходящих на вы и вытащите все блоки, из которых они исходят, и начните их блокировать.
Или создайте правило брандмауэра или правило .htaccess, чтобы просто разрешить трафик только из известных мест, которые будут использовать ваш сервер apache.
Но на самом деле ... если это веб-сервер, который должен быть доступен для всех, тогда вы не сможете много сделать, чтобы он сильно пострадал, установите LogRotate, немного расширите свои правила Fail2Ban, если хотите и забудьте об этом, вы никогда не остановите то, что видите полностью, если только объем вашего проекта не позволит вам специально РАЗРЕШИТЬ определенные IP-адреса только для попадания на ваш сервер.