PDA

View Full Version : DDNS dinamico personale


yggdrasil
11-10-2013, 17:09
Ciao a tutti, vi spiego il mio problema: devo gestire un vps in cui è installato, tra l'altro, un server dns. Ip statico e dominio gestito personalmente(il vps è autoritativo per la zona). Ovviamente il programma è bind. Riesco a far funzionare correttamente tutto quanto per la configurazione statica della zona.

Avrei però anche bisogno di avere un record del tipo home.dominio.org che punti ad un indirizzo ip dinamico su cui è presente il router di casa. Per ora ho risolto facendo puntare un record CNAME home.dominio.org ad un record di dyndns del tipo home.dyndns.org, il quale è poi realmente aggiornato tramite l'utility del router per il DNS dinamico.

Però vorrei evitare di usare un servizio esterno. Esiste un sistema per poter far dialogare direttamente un qualunque dispositivo in casa mia(non ho problemi di piattaforma, mi va bene sia il router, sia un nas con su linux) con il vps in modo tale che se cambia l'indirizzo ip del router allora mi cambia direttamente anche l'hostname associato? Vorrei avere una soluzione opensource per poterla adattare, se servisse, alle mie esigenze.

eaman
11-10-2013, 18:11
Puoi usare nsupdate:
- http://doc.andreamanni.com/servizi.html#aggiornamento-dinamico-nsupdate
- http://www.rtfm-sarl.ch/articles/using-nsupdate.html

yggdrasil
11-10-2013, 18:58
Stupendo! Quindi sul server non devo installare nulla, il che è molto buono, meno superficie di attacco.
Peccato che debba usare il nas con uno script da far girare con cron, speravo di farlo gestire al router che, in quanto direttamente attaccato alla linea ADSL, lavorerebbe in maniera asincrona e scatenerebbe lo script per l'update al dns solo al cambio dell'ip. Vorrà dire che mi devo comprare un router su cui mettere DD-WRT. :p

eaman
11-10-2013, 19:48
Be' guarda che architettura ha il router, se c'e' un port di debian per quella puoi pigliarti il pacchetto binario, scompattarlo e provare a mettere l'utility sul router. non mi stupirebbe se qualcuno avesse gia' compilato qualche binario portatile con eventuali librerie incluse.

...se no puoi partire dal sorgente e te la compili tu. Ma tieni conto che ci vuole anche la sincronizzazione degli orologi: il router deve poter prendere l'ora dalla rete e sarebbe opportuno usare lostesso time server sul server. Mi viene pero' in mente che se sei su una VPS potresti non essere ingrado di cambiare l'ora... :muro:

Oppure: fai gestire la connessione ADSL dal tuo NAS linux con pppoe cosi' puoi triggare i vari eventi. Che e' mglio cosi' puoi far girare anche una cache dns tipo dnsmasq, smtp relay per la lan, ecc.

yggdrasil
11-10-2013, 20:34
Be' guarda che architettura ha il router, se c'e' un port di debian per quella puoi pigliarti il pacchetto binario, scompattarlo e provare a mettere l'utility sul router. non mi stupirebbe se qualcuno avesse gia' compilato qualche binario portatile con eventuali librerie incluse.Dove ho il nas(ho solo lì l'ADSL) purtroppo ho un DLINK DSL-2640B, router troppo sempliciotto per poterlo fare. Non ho nemmeno l'accesso FTP nè vim o altro per caricarci sopra uno script anche nel caso fortunato che ci sia installato sopra nsupdate(ma penso che ci sia sopra dnsmasq e non bind). Avrei voluto installarci sopra DD-WRT però a quanto ne so non ci sono i driver per il modulo ADSL di altri router con chip simili, quindi il risultato è che mi ritroverei senza connessione. No buono. Nell'altro luogo dove vivo ho un Asus RT-N66U, che invece mi permetterebbe di fare di tutto e di più, però purtroppo mi devo adattare con una connessione 3G con dati limitati quindi non posso nemmeno spostarmi il nas lì.
Risultato complessivo, niente possibilità di gestire la cosa con il router se devo usare nsupdate. A meno che non lo cambi, ovviamente, cosa che farò non appena avrò i soldi per comprare un qualcosa di decente che supporti DD-WRT.

...se no puoi partire dal sorgente e te la compili tu. Ma tieni conto che ci vuole anche la sincronizzazione degli orologi: il router deve poter prendere l'ora dalla rete e sarebbe opportuno usare lostesso time server sul server. Mi viene pero' in mente che se sei su una VPS potresti non essere ingrado di cambiare l'ora... :muro:

Sul nas non avrei problemi, già ci sta bind, figurarsi nsupdate. Posso farci praticamente di tutto, solo che come dicevo non vedo direttamente l'adsl per il fatto che ci sta il router di mezzo e quindi non mi piacerebbe proprio. Ma mi adatterei.


Oppure: fai gestire la connessione ADSL dal tuo NAS linux con pppoe cosi' puoi triggare i vari eventi. Che e' mglio cosi' puoi far girare anche una cache dns tipo dnsmasq, smtp relay per la lan, ecc.Non ho un modem adsl e basta, e quindi dovrei comprarne uno nuovo. A quel punto mi prendo un qualcosa che supporti direttamente tutto quello che mi serve e stop.
La cache dns(bind) e un sacco di altre cose già ci stanno sul nas e già girano tranquillamente.

eaman
11-10-2013, 21:43
Nel D-Link DSL-2640B Manual a pag. 14 c'e' uno schemino in cui sembra che tu lo possa impostare come bridge (modem, non wifi). Assicurati di aver installato pppoeconf sul nas e prova a fargli gestire la connessione.

Sarebbe ben strano che un modem-router non si possa settare come semplice modem.

Ti servira' un dhcp sul nas nel caso (dnsmasq magari, che ti fa anche da cache dns, bind e' un po' eccessivo in una LAN e meno flessibile) piu abilitare ipforward e sNAT (ip masquerading).

yggdrasil
12-10-2013, 09:50
Nel D-Link DSL-2640B Manual a pag. 14 c'e' uno schemino in cui sembra che tu lo possa impostare come bridge (modem, non wifi). Assicurati di aver installato pppoeconf sul nas e prova a fargli gestire la connessione.

Sarebbe ben strano che un modem-router non si possa settare come semplice modem.

Ti servira' un dhcp sul nas nel caso (dnsmasq magari, che ti fa anche da cache dns, bind e' un po' eccessivo in una LAN e meno flessibile) piu abilitare ipforward e sNAT (ip masquerading).

No, be', ovvio che lo posso configurare come semplice modem. Ma poi mi servirebbe far fare da router, switch e access point wireless al nas, il che non sarebbe proprio stupendo visto che il nas ha solo una porta ethernet e io ho bisogno di almeno un paio di queste.

Nel nas già gira il server dhcp per tante altre ragioni e, come ti ho già detto ci gira pure bind, che invece mi serve proprio perché invece (se lo si sa configurare) è molto più personalizzabile: devo fare in modo che certi indirizzi visibili dall'esterno dal dns che sta sul vps siano diversi se visti dall'interno, primo tra tutti il nas. Infatti è il modo più semplice per poter accedere dalla lan ad un indirizzo del tipo nas.dominio.org che altrimenti verrebbe risolto con l'indirizzo dell'interfaccia esterna del router. Ovviamente facendo gestire la connessione al nas vedrei direttamente l'ip pubblico del nas e accederei comunque al nas con nas.dominio.org, però avrei questo esposto direttamente ad internet, e la cosa vorrei evitarla per motivi di sicurezza.
Alla fine della fiera la soluzione è quella di comprare un altro aggeggio. E, se devo farlo, preferisco separare i compiti di rete puri da quelli di supporto(dns,dhcp,ssh,ecc). Ovviamente sono opinioni personali e ti ringrazio di aver condiviso le tue. Se ancora vuoi aggiungere qualcosa non mi arrabbio di certo, c'è sempre qualcosa da imparare da un punto di vista diverso dal proprio.

eaman
12-10-2013, 20:10
Per l'amor di dio: tu hai le tue opinioni e non e' che io ti debba convincere a far qualcosa in particolare.
Questo e' un forum e i messaggi sono pubblici e archiviati in modo che possano essere utili ad altri.

Con dnsmasq fai tutti trick sui DNS per la lan con il minimo sforzo e ram, ti fa da DHCP e ti aggiorna il routing. Usando il NAS come router bastano un paio di regole di iptables per estabilished related per tenere tutto al sicuro da fuori. E poter vedere la macchina da fuori ha mille utilità: es backup per vps, posta, cloud personale...

E non è che il modem disattiva lo switch se stacchi il NAT/pppoe, come non si disattiva il routing del bridge wifi.

Have fun!

yggdrasil
12-10-2013, 21:52
Per l'amor di dio: tu hai le tue opinioni e non e' che io ti debba convincere a far qualcosa in particolare.
Questo e' un forum e i messaggi sono pubblici e archiviati in modo che possano essere utili ad altri.

:)

Con dnsmasq fai tutti trick sui DNS per la lan con il minimo sforzo e ram, ti fa da DHCP e ti aggiorna il routing. Usando il NAS come router bastano un paio di regole di iptables per estabilished related per tenere tutto al sicuro da fuori. E poter vedere la macchina da fuori ha mille utilità: es backup per vps, posta, cloud personale...

E non è che il modem disattiva lo switch se stacchi il NAT/pppoe, come non si disattiva il routing del bridge wifi.

Il punto è che il nas per il dns e il dhcp ha delle utility che si controllano anche ma non solo dall'interfaccia web rendendo più coerente il tutto visto che così ho un'unica interfaccia dove metter mani. Perciò paradossalmente, pure se non fossi abbastanza capace a capire i file di configurazione di bind, sarebbe comunque meno problematico di usare dnsmasq. :D
Per quanto riguarda la modifica alla topologia logica della rete sono curioso: riguardo soprattutto le regole di iptables e ti sarei grato se mi dicessi qualcosa di più. Che ne dici?

Have fun!:ubriachi:

eaman
13-10-2013, 11:09
Perciò paradossalmente, pure se non fossi abbastanza capace a capire i file di configurazione di bind, sarebbe comunque meno problematico di usare dnsmasq.

Dnsmasq ti propaga automaticamente i dati in /etc/hosts, impostare un campo tipo MX invece e' cosa di una riga:
# Change these lines if you want dnsmasq to serve MX records.

# Return an MX record named "maildomain.com" with target
# servermachine.com and preference 50
#mx-host=maildomain.com,servermachine.com,50

# Set the default target for MX records created using the localmx option.
#mx-target=servermachine.com

# Return an MX record pointing to the mx-target for all local
# machines.
#localmx

# Return an MX record pointing to itself for all local machines.
#selfmx
Cosa molto utile se uno vuole ad es. provare un SMTP in locale.
Per quanto riguarda la modifica alla topologia logica della rete sono curioso: riguardo soprattutto le regole di iptables e ti sarei grato se mi dicessi qualcosa di più.

Questo e' l'iptables save del mio NAS che fa da router gateway per la LAN, compreso il trasparent proxy e l'anti brute force (per SSH):

# Generated by iptables-save v1.4.8 on Fri May 20 07:00:01 2011
*mangle
:PREROUTING ACCEPT [862:100187]
:INPUT ACCEPT [567:54922]
:FORWARD ACCEPT [294:45237]
:OUTPUT ACCEPT [437:66477]
:POSTROUTING ACCEPT [733:112191]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Fri May 20 07:00:01 2011
# Generated by iptables-save v1.4.8 on Fri May 20 07:00:01 2011
*nat
:PREROUTING ACCEPT [12:729]
:POSTROUTING ACCEPT [14:1116]
:OUTPUT ACCEPT [14:1116]
-A PREROUTING -i lan ! -d 192.168.0.254 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE
COMMIT
# Completed on Fri May 20 07:00:01 2011
# Generated by iptables-save v1.4.8 on Fri May 20 07:00:01 2011
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [29:9107]
:OUTPUT ACCEPT [30:5089]
-A INPUT -i ppp0 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 2 --name DEFAULT --rsource -j DROP
-A INPUT -i ppp0 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
-A INPUT -i ppp0 -p udp -m udp --dport 22 -j ACCEPT
-A INPUT -i ppp0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT ! -i ppp0 -m state --state NEW -j ACCEPT
-A INPUT -i ppp0 -j REJECT --reject-with icmp-port-unreachable
COMMIT
# Completed on Fri May 20 07:00:01 2011

yggdrasil
13-10-2013, 17:39
Grazie per l'iptables. :cincin:
Anche se nel mio nas già è presente l'antibrute force per ssh.
Però per il dnsmasq come ti ho già detto penso di non averne bisogno. Ho a disposizione tutto bind perciò cercare di fare leva sul fatto che è semplice da configurare l'mx non funziona. :D A mio avviso se già si usa bind per altri mestieri allora non c'è storia. :sofico: