Puncte:0

Fritz!Box și Ubuntu: Expuneți URL-ul în LAN cu Apache Httpd și Bind

drapel ck

Sper că cineva mă poate ajuta cu această sarcină simplă – m-am gândit eu.

Situatie:

Pe LAN-ul meu privat rulez un Internet-Router ("Fritz!Box") și un Raspberry Pi cu Ubuntu 20.04 LTS. Am dezvoltat o mică aplicație web Spring Boot în scopuri private pe care vreau să o folosesc doar în LAN-ul meu (sau poate să ajung prin VPN din exterior). Adresa URL nativă a aplicației web este „http://ubuntu:8080”, deoarece Raspberry-ul meu se numește „ubuntu” și aplicația rulează pe un Tomcat-Server. Acum vreau să expun o adresă URL ca de ex. „http://thats-my.app” în interiorul rețelei LAN și utilizați-l ca URL de bază pentru aplicație. Pentru moment, curl pe ubuntu poate ajunge la el, celălalt PC al meu nu.

Și mai bine ar fi un FQDN „http://wow.thats-my.app” (cu un subdomeniu), astfel încât să pot folosi același domeniu și același domeniu de nivel superior pentru toate aplicațiile și să modific doar subdomeniul, cum ar fi „http ://super.thats-my.app" și așa mai departe.. Disclaimer: Deoarece lucrez prin SSH, toată configurația se face doar pentru terminal. Vă rugăm să luați în considerare că nu folosesc suprafața desktop a Ubuntu.

Vă mulțumim anticipat pentru timpul acordat și sperăm pentru ajutor!

Iată setările pe care le-am făcut pentru sistemul ubuntu. Ceea ce nu este afișat aici este comentat!:

ufw

Stare: activ

     La Acțiune De la
     -- ------ ----
[ 1] 9090/tcp PERMISĂ ÎN Oriunde # UBUNTU-COCKPIT
[ 2] 3306/tcp PERMITERE ÎN Oriunde # MYSQL
[ 3] Apache Full ALLOW IN Oriunde # :80,:443
[ 4] Bind9 ALLOW IN Anywhere # :53
[ 5] OpenSSH ALLOW IN Oriunde # :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 Oriunde (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 Oriunde (v6) # :22
[12] 8080:8090/tcp (v6) ALLOW IN Oriunde (v6) # TOMCAT

/etc/hosts

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

(--> fără intrări pentru 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>

--> Link simbolic către directorul activat pentru site-uri

/etc/bind/named.conf.local

zona „thats-my.app” ÎN {
        tip master;
        fișierul „/etc/bind/forward.thats-my.app.db”;
        allow-update { niciunul; };
};

zona "178.168.192.in-addr.arpa" IN {
        tip master;
        fișierul „/etc/bind/reverse.thats-my.app.db”;
        allow-update { niciunul; };
};

/etc/bind/named.conf.options

Opțiuni {
        directorul „/var/cache/bind”;
        expeditori {
        1.1.1.1;
        1.0.0.1;
        8.8.8.8;
        8.8.4.4;
        };
        dnssec-validation auto;
        listen-on-v6 { orice; };
        permite-interogare { orice; };
};

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

604800 USD TTL
@ ÎN SOA ns1.thats-my.app. admin.ns1.thats-my.app. (
                              5; Serial
                         604800; Reîmprospăta
                          86400; Reîncercați
                        2419200; Expira
                         604800); Cache negativ TTL
;
@ IN NS ns1.thats-my.app.
ns1 IN A 192.168.178.23

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

604800 USD TTL
@ ÎN SOA thats-my.app. admin.asta-mea.aplicația. (
                              4; Serial
                         604800; Reîmprospăta
                          86400; Reîncercați
                        2419200; Expira
                         604800); Cache negativ TTL
;
@ IN NS ns1.thats-my.app.
ns1 IN A 192.168.178.23
23 ÎN PTR ns1.thats-my.app.

--> intrare la terminal:

sudo systemctl restart numit
sudo systemctl reporniți apache2
sudo systemctl restart bind9

--> Configurare DNS în router

Setați IP DNS IPv4 la 192.168.178.23 (primar și secundar)

Setați IP-ul IPv6 DNS la adresa IPv6 a mașinii ubuntu (primar și secundar)

Iată ce am primit:

Pe Ubuntu-Serverul local

$ curl thats-my.app -> OK
$ dig thats-my.app -> stare: NOERROR *dar* SERVER 1.1.1.1#53 ???
$ dig thats-my.app @127.0.1.1 -> „conexiunea a expirat!”
$ dig thats-my.app @192.198.178.23 -> „conexiunile au expirat!”

Pe LAN Windows-PC PowerShell

curl thats-my.app -> nu poate fi rezolvată

Pe browserul Chrome LAN Windows-PC

http://thats-my.app -> Site inaccesibil / DNS_PROBE_FINISHED_NXDOMAIN

Dacă te uiți la „sapă” - rezultate, mi se pare că Bind9 nu funcționează chiar aici. Tu ce crezi?

Mulțumiri!

Puncte:0
drapel ck

Am găsit în sfârșit o soluție: routerul („AVM Fritz!Box”, foarte comun în Germania) are o caracteristică de securitate „DNS-Rebind-Protection” care împiedică solicitările DNS din LAN către o altă gazdă din LAN. Pe măsură ce configurați o excepție tastând de ex.TLD-ul „lan” sau în cazul de mai sus „aplicație” din caseta de text, serverul DNS local funcționează perfect. Puteți elimina expeditorii.

PS: Nu aveți nevoie de intrarea în /etc/hosts!

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

Noroc!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.