RHCSA seeria: tulemüüri põhialused ja võrguliikluse juhtimine tulemüüri D ja Iptables abil - 11. osa


Lihtsamalt öeldes on tulemüür turvasüsteem, mis kontrollib sissetulevat ja väljaminevat liiklust võrgus etteantud reeglite alusel (näiteks paketi sihtkoht/allikas või liikluse tüüp).

Selles artiklis vaatame üle tulemüüri põhitõed, Red Hat Enterprise Linux 7 dünaamilise vaikimisi deemoni ja teenuse iptables, Linuxi pärandi tulemüüriteenuse, millega enamik süsteemi- ja võrguadministraatoreid on hästi tuttavad ning mis on samuti saadaval RHEL-is 7.

FirewallD ja Iptables võrdlus

Kapoti all räägivad nii tulemüür kui ka teenused iptables tuuma netfilter raamistikuga sama liidese kaudu, mis pole üllatav, käsu iptables kaudu. Erinevalt teenusest iptables saab tulemüür aga süsteemi tavapärase töö ajal seadeid muuta ilma olemasolevate ühenduste kadumiseta.

Firewalld peaks teie RHEL-süsteemi vaikimisi installima, ehkki see ei pruugi töötada. Kontrollida saab järgmiste käskudega (tulemüür-config on kasutajaliidese seadistustööriist):

# yum info firewalld firewall-config

ja

# systemctl status -l firewalld.service

Teiselt poolt pole iptables-teenus vaikimisi kaasatud, kuid selle saab installida läbi.

# yum update && yum install iptables-services

Mõlemat deemonit saab käivitamisel käivitada tavaliste käskudega systemd:

# systemctl start firewalld.service | iptables-service.service
# systemctl enable firewalld.service | iptables-service.service

Loe ka: kasulikud käsud Systemd-teenuste haldamiseks

Konfiguratsioonifailide puhul kasutab iptables-teenus /etc/sysconfig/iptables (mida pole olemas, kui paketti pole teie süsteemi installitud). Klastrisõlmena kasutataval kasti RHEL 7 näeb see fail välja järgmine:

Tulemüür salvestab oma konfiguratsiooni kahes kataloogis, /usr/lib/firewalld ja /etc/firewalld :

# ls /usr/lib/firewalld /etc/firewalld

Uurime neid konfiguratsioonifaile edasi käesolevas artiklis, pärast siin-seal mõne reegli lisamist. Nüüdseks piisab meelde tuletamisest, et mõlema tööriista kohta leiate alati lisateavet.

# man firewalld.conf
# man firewall-cmd
# man iptables

Peale selle pidage meeles, et heitke pilk oluliste käskude ja süsteemidokumentatsiooni ülevaatamisele - praeguse seeria 1. osa, kus kirjeldasin mitmeid allikaid, kust saate teavet oma RHEL 7 süsteemi installitud pakettide kohta.

Iptable'i kasutamine võrguliikluse juhtimiseks

Enne kui jätkate, võite viidata jaotisele Iptablesi tulemüüri konfigureerimine - seeria Linux Foundation Certified Engineer (LFCE) 8. osa. Seega saame hüpata otse näidetesse.

TCP-pordid 80 ja 443 on vaikepordid, mida Apache veebiserver kasutab tavalise (HTTP) ja turvalise (HTTPS) veebiliikluse haldamiseks. Saate lubada sissetulevat ja väljaminevat veebiliiklust liidese enp0s3 mõlema pordi kaudu järgmiselt:

# iptables -A INPUT -i enp0s3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -o enp0s3 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
# iptables -A INPUT -i enp0s3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -o enp0s3 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

Võib juhtuda, et peate blokeerima kogu (või mõne) liikluse, mis pärineb konkreetsest võrgust, näiteks 192.168.1.0/24:

# iptables -I INPUT -s 192.168.1.0/24 -j DROP

viskab kõik 192.168.1.0/24 võrgust pärit paketid, samas kui

# iptables -A INPUT -s 192.168.1.0/24 --dport 22 -j ACCEPT

lubab sissetulevat liiklust ainult läbi sadama 22.

Kui kasutate oma kasti RHEL 7 mitte ainult tarkvara tulemüürina, vaid ka tegeliku riistvarapõhisena, nii et see asub kahe erineva võrgu vahel, peab teie IP-suunamine olema juba lubatud. Kui ei, peate redigeerima /etc/sysctl.conf ja määrama net.ipv4.ip_forward väärtuseks 1 järgmiselt:

net.ipv4.ip_forward = 1

siis salvestage muudatus, sulgege tekstiredaktor ja käivitage muudatuse rakendamiseks järgmine käsk:

# sysctl -p /etc/sysctl.conf

Näiteks võib teil olla sisemisse kasti IP 192.168.0.10 installitud printer, CUPS-teenus kuulab porti 631 (nii prindiserveris kui ka teie tulemüüris). Tulemüüri teisel küljel olevate klientide prinditaotluste edastamiseks peaksite lisama järgmise iptables-reegli:

# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 631 -j DNAT --to 192.168.0.10:631

Pidage meeles, et iptables loeb oma reegleid järjestikku, seega veenduge, et vaikereeglid või hilisemad reeglid ei ületa ülaltoodud näidetes toodud reegleid.

FirewallD-ga alustamine

Üks tulemüüriga kasutusele võetud muudatustest on tsoonid. See kontseptsioon võimaldab eraldada võrgud erinevateks usaldustsoonideks, mille kasutaja on otsustanud seadmetesse paigutada ja selle võrgu liiklus.

Aktiivsete tsoonide loetlemiseks tehke järgmist.

# firewall-cmd --get-active-zones

Allpool toodud näites on avalik tsoon aktiivne ja sellele on liides enp0s3 määratud automaatselt. Konkreetse tsooni kohta kogu teabe vaatamiseks toimige järgmiselt.

# firewall-cmd --zone=public --list-all

Kuna tsoonide kohta saate lugeda lähemalt RHEL 7 turvajuhendist, loetleme siin vaid mõned konkreetsed näited.

Toetatud teenuste loendi saamiseks kasutage.

# firewall-cmd --get-services

Http ja https-i veebiliikluse lubamiseks tulemüüri kaudu jõustub kohe ja järgnevate buutide korral:

# firewall-cmd --zone=MyZone --add-service=http
# firewall-cmd --zone=MyZone --permanent --add-service=http
# firewall-cmd --zone=MyZone --add-service=https
# firewall-cmd --zone=MyZone --permanent --add-service=https
# firewall-cmd --reload

Kui kood> –tsoon välja jätta, kasutatakse vaikevööndit (saate kontrollida tulemüüriga cmd –get-default-zone).

Reegli eemaldamiseks asendage ülaltoodud käskudes sõna add eemaldamisega.

Kõigepealt peate välja selgitama, kas maskeerimine on soovitud tsoonis lubatud:

# firewall-cmd --zone=MyZone --query-masquerade

Alloleval pildil näeme, et maskeerimine on lubatud välise tsooni jaoks, kuid mitte avalikuks:

Võite avalikkuse jaoks maskeerimise lubada:

# firewall-cmd --zone=public --add-masquerade

või kasutada maskeerimist välistes. Näite 3 kordamiseks tulemüüriga teeme järgmist.

# firewall-cmd --zone=external --add-forward-port=port=631:proto=tcp:toport=631:toaddr=192.168.0.10

Ja ärge unustage tulemüüri uuesti laadida.

Täiendavaid näiteid leiate RHCSA-seeria 9. osast, kus selgitasime, kuidas lubada või keelata porte, mida tavaliselt kasutavad veebiserver ja ftp-server, ning kuidas muuta vastavat reeglit, kui nende teenuste vaikepordiks on muudetud. Lisaks võite viidata tulemüüri wikile täiendavate näidete kohta.

Loe ka: kasulikud tulemüürD näited tulemüüri konfigureerimiseks RHEL 7-s

Järeldus

Selles artiklis oleme selgitanud, mis on tulemüür, millised on teenuse RHEL 7 rakendamiseks saadaval olevad teenused, ja esitasime mõned näited, mis aitavad teil selle ülesandega alustada. Kui teil on kommentaare, ettepanekuid või küsimusi, andke meile sellest teada, kasutades allolevat vormi. Ette tänades!