Jump to content
  • 0
CrazyTSTer

Ресурсы локальной сети на одном хосте (Два разных сайта). Доступ из вне, запрет доступа к вебинтерфейсу

Question

Доброго времени суток

Роутер Keenetic Giga,  KeeneticOS: 3.3.1

Подскажите как правильно настроить доступ к ресурсам локальной сети?

В локальной сети есть машина, с IP-адресом 192.168.1.2

В cli роутера делаем

ip host asms.home 192.168.1.2
ip host torrent.home 192.168.1.2
system configuration save

На 192.168.1.2 nginx вот с такими конфигами

/etc/nginx/sites-available  $ cat asms 
server {
    listen   80;
    root /local/www/HMS/;
      
    access_log /var/log/nginx/HMS/access.log; #расположение логов данного хоста
    error_log /var/log/nginx/HMS/error.log;

    server_name www.asms.home asms.home;

    satisfy any;
    allow 192.168.1.0/24;
    deny all;

    auth_basic "CrazyNAS";
    auth_basic_user_file /local/auth/.htpasswd;

    index index.php index.html index.htm;

    location @notfound {
         return 404;
    }
    
    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }

    location / {
        try_files $uri $uri/ @notfound;
    }
}
/etc/nginx/sites-available  $ cat torrent 
server {
    listen   80;
    root /local/www/ruTorrent/;
      
    access_log /var/log/nginx/ruTorrent/access.log; #расположение логов данного хоста
    error_log /var/log/nginx/ruTorrent/error.log;

    server_name www.torrent.home torrent.home;

    satisfy any;
    allow 192.168.1.0/24;
    deny all;

    auth_basic "CrazyNAS";
    auth_basic_user_file /local/auth/.htpasswd;

    index index.php index.html index.htm;

    location @notfound {
         return 404;
    }
    
    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }

    location / {
        try_files $uri $uri/ @notfound;
    }
}

перезагружаем роутер, рестартуем nginx

теперь по адресам: 

     asms.home -> живет сайт 1,

     torrent.home -> живет сайт 2

 

Теперь хочу получить доступ из интернета. Провайдер дает мне белый динамический ip-адрес, поэтому настраиваем KeenDNS без облака

676654054_2019-12-262_04_25.thumb.png.3702f5533f87a513d119c5a97af7a51e.png

Сохраняем настройки, теперь идем в Пользователи и доступ

1192933559_2019-12-262_11_01.thumb.png.972e3bb0e7ad6899169655daced19dd1.png

Сохраняем, и перезагружаем рутер. так же рестартуем nginx.

Теперь пробуем зайти с телефона не подключенного к WiFi роутера

http://asms.#@%#@%.keenetic.pro -> сайт 1, тут все ок

https://asms.#@%#@%.keenetic.pro -> сайт 1, тут все ок

http://torrent.#@%#@%.keenetic.pro -> тут тоже сайт 1, а должен был бы быть сайт 2

https://torrent.#@%#@%.keenetic.pro -> тут тоже сайт 1, а должен был бы быть сайт 2

Никак не могу понять что я сделал не так.

 

И второй вопрос

По адресу http://#@%#@%.keenetic.pro и https://#@%#@%.keenetic.pro доступна админка роутера. Можно каким-то образом ее отключить, что бы по таким адресам ничего не отдавалось

 

Как сделать доступ только по http или https?

Edited by CrazyTSTer

Share this post


Link to post
Share on other sites

9 answers to this question

Recommended Posts

  • 0
В 25.12.2019 в 23:39, CrazyTSTer сказал:

Так же в конфиге nginx обновил строчки sever_name

сделал:

     server_name asms.home asms.#@%#@%.keenetic.pro;

     server_name torrent.home torrent.#@%#@%.keenetic.pro;

но это не помогло

ip http proxy preserve-host  должно помочь

Share this post


Link to post
Share on other sites

  • 0
В 25.12.2019 в 23:17, CrazyTSTer сказал:

По адресу http://#@%#@%.keenetic.pro и https://#@%#@%.keenetic.pro доступна админка роутера. Можно каким-то образом ее отключить, что бы по таким адресам ничего не отдавалось

Никак

Share this post


Link to post
Share on other sites

  • 0
On 1/11/2020 at 10:23 PM, metahor said:

ip http proxy preserve-host  должно помочь

 Долго думал...

сначала сделал 

ip http proxy preserve-host ENTER

потом наконец дошло

ip http proxy %DOMAIN% preserve-host

где %DOMAIN% - доменноe имя из настроек KeenDNS из секции Доступ к веб приложениям домашней сети

сделал так

(config)> ip http proxy asms preserve-host 
Http::Proxy: "asms": enabled Host header preservation.

(config)> ip http proxy torrent preserve-host 
Http::Proxy: "torrent": enabled Host header preservation.

(config)> system configuration save 

судя по названию эта опция позволяет прокидывать поле HOST в заголовке запроса

перепроверил конфиги nginx, перегрузил роутер

но блин к сожалению не помогло :(

Edited by CrazyTSTer

Share this post


Link to post
Share on other sites

  • 0

еще раз все перепроверил, прочитал https://nginx.org/ru/docs/http/request_processing.html Как nginx обрабатывает запросы

выглядит так что поле HOST из Request Header не пробрасывается nginx'у и потому мне отдается дефолтный сайт

т.е.  preserve-host не работает, или работает как-то не так

Share this post


Link to post
Share on other sites

  • 0

шаг №1 - проверяем, что доменное имя(имена) к которому мы обращаемся имеет запись А где указан нужный вам IP адрес,

например, мой.сайт.екатеренбурга.нет А 111.222.333.444 , даша.и.гена.букин.рф А 111.222.333.444

шаг №2 - на роутере создаём правило NAT для перенаправления 80 порта с внешнего интерфейса, который подключён к сети интернет, к IP адресу компьютера в локальной сети, на порт 80, где запущен web сервер

шаг №3 - в конфиге nginx пишем

server {
    listen   80;
	server_name мой.сайт.екатеренбурга.нет;
}

server {
    listen   80;
	server_name даша.и.гена.букин.рф;
}

возможные проблемы:

1 - если не работает как описано выше - пробуем поменять роутер, пишем в службу поддержки кинетик

2 - если у вас нет возможности редактировать запись А у домена, например, вы просто не купили домен, то или на самом устройстве с которого будем открывать сайт мой.сайт.екатеренбурга.нет добавляем нужный домены и адреса в список маршрутизации, например в семи известный файл hosts, или добавляем адреса доменов и соотносящихся к ним А записей(IP адресов) в маршрутизацию роутера, через который мы выходим в сеть интернет

Share this post


Link to post
Share on other sites

  • 0
2 hours ago, Sovenok said:

шаг №1 - проверяем, что доменное имя(имена) к которому мы обращаемся имеет запись А где указан нужный вам IP адрес,

например, мой.сайт.екатеренбурга.нет А 111.222.333.444 , даша.и.гена.букин.рф А 111.222.333.444

шаг №2 - на роутере создаём правило NAT для перенаправления 80 порта с внешнего интерфейса, который подключён к сети интернет, к IP адресу компьютера в локальной сети, на порт 80, где запущен web сервер

шаг №3 - в конфиге nginx пишем


server {
    listen   80;
	server_name мой.сайт.екатеренбурга.нет;
}

server {
    listen   80;
	server_name даша.и.гена.букин.рф;
}

возможные проблемы:

1 - если не работает как описано выше - пробуем поменять роутер, пишем в службу поддержки кинетик

2 - если у вас нет возможности редактировать запись А у домена, например, вы просто не купили домен, то или на самом устройстве с которого будем открывать сайт мой.сайт.екатеренбурга.нет добавляем нужный домены и адреса в список маршрутизации, например в семи известный файл hosts, или добавляем адреса доменов и соотносящихся к ним А записей(IP адресов) в маршрутизацию роутера, через который мы выходим в сеть интернет

Спасибо, так вполне работает в связке с no-ip. но не хотелось бы пробрасывать порт.

Возможно с точки зрения безопасности лучше и проще сделать vpn во внутреннюю сеть и не заморачиваться.

Но хотелось воспользоваться возможностями KeenDNS. А как я написал выше пока не получается :(

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...