RHCSA-sarja: Firewall Essentials ja verkkoliikenteen ohjaus FirewallD:tä ja Iptablesia käyttäen – Osa 11


Yksinkertaisesti sanottuna palomuuri on turvajärjestelmä, joka hallitsee saapuvaa ja lähtevää liikennettä verkossa ennalta määritettyjen sääntöjen perusteella (kuten esimerkiksi paketin kohde/lähde tai liikenteen tyyppi). .

Tässä artikkelissa käydään läpi perusasiat palomuurista, joka on Red Hat Enterprise Linux 7:n oletusarvoinen dynaaminen palomuuridaemon, ja iptables -palvelu, vanha. palomuuripalvelu Linuxille, jonka useimmat järjestelmä- ja verkkojärjestelmänvalvojat tuntevat hyvin ja joka on saatavilla myös RHEL 7:ssä.

FirewallD:n ja Iptablesin vertailu

Kotelon alla sekä palomuuri että iptables -palvelu kommunikoivat ytimen netfilter -kehyksen kanssa saman käyttöliittymän kautta, ei ole yllättävää, iptables-komento . Toisin kuin iptables-palvelu, palomuuri voi kuitenkin muuttaa asetuksia järjestelmän normaalin toiminnan aikana ilman, että olemassa olevat yhteydet katoavat.

Palomuuri tulee asentaa oletuksena RHEL-järjestelmääsi, vaikka se ei ehkä ole käynnissä. Voit vahvistaa seuraavilla komennoilla (firewall-config on käyttöliittymän määritystyökalu):


yum info firewalld firewall-config

ja,


systemctl status -l firewalld.service

Toisaalta iptables -palvelu ei sisälly oletuksena, mutta se voidaan asentaa sen kautta.


yum update && yum install iptables-services

Molemmat demonit voidaan käynnistää ja ottaa käyttöön käynnistyksen yhteydessä tavallisilla systemd-komennoilla:


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

Lue myös: Hyödyllisiä komentoja järjestelmäpalvelujen hallintaan

Mitä tulee asetustiedostoihin, iptables-palvelu käyttää tiedostoa /etc/sysconfig/iptables (jota ei ole olemassa, jos pakettia ei ole asennettu järjestelmääsi). RHEL 7 -laatikossa, jota käytetään klusterisolmuna, tämä tiedosto näyttää seuraavalta:

Palomuuri tallentaa määrityksensä kahteen hakemistoon, /usr/lib/firewall ja /etc/firewall:


ls /usr/lib/firewalld /etc/firewalld

Tutkimme näitä määritystiedostoja myöhemmin tässä artikkelissa, kun olemme lisänneet muutamia sääntöjä sinne tänne. Tähän mennessä riittää muistuttamaan, että molemmista työkaluista löydät aina lisätietoja.


man firewalld.conf
man firewall-cmd
man iptables

Muista myös katsoa Essential Commands & System Documentation -osa 1 nykyisestä sarjasta, jossa kuvailin useita lähteitä, joista saat tietoa RHEL 7 -järjestelmääsi asennetuista paketeista. .

Iptablesin käyttäminen verkkoliikenteen ohjaamiseen

Saatat haluta lukea Configure Iptables Firewall – osa 8 Linux Foundation Certified Engineer (LFCE) -sarjasta päivittääksesi muistiasi iptablesin sisäisistä ominaisuuksista. ennen kuin jatkat eteenpäin. Siten voimme hypätä suoraan esimerkkeihin.

Esimerkki 1: Sekä saapuvan että lähtevän verkkoliikenteen salliminen

TCP-portit 80 ja 443 ovat oletusportteja, joita Apache-verkkopalvelin käyttää normaalin (HTTP) ja suojatun (HTTPS<) käsittelyyn.) verkkoliikennettä. Voit sallia tulevan ja lähtevän verkkoliikenteen molempien porttien kautta enp0s3-käyttöliittymässä seuraavasti:


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
Esimerkki 2: Estä kaikki (tai jotkin) saapuvat yhteydet tietystä verkosta

Saattaa olla aikoja, jolloin joudut estämään kaiken (tai osan) tietystä verkosta peräisin olevan liikenteen, esimerkiksi 192.168.1.0/24:


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

pudottaa kaikki paketit, jotka tulevat 192.168.1.0/24-verkosta, kun taas


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

sallii vain saapuvan liikenteen portin 22 kautta.

Esimerkki 3: Ohjaa saapuva liikenne toiseen kohteeseen

Jos käytät RHEL 7 -laatikkoasi paitsi ohjelmiston palomuurina, myös varsinaisena laitteistopohjaisena, niin että se sijaitsee kahden erillisen verkon välissä, IP-lähetyksen on oltava jo käytössä järjestelmässäsi. . Jos ei, sinun on muokattava tiedostoa /etc/sysctl.conf ja määritettävä net.ipv4.ip_forward-arvoksi 1 seuraavasti:


net.ipv4.ip_forward = 1

Tallenna sitten muutos, sulje tekstieditori ja suorita lopuksi seuraava komento ottaaksesi muutoksen käyttöön:


sysctl -p /etc/sysctl.conf

Sinulla voi esimerkiksi olla asennettuna tulostin sisäiseen laatikkoon, jossa on IP 192.168.0.10 ja CUPS-palvelu kuuntelee porttia 631 (molemmat tulostuspalvelimessa ja palomuurissa). Jotta voit välittää tulostuspyynnöt palomuurin toisella puolella olevilta asiakkailta, sinun tulee lisätä seuraava iptables-sääntö:


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

Muista, että iptables lukee säännöt peräkkäin, joten varmista, että oletuskäytännöt tai uudemmat säännöt eivät ohita yllä olevissa esimerkeissä esitettyjä.

FirewallD:n käytön aloittaminen

Yksi palomuuriin tehdyistä muutoksista on vyöhykkeet. Tämä konsepti mahdollistaa verkon jakamisen eri vyöhykkeisiin, joiden luottamuksen taso käyttäjä on päättänyt sijoittaa laitteisiin ja liikenteeseen kyseisessä verkossa.

Aktiivisten vyöhykkeiden luettelointi:


firewall-cmd --get-active-zones

Alla olevassa esimerkissä julkinen vyöhyke on aktiivinen ja enp0s3-käyttöliittymä on määritetty siihen automaattisesti. Voit tarkastella kaikkia tietoja tietystä vyöhykkeestä seuraavasti:


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

Koska voit lukea lisää vyöhykkeistä RHEL 7 -tietoturvaoppaasta, luettelemme tässä vain joitain konkreettisia esimerkkejä.

Esimerkki 4: Palvelujen salliminen palomuurin kautta

Saat luettelon tuetuista palveluista käyttämällä.


firewall-cmd --get-services

Voit sallia http- ja https-verkkoliikenteen palomuurin läpi heti ja myöhempien käynnistysten yhteydessä:


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

Jos–zone jätetään pois, käytetään oletusvyöhykettä (voit tarkistaa komennolla firewall-cmd –get-default-zone).

Jos haluat poistaa säännön, korvaa sana add sanalla poista yllä olevissa komennoissa.

Esimerkki 5: IP/Port-välitys

Ensinnäkin sinun on selvitettävä, onko naamiointi käytössä halutulla vyöhykkeellä:


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

Alla olevassa kuvassa näemme, että naamiointi on käytössä ulkoisella vyöhykkeellä, mutta ei julkisella:

Voit ottaa naamioinnin käyttöön joko julkisesti:


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

tai käytä naamiointia ulkoisessa. Toistamme Esimerkin 3 palomuurilla seuraavasti:


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

Ja älä unohda ladata palomuuria uudelleen.

Löydät lisää esimerkkejä RHCSA-sarjan osasta 9, jossa selitimme, kuinka verkkopalvelimen ja ftp-palvelimen tavallisesti käyttämät portit sallitaan tai poistetaan käytöstä ja kuinka vastaavaa sääntöä muutetaan, kun kyseisten palvelujen oletusportti on vaihdetaan. Lisäksi voit katsoa palomuuriwikistä lisää esimerkkejä.

Lue myös: Hyödyllisiä FirewallD-esimerkkejä palomuurin määrittämiseen RHEL 7:ssä

Johtopäätös

Tässä artikkelissa olemme selittäneet, mikä palomuuri on, mitkä palvelut ovat käytettävissä sen toteuttamiseksi RHEL 7 -sovelluksessa, ja olemme antaneet muutamia esimerkkejä, jotka voivat auttaa sinua pääsemään alkuun. tehtävä. Jos sinulla on kommentteja, ehdotuksia tai kysymyksiä, ota meihin yhteyttä alla olevalla lomakkeella. Kiitos jo etukäteen!