Закроем доступ к файлам, которые могут вызывать повышенный интерес:

        location ~ /.svn/ {
           deny all;
        }

Можно разрешить/запретить доступ к файлам лишь с определенных ip-адресов, используя директивы allow и deny:

  location /server-status {
      allow 111.111.111.111;
      allow 11.11.11.11;
            deny all;
  }

Также для разграничения доступа к файлам можно использовать директивы auth_basic и auth_basic_user_file — в этом случае пользователю необходимо будет ввести логин/пароль для доступа:

  location /admin/ {
      auth_basic "Enter password to access";
      auth_basic_user_file /etc/nginx/basic.auth;
  }

Также можно комбинировать эти два способа:

  location /admin/ {
      satisfy any;
      allow 111.111.111.111;
      allow 11.11.11.11;
      deny  all;

      auth_basic "Enter password to access";
      auth_basic_user_file /etc/nginx/basic.auth;
  }

Защититься от запросов к несуществующим файлам на Nginx можно так:

        location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
           try_files $uri =404;
        }

После перезапускаем Nginx одной из команд:

systemctl reload nginx  
service nginx reload  

В зависимости от определенного IP-адреса Nginx может выполнять такие действия, как перенаправление:

location / {  

    if ($remote_addr != 111.111.111.111) {
        return 301 https://$host$request_uri;
    }

}
  • в данном примере мы перенаправляем всех посетителей по пути https://$host$request_uri, кроме запросов с IP-адреса 111.111.111.111.

Защиту от перебора паролей можно организовать c использованием iptables:

Блокирование IP на время, если количество запросов в секунду превышает какое-либо разумное количество

iptables -A INPUT -p tcp --syn --dport 80 -i eth0 -m state --state NEW  
            -m recent --name bhttp --set
iptables -A INPUT -p tcp --syn --dport 80 -i eth0 -m state --state NEW  
            -m recent --name bhttp --update --seconds 120
            --hitcount 360 -j DROP
iptables -A INPUT -p tcp --syn --dport 80 -i eth0 -j ACCEPT  
Обновлено 17 августа 2018 г.