Vincent1
@Vincent1

Почему apache с mod_remoteip не может определить корректно некоторые ip?

На сервере апач работает за nginx. В апаче работает модуль mod_remoteip . Обычно в настройках логирования апача у меня такой конфиг:
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

Сейчас меня досят. Я баню ip, которые беру из %{X-Forwarded-For}i. Но это помогает не всегда т.к. я вижу, что правлило есть в iptables, но запросы все-равно идут валом с забаненых ip.
сменил конфиг на
LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

И еще добавилась проблема. Есть куча запросов вот такого вида:
95.216.144.51 - - [07/Mar/2022:18:13:43 +0300] "-" 408 0 "-" "-"
95.216.144.51 - - [07/Mar/2022:18:13:43 +0300] "-" 408 0 "-" "-"
95.216.144.51 - - [07/Mar/2022:18:13:43 +0300] "-" 408 0 "-" "-"
95.216.144.51 - - [07/Mar/2022:18:13:44 +0300] "-" 408 0 "-" "-"
95.216.144.51 - - [07/Mar/2022:18:13:44 +0300] "-" 408 0 "-" "-"
95.216.144.51 - - [07/Mar/2022:18:13:44 +0300] "-" 408 0 "-" "-"

95.216.144.51 - ip моего сервака.

nginx для хоста
spoiler
server {
    listen      95.216.144.51:80;
    server_name vincent1.ru www.vincent1.ru;
    error_log  /var/log/apache2/domains/vincent1.ru.error.log error;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_pass      http://95.216.144.51:8080;
        location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|tif|tiff|css|js|htm|html|ttf|otf|webp|woff|txt|csv|rtf|doc|docx|xls|xlsx|ppt|pptx|odf|odp|ods|odt|pdf|psd|ai|eot|eps|ps|zip|tar|tgz|gz|rar|bz2|7z|aac|m4a|mp3|mp4|ogg|wav|wma|3gp|avi|flv|m4v|mkv|mov|mpeg|mpg|wmv|exe|iso|dmg|swf)$ {
            root           /home/vincent1/web/vincent1.ru/public_html;
            access_log     /var/log/apache2/domains/vincent1.ru.log combined;
            access_log     /var/log/apache2/domains/vincent1.ru.bytes bytes;
            expires        max;
            try_files      $uri @fallback;
        }
    }

    location /error/ {
        alias   /home/vincent1/web/vincent1.ru/document_errors/;
    }

    location @fallback {
        proxy_pass      http://95.216.144.51:8080;
    }

    location ~ /\.ht    {return 404;}
    location ~ /\.svn/  {return 404;}
    location ~ /\.git/  {return 404;}
    location ~ /\.hg/   {return 404;}
    location ~ /\.bzr/  {return 404;}

    include /home/vincent1/conf/web/nginx.vincent1.ru.conf*;
}


если посмотреть netstat -antu, то я вижу тыcячи коннектов к своему серваку по 80 порту с одного ip, но этого ip нет нигде в логах апача. Почему?
spoiler
tcp        0      0 95.216.144.51:80        137.184.238.68:57500    FIN_WAIT2
tcp        0      0 95.216.144.51:80        143.110.229.58:42830    FIN_WAIT2
tcp        0      0 95.216.144.51:80        141.101.77.138:56758    TIME_WAIT
tcp        0      0 95.216.144.51:80        137.184.238.68:40584    FIN_WAIT2
tcp        0      0 95.216.144.51:80        137.184.238.68:38354    FIN_WAIT2
tcp        0      0 95.216.144.51:80        137.184.238.68:42348    FIN_WAIT2
tcp        0      0 95.216.144.51:80        137.184.238.68:33604    FIN_WAIT2
tcp        0      0 95.216.144.51:80        137.184.238.68:33094    FIN_WAIT2

Как настроить все так, чтобы я мог видеть ip всех злодеев у себя в логах апача?
  • Вопрос задан
  • 89 просмотров
Пригласить эксперта
Ответы на вопрос 2
@dodo512
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass      http://95.216.144.51:8080;

Тут есть X-Forwarded-For, а в location @fallback ничего нет.
location @fallback {
    proxy_pass      http://95.216.144.51:8080;
}
Ответ написан
karabanov
@karabanov
Системный администратор
В секцию server добавь set_real_ip_from
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы