Przybyłem tutaj, gdy szukałem podobnych informacji i byłem zaskoczony, że wielu twierdzi, że w porządku jest ujawnienie prywatnych adresów IP. Sądzę, że jeśli chodzi o włamanie, nie ma to wielkiego znaczenia, jeśli jesteś w bezpiecznej sieci. Jednak DigitalOcean miał cały ruch sieci lokalnej na dokładnie tych samych kablach, a wszyscy naprawdę mieli dostęp do ruchu wszystkich innych osób (prawdopodobnie wykonalne z atakiem Man in the Middle). Jeśli po prostu dostaniesz komputer w tym samym centrum danych, mając to informacje z pewnością przybliżają Cię o krok do zhakowania mojego ruchu. (Teraz każdy klient ma własną zarezerwowaną prywatną sieć, podobnie jak inne usługi chmurowe, takie jak AWS.)
To powiedziawszy, dzięki własnej usłudze BIND9 możesz łatwo zdefiniować swoje publiczne i prywatne adresy IP. Odbywa się to za pomocą view
funkcji, która obejmuje warunkowe. Pozwala to na wysłanie zapytania do jednego DNS i uzyskanie odpowiedzi na temat wewnętrznych adresów IP tylko wtedy, gdy pytasz o swój własny wewnętrzny adres IP.
Konfiguracja wymaga dwóch stref. Wybór wykorzystuje match-clients
. Oto przykład konfiguracji z serwera DNS dwa w jednym z 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; };
};
};
Oto strefa zewnętrzna i możemy zobaczyć, że adresy IP nie są prywatne
; 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.
Jeśli chodzi o strefę wewnętrzną, najpierw uwzględniamy strefę zewnętrzną, tak to działa. tzn. jeśli jesteś komputerem wewnętrznym, masz dostęp tylko do strefy wewnętrznej, więc nadal potrzebujesz definicji stref zewnętrznych, stąd $include
polecenie:
$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
Na koniec musisz się upewnić, że wszystkie komputery korzystają teraz z tego DNS i jego urządzeń podrzędnych. Przy założeniu sieci statycznej oznaczałoby to edycję /etc/network/interfaces
pliku i użycie adresów IP DNS w nameserver
opcji. Coś takiego:
iface eth0 inet static
...
nameserver 10.0.0.1 10.0.0.103 ...
Teraz powinieneś być gotowy.