Σειρά RHCE: Πώς να ρυθμίσετε και να δοκιμάσετε τη στατική δρομολόγηση δικτύου - Μέρος 1


Το RHCE (Red Hat Certified Engineer) είναι μια πιστοποίηση από την εταιρεία Red Hat, η οποία παρέχει λειτουργικό σύστημα και λογισμικό ανοιχτού κώδικα στην επιχειρηματική κοινότητα, παρέχει επίσης εκπαίδευση, υποστήριξη και συμβουλευτικές υπηρεσίες για τις εταιρείες.

Αυτή η RHCE (Red Hat Certified Engineer) είναι μια εξέταση που βασίζεται στην απόδοση (κωδική ονομασία EX300), η οποία διαθέτει πρόσθετες δεξιότητες, γνώσεις και ικανότητες απαιτείται από έναν ανώτερο διαχειριστή συστήματος υπεύθυνος για τα συστήματα Red Hat Enterprise Linux (RHEL).

Σημαντικό: Απαιτείται πιστοποίηση Red Hat Certified System Administrator (RHCSA) για την απόκτηση πιστοποίησης RHCE.

Ακολουθούν οι στόχοι της εξέτασης που βασίζονται στην έκδοση Red Hat Enterprise Linux 7 της εξέτασης, η οποία θα καλύψει σε αυτήν τη σειρά RHCE:

Για να δείτε τα τέλη και να εγγραφείτε για εξετάσεις στη χώρα σας, ελέγξτε τη σελίδα Πιστοποίησης RHCE.

Σε αυτό το Μέρος 1 της σειράς RHCE και το επόμενο, θα παρουσιάσουμε βασικές, αλλά τυπικές, περιπτώσεις όπου προκύπτουν οι αρχές της στατικής δρομολόγησης, του φιλτραρίσματος πακέτων και της μετάφρασης διευθύνσεων δικτύου στο παιχνίδι.

Λάβετε υπόψη ότι δεν θα τα καλύψουμε σε βάθος, αλλά μάλλον θα οργανώσουμε αυτά τα περιεχόμενα με τέτοιο τρόπο που θα σας βοηθήσουν να κάνετε τα πρώτα βήματα και να χτίσετε από εκεί.

Στατική δρομολόγηση στο Red Hat Enterprise Linux 7

Ένα από τα θαύματα της σύγχρονης δικτύωσης είναι η τεράστια διαθεσιμότητα συσκευών που μπορούν να συνδέουν ομάδες υπολογιστών, είτε σε σχετικά μικρό αριθμό και περιορίζονται σε ένα δωμάτιο ή σε πολλά μηχανήματα στο ίδιο κτίριο, πόλη, χώρα ή σε όλες τις ηπείρους.

Ωστόσο, για να επιτευχθεί αυτό αποτελεσματικά σε οποιαδήποτε κατάσταση, τα πακέτα δικτύου πρέπει να δρομολογηθούν, ή με άλλα λόγια, η διαδρομή που ακολουθούν από την πηγή στον προορισμό πρέπει να καθορίζεται με κάποιο τρόπο.

Η στατική δρομολόγηση είναι η διαδικασία καθορισμού μιας διαδρομής για πακέτα δικτύου διαφορετική από την προεπιλεγμένη, η οποία παρέχεται από μια συσκευή δικτύου γνωστή ως προεπιλεγμένη πύλη. Εκτός εάν ορίζεται διαφορετικά μέσω στατικής δρομολόγησης, τα πακέτα δικτύου κατευθύνονται στην προεπιλεγμένη πύλη. με τη στατική δρομολόγηση, ορίζονται άλλες διαδρομές με βάση προκαθορισμένα κριτήρια, όπως ο προορισμός του πακέτου.

Ας ορίσουμε το ακόλουθο σενάριο για αυτό το σεμινάριο. Έχουμε ένα κουτί Red Hat Enterprise Linux 7 που συνδέεται με τον δρομολογητή #1 [192.168.0.1] για πρόσβαση στο Διαδίκτυο και σε μηχανήματα στο 192.168.0.0/24.

Ένας δεύτερος δρομολογητής (δρομολογητής #2) έχει δύο κάρτες διασύνδεσης δικτύου: το enp0s3 είναι επίσης συνδεδεμένο στον δρομολογητή #1 για πρόσβαση στο Διαδίκτυο και για επικοινωνία με το κουτί RHEL 7 και άλλα μηχανήματα στο ίδιο δίκτυο, ενώ το άλλο (enp0s8) χρησιμοποιείται για την παραχώρηση πρόσβασης στο δίκτυο 10.0.0.0/24 όπου βρίσκονται οι εσωτερικές υπηρεσίες , όπως διακομιστής ιστού ή/και βάσης δεδομένων.

Αυτό το σενάριο απεικονίζεται στο παρακάτω διάγραμμα:

Σε αυτό το άρθρο θα επικεντρωθούμε αποκλειστικά στη ρύθμιση του πίνακα δρομολόγησης στο πλαίσιο RHEL 7 για να βεβαιωθούμε ότι μπορεί να έχει πρόσβαση στο Διαδίκτυο μέσω του δρομολογητή #1 και του εσωτερικού δικτύου μέσω του δρομολογητή #2.

Στο RHEL 7, θα χρησιμοποιήσετε την εντολή ip για να διαμορφώσετε και να εμφανίσετε συσκευές και δρομολόγηση χρησιμοποιώντας τη γραμμή εντολών. Αυτές οι αλλαγές μπορούν να τεθούν σε ισχύ αμέσως σε ένα σύστημα που εκτελείται, αλλά επειδή δεν είναι επίμονες κατά τις επανεκκινήσεις, θα χρησιμοποιήσουμε αρχεία ifcfg-enp0sX και route-enp0sX μέσα στο /etc /sysconfig/network-scripts για να αποθηκεύσουμε μόνιμα τη διαμόρφωσή μας.

Για να ξεκινήσουμε, ας εκτυπώσουμε τον τρέχοντα πίνακα δρομολόγησης:

ip route show

Από την παραπάνω έξοδο, μπορούμε να δούμε τα ακόλουθα γεγονότα:

  1. Η προεπιλεγμένη διεύθυνση IP της πύλης είναι 192.168.0.1 και είναι προσβάσιμη μέσω του enp0s3 NIC.
  2. Όταν το σύστημα εκκινήθηκε, ενεργοποίησε τη διαδρομή zeroconf στο 169.254.0.0/16 (για κάθε περίπτωση). Με λίγα λόγια, εάν ένα μηχάνημα έχει ρυθμιστεί να αποκτά μια διεύθυνση IP μέσω DHCP αλλά δεν το κάνει για κάποιο λόγο, του εκχωρείται αυτόματα μια διεύθυνση σε αυτό το δίκτυο. Η κατώτατη γραμμή είναι ότι αυτή η διαδρομή θα μας επιτρέψει να επικοινωνήσουμε, επίσης μέσω enp0s3, με άλλα μηχανήματα που απέτυχαν να αποκτήσουν διεύθυνση IP από διακομιστή DHCP.
  3. Τελευταίο, αλλά εξίσου σημαντικό, μπορούμε να επικοινωνήσουμε με άλλα πλαίσια μέσα στο δίκτυο 192.168.0.0/24 μέσω του enp0s3, του οποίου η διεύθυνση IP είναι 192.168.0.18 >.

Αυτές είναι οι τυπικές εργασίες που θα έπρεπε να εκτελέσετε σε μια τέτοια ρύθμιση. Εκτός εάν ορίζεται διαφορετικά, οι ακόλουθες εργασίες θα πρέπει να εκτελούνται στον δρομολογητή #2:

Βεβαιωθείτε ότι όλα τα NIC έχουν εγκατασταθεί σωστά:

ip link show

Εάν ένα από αυτά είναι κάτω, φέρτε το επάνω:

ip link set dev enp0s8 up

και εκχωρήστε μια διεύθυνση IP στο δίκτυο 10.0.0.0/24 σε αυτό:

ip addr add 10.0.0.17 dev enp0s8

Ωχ! Κάναμε λάθος στη διεύθυνση IP. Θα πρέπει να αφαιρέσουμε αυτό που εκχωρήσαμε νωρίτερα και στη συνέχεια να προσθέσουμε το σωστό (10.0.0.18):

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

Τώρα, σημειώστε ότι μπορείτε να προσθέσετε μια διαδρομή σε ένα δίκτυο προορισμού μόνο μέσω μιας πύλης που είναι ήδη προσβάσιμη. Για αυτόν τον λόγο, πρέπει να εκχωρήσουμε μια διεύθυνση IP εντός του εύρους 192.168.0.0/24 στο enp0s3 ώστε το πλαίσιο RHEL 7 να μπορεί να επικοινωνεί μαζί του:

ip addr add 192.168.0.19 dev enp0s3

Τέλος, θα χρειαστεί να ενεργοποιήσουμε την προώθηση πακέτων:

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

και σταματήστε/απενεργοποιήστε (μόνο προς το παρόν – μέχρι να καλύψουμε το φιλτράρισμα πακέτων στο επόμενο άρθρο) το τείχος προστασίας:

systemctl stop firewalld
systemctl disable firewalld

Πίσω στο πλαίσιο RHEL 7 (192.168.0.18), ας διαμορφώσουμε μια διαδρομή προς 10.0.0.0/24 έως 192.168.0.19 (enp0s3 στον δρομολογητή #2):

ip route add 10.0.0.0/24 via 192.168.0.19

Μετά από αυτό, ο πίνακας δρομολόγησης έχει ως εξής:

ip route show

Ομοίως, προσθέστε την αντίστοιχη διαδρομή στο μηχάνημα που προσπαθείτε να φτάσετε στο 10.0.0.0/24:

ip route add 192.168.0.0/24 via 10.0.0.18

Μπορείτε να ελέγξετε τη βασική συνδεσιμότητα χρησιμοποιώντας ping:

Στο πλαίσιο RHEL 7, εκτελέστε

ping -c 4 10.0.0.20

όπου 10.0.0.20 είναι η διεύθυνση IP ενός διακομιστή ιστού στο δίκτυο 10.0.0.0/24.

Στον διακομιστή ιστού (10.0.0.20), εκτελέστε

ping -c 192.168.0.18

όπου 192.168.0.18 είναι, όπως θα θυμάστε, η διεύθυνση IP του μηχανήματος RHEL 7 μας.

Εναλλακτικά, μπορούμε να χρησιμοποιήσουμε το tcpdump (ίσως χρειαστεί να το εγκαταστήσετε με yum install tcpdump) για να ελέγξουμε την αμφίδρομη επικοινωνία μέσω TCP μεταξύ του πλαισίου RHEL 7 και του διακομιστή web στη διεύθυνση 10.0.0.20 .

Για να το κάνουμε αυτό, ας ξεκινήσουμε την εγγραφή στο πρώτο μηχάνημα με:

tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

και από άλλο τερματικό στο ίδιο σύστημα ας telnet στη θύρα 80 στον διακομιστή ιστού (υποθέτοντας ότι ο Apache ακούει σε αυτήν τη θύρα, διαφορετικά, υποδείξτε τη δεξιά θύρα στην ακόλουθη εντολή):

telnet 10.0.0.20 80

Το αρχείο καταγραφής tcpdump θα πρέπει να έχει την εξής μορφή:

Όπου η σύνδεση έχει αρχικοποιηθεί σωστά, όπως μπορούμε να καταλάβουμε κοιτάζοντας την αμφίδρομη επικοινωνία μεταξύ του πλαισίου RHEL 7 (192.168.0.18) και του διακομιστή ιστού (< ισχυρή>10.0.0.20).

Να θυμάστε ότι αυτές οι αλλαγές θα εξαφανιστούν όταν κάνετε επανεκκίνηση του συστήματος. Αν θέλετε να τα κάνετε επίμονα, θα χρειαστεί να επεξεργαστείτε (ή να δημιουργήσετε, αν δεν υπάρχουν ήδη) τα παρακάτω αρχεία, στα ίδια συστήματα όπου εκτελέσαμε τις παραπάνω εντολές.

Αν και δεν είναι απολύτως απαραίτητο για τη δοκιμαστική μας περίπτωση, θα πρέπει να γνωρίζετε ότι το /etc/sysconfig/network περιέχει παραμέτρους δικτύου σε όλο το σύστημα. Ένα τυπικό /etc/sysconfig/network έχει ως εξής:

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

Όταν πρόκειται να ορίσετε συγκεκριμένες μεταβλητές και τιμές για κάθε NIC (όπως κάναμε για τον δρομολογητή #2), θα πρέπει να επεξεργαστείτε τα /etc/sysconfig/network-scripts/ifcfg-enp0s3 και /etc/sysconfig/network-scripts/ifcfg-enp0s8.

Σε συνέχεια της περίπτωσής μας,

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

και

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

για enp0s3 και enp0s8, αντίστοιχα.

Όσον αφορά τη δρομολόγηση στον υπολογιστή-πελάτη μας (192.168.0.18), θα χρειαστεί να επεξεργαστούμε το /etc/sysconfig/network-scripts/route-enp0s3:

10.0.0.0/24 via 192.168.0.19 dev enp0s3

Τώρα επανεκκινήστε το σύστημά σας και θα πρέπει να δείτε αυτήν τη διαδρομή στον πίνακά σας.

Περίληψη

Σε αυτό το άρθρο καλύψαμε τα βασικά στοιχεία της στατικής δρομολόγησης στο Red Hat Enterprise Linux 7. Αν και τα σενάρια μπορεί να διαφέρουν, η περίπτωση που παρουσιάζεται εδώ απεικονίζει τις απαιτούμενες αρχές και τις διαδικασίες για την εκτέλεση αυτής της εργασίας. Πριν ολοκληρώσετε, θα ήθελα να σας προτείνω να ρίξετε μια ματιά στο Κεφάλαιο 4 της ενότητας Ασφάλεια και βελτιστοποίηση Linux στον ιστότοπο The Linux Documentation Project για περισσότερες λεπτομέρειες σχετικά με τα θέματα που καλύπτονται εδώ.

Δωρεάν ebook για Securing & Optimizing Linux: The Hacking Solution (v.3.0) – Αυτό το 800+ ebook περιέχει μια ολοκληρωμένη συλλογή από συμβουλές ασφάλειας Linux και πώς να τις χρησιμοποιείτε με ασφάλεια και εύκολα για να διαμορφώσετε εφαρμογές και υπηρεσίες που βασίζονται σε Linux.

Κατεβάστε τώρα

Στο επόμενο άρθρο θα μιλήσουμε για το φιλτράρισμα πακέτων και τη μετάφραση διευθύνσεων δικτύου για να συνοψίσουμε τις βασικές δεξιότητες δικτύωσης που απαιτούνται για την πιστοποίηση RHCE.

Όπως πάντα, ανυπομονούμε να ακούσουμε από εσάς, οπότε μη διστάσετε να αφήσετε τις ερωτήσεις, τα σχόλια και τις προτάσεις σας χρησιμοποιώντας την παρακάτω φόρμα.