Как ограничить прямой доступ по IP к сайту
Как ограничить прямой доступ по IP к сайту
Всем привет ! Может кто подскажет , как запретить доступ к сайту не по каноническому имени, а по его IP через NGINX или , на крайний, через Апача , то есть чтобы пропускало на сайт через https://example.com , а по 1.1.1.1 выдавало запрет. Используется принудительный редирект на https .
Как по 80 порту я в курсе, в файле server_ip.conf
server {
listen server_ip:80 default;
server_name _;
#access_log /var/log/nginx/server_ip:80.log main;
location / {
proxy_pass http://server_ip:8080;
}
access_log /dev/null;
error_log /dev/null;
return 444;
}
А вот как на 443 порту ?
PS . Сайт работает через Cloudflare.
Как по 80 порту я в курсе, в файле server_ip.conf
server {
listen server_ip:80 default;
server_name _;
#access_log /var/log/nginx/server_ip:80.log main;
location / {
proxy_pass http://server_ip:8080;
}
access_log /dev/null;
error_log /dev/null;
return 444;
}
А вот как на 443 порту ?
PS . Сайт работает через Cloudflare.
Re: Как ограничить прямой доступ по IP к сайту
может через htaccess ?? я думаю наверно можно
Re: Как ограничить прямой доступ по IP к сайту
Доступ по IP можно запретить, чтобы вот так не лазили.
Для этого достаточно поправить /etc/nginx/conf.d/ваш-айпи.conf
return 444 можно заменить другой ошибкой 403 к примеру, по желанию.
Для этого достаточно поправить /etc/nginx/conf.d/ваш-айпи.conf
Code: Select all
server {
listen все.еще.ваш.айпи:80 default;
server_name _;
access_log /dev/null;
error_log /dev/null;
return 444;
}
Re: Как ограничить прямой доступ по IP к сайту
Skurudo , я же написал, что на 80 порту ограничил , а через https:// или 443 ломятся все равно, как ограничить через 443 , вот в чем вопрос
Re: Как ограничить прямой доступ по IP к сайту
Аналогично, добавьте еще блок:
Code: Select all
server {
listen ip:443;
server_name _;
ssl on;
ssl_certificate /home/admin/conf/web/ssl.domain.ru.pem;
ssl_certificate_key /home/admin/conf/web/ssl.domain.ru.key;
access_log /dev/null;
error_log /dev/null;
return 444;
}
Re: Как ограничить прямой доступ по IP к сайту
Помогите чайнику , scurudo , добавляю ниже блок как вы написали , restart и ошибка
nginx: [emerg] BIO_new_file("/home/admin/conf/web/ssl.domain.ru.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/home/admin/conf/web/ssl.domain.ru.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: [emerg] BIO_new_file("/home/admin/conf/web/ssl.domain.ru.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/home/admin/conf/web/ssl.domain.ru.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)
Re: Как ограничить прямой доступ по IP к сайту
Вот тут желательно указать реальные сертификаты от какого-нибудь из своих доменов:overdoser wrote:Помогите чайнику , scurudo , добавляю ниже блок как вы написали , restart и ошибка
ssl_certificate /home/admin/conf/web/ssl.domain.ru.pem;
ssl_certificate_key /home/admin/conf/web/ssl.domain.ru.key;
Re: Как ограничить прямой доступ по IP к сайту
Простите, затупил , не админ у меня , а другой юзверь, огромнейшее спасибо
Re: Как ограничить прямой доступ по IP к сайту
у меня на modx в .htaccess сделано так:
Code: Select all
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^1\.1\.1\.1$
RewriteRule (.*) https://site_name.ru:8083/login/ [R=301,L]