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!