Sono arrivato qui mentre cercavo informazioni simili e sono rimasto sorpreso dal fatto che molti affermino che va bene perdere i tuoi indirizzi IP privati. Immagino in termini di essere hackerato, non fa una grande differenza se sei su una rete sicura. Tuttavia, DigitalOcean ha avuto tutto il traffico di rete locale sugli stessi cavi con tutti gli utenti che hanno davvero accesso al traffico di tutti gli altri (probabilmente fattibile con un attacco Man in the Middle.) Se avessi un computer nello stesso data center, le informazioni certamente ti avvicinano di più all'hacking del mio traffico. (Ora ogni client ha una propria rete privata riservata come con altri servizi cloud come AWS.)
Detto questo, con il tuo servizio BIND9, potresti facilmente definire i tuoi IP pubblici e privati. Questo viene fatto usando la view
funzione, che include un condizionale. Ciò consente di interrogare un DNS e ottenere una risposta sugli IP interni solo se si richiede dal proprio indirizzo IP interno.
L'installazione richiede due zone. La selezione utilizza il match-clients
. Ecco un esempio di installazione dal server DNS due in uno con BIND9 :
acl slaves {
195.234.42.0/24; // XName
193.218.105.144/28; // XName
193.24.212.232/29; // XName
};
acl internals {
127.0.0.0/8;
10.0.0.0/24;
};
view "internal" {
match-clients { internals; };
recursion yes;
zone "example.com" {
type master;
file "/etc/bind/internals/db.example.com";
};
};
view "external" {
match-clients { any; };
recursion no;
zone "example.com" {
type master;
file "/etc/bind/externals/db.example.com";
allow-transfer { slaves; };
};
};
Ecco la zona esterna e possiamo vedere che gli IP non sono privati
; example.com
$TTL 604800
@ IN SOA ns1.example.com. root.example.com. (
2006020201 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800); Negative Cache TTL
;
@ IN NS ns1
IN MX 10 mail
IN A 192.0.2.1
ns1 IN A 192.0.2.1
mail IN A 192.0.2.128 ; We have our mail server somewhere else.
www IN A 192.0.2.1
client1 IN A 192.0.2.201 ; We connect to client1 very often.
Per quanto riguarda la zona interna, includiamo prima la zona esterna, che è come funziona. cioè se sei un computer interno, accedi solo alla zona interna, quindi hai ancora bisogno delle definizioni di zona esterna, quindi il $include
comando:
$include "/etc/bind/external/db.example.com"
@ IN A 10.0.0.1
boss IN A 10.0.0.100
printer IN A 10.0.0.101
scrtry IN A 10.0.0.102
sip01 IN A 10.0.0.201
lab IN A 10.0.0.103
Infine, devi assicurarti che tutti i tuoi computer ora facciano uso di quel DNS e dei suoi slave. Supponendo una rete statica, significherebbe modificare il /etc/network/interfaces
file e utilizzare i propri IP DNS nameserver
nell'opzione. Qualcosa come questo:
iface eth0 inet static
...
nameserver 10.0.0.1 10.0.0.103 ...
Ora dovresti essere pronto.