# » course » networking-professional » Linux.03
L03. Konfiguracja sieci
Zobacz na YouTube:
Zidentyfikuj interfejsy sieciowe. Zapisz jakich używają MAC adresów.
W starszych wydaniach Debiana/Ubuntu i w każdej innej dystrybucji interfejsy sieciowe kiedyś nazywały się np. eth0, eth1 lub np. wlan0, wlan1 dla sieci bezprzewodowych. Takie nazewnictwo powodowało niekiedy problemy, np. po restarcie systemu karty zmieniały swoje nazwy i usługi sieciowe przypisane do nich nie działały. Zaczęto więc stosować nazewnictwo interfejsów, oparte o np. położenie fizyczne kart sieciowych na płycie głównej.
Nazewnictwa kart eth0, eth1 używają nadal systemy Armbian, Raspbian oparte na Debianie i Ubuntu.
Używając VirtualBox'a pierwsza karta sieciowa nazywa się enp0s3 a druga, trzecia i czwarta, odpowiednio: enp0s8, enp0s9 i enp0s10.
- WAN: Karta 1 - interfejs: eth0 / enp0s3 - dynamiczna konfiguracja (dhcp-client) lub statyczna konfiguracja (static)
- LAN: Karta 2 - interfejs: eth1 / enp0s8 - statyczna konfiguracja: 172.16.1.1/24
Potencjalne problemy
Pod adresem https://wiki.debian.org/NetworkConfiguration oraz https://www.debian.org/doc/manuals/debian-reference/ch05.en.html znajdziesz dokładną konfigurację kart sieciowych. Potencjalnym problemem może być NetworkManager. Możesz go wyłączyć (https://wiki.debian.org/NetworkManager).
Edytujemy plik /etc/network/interfaces tak aby zawierał potrzebną konfigurację kart sieciowych.
3.1 Konfiguracja interfejsu WAN: Karta 1 (eth0 / enp0s3
Interfejs eth0/enp0s3 realizuje połączenie do sieci rozległej (WAN) i powinien być skonfigurowany w sposób statyczny (np. 192.168.4.101/24). Ponadto aby serwer miał połączenie z internetem niezbędne jest podanie adresu bramy domyślnej (ang. Gateway).
Pomimo, że konfiguracja przydzielana dynamicznie dla interfejsu WAN jest wygodniejsza to zaleca się aby była ona statyczna. Zadbaj jednak o unikalność adresu IP w sieci. Np. będąc w sieci 192.168.4.0/24:
auto enp0s3
iface enp0s3 inet static
address 192.168.4.101
netmask 255.255.255.0
gateway 192.168.4.1
Jako, że używamy wbudowanego w VirtualBox NAT'a, wtedy konfiguracja interfejsu WAN będzie wyglądać następująco:
auto enp0s3
iface enp0s3 inet static
address 10.0.2.15
netmask 255.255.255.0
gateway 10.0.2.2
Możesz również, i to jest za początek zalecana opcja, zostawić autokonfigurację tej karty sieciowej.
# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet dhcp
3.2 Konfiguracja interfejsu LAN: Karta 2 (eth1 / enp0s8)
# The secondary network interfaces
auto enp0s8
iface enp0s8 inet static
address 172.16.1.1
netmask 255.255.255.0
Restart sieci
Po wprowadzeniu zmian należy zrestartować interfejsy sieciowe:
# systemctl restart networking
lub
# service networking restart
oraz 'podnieść' interfejs eth0/enp0s3 (ta operacja może nie być konieczna - sprawdź status połączenia):
# ifup enp0s3
lub
# ifup eth0
Następnie sprawdzamy poleceniem ifconfig czy zostały przypisane prawidłowe adresy. Dla karty eth0:
# ifconfig eth0
oraz dla karty eth1/enp0s8:
# ifconfig eth1
lub
# ifconfig enp0s8
Brak polecenia ifconfig
Komenda ifconfig jest przestarzała i dlatego domyślnie jej brakuje w systemie, począwszy od wersji Debian 9 (Stretch).
# ifconfig
-bash: ifconfig: command not found
Nową i zalecaną alternatywą do sprawdzania konfiguracji sieci w systemie Debian jest polecenie ip. Na przykład, aby użyć polecenia ip do wyświetlenia konfiguracji sieci, uruchom następujące polecenie:
# ip address
Powyższe polecenie ip może być skrócone do:
# ip a
Jeśli nadal wolisz używać polecenia ifconfig, możesz łatwo zainstalować go jako część pakietu net-tools.
Za pomocą polecenia apt (lub apt-get) zainstaluj pakiet net-tools:
# apt install net-tools
Komenda ifconfig jest teraz dostępna.
Przestarzałe polecenia sieciowe Linuksa i ich zamienniki
Wymieniane w tej instrukcji narzędzia wiersza poleceń dostępne do konfigurowania i rozwiązywania problemów z sieciami w systemach Linux, chociaż są nadal zawarte i funkcjonalne w wielu dystrybucjach Linuksa, są w rzeczywistości uważane za przestarzałe i dlatego powinny zostać wycofane na korzyść bardziej nowoczesnych zamienników.
W szczególności przestarzałe polecenia sieciowe Linuksa, o których mowa, to: arp, ifconfig, iptunnel, iwconfig, nameif, netstat i route.Te programy (z wyjątkiem iwconfig) są zawarte w pakiecie net-tools, który nie był konserwowany od lat. Funkcjonalność zapewniana przez kilka z tych narzędzi została odtworzona i ulepszona w nowym pakiecie iproute2, głównie za pomocą nowego polecenia ip.
| Przestarzałe polecenie | Zamiennik/i polecenia |
|---|---|
| arp | ip n (ip neighbor) |
| ifconfig | ip a (ip addr), ip link, ip -s (ip -stats) |
| iptunnel | ip tunnel |
| iwconfig | iw |
| nameif | ip link, ifrename |
| netstat | ss, ip route (dla netstat-r), ip -s link (dla netstat -i), ip maddr (dla netstat-g) |
| route | ip r (ip route) |
3.3 Przekazywanie IP
"Przekazywanie IP" (ang. IP forwarding) jest synonimem "routingu". Nazywa się to "przekazywaniem IP jądra" (ang. kernel IP forwarding), ponieważ jest cechą jądra Linux.
Router często ma wiele interfejsów sieciowych. Jeśli ruch przychodzi na jednym interfejsie, który pasuje do podsieci innego interfejsu sieciowego, router przesyła ten ruch do drugiego interfejsu sieciowego.
Przykład
Powiedzmy, że mamy dwie karty sieciowe, jedna (NIC-1) jest pod adresem 192.168.2.1/24, a druga (NIC-2) to 192.168.3.1/24. Jeśli przekazywanie jest włączone, a na NIC-1 przychodzi pakiet z "adresem docelowym" (ang. destination) 192.168.3.8, router ponownie wyśle ten pakiet z NIC-2.
Routery działające jako bramy do Internetu często mają domyślną trasę, dzięki której każdy ruch, który nie pasuje do żadnej karty sieciowej, przechodzi przez kartę sieciową trasy domyślnej. Tak więc w powyższym przykładzie, jeśli masz połączenie internetowe przez NIC-2, ustaw NIC-2 jako domyślną trasę, a następnie ruch przychodzący z NIC-1, który nie jest przeznaczony na coś na 192.168.2.0/24, zostanie skierowany przez NIC-2. Oczekujemy, że istnieją inne routery dostępne po NIC-2, które mogą dalej trasować (w przypadku Internetu, następnym skokiem byłby router twojego dostawcy usług internetowych (ISP, ang.Internet Service Provider), a następnie routera ich dostawcy, itd.).
Włączenie przekazywania IP
Włączenie ip_forward informuje system Linux, aby zaczął to robić. Aby miało to sens, potrzebne są dwa interfejsy sieciowe (dowolne dwa lub więcej przewodowych kart sieciowych, kart lub chipsetów Wi-Fi, łącza PPP przez modem 56k lub szeregowy itp.).
Podczas rutowania bezpieczeństwo jest ważne i właśnie tam włącza się filtr pakietów Linuksa, iptables. Potrzebujesz więc konfiguracji iptables zgodnej z Twoimi potrzebami.
Zauważ, że włączenie przekazywania z wyłączonym iptables i lub bez uwzględnienia zapory ogniowej i bezpieczeństwa może narazić Cię na zagrożenia, jeśli jedna z kart sieciowych będzie miała dostęp do Internetu lub podsieci, nad którą nie masz kontroli.
Sprawdzamy status "IP forwarding" poprzez:
# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
1 oznacza, że "IP forwarding" jest włączone.
Powyższa wartość odczytywana jest z Linux'owego systemu proc a dokładniej z pliku: /proc/sys/net/ipv4/ip_forward, można więc:
# cat /proc/sys/net/ipv4/ip_forward
1
Aby wyłączyć "IP forwarding" w działającym systemie:
# sysctl -w net.ipv4.ip_forward=0
net.ipv4.ip_forward = 0
Aby na stałe włączyć (lub wyłączyć) "IP forwarding" w systemie w pliku: /etc/sysctl.conf wyedytuj linie wpisując 1 dla włączenia lub 0 dla wyłączenia:
net.ipv4.ip_forward = 1
Brak pliku /etc/sysctl.conf
W systemie Debian 13, konfiguracja pierwotnie trzymana w pliku /etc/sysctl.conf została zmieniona. Całość konfiguracji została przeniesiona do katalogu /etc/sysctl.d/. Należy w nim utworzyć plik z rozszerzeniem *.conf o następującej zawartości:
net.ipv4.ip_forward = 1
Konfiguracja iptables
iptables to program sterujący filtrem pakietów (głównie używanym jako zapora sieciowa bądź NAT). Program może być używany jako filtr pakietów, bądź tzw. stanowa zapora dla systemów Linux z jądrem począwszy od serii 2.4.x, kontrolujący połączenia wchodzące i wychodzące do sieci komputerowej lub stacji roboczej. Wymaga jądra skompilowanego z modułem ip_tables.
Reguły iptables są ustalane i edytowane z wiersza polecenia komendą iptables dla IPv4 i ip6tables dla IPv6. Reguła włączająca translację adresów (tzw. maskaradę) dla systemu w którym karta enp0s3 jest interfejsem WAN z dostępem do internetu:
iptables –t nat –A POSTROUTING –o enp0s3 –j MASQUERADE
Wprowadzona konfiguracja działa do momentu ponownego uruchomienia systemu. Aby reguły iptables zostały ponownie zastosowane należy je najpierw zapisać.
Dla IPv4 mogą one zostać zapisane w pliku komendą iptables-save.
iptables-save > /etc/iptables/rules.v4
Ten plik może później zostać załadowany komendą iptables-restore.
iptables-restore < /etc/iptables/rules.v4
Jeżeli są wykorzystywane reguły IPv6 to mogą one również zostać zapisane.
ip6tables-save > /etc/iptables/rules.v6
Automatyczne ładowanie skonfigurowanych reguł iptables może być zrealizowane za pomocą iptables-persistent
Pakiet o nazwie "iptables-persistent", przejmuje automatyczne ładowanie zapisanych reguł iptables. Reguły muszą być zapisane w pliku /etc/iptables/rules.v4 dla IPv4 lub w /etc/iptables/rules.v6 dla IPv6.
Aby móc skorzystać z pakietu należy go jedynie zainstalować.
apt install iptables-persistent
Uwaga!
Starsze wersje pakietu iptables-persistent (np. w Debianie Squeeze) nie wspierają reguł IPv6, występuje w nich jedynie plik /etc/iptables/rules dla IPv4.
Skontroluj czy po zakończonej konfiguracji reguły są ładowane po restarcie systemu.
3.4 Brama domyślna w sieci
Sprawdzamy poleceniem route czy została ustawiona prawidłowa brama domyślna (zakładając że jesteśmy w sieci 192.168.4.0/24):
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.4.1 0.0.0.0 UG 0 0 0 eth0
192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
lub
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Jeśli z jakiejś przyczyny brama domyślna nie została skonfigurowana pamiętaj, że zawsze możesz ustawić ją ręcznie poleceniem route:
# route add default gw 192.168.4.1
lub
# route add default gw 10.0.2.2
3.5 Konfiguracja statyczna sieci w systemie Windows
Jako system do testów użyj dowolnej maszyny wirtualnej.
Statyczna konfiguracja interfejsu sieciowego jest niezbędna ponieważ nasza sieć w chwili obecnej nie posiada jeszcze skonfigurowanego serwera DHCP. Dlatego w systemie klienckim powinniśmy ręcznie ustawić następujące parametry sieci:
Kartę sieciową systemu ustawiamy w tej samej sieci wewnętrznej co kartę w systemie serwerowym.
| Parametr | Wartość | Uwagi |
|---|---|---|
| Adres IP | 172.16.1.2 | Zgodnie z tym co ustawiliśmy na serwerze |
| Maska podsieci | 255.255.255.0 | Zgodna z maską serwera |
| Brama domyślna | Możemy pozostawić puste ponieważ do momentu uruchomienia NAT-a i tak nie uzyskamy połączenia z internetem. Jeśli jednak chcemy można odrazu wskazać poprawny adres bramy. | |
| Serwery DNS | Tak jak w przypadku bramy domyślnej |
Po skonfigurowaniu sieci uruchamiamy konsolę CMD lub PowerShell i poleceniem ipconfig sprawdzamy konfigurację karty:
C:\Users\Administrator>ipconfig
Konfiguracja IP systemu Windows
Karta Ethernet Połączenie lokalne:
Sufiks DNS konkretnego połączenia :
Adres IPv6 połączenia lokalnego . : fe80::f495:64b5:90f3:defb%14
Adres IPv4. . . . . . . . . . . . : 172.16.1.2
Maska podsieci. . . . . . . . . . : 255.255.255.0
Brama domyślna. . . . . . . . . . :
Następnie poleceniem ping testujemy połączenie do serwera
C:\Users\Administrator>ping 172.16.1.1
Badanie 172.16.1.1 z 32 bajtami danych:
Odpowiedź z 172.16.1.1: bajtów=32 czas=3ms TTL=64
Odpowiedź z 172.16.1.1: bajtów=32 czas=4ms TTL=64
Odpowiedź z 172.16.1.1: bajtów=32 czas=3ms TTL=64
Odpowiedź z 172.16.1.1: bajtów=32 czas=2ms TTL=64
Statystyka badania ping dla 172.16.1.1:
Pakiety: Wysłane = 4, Odebrane = 4, Utracone = 0 (0% straty),
Szacunkowy czas błądzenia pakietów w millisekundach:
Minimum = 3 ms, Maksimum = 3 ms, Czas średni = 3 ms
Możemy także teraz przetestować połączenie z serwera do naszego klienta
# ping 172.16.1.2
PING 172.16.1.2 (172.16.1.2) 56(84) bytes of data.
64 bytes from 172.16.1.2: icmp_req=1 ttl=128 time=4.37 ms
64 bytes from 172.16.1.2: icmp_req=2 ttl=128 time=4.84 ms
64 bytes from 172.16.1.2: icmp_req=3 ttl=128 time=4.34 ms
64 bytes from 172.16.1.2: icmp_req=4 ttl=128 time=7.34 ms
--- 172.16.1.2 ping statistics 4 ---
packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 4.349/5.230/7.349/1.241 ms
Po poprawnym skonfigurowaniu interfejsów sieciowych na serwerze oraz na hoście klienckim można przystąpić do instalacji i konfiguracji kolejnych usług sieciowych na serwerze.
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)