Настройка доступа NginX - proUbuntu
Купить гитару в Москве
1 голос
/

Я использую сервер Ubuntu x64 с nginx в качестве веб-сервера.

В моей компании мы настроили DNS-сервер интрасети (локальный) таким образом, чтобы при вводе domain1.com он переходил непосредственно в определенный IP-адрес LAN.

Нам нужен глобальный доступ для domain2.com, который находится на том же сервере. Когда мы открываем глобальный доступ для domain2.com , возникла следующая проблема:

Как вы знаете, любой может определить IP-адрес домена domain2.com (нашего сервера).

Проблема заключается в том, что при прямом доступе через глобальный IP-адрес сервера сервер автоматически открывается domain1.com , который должен быть ограничен для глобального доступа. Вот конфиг nginx domain1.com :

server
{
set $host_path "/var/www/domain1";

server_name domain1.com;

root $host_path;
set $yii_bootstrap "index.php";

client_max_body_size 2000M;
client_body_buffer_size 1024k;

listen       80;

    charset utf-8;
    index index.php index.html;

access_log  /var/access_log;
error_log /var/error_log;

location ~ /(protected|framework|nbproject) {
        deny all;
        access_log off;
        log_not_found off;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_split_path_info  ^(.+\.php)(.*)$;
        #let yii catch the calls to unexising PHP files
        set $fsn /$yii_bootstrap;
        if (-f $document_root$fastcgi_script_name){
            set $fsn $fastcgi_script_name;
        }
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny  all;
    }


}

Как сделать domain1.com только для локальной сети (ограничить глобальный доступ)?

1 Ответ

1 голос
/

Полагаться на неизвестность (неизвестное имя хоста) здесь небезопасно. Имя хоста может установить любой, даже снаружи:

curl -H "Host: example.com" http://the.ip.here/

Лучший способ ограничить доступ к нему, установив контроль доступа:

location / {
    try_files $uri $uri/ /index.php?$args;
    # Adjust the IP range if necessary
    allow   192.168.1.0/24;
    deny    all;
}

Документация:

Добро пожаловать на сайт proUbuntu, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...