SCROLL
Среднее время на прочтение: 1 мин.

Как запретить прямой IP-доступ к веб-серверу Nginx

Nginx по умолчанию не блокирует доступ к вашему веб-серверу, если он осуществляется напрямую по IP-адресу вашего сервера. Рассмотрим как можно изменить это поведение, чтобы запретить прямой IP-доступ.

JUQwJTk1JUQxJTgxJUQwJUJCJUQwJUI4JTIwJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUIyJUQwJUI4JUQxJTgyJUQxJThDJTIwJUQwJUJGJUQxJTgwJUQxJThGJUQwJUJDJUQwJUJFJUQwJUI5JTIwJUQwJUI0JUQwJUJFJUQxJTgxJUQxJTgyJUQxJTgzJUQwJUJGJTIwJUQwJUJGJUQwJUJFJTIwSVAtJUQwJUIwJUQwJUI0JUQxJTgwJUQwJUI1JUQxJTgxJUQxJTgzJTJDJTIwJUQxJTgyJUQwJUJFJTIwJUQxJThEJUQxJTgyJUQwJUJFJTIwJUQwJUJDJUQwJUJFJUQwJUI2JUQwJUI1JUQxJTgyJTIwJUQwJUJGJUQxJTgwJUQwJUI4JUQwJUIyJUQwJUI1JUQxJTgxJUQxJTgyJUQwJUI4JTIwJUQwJUJBJTIwJUQwJUJEJUQwJUI1JUQwJUI2JUQwJUI1JUQwJUJCJUQwJUIwJUQxJTgyJUQwJUI1JUQwJUJCJUQxJThDJUQwJUJEJUQwJUJFJUQwJUJDJUQxJTgzJTIwJUQwJUI0JUQwJUJFJUQxJTgxJUQxJTgyJUQxJTgzJUQwJUJGJUQxJTgzJTIwJUQxJTgxJUQwJUJFJTIwJUQxJTgxJUQxJTgyJUQwJUJFJUQxJTgwJUQwJUJFJUQwJUJEJUQxJThCJTIwJUQwJUJGJUQwJUJFJUQwJUI4JUQxJTgxJUQwJUJBJUQwJUJFJUQwJUIyJUQxJThCJUQxJTg1JTIwJUQwJUIxJUQwJUJFJUQxJTgyJUQwJUJFJUQwJUIyJTIwJUQwJUI4JTIwJUQxJTgxJUQxJTgyJUQwJUJFJUQxJTgwJUQwJUJFJUQwJUJEJUQwJUJEJUQwJUI4JUQxJTg1JTIwJUQwJUI0JUQwJUJFJUQwJUJDJUQwJUI1JUQwJUJEJUQwJUJFJUQwJUIyLiUyMCVEMCVBNyVEMSU4MiVEMCVCRSVEMCVCMSVEMSU4QiUyMCVEMCVCRSVEMCVCMyVEMSU4MCVEMCVCMCVEMCVCRCVEMCVCOCVEMSU4NyVEMCVCOCVEMSU4MiVEMSU4QyUyMCVEMCVCNCVEMCVCRSVEMSU4MSVEMSU4MiVEMSU4MyVEMCVCRiUyMCVEMCVCOCUyMCVEMCVCRiVEMSU4MCVEMCVCOCVEMCVCRCVEMCVCOCVEMCVCQyVEMCVCMCVEMSU4MiVEMSU4QyUyMCVEMCVCNyVEMCVCMCVEMCVCRiVEMSU4MCVEMCVCRSVEMSU4MSVEMSU4QiUyMCVEMSU4MiVEMCVCRSVEMCVCQiVEMSU4QyVEMCVCQSVEMCVCRSUyMCVEMCVCNCVEMCVCQiVEMSU4RiUyMCVEMSU4MCVEMCVCMCVEMCVCNyVEMSU4MCVEMCVCNSVEMSU4OCVEMSU5MSVEMCVCRCVEMCVCRCVEMSU4QiVEMSU4NSUyMCVEMCVCNCVEMCVCRSVEMCVCQyVEMCVCNSVEMCVCRCVEMCVCRSVEMCVCMiUyQyUyMCVEMCVCRCVEMSU4MyVEMCVCNiVEMCVCRCVEMCVCRSUyMCVEMCVCMiVEMSU4QiVEMCVCRiVEMCVCRSVEMCVCQiVEMCVCRCVEMCVCOCVEMSU4MiVEMSU4QyUyMCVEMSU4MSVEMCVCRSVEMCVCRSVEMSU4MiVEMCVCMiVEMCVCNSVEMSU4MiVEMSU4MSVEMSU4MiVEMCVCMiVEMSU4MyVEMSU4RSVEMSU4OSVEMSU4MyVEMSU4RSUyMCVEMCVCRCVEMCVCMCVEMSU4MSVEMSU4MiVEMSU4MCVEMCVCRSVEMCVCOSVEMCVCQSVEMSU4MyUyMCVEMCVCMiVEMCVCOCVEMSU4MCVEMSU4MiVEMSU4MyVEMCVCMCVEMCVCQiVEMSU4QyVEMCVCRCVEMCVCRSVEMCVCMyVEMCVCRSUyMCVEMSU4NSVEMCVCRSVEMSU4MSVEMSU4MiVEMCVCMC4=

Создайте конфигурацию заглушки

Откройте файл /etc/nginx/sites-available/default (или создайте новый) и добавьте для протокола HTTP следующий блок:

/etc/nginx/sites-available/default
server {
    listen 80 default_server;
JTIwJTIwJTIwJTIwbGlzdGVuJTIwJTVCJTNBJTNBJTVEJTNBODAlMjBkZWZhdWx0X3NlcnZlciUzQg==
    server_name _;
    
    return 444;
JTdE

Для HTTPS добавьте аналогичный блок:

/etc/nginx/sites-available/default
c2VydmVyJTIwJTdC
JTIwJTIwJTIwJTIwbGlzdGVuJTIwNDQzJTIwc3NsJTIwZGVmYXVsdF9zZXJ2ZXIlM0I=
JTIwJTIwJTIwJTIwbGlzdGVuJTIwJTVCJTNBJTNBJTVEJTNBNDQzJTIwc3NsJTIwZGVmYXVsdF9zZXJ2ZXIlM0IlMjAlMjAlMjAlMjA=
JTIwJTIwJTIwJTIwc2VydmVyX25hbWUlMjBfJTNC
JTIwJTIwJTIwJTIwc3NsX3JlamVjdF9oYW5kc2hha2UlMjBvbiUzQg==
    
JTIwJTIwJTIwJTIwcmV0dXJuJTIwNDQ0JTNC
}
В Nginx 1.19.4 была добавлена директива ssl_reject_handshake on;, которая позволяет отклонять TLS-запросы, если они не соответствуют заданному доменному имени.

В случае если используется версия Nginx старше 1.19.4, то вам необходимо будет создать самоподписанный SSL-сертификат и использовать его в конфигурации заглушки.

JUQwJTkzJUQwJUI1JUQwJUJEJUQwJUI1JUQxJTgwJUQwJUI4JUQxJTgwJUQxJTgzJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUIwJUQwJUJDJUQwJUJFJUQwJUJGJUQwJUJFJUQwJUI0JUQwJUJGJUQwJUI4JUQxJTgxJUQwJUJEJUQwJUJFJUQwJUI5JTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJTNB

openssl req -newkey rsa:2048 -nodes -keyout /etc/ssl/default.key -x509 -days 3650 -out /etc/ssl/default.pem -subj "/CN=nginx" -addext "subjectAltName=DNS:nginx" -addext "basicConstraints=CA:FALSE" -addext "subjectKeyIdentifier=hash"

На выходе получим файлы:

  • /etc/ssl/default.key
  • /etc/ssl/default.pem

JUQwJTk0JUQwJUJCJUQxJThGJTIwSFRUUFMlMjAlRDAlQjElRDAlQkIlRDAlQkUlRDAlQkElMjAlRDAlQkUlRDAlQkYlRDAlQjglRDElODElRDAlQjAlRDAlQkQlRDAlQjglRDElOEYlMjAlRDAlQjElRDElODMlRDAlQjQlRDAlQjUlRDElODIlMjAlRDAlQjIlRDElOEIlRDAlQjMlRDAlQkIlRDElOEYlRDAlQjQlRDAlQjUlRDElODIlRDElOEMlMjAlRDElODElRDAlQkIlRDAlQjUlRDAlQjQlRDElODMlRDElOEUlRDElODklRDAlQjglRDAlQkMlMjAlRDAlQkUlRDAlQjElRDElODAlRDAlQjAlRDAlQjclRDAlQkUlRDAlQkMlM0E=

/etc/nginx/sites-available/default
c2VydmVyJTIwJTdC
JTIwJTIwbGlzdGVuJTIwNDQzJTIwZGVmYXVsdF9zZXJ2ZXIlM0I=
  listen [::]:443 default_server;
  ssl_certificate /etc/ssl/default.pem;
JTIwJTIwc3NsX2NlcnRpZmljYXRlX2tleSUyMCUyRmV0YyUyRnNzbCUyRmRlZmF1bHQua2V5JTNC
  server_name _;
  
JTIwJTIwcmV0dXJuJTIwNDQ0JTNC
}

Примените изменения

JUQwJTlGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUI4JUQxJTgyJUQwJUI1JTIwTmdpbnglM0E=

c3lzdGVtY3RsJTIwcmVzdGFydCUyMG5naW54

Теперь сервер будет игнорировать запросы, поступающие напрямую на его IP-адрес, возвращая код 444 (разрыв соединения). Это повысит безопасность и исключит нежелательный трафик.

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ

Обсуждение

0 комментариев

Нет комментариев.