Fritz!Box и Ubuntu: Отображение URL-адреса в локальной сети с помощью Apache Httpd и Bind

. Надеюсь, кто-нибудь поможет мне с этой, как я думал, простой задачей.

Ситуация:

В моей частной локальной сети я использую интернет-маршрутизатор («Fritz!Box») и Raspberry Pi с Ubuntu 20.04 LTS. Я разработал небольшое веб-приложение Spring Boot для личных целей, которое я хочу использовать только в своей локальной сети (или, возможно, через VPN извне). Собственный URL-адрес веб-приложения — «http://ubuntu:8080», потому что моя малина называется «ubuntu», а приложение работает на сервере Tomcat. Теперь я хочу открыть URL-адрес, например, например. «http://thats-my.app» внутри локальной сети и используйте его в качестве базового URL-адреса для приложения. На данный момент curl на ubuntu может до него добраться, а мой другой компьютер не может.

Еще лучше было бы полное доменное имя «http://wow.thats-my.app» (с поддоменом), чтобы я мог использовать один и тот же домен и домен верхнего уровня для всех приложений и варьировать только субдомен, например "http://super.thats-my.app" и т.д.. Отказ от ответственности: поскольку я работаю через SSH, вся настройка выполняется только через терминал. Учтите, что я не использую рабочий стол Ubuntu.

Заранее благодарим вас за уделенное время и надеемся на вашу помощь!

Вот настройки, которые я сделал для системы ubuntu. То, что здесь не показано, закомментировано!:

ufw

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 9090/tcp                   ALLOW IN    Anywhere                   # UBUNTU-COCKPIT
[ 2] 3306/tcp                   ALLOW IN    Anywhere                   # MYSQL
[ 3] Apache Full                ALLOW IN    Anywhere                   # :80,:443
[ 4] Bind9                      ALLOW IN    Anywhere                   # :53
[ 5] OpenSSH                    ALLOW IN    Anywhere                   # :22
[ 6] 8080:8090/tcp              ALLOW IN    Anywhere                   # TOMCAT
[ 7] 9090/tcp (v6)              ALLOW IN    Anywhere (v6)              # UBUNTU-COCKPIT
[ 8] 3306/tcp (v6)              ALLOW IN    Anywhere (v6)              # MYSQL
[ 9] Apache Full (v6)           ALLOW IN    Anywhere (v6)              # :80,:443
[10] Bind9 (v6)                 ALLOW IN    Anywhere (v6)              # :53
[11] OpenSSH (v6)               ALLOW IN    Anywhere (v6)              # :22
[12] 8080:8090/tcp (v6)         ALLOW IN    Anywhere (v6)              # TOMCAT

/etc/hosts

127.0.0.1 localhost.localdomain localhost
127.0.1.1 ubuntu
127.0.1.1 thats-my.app

(--> нет записей для IPv6)

/etc/apache2/sites-available/thats-my.conf

<VirtualHost *:80>
        ServerName thats-my.app
        ServerAlias thats-my
        ProxyRequests Off
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>
        ProxyPreserveHost On
        ProxyPass               / http://localhost:8080/
        ProxyPassReverse        / http://localhost:8080/
</VirtualHost>

--> Символическая ссылка на каталог с поддержкой сайтов

/etc/bind/named.conf.local

zone "thats-my.app" IN {
        type master;
        file "/etc/bind/forward.thats-my.app.db";
        allow-update { none; };
};

zone "178.168.192.in-addr.arpa" IN {
        type master;
        file "/etc/bind/reverse.thats-my.app.db";
        allow-update { none; };
};

/etc/bind/named.conf.options

options {
        directory "/var/cache/bind";
        forwarders {
        1.1.1.1;
        1.0.0.1;
        8.8.8.8;
        8.8.4.4;
        };
        dnssec-validation auto;
        listen-on-v6 { any; };
        allow-query { any; };
};

/etc/bind/forward. thats-my.app.db

$TTL    604800
@       IN      SOA     ns1.thats-my.app. admin.ns1.thats-my.app. (
                              5         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.thats-my.app.
ns1     IN      A       192.168.178.23

/etc/bind/reverse.thats-my.app.db

$TTL    604800
@       IN      SOA     thats-my.app. admin.thats-my.app. (
                              4         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.thats-my.app.
ns1     IN      A       192.168.178.23
23      IN      PTR     ns1.thats-my.app.

--> ввод в терминал:

sudo systemctl restart named
sudo systemctl restart apache2
sudo systemctl restart bind9

--> Конфигурация DNS в маршрутизаторе

Установить DNS IPv4 IP на 192.168.178.23 (первичный и вторичный)

Установите DNS IPv6 IP на IPv6-адрес машины Ubuntu (основной и вторичный)

Вот что я получил:

На локальном Ubuntu-сервере

$ curl thats-my.app -> OK
$ dig thats-my.app -> status: NOERROR   *but*  SERVER 1.1.1.1#53 ???
$ dig thats-my.app @127.0.1.1 -> "connection timed out!"
$ dig thats-my.app @192.198.178.23 -> "connections timed out!"

В локальной сети Windows-PC PowerShell

curl thats-my.app -> cannot be resolved

В локальной сети Windows-PC Chrome Browser

http://thats-my.app-> Веб-сайт недоступен / DNS_PROBE_FINISHED_NXDOMAIN

Если вы посмотрите на «копать» - в результате мне кажется, что Bind9 здесь не работает. Что вы думаете?

Спасибо!

0
задан 6 October 2021 в 11:49
1 ответ

Наконец-то я нашел решение:Маршрутизатор ("AVM Fritz!Box", очень распространенный в Германии)имеет функцию безопасности "DNS-Rebind-Protection", которая предотвращает запросы DNS от внутри локальной сети на другой хост внутри локальной сети. Когда вы настраиваете исключение, набрав, например. TLD «lan» или, в случае выше, «app» в текстовом поле, ваш локальный DNS-сервер работает отлично. Вы можете удалить форвардеры.

PS:Вам не нужна запись в /etc/hosts !

PPS:https://bind9.readthedocs.io/en/latest/index.html

Удачи!

0
ответ дан 9 October 2021 в 19:54

Теги

Похожие вопросы