RHCE-serien: Sådan opsættes og testes statisk netværksrute - del 1


RHCE (Red Hat Certified Engineer) er en certificering fra Red Hat-firmaet, der giver et open source-operativsystem og software til virksomhedssamfundet. Det giver også uddannelse, support og konsulenttjenester til virksomhederne.

Denne RHCE (Red Hat Certified Engineer) er en præstationsbaseret eksamen (kodenavn EX300), der besidder de yderligere færdigheder, viden og evner, der kræves af en senior systemadministrator med ansvar for Red Hat Enterprise Linux (RHEL) -systemer.

Vigtigt: Red Hat Certified System Administrator (RHCSA) -certificering kræves for at opnå RHCE-certificering.

Følgende er eksamensmålene baseret på Red Hat Enterprise Linux 7-versionen af eksamenen, som vil dække i denne RHCE-serie:

For at se gebyrer og tilmelde dig en eksamen i dit land skal du tjekke siden RHCE-certificering.

I denne del 1 af RHCE-serien og den næste præsenterer vi grundlæggende, men alligevel typiske tilfælde, hvor principperne for statisk routing, pakkefiltrering og oversættelse af netværksadresser spiller ind.

Bemærk, at vi ikke vil dække dem i dybden, men snarere organisere dette indhold på en sådan måde, at det vil være nyttigt at tage de første skridt og bygge derfra.

Statisk routing i Red Hat Enterprise Linux 7

Et af vidundere ved moderne netværk er den store tilgængelighed af enheder, der kan forbinde grupper af computere, hvad enten det er i relativt lille antal og begrænset til et enkelt rum eller flere maskiner i samme bygning, by, land eller på tværs af kontinenter.

Men for effektivt at opnå dette i enhver situation skal netværkspakker dirigeres, eller med andre ord skal den vej, de følger fra kilde til destination, bestemmes på en eller anden måde.

Statisk routing er processen med at specificere en rute til andre netværkspakker end standard, som leveres af en netværksenhed kendt som standard gateway. Medmindre andet er angivet gennem statisk routing, dirigeres netværkspakker til standardgatewayen; med statisk routing defineres andre stier baseret på foruddefinerede kriterier, såsom pakkedestinationen.

Lad os definere følgende scenarie til denne tutorial. Vi har en Red Hat Enterprise Linux 7-boks, der forbinder til router nr. 1 [192.168.0.1] for at få adgang til internettet og maskiner i 192.168.0.0/24.

En anden router (router nr. 2) har to netværksinterfacekort: enp0s3 er også forbundet til router nr. 1 for at få adgang til internettet og for at kommunikere med RHEL 7-boksen og andre maskiner i det samme netværk, mens den anden (enp0s8) bruges at give adgang til 10.0.0.0/24-netværket, hvor der er interne tjenester, såsom en web- og/eller databaseserver.

Dette scenarie er illustreret i nedenstående diagram:

I denne artikel vil vi udelukkende fokusere på at oprette routingtabellen på vores RHEL 7-boks for at sikre, at den både kan få adgang til Internettet via router nr. 1 og det interne netværk via router nr. 2.

I RHEL 7 bruger du kommandoen ip til at konfigurere og vise enheder og routing ved hjælp af kommandolinjen. Disse ændringer kan træde i kraft straks på et kørende system, men da de ikke er vedvarende på tværs af genstart, bruger vi ifcfg-enp0sX og route-enp0sX filer inde i/etc/sysconfig/netværks-scripts til at gemme vores konfiguration permanent.

Lad os begynde med at udskrive vores nuværende rutetabel:

# ip route show

Fra output ovenfor kan vi se følgende fakta:

  1. Standardgatewayens IP-adresse er 192.168.0.1 og kan tilgås via enp0s3 NIC.
  2. Når systemet startede op, aktiverede det zeroconf-ruten til 169.254.0.0/16 (bare i tilfælde). Med få ord, hvis en maskine er indstillet til at få en IP-adresse gennem DHCP, men af en eller anden grund ikke gør det, tildeles den automatisk en adresse i dette netværk. Bundlinjen er, at denne rute giver os mulighed for at kommunikere, også via enp0s3, med andre maskiner, der ikke har fået en IP-adresse fra en DHCP-server.
  3. Sidst, men ikke mindst, kan vi kommunikere med andre felter i 192.168.0.0/24-netværket via enp0s3, hvis IP-adresse er 192.168.0.18.

Dette er de typiske opgaver, som du bliver nødt til at udføre i en sådan indstilling. Medmindre andet er angivet, skal følgende opgaver udføres i router nr. 2:

Sørg for, at alle NIC'er er installeret korrekt:

# ip link show

Hvis en af dem er nede, skal du bringe den op:

# ip link set dev enp0s8 up

og tildel en IP-adresse i 10.0.0.0/24-netværket til den:

# ip addr add 10.0.0.17 dev enp0s8

Ups! Vi lavede en fejl i IP-adressen. Vi bliver nødt til at fjerne den, vi tidligere har tildelt, og derefter tilføje den rigtige (10.0.0.18):

# ip addr del 10.0.0.17 dev enp0s8
# ip addr add 10.0.0.18 dev enp0s8

Bemærk nu, at du kun kan tilføje en rute til et destinationsnetværk via en gateway, der allerede er tilgængelig. Af den grund er vi nødt til at tildele en IP-adresse inden for området 192.168.0.0/24 til enp0s3, så vores RHEL 7-boks kan kommunikere med den:

# ip addr add 192.168.0.19 dev enp0s3

Endelig skal vi aktivere videresendelse af pakker:

# echo "1" > /proc/sys/net/ipv4/ip_forward

og stop/deaktiver (lige nu - indtil vi dækker pakkefiltrering i næste artikel) firewallen:

# systemctl stop firewalld
# systemctl disable firewalld

Tilbage i vores RHEL 7-boks (192.168.0.18), lad os konfigurere en rute til 10.0.0.0/24 til og med 192.168.0.19 (enp0s3 i router nr. 2):

# ip route add 10.0.0.0/24 via 192.168.0.19

Derefter ser routingtabellen ud som følger:

# ip route show

Tilføj ligeledes den tilsvarende rute i den eller de maskiner, du prøver at nå i 10.0.0.0/24:

# ip route add 192.168.0.0/24 via 10.0.0.18

Du kan teste for grundlæggende tilslutning ved hjælp af ping:

I feltet RHEL 7 skal du køre

# ping -c 4 10.0.0.20

hvor 10.0.0.20 er IP-adressen på en webserver i 10.0.0.0/24-netværket.

Kør på webserveren (10.0.0.20)

# ping -c 192.168.0.18

hvor 192.168.0.18 som du husker er IP-adressen på vores RHEL 7-maskine.

Alternativt kan vi bruge tcpdump (det kan være nødvendigt at installere det med yum install tcpdump) til at kontrollere 2-vejskommunikationen via TCP mellem vores RHEL 7-boks og webserveren på 10.0.0.20.

For at gøre det skal vi starte logning i den første maskine med:

# tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

og fra en anden terminal i det samme system lad os telnet til port 80 på webserveren (forudsat at Apache lytter på den port; ellers skal du angive den rigtige port i følgende kommando):

# telnet 10.0.0.20 80

Tcpdump-logfilen skal se ud som følger:

Hvor forbindelsen er korrekt initialiseret, som vi kan se ved at se på 2-vejskommunikationen mellem vores RHEL 7-boks (192.168.0.18) og webserveren (10.0.0.20).

Husk, at disse ændringer forsvinder, når du genstarter systemet. Hvis du vil gøre dem vedvarende, skal du redigere (eller oprette, hvis de ikke allerede findes) følgende filer i de samme systemer, hvor vi udførte ovenstående kommandoer.

Selvom det ikke er strengt nødvendigt for vores testsag, skal du vide, at/etc/sysconfig/network indeholder systemdækkende netværksparametre. Et typisk/etc/sysconfig/netværk ser således ud:

# 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

Når det kommer til at indstille specifikke variabler og værdier for hver NIC (som vi gjorde for router nr. 2), skal du redigere/etc/sysconfig/network-scripts/ifcfg-enp0s3 og/etc/sysconfig/network-scripts/ifcfg -enp0s8.

Efter vores sag

TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.0.19
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NAME=enp0s3
ONBOOT=yes

og

TYPE=Ethernet
BOOTPROTO=static
IPADDR=10.0.0.18
NETMASK=255.255.255.0
GATEWAY=10.0.0.1
NAME=enp0s8
ONBOOT=yes

for henholdsvis enp0s3 og enp0s8.

Hvad angår routing i vores klientmaskine (192.168.0.18), skal vi redigere/etc/sysconfig/network-scripts/route-enp0s3:

10.0.0.0/24 via 192.168.0.19 dev enp0s3

Genstart nu dit system, og du skal se den rute i din tabel.

Resumé

I denne artikel har vi dækket det væsentlige ved statisk routing i Red Hat Enterprise Linux 7. Selvom scenarier kan variere, illustrerer sagen, der præsenteres her, de krævede principper og procedurerne til at udføre denne opgave. Inden jeg indpakker, vil jeg foreslå dig at se på kapitel 4 i afsnittet Sikring og optimering af Linux på webstedet Linux Documentation Project for yderligere detaljer om de emner, der er dækket her.

Gratis e-bog om sikring og optimering af Linux: Hacking-løsningen (v.3.0) - Denne 800+ e-bog indeholder omfattende samling af Linux-sikkerhedstip, og hvordan man bruger dem sikkert og nemt til at konfigurere Linux-baserede applikationer og tjenester.

I den næste artikel vil vi tale om pakkefiltrering og oversættelse af netværksadresser for at opsummere de grundlæggende netværkskompetencer, der er nødvendige for RHCE-certificeringen.

Som altid ser vi frem til at høre fra dig, så du er velkommen til at efterlade dine spørgsmål, kommentarer og forslag ved hjælp af nedenstående formular.