# » course » networking-professional » Linux.06
L06 DNS, serwer nazw domenowych
Serwery DNS są jednym z najistotniejszych elementów internetu. System nazw umożliwia nam automatyczne tłumaczenie nazw mnemonicznych (zrozumiałych dla człowieka np. www.wp.pl) na adresy IP (np. 212.77.100.101). Na naszym serwerze uruchomimy lokalny serwer DNS tak aby można było łączyć się z klientem i serwerem za pomocą przyjaznych nazw.
6.1 Instalacja serwera BIND9
Dla systemu Linux powstało wiele programów pełniących rolę serwera DNS, jednakże największą popularnością (nieprzerwanie od wielu lat) cieszy się serwer BIND. Oprogramowanie BIND (ang. Berkeley Internet Name Domain). Serwer BIND podobnie jak isc-dhcp, został stworzony przez Internet Systems Consortium (https://www.isc.org/downloads/bind/). Paczka bind9 znajduje się w standardowym repozytorium Debiana.
Innym popularnym rozwiązaniem jest dnsmasq.
Instalacja BIND'a:
# apt install bind9
Po prawidłowej instalacji usługa bind powinna automatycznie się uruchomić. Domyślnie bind nie posiada konfiguracji żadnej domeny. W tym momencie jedyną jego funkcją jest funkcja cache, znaczy to że od tego momentu możemy ustawiać IP naszego serwera jako serwera DNS i zapytania do niego przesłane będą przekazywane do innych serwerów a odpowiedzi zapisywane w pamięci podręcznej naszego serwera (funkcja ta przyśpiesza np. wczytywanie stron WWW). Widoczne jest to zwłaszcza podczas powtórnego odpytania systemu DNS o adres, mamy zdecydowanie krótszy czas odpowiedzi z serwera.
6.2 Konfiguracja klienta do korzystania z lokalnego serwera DNS
Lokalny serwer DNS który uruchomiliśmy będzie nam umożliwiał skonfigurowanie domeny lokalnej oraz przyśpieszenie procesu rozwiązywania nazw. W celu konfiguracji klienta do korzystania z naszego serwera można ręcznie wpisać adres IP serwera w konfiguracji połączenia, jednakże dużo lepszym rozwiązaniem jest zmiana ustawień serwera DHCP tak, aby automatycznie przypisywał naszym klientom nasz lokalny serwer DNS.
- Zmieniamy ustawienie serwera BIND w pliku /etc/bind/named.conf.options dodając do sekcji options następujący blok:
- Zmieniamy ustawienie serwera BIND w pliku /etc/bind/named.conf.options dodając do sekcji options następujący blok:
forwarders { 208.67.222.222; }; dnssec-validation no;Znaczenie poszczególnych opcji:
- forwarders – sekcja, w której zamieszczamy adresy serwerów, do których będą przekazywane zapytania kierowane poza naszą domenę (208.67.222.222 – OpenDNS)
- dnssec-validation – wyłączenie sprawdzania DNSSEC
DNSSEC (ang. DNS Security Extensions) - rozszerzenie systemu DNS mające na celu zwiększenie jego bezpieczeństwa. DNSSEC zapewnia uwierzytelnianie źródeł danych (serwerów DNS) za pomocą kryptografii asymetrycznej oraz podpisów cyfrowych.
- Restartujemy serwer bind:
# service bind9 restart - Zmiana konfiguracji DHCP w pliku /etc/dhcp/dhcpd.conf
subnet 172.16.1.0 netmask 255.255.255.0 { range 172.16.1.100 172.16.1.200; option domain-name-servers 172.16.1.1; option routers 172.16.1.1; }Zamieniamy opcję domain-name-serwers na adres naszego serwera – 172.16.1.1
- Restartujemy serwer DHCP
# service isc-dhcp-server restart - Na systemie klienckim pobieramy ponownie adres z serwera poleceniem: ipconfig /renew
- Sprawdzamy poleceniem ipconfig /all czy adres serwera DNS został prawidłowo przydzielony przez serwer DHCP
- Testujemy narzędziem nslookup działanie naszego serwera DNS np. poleceniem: nslookup polska.pl
Jeśli zapytanie zostało prawidłowo rozwiązane, np. (polska.pl = 89.174.23.111) to nasz serwer spełnia rolę serwer proxyDNS.
6.3 Konfiguracja własnej domeny lokalnej
Konfigurację domeny przeprowadzimy na przykładzie domeny nazwa.local ponieważ jest to domena local nie będzie ona osiągalna na hostach spoza naszej sieci lokalnej i na hostach które będą korzystały z innego serwera DNS niż nasz lokalny.
1. Konfigurujemy nową strefę DNS w pliku /etc/bind/named.conf.local
zone "nazwa.local" {
type master;
file "/etc/bind/nazwa.local";
};
Znaczenie poszczególnych opcji:
- zone – strefa, nad którą nasz serwer ma zwierzchność
- type – typ serwera, można ustawić jako podstawowy (master) lub zapasowy (slave)
- file – plik w którym jest przechowywana konfiguracja strefy (plik trzeba będzie stworzyć)
2. Sprawdzamy poprawność wprowadzonych zmian poleceniem named-checkconf
# named-checkconf /etc/bind/named.conf
3. Tworzymy plik konfiguracyjny naszej domeny /etc/bind/nazwa.local
$TTL 3600
@ IN SOA nazwa.local. admin.nazwa.local. (
2020122001 ; Serial
86400 ; Refresh [1h]=3600
3600 ; Retry [10m]=600
3600000 ; Expire [1d]=86400
1209600 ; Negative Cache TTL [1h]=600
)
nazwa.local. IN NS ns1.nazwa.local.
nazwa.local. IN MX 10 poczta.nazwa.local.
@ IN A 172.16.1.1
ns1 IN A 172.16.1.1
poczta IN A 172.16.1.1
www IN A 172.16.1.1
windows IN A 172.16.1.22
serwer IN CNAME www
Najważniejsze typy rekordów DNS oraz ich znaczenie:
- SOA – rekord adresu startowego uwierzytelnienia (ang. start of authority record) ustala serwer DNS dostarczający autorytatywne informacje o domenie internetowej.
- NS – rekord serwera nazw (ang. name server record) mapuje nazwę domenową na listę serwerów DNS dla tej domeny.
- MX – rekord wymiany poczty (ang. mail exchange record) mapuje nazwę domeny DNS na nazwę serwera poczty oraz jego priorytet.
- A – rekord adresu (ang. address record) mapuje nazwę domeny DNS na jej 32-bitowy adres IPv4.
- CNAME – rekord nazwy kanonicznej (ang. canonical name record) ustanawia alias nazwy domeny.
Dodatkowe opcje konfiguracji znajdziesz w dokumentacji Debiana: https://wiki.debian.org/Bind9 oraz w dokumencie: BIND 9 Administrator ReferenceManual
4. Sprawdzamy poprawność konfiguracji rekordów poleceniem named-checkzone
# named-checkzone nazwa.local /etc/bind/nazwa.local
5. Restartujemy serwer bind
# service bind9 restart
6. Żeby serwer (host) rozpoznawał także domenę, w której się znajduje, trzeba przeedytować plik /etc/resolv.conf i ustawić serwer jako podstawowy DNS
domain nazwa.local
nameserver 172.16.1.1
UWAGA
domenę w resolv.conf dodajemy jedną, odpowiednią dla domeny do jakiej należy sam serwer (host) a nie wszystkie obsługiwane przez serwer DNS domeny.
7. Następnie w celu przypisania właściwej domeny dla hostów ponownie zmieniamy konfiguracje serwera DHCP w pliku /etc/dhcp/dhcpd.conf
option domain-name "nazwa.local";
8. Restartujemy serwer DHCP
# service isc-dhcp-server restart
9. Ponownie pobieramy adres IP (i domenę) na systemie klienckim (poprzez polecenie: ipconfig /renew)
C:\Users\Administrator>ipconfig /renew
Konfiguracja IP systemu Windows
Karta Ethernet Połączenie lokalne:
Sufiks DNS konkretnego połączenia : nazwa.local
Adres IPv6 połączenia lokalnego . : fe80::f495:64b5:90f3:defb%14
Adres IPv4. . . . . . . . . . . . : 172.16.1.22
Maska podsieci. . . . . . . . . . : 255.255.255.0
Brama domyślna. . . . . . . . . . : 172.16.1.1
10. Testujemy działanie naszej domeny poleceniem nslookup oraz ping
C:\Users\Administrator>nslookup www.nazwa.local
C:\Users\Administrator>nslookup windows.nazwa.local
C:\Users\Administrator>ping serwer.nazwa.local
W razie problemów w tłumaczeniem nazw na adresy, można wyczyścić pamięć poręczną dns na systemie klienckim za pomocą polecenia: ipconfig /flushdns
Po tak przeprowadzonej konfiguracji serwera DNS, można w naszej sieci lokalnej komunikować się przy pomocy przypisanych do hostów nazw domenowych. Ułatwi to konfigurację dalszych usług na serwerze, ponieważ będzie można użyć nazw domenowych zamiast adresów IP.
Sieci Komputerowe
poziom podstawowy
Sieci komputerowe
poziom zaawansowany
- Serwer Windows - Przygotowanie maszyny wirtualnej dla systemu Windows Server (wirtualizacja sieci)
- Serwer Windows - Instalacja i konfiguracja systemu Windows Server
- Serwer Windows - Serwer DNS w sieci lokalnej w oparciu o system Windows Server (DNS)
- Serwer Windows - Zapora sieciowa w systemie Windows Serwer (Firewall)
- Serwer Windows - Kontroler domeny w oparciu o Windows Server (AD DS)
- Serwer Windows - Tworzenie zespołu kart sieciowych (NIC Teaming) w systemie Windows Server (NIC Teaming)
Sieci komputerowe
poziom profesjonalny
- Serwer Linux - Przygotowanie maszyny wirtualnej (wirtualizacja sieci)
- Serwer Linux - Instalacja systemu
- Serwer Linux - Konfiguracja sieci
- Serwer Linux - Instalacja i konfiguracja SSH
- Serwer Linux - DHCP, dynamiczna konfiguracja adresacji hostów w sieci
- Serwer Linux - DNS, serwer nazw domenowych
- Serwer Linux - Serwer plików (FTP)