DDNS "casalingo"

  • 15 Risposte
  • 528 Visite

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline P13r0

  • Nuovo Iscritto
  • *
  • 33
DDNS "casalingo"
« il: 25 Gennaio 2020, 18:07 »
Sto cercando (per pura curiosità) di realizzare un piccolo server DDNS casalingo, utilizzando un progetto reperibile qui... ma non riesco a cavare il ragno dal buco.

Innanzitutto, la situazione:

A casa ho una ADSL Tiscali con IP statico, router Technicolor TG788vn v2, software 10.5.8.6.
Delle 4 porte LAN del router, solo due sono connesse:
- la porta 1 (per questioni di vicinanza fisica) è collegata direttamente ad un decoder sat (Linux);
- la porta 2 va su uno switch, al quale sono connesse tutte le altre macchine di casa.

In LAN ho un Raspberry che svolge la funzione di server HTTPS e mail; su di esso ho installato Ruby + lo script di cui sopra. Ho quindi impostato sul router un'ulteriore regola di port forwarding per inoltrare la porta 53 (sia udp che tcp, a scanso di equivoci) dalla WAN verso l'IP locale del Raspberry, analogamente a quanto già fatto per le porte 80, 443 etc.

Succede questo:

a) Se lancio "nslookup <host> <IP LAN del Raspberry>" da una macchina connessa allo switch, il Raspberry riceve l'interrogazione e risponde;
b) se lancio "nslookup <host> <IP LAN del Raspberry>" dal decode Linux, il Raspberry NON riceve l'interrogazione (e ovviamente non risponde);
c) se lancio "nslookup <host> <mio IP pubblico (WAN)>" da una macchina connessa allo switch, il Raspberry riceve l'interrogazione e risponde;
d) se lancio "nslookup <host> <mio IP pubblico (WAN)>" dal decode Linux, il Raspberry NON riceve l'interrogazione (e ovviamente non risponde);
e) se lancio "nslookup <host> <IP pubblico (WAN)>" da una macchina esterna (connessa ad internet), il Raspberry NON riceve l'interrogazione (e ovviamente non risponde).


Per quanto in (b) e (d), mi son detto: "Vabbè, quel cesso del Technicolor fa quello che gli pare (ovvero non consente il passaggio di query DNS) anche tra le sue porte LAN... figuriamoci tra WAN e LAN"; e quindi ho montato al suo posto un routerino Asus (DSL-N14U, che prevede tra le regole di port forwarding preimpostate anche il servizio DNS), ed ho riprovato.
Con mio sommo disappunto, ho dovuto constatare che permane quanto in (e). Ovvero (se prendo per buona la regola di port forwarding)... almeno apparentemente le query su porta 53 non arrivano al mio IP WAN :(


Domanda: è possibile che la porta 53 venga direttamente filtrata "a monte" da Tiscali (che afferma di no, peraltro), oppure dai (vari) providers cui sono appoggiate le macchine esterne dalle quali lancio i test con nslookup...?

E ancora: c'è mica qualcuno che abbia tentato analoghe esperienze, e che abbia dei tips da condividere?


Anticipatamente grazie per le eventuali risposte :)


Saluti
« Ultima modifica: 25 Gennaio 2020, 18:10 da P13r0 »

Offline mavelot

  • Administrator
  • Esperto
  • *****
  • 1664
  • Live Long and Prosper
Re:DDNS "casalingo"
« Risposta #1 il: 25 Gennaio 2020, 19:13 »
Scusa....prima di addentrarci nel problema o meglio nelle funzionalità del software, ci spieghi come stai gestendo il dominio a livello DNS pubblici ?

Offline P13r0

  • Nuovo Iscritto
  • *
  • 33
Re:DDNS "casalingo"
« Risposta #2 il: 25 Gennaio 2020, 19:42 »
Ho registrato il mio dominio presso un provider (immagino di non doverne fare il nome), dopodichè nel cpanel / DNS ho impostato gli opportuni records A (@, www, mail) al valore del mio IP pubblico (statico).
Per far funzionare il mail server, ho dovuto far settare (da parte di Tiscali) il mio record PTR affinchè vada a buon fine il reverse lookup. Per finire, Gòògle ha chiesto di creare un record TXT opportunamente valorizzato, onde non far finire nello spam le mail indirizzate a loro utenti.
Per i certificati, vado di lèt's èncrypt :)

Va da sè che quanto sopra non basta ancora per gestire in autonomia i domini di terzo e + livello... per questo parlo di nslookup (ovvero di query indirizzate a un DNS il cui IP viene esplicitamente dichiarato). Ma finchè non funziona nslookup, non ha senso andare a (cercare di) creare records NS :(

Saluti
« Ultima modifica: 25 Gennaio 2020, 21:07 da MisterFTTH »

Offline mavelot

  • Administrator
  • Esperto
  • *****
  • 1664
  • Live Long and Prosper
Re:DDNS "casalingo"
« Risposta #3 il: 25 Gennaio 2020, 21:52 »
Devi definire un dominio di terzo livello, per esempio ddns.mionome.it a cui associerai un record NS che punta al tuo IP. Questo informerà che quella zona è gestita dal tuo server DNS. La questione mail lasciamola da parte che non c'entra ( e dovremmo parlare di DKIM e DMARC). In questa zona (DDNS) potrai creare poi i livelli successivi che saranno gestiti tramite aggiornamento ddns automatico (per esempio router.ddns.mionome.it)

Offline P13r0

  • Nuovo Iscritto
  • *
  • 33
Re:DDNS "casalingo"
« Risposta #4 il: 26 Gennaio 2020, 09:42 »
Grazie, Mavelot... quel che dici è quanto dovrò fare, se e quando vorrò che il mio server faccia parte della rete DNS "ufficiale".
Ma non risponde alle mie domande :(

Quel che intendo dire è questo: se da una qualunque macchina connessa ad internet lancio il comando
Codice: [Seleziona]
nslookup pippo.com 123.123.123.123mi aspetto che alla macchina con IP 123.123.123.123 arrivi una query DNS, a prescindere dal fatto che la macchina con IP 123.123.123.123 faccia parte della rete DNS "ufficiale". Sbaglio?
E se non sbaglio: quale potrebbe essere la ragione per cui quella query non arriva... ?

Sempre grazie :)


Saluti

Offline mavelot

  • Administrator
  • Esperto
  • *****
  • 1664
  • Live Long and Prosper
Re:DDNS "casalingo"
« Risposta #5 il: 26 Gennaio 2020, 10:14 »
Non conosco la sintassi a memoria, ma per quello che ricordo devi prima impostare il server dns con il comando "server 123.123.123.123" poi digitare il dominio.
Cmq devi fare un po' di trace con wireshark a questo punto. Se la porta 53 udp è bloccata lo puoi capire chiaramente, anche attraverso test online come questo:
https://www.ipvoid.com/udp-port-scan/

Offline P13r0

  • Nuovo Iscritto
  • *
  • 33
Re:DDNS "casalingo"
« Risposta #6 il: 26 Gennaio 2020, 14:24 »
La sintassi è corretta, gli esempi riportati nel primo post sono esempi reali ;)

Per quanto riguarda lo scan di porte UDP... è una cosa che definire aleatoria è poco.
Citando Wikipedia,
Citazione
...la scansione UDP non è una tecnica affidabile in quanto se l'attaccante non riceve risposta non può essere sicuro che la porta sia aperta. L'unica certezza che ha è che se riceve un ICMP di rifiuto allora la porta è chiusa.
A differenza dello scan TCP, quello UDP spesso e volentieri non restituisce certezze. E' il mio caso.

Quindi, di nuovo: c'è mica qualcuno che abbia esperienza nell'implementazione di un servizio DNS casalingo, anche non "ufficialmente" propagato, e che sappia darmi qualche dritta...?
(...la sensazione che personalmente ho è che il traffico su porta 53 verso IP "non noti" possa venir bloccato a monte, come misura di protezione anti DNS spoofing / poisoning etc...)

Ancora grazie :)

Saluti


Offline mavelot

  • Administrator
  • Esperto
  • *****
  • 1664
  • Live Long and Prosper
Re:DDNS "casalingo"
« Risposta #7 il: 26 Gennaio 2020, 15:43 »
Io l'ho implementato su questo stesso server del forum ! quindi non sto parlando tanto per....
ho un mio servizio ddns personale proprio qui sopra, sul mio dominio personale. Posso solo dire che nel mio caso utilizzo il classico DNS BIND e che aggiorno i record tramite uno script php (tipo i classici no-ip per capirci) che poi esegue sul dns l'update tramite rndc.
Quello che io ti ho riportato è quindi parte della mia implementazione, ovvero una zona "dinamica" dichiarata nel DNS del provider, che poi viene gestita dal DNS sul server.

Per quanto riguarda la questione del test UDP, se proprio non ti fidi del test allora fai girare su quella porta (53 udp) un demone socat/netcat inviando tale connessione ad un server http per esempio.
Fai il contrario sul client, e se visualizzerai effettivamente il server http, sarai sicuro che il traffico UDP sulla 53 sta passando

Offline P13r0

  • Nuovo Iscritto
  • *
  • 33
Re:DDNS "casalingo"
« Risposta #8 il: 26 Gennaio 2020, 18:33 »
Niente da fare. Su porta 53 non c'è verso di far transitare del traffico verso il mio IP pubblico.
Anche se l'operatore con cui ho parlato ha escluso responsabilità in tal senso... qui c'è (evidentemente!) lo zampino di Tiscali.

Vabbè, pazienza...


Saluti

Offline MisterFTTH

  • Global Moderator
  • Esperto
  • *****
  • 849
  • Sesso: Maschio
  • Io vi cercherò, vi troverò...e vi bannerò!
Re:DDNS "casalingo"
« Risposta #9 il: 29 Gennaio 2020, 23:17 »
Ciao @P13r0 nel caso dei contratti con opzione IP pubblico statico Tiscali non filtra la porta 53 (assieme ad altre al contrario filtrate nei contratti con IP pubblico dinamico).
Io stesso sono titolare di una linea Tiscali residenziale con opzione IP pubblico statico ed anche io mi sono - tempo fa - dilettato nel configurare un DDNS sul mio server domestico con esito pienamente positivo.

Incuriosito dalla tua situazione in serata ho rimessa in piedi la configurazione del tempo ottenendo analogo esito, inoltre ho voluto provare anche il software da te segnalato: anche in questo caso esito positivo!

Poiché non hai chiarita la tua configurazione, ti indico la mia come confronto:

1) nel pannello DNS del mio registrar ho abilitati i glue record - da me arbitrariamente denominati ns1.***.ga e ns2.***.ga -  e li ho poi inseriti come DNS personalizzati al fine di demandare la gestione di quel dominio al mio server.

2) nel file config.yml ho personalizzati almeno questi due valori:

Codice: [Seleziona]
domain: ***.ga
...
nameserver: ns1.***.ga

ed in db.yml ho inserito questa stringa:

Codice: [Seleziona]
prova:
  pass: prova
  A: 94.33.*.*

A questo punto l'interrogazione del record di tipo A prova.***.ga avviene correttamente:

Codice: [Seleziona]
; <<>> DiG 9 <<>> @localhost prova.***.ga A
 ; (1 server found)
 ;; global options: +cmd
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4792
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
 
 ;; QUESTION SECTION:
 ;prova.***.ga. IN A
 
 ;; ANSWER SECTION:
 prova.***.ga. 15 IN A 94.33.*.*
 
 ;; Query time: 62 msec
 ;; SERVER: 127.0.0.1#53(127.0.0.1)
 ;; WHEN: Wed Jan 29 20:59:06 2020
 ;; MSG SIZE  rcvd: 48

(il localhost indicato corrisponde al server usato per l'interrogazione cioè http://www.kloth.net/services/dig.php ma ovviamente l'interrogazione va a buon fine con qualsiasi altro server pubblico)

Il programma ha correttamente tracciata l'interrogazione:

Codice: [Seleziona]
2020-01-29 21:56:56 SERVER: Running DNS on 0.0.0.0:53, HTTP on 0.0.0.0:80, as user nobody:nogroup
2020-01-29 21:59:06 DNS: A prova -> 94.33.*.*

In cosa differisce il tuo setting?  :huh:
Prima di scrivere...leggi la Netiquette del Forum!

Offline P13r0

  • Nuovo Iscritto
  • *
  • 33
Re:DDNS "casalingo"
« Risposta #10 il: 30 Gennaio 2020, 17:27 »
Innanzitutto grazie, MisterFTTH. Quel che mi racconti mi conforta :)

Ciò detto... in cosa la mia situazione differisca dalla tua, davvero non lo so.

Tu sei arrivato assai più avanti di me, propagando ufficialmente il tuo DNS; io non potrò farlo, in quanto il gestore del mio dominio non mi consente la creazione di record NS (è triste, ma è così). Tuttavia questo sarebbe un "non problema" per i miei scopi, nel senso che tutto sommato (a)questa cosa è poco più che un gioco, e (b)mi accontenterei di inserire a mano il mio IP pubblico nel setup dei DNS delle macchine su cui mi interessa ottenere la risoluzione dei miei sottodomini.
Ma nel mio caso, la porta 53 risulta filtrata a monte. Lo dico perchè al di là del discorso MiniDDNS (che pure -come hai visto- se tutto è a posto funziona perfettamente), ho anche provato a settare una regola di port forwarding (TCP/UDP) dalla porta 53 WAN alla porta 23 di una macchina Linux locale, e a lanciare una sessione telnet (su porta 53) dall'esterno. Se faccio questa cosa p.es. sulla una linea Tèlècom di mia mamma (che per giunta ha ip dinamico) ottengo il login; se lo faccio a casa mia... la connessione va in timeout. Sia col router Technicolor, sia con un Asus (uguale a quello che usa mia mamma).

L'altroieri ho investito 12 minuti di 892130 (...dal cellulare, più di quanto mi costa il dominio in un anno...) e l'operatrice ha aperto una segnalazione. Mi è arrivato un sms con scritto che "verrò aggiornato tempestivamente via sms"... ma non so cosa intendano per "tempestivamente". A casa mia, per una cosa del genere... dopo due gg sei già tutto, tranne che tempestivo ;)

Boh. Speriamo bene... vi tengo informati.

Di nuovo grazie

Saluti

Offline MisterFTTH

  • Global Moderator
  • Esperto
  • *****
  • 849
  • Sesso: Maschio
  • Io vi cercherò, vi troverò...e vi bannerò!
Re:DDNS "casalingo"
« Risposta #11 il: 30 Gennaio 2020, 19:18 »
ho anche provato a settare una regola di port forwarding (TCP/UDP) dalla porta 53 WAN alla porta 23 di una macchina Linux locale, e a lanciare una sessione telnet (su porta 53) dall'esterno. Se faccio questa cosa p.es. sulla una linea Tèlècom di mia mamma (che per giunta ha ip dinamico) ottengo il login; se lo faccio a casa mia... la connessione va in timeout. Sia col router Technicolor, sia con un Asus (uguale a quello che usa mia mamma).

In effetti quella banale prova empirica non lascia spazio a dubbi ma mi lascia perplesso a maggior ragione poiché come detto sulla mia connessione Tiscali non ho quel tipo di filtro...certo non escludo che per insondabili motivi tecnici sul tuo IP o magari piuttosto sulla intera subnet (che avendo da moderatore visibilità degli IP con cui si connettono gli utenti ho notato essere una differente dalla mia...a proposito che contratto hai? ADSL ULL o cosa?) sia stato lasciato il filtro nonostante sia evidentemente IP pubblico statico per il quale appunto Tiscali prevede assenza di filtri...

Senza poter fare traffico su quella porta decade a priori tutto il discorso pertanto sospendo qui i miei interventi e rimango in attesa di eventuali aggiornamenti  :nod:
Prima di scrivere...leggi la Netiquette del Forum!

Offline P13r0

  • Nuovo Iscritto
  • *
  • 33
Re:DDNS "casalingo"
« Risposta #12 il: 31 Gennaio 2020, 18:36 »
Citazione
...a proposito che contratto hai? ADSL ULL o cosa?

To be honest... non ne ho idea :D
So solo che volevo passare alla fibra, e non me la danno :(

Saluti

Offline P13r0

  • Nuovo Iscritto
  • *
  • 33
Re:DDNS "casalingo"
« Risposta #13 il: 03 Febbraio 2020, 19:53 »
Risposta via SMS da Tiscali:
"Gentile Cliente, le verifiche tecniche sulla segnalazione xxxx non hanno rilevato anomalie sulla rete; ti invitiamo a verificare il funzionamento dei collegamenti e degli apparati utilizzati, blabla".

...stavolta butta davvero male... :(

Saluti

Offline P13r0

  • Nuovo Iscritto
  • *
  • 33
Re:DDNS "casalingo"
« Risposta #14 il: 11 Febbraio 2020, 19:26 »
Alla fine sono riuscito ad ottenere l'apertura della porta 53.
Tutto è bene quel che finisce bene :)

Saluti