Seria RHCE: Jak skonfigurować i przetestować routing sieci statycznej — część 1
RHCE (Certyfikowany inżynier Red Hat) to certyfikat wydany przez firmę Red Hat, która zapewnia społeczności przedsiębiorstw system operacyjny i oprogramowanie typu open source. Zapewnia także szkolenia, wsparcie i usługi doradcze dla firm.
Ten RHCE (Certyfikowany inżynier Red Hat) to egzamin oparty na wynikach (nazwa kodowa EX300), który posiada dodatkowe umiejętności, wiedzę i zdolności wymagane od starszego administratora systemu odpowiedzialnego za systemy Red Hat Enterprise Linux (RHEL).
Ważne: aby uzyskać certyfikat RHCE, wymagany jest certyfikat Red Hat Certified System Administrator (RHCSA).
Poniżej znajdują się cele egzaminu oparte na wersji egzaminu Red Hat Enterprise Linux 7, które zostaną ujęte w tej serii RHCE:
Aby wyświetlić opłaty i zarejestrować się na egzamin w swoim kraju, odwiedź stronę Certyfikacja RHCE.
W tej Części 1 serii RHCE i następnej przedstawimy podstawowe, ale typowe przypadki, w których obowiązują zasady routingu statycznego, filtrowania pakietów i translacji adresów sieciowych w grę.
Pamiętaj, że nie będziemy ich szczegółowo omawiać, ale raczej uporządkujemy tę zawartość w taki sposób, który będzie pomocny w postawieniu pierwszych kroków i budowaniu na tej podstawie.
Routing statyczny w Red Hat Enterprise Linux 7
Jednym z cudów współczesnej sieci jest ogromna dostępność urządzeń, które mogą łączyć grupy komputerów, niezależnie od tego, czy są to stosunkowo małe liczby i ograniczone do jednego pomieszczenia, czy też kilka maszyn w tym samym budynku, mieście, kraju lub na różnych kontynentach.
Jednakże, aby skutecznie osiągnąć to w każdej sytuacji, pakiety sieciowe muszą być trasowane, czyli innymi słowy, ścieżka, którą podążają od źródła do miejsca docelowego, musi być w jakiś sposób kontrolowana.
Routing statyczny to proces określania trasy dla pakietów sieciowych innych niż domyślna, która jest udostępniana przez urządzenie sieciowe zwane bramą domyślną. O ile nie określono inaczej w przypadku routingu statycznego, pakiety sieciowe są kierowane do bramy domyślnej; w przypadku routingu statycznego inne ścieżki są definiowane na podstawie wcześniej zdefiniowanych kryteriów, takich jak miejsce docelowe pakietu.
Zdefiniujmy następujący scenariusz dla tego samouczka. Mamy urządzenie Red Hat Enterprise Linux 7 podłączone do routera nr 1 [192.168.0.1], aby uzyskać dostęp do Internetu i maszyn w 192.168.0.0/24.
Drugi router (router nr 2) ma dwie karty interfejsu sieciowego: enp0s3 jest również podłączony do routera nr 1 w celu uzyskania dostępu do Internetu i komunikacji ze skrzynką RHEL 7 i innymi maszynami w tej samej sieci, natomiast druga (enp0s8) służy do udzielania dostępu do sieci 10.0.0.0/24, w której rezydują usługi wewnętrzne , taki jak serwer WWW i/lub baza danych.
Scenariusz ten ilustruje poniższy diagram:
W tym artykule skupimy się wyłącznie na ustawieniu tablicy routingu w naszym urządzeniu RHEL 7, aby mieć pewność, że będzie ono mogło uzyskać dostęp do Internetu zarówno poprzez router nr 1, jak i sieć wewnętrzną przez router nr 2.
W RHEL 7 będziesz używać polecenia ip do konfiguracji i wyświetlania urządzeń i routingu za pomocą wiersza poleceń. Zmiany te mogą zacząć obowiązywać natychmiast w działającym systemie, ale ponieważ nie są trwałe po ponownym uruchomieniu, użyjemy plików ifcfg-enp0sX i route-enp0sX w pliku /etc /sysconfig/network-scripts, aby trwale zapisać naszą konfigurację.
Na początek wydrukujmy naszą aktualną tablicę routingu:
ip route show
Z powyższych danych wyjściowych możemy zobaczyć następujące fakty:
- Domyślny adres IP bramy to 192.168.0.1 i można uzyskać do niego dostęp poprzez kartę sieciową enp0s3.
- Kiedy system się uruchomił, włączył trasę Zeroconf do 169.254.0.0/16 (na wszelki wypadek). Krótko mówiąc, jeśli urządzenie jest ustawione na uzyskiwanie adresu IP przez DHCP, ale z jakiegoś powodu tego nie robi, automatycznie zostaje mu przypisany adres w tej sieci. Konkluzja jest taka, że ta trasa umożliwi nam komunikację, także poprzez enp0s3, z innymi maszynami, którym nie udało się uzyskać adresu IP z serwera DHCP.
- Wreszcie, możemy komunikować się z innymi urządzeniami w sieci 192.168.0.0/24 poprzez enp0s3, którego adres IP to 192.168.0.18 >.
Są to typowe zadania, które należy wykonać w takim otoczeniu. O ile nie określono inaczej, poniższe zadania należy wykonać na routerze nr 2:
Upewnij się, że wszystkie karty sieciowe zostały poprawnie zainstalowane:
ip link show
Jeśli któryś z nich nie działa, podnieś go:
ip link set dev enp0s8 up
i przypisz mu adres IP w sieci 10.0.0.0/24:
ip addr add 10.0.0.17 dev enp0s8
Ups! Popełniliśmy błąd w adresie IP. Będziemy musieli usunąć ten, który przypisaliśmy wcześniej, a następnie dodać właściwy (10.0.0.18):
ip addr del 10.0.0.17 dev enp0s8
ip addr add 10.0.0.18 dev enp0s8
Pamiętaj, że trasę do sieci docelowej możesz dodać tylko przez bramę, która sama w sobie jest już osiągalna. Z tego powodu musimy przypisać adres IP z zakresu 192.168.0.0/24 do enp0s3, aby nasz box RHEL 7 mógł się z nim komunikować:
ip addr add 192.168.0.19 dev enp0s3
Na koniec będziemy musieli włączyć przekazywanie pakietów:
echo "1" > /proc/sys/net/ipv4/ip_forward
i zatrzymaj/wyłącz (na razie – do czasu omówienia filtrowania pakietów w następnym artykule) zaporę sieciową:
systemctl stop firewalld
systemctl disable firewalld
Wracając do naszego pola RHEL 7 (192.168.0.18), skonfigurujmy trasę od 10.0.0.0/24 do 192.168.0.19 (enp0s3 w routerze nr 2):
ip route add 10.0.0.0/24 via 192.168.0.19
Następnie tablica routingu wygląda następująco:
ip route show
Podobnie dodaj odpowiednią trasę na maszynach, do których chcesz dotrzeć w 10.0.0.0/24:
ip route add 192.168.0.0/24 via 10.0.0.18
Możesz przetestować podstawową łączność za pomocą polecenia ping:
W polu RHEL 7 uruchom
ping -c 4 10.0.0.20
gdzie 10.0.0.20 to adres IP serwera WWW w sieci 10.0.0.0/24.
Na serwerze WWW (10.0.0.20) uruchom
ping -c 192.168.0.18
gdzie 192.168.0.18 to, jak pamiętasz, adres IP naszej maszyny RHEL 7.
Alternatywnie możemy użyć tcpdump (może być konieczne zainstalowanie go z yum install tcpdump), aby sprawdzić dwukierunkową komunikację przez TCP pomiędzy naszym urządzeniem RHEL 7 a serwerem WWW pod adresem 10.0.0.20 .
W tym celu rozpocznijmy logowanie na pierwszej maszynie od:
tcpdump -qnnvvv -i enp0s3 host 10.0.0.20
i z innego terminala w tym samym systemie telnet do portu 80 na serwerze internetowym (zakładając, że Apache nasłuchuje na tym porcie; w przeciwnym razie wskaż właściwy port w następującym poleceniu):
telnet 10.0.0.20 80
Dziennik tcpdump powinien wyglądać następująco:
Gdzie połączenie zostało prawidłowo zainicjowane, co możemy stwierdzić, patrząc na dwukierunkową komunikację pomiędzy naszym urządzeniem RHEL 7 (192.168.0.18) a serwerem internetowym (10.0.0.20).
Pamiętaj, że zmiany te znikną po ponownym uruchomieniu systemu. Jeśli chcesz, aby były trwałe, będziesz musiał edytować (lub utworzyć, jeśli jeszcze nie istnieją) następujące pliki w tych samych systemach, w których wykonaliśmy powyższe polecenia.
Chociaż nie jest to absolutnie konieczne w naszym przypadku testowym, powinieneś wiedzieć, że /etc/sysconfig/network zawiera parametry sieciowe ogólnosystemowe. Typowy /etc/sysconfig/network wygląda następująco:
Enable networking on this system?
NETWORKING=yes
Hostname. Should match the value in /etc/hostname
HOSTNAME=yourhostnamehere
Default gateway
GATEWAY=XXX.XXX.XXX.XXX
Device used to connect to default gateway. Replace X with the appropriate number.
GATEWAYDEV=enp0sX
Jeśli chodzi o ustawienie określonych zmiennych i wartości dla każdej karty sieciowej (tak jak zrobiliśmy to w przypadku routera nr 2), będziesz musiał edytować /etc/sysconfig/network-scripts/ifcfg-enp0s3 i /etc/sysconfig/network-scripts/ifcfg-enp0s8.
Śledząc naszą sprawę,
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.0.19
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NAME=enp0s3
ONBOOT=yes
I
TYPE=Ethernet
BOOTPROTO=static
IPADDR=10.0.0.18
NETMASK=255.255.255.0
GATEWAY=10.0.0.1
NAME=enp0s8
ONBOOT=yes
odpowiednio dla enp0s3 i enp0s8.
Jeśli chodzi o routing na naszym komputerze klienckim (192.168.0.18), będziemy musieli edytować /etc/sysconfig/network-scripts/route-enp0s3:
10.0.0.0/24 via 192.168.0.19 dev enp0s3
Teraz uruchom ponownie system, a trasa powinna być widoczna w tabeli.
Streszczenie
W tym artykule omówiliśmy podstawy routingu statycznego w Red Hat Enterprise Linux 7. Chociaż scenariusze mogą się różnić, przedstawiony tutaj przypadek ilustruje wymagane zasady i procedury umożliwiające wykonanie tego zadania. Zanim zakończę, sugeruję zapoznanie się z rozdziałem 4 sekcji Bezpieczeństwo i optymalizacja Linuksa w witrynie projektu dokumentacji systemu Linux, aby uzyskać dalsze szczegóły na poruszane tutaj tematy.
Bezpłatny e-book na temat Bezpieczeństwo i optymalizacja systemu Linux: rozwiązanie hakerskie (v.3.0) – ten e-book ponad 800 zawiera obszerny zbiór wskazówek dotyczących bezpieczeństwa systemu Linux oraz sposobów bezpiecznego i łatwego korzystania z nich do konfigurowania aplikacji i usług opartych na systemie Linux.
Pobierz teraz
W następnym artykule omówimy filtrowanie pakietów i translację adresów sieciowych, aby podsumować podstawowe umiejętności pracy w sieci potrzebne do certyfikacji RHCE.
Jak zawsze czekamy na Twoją wiadomość, więc nie krępuj się i zostaw swoje pytania, komentarze i sugestie, korzystając z poniższego formularza.