Kuinka asentaa, määrittää ja käyttää palomuuria CentOS:ssä ja Ubuntussa


Firewalld (palomuuridaemon) on vaihtoehto iptables-palvelulle, jolla hallitaan dynaamisesti järjestelmän palomuuria verkko- (tai palomuuri-) vyöhykkeiden tuella ja tarjoaa D-Bus-liitännän kokoonpanojen hallintaan. Sitä on helppo käyttää ja määrittää, ja se on nyt oletuspalomuurin hallintatyökalu RHEL/CentOS:ssä, Fedorassa ja useissa muissa Linux-jakeluissa.

Tässä artikkelissa keskustellaan järjestelmän palomuurin määrittämisestä palomuurilla ja peruspakettisuodatuksen käyttöönotosta CentOS/RHEL 7:ssä ja Ubuntussa.

Palomuurin perusteet

Palomuuri koostuu kolmesta tasosta, jotka ovat:

  • ydinkerros: vastaa määrityksen ja takaosien käsittelystä (lueteltu alla).
  • D-Bus-liitäntä: ensisijainen tapa muuttaa ja luoda palomuurin asetuksia.
  • taustajärjestelmät: vuorovaikutukseen netfilterin kanssa (palomuurissa käytettävä alkuperäinen ydinmoduuli). Niihin kuuluvat iptables, ip6tables, ebtables, ipset, nft, linnftables; verkon johtaja; ja moduulit.

Se hallitsee palomuurisääntöjä toteuttamalla verkko-/palomuurivyöhykkeitä, jotka määrittävät verkkoyhteyksien tai liitäntöjen luottamustason. Muita tuettuja palomuuriominaisuuksia ovat palvelut, suora määritys (käytetään suoraan raaka-iptables-syntaksin välittämiseen), IPSets sekä ICMP-tyypit.

Palomuuri tukee kahdenlaisia määritysympäristöjä:

  • ajonaikaiset asetukset, jotka ovat voimassa vain kunnes kone on käynnistetty uudelleen tai palomuuripalvelu on käynnistetty uudelleen
  • pysyvä kokoonpano, joka tallennetaan ja toimii jatkuvasti.

Firewall-cmd-komentorivityökalua käytetään ajonaikaisen ja pysyvän kokoonpanon hallintaan. Vaihtoehtoisesti voit käyttää firewall-config graafisen käyttöliittymän (GUI) konfigurointityökalua vuorovaikutuksessa daemonin kanssa.

Lisäksi palomuuri tarjoaa hyvin määritellyn käyttöliittymän muille paikallisille palveluille tai sovelluksille, jotka voivat pyytää muutoksia palomuurin sääntöihin suoraan, jos niitä käytetään pääkäyttäjän oikeuksin.

Palomuurin yleinen määritystiedosto sijaitsee osoitteessa /etc/firewalld/firewalld.conf, ja palomuuriominaisuudet on määritetty XML-muodossa.

Palomuurin tärkeiden ominaisuuksien ymmärtäminen

Palomuurin keskeinen ominaisuus ovat verkko/palomuurivyöhykkeet. Kaikki muut ominaisuudet on sidottu vyöhykkeeseen. Palomuurivyöhyke kuvaa yhteyden, liitännän tai lähdeosoitteen sitomisen luottamustason.

Oletuskokoonpano sisältää useita ennalta määritettyjä vyöhykkeitä, jotka on lajiteltu vyöhykkeiden oletusluottamustason mukaan epäluotettavista luotettaviin: pudota, esto, julkinen, ulkoinen, dmz, työ, koti, sisäinen ja luotettu. Ne määritellään tiedostoissa, jotka on tallennettu hakemistoon /usr/lib/firewalld/zones.

Voit määrittää tai lisätä mukautettuja vyöhykkeitä käyttämällä CLI-asiakasohjelmaa tai yksinkertaisesti luoda tai kopioida vyöhyketiedoston olemassa olevista tiedostoista osoitteessa /etc/firewalld/zones ja muokata sitä.

Toinen tärkeä palomuurin käsite on palvelut. Palvelu määritellään porttien ja protokollien avulla; nämä määritelmät edustavat tiettyä verkkopalvelua, kuten web-palvelinta tai etäkäyttöpalvelua. Palvelut määritellään tiedostoissa, jotka on tallennettu hakemistoon /usr/lib/firewall/services/ tai /etc/firewalld/services/.

Jos tiedät peruskäsitteet iptables/ip6tables/ebtables, voit myös käyttää suoraa käyttöliittymää (tai kokoonpanoa) päästäksesi suoraan palomuuriin. Mutta ne, joilla ei ole iptables-tietoa, voivat käyttää monipuolista kieltä luodakseen monimutkaisempia palomuurisääntöjä IPv4:lle ja IPv6:lle.

Kuinka asentaa palomuuripaketti Linuxiin

CentOS 7 -käyttöjärjestelmässä palomuuri-paketti on esiasennettu ja voit vahvistaa seuraavan komennon avulla.

rpm -qa firewalld

Ubuntu 16.04 ja 18.04 voit asentaa sen käyttämällä oletuspakettien hallintaa kuvan mukaisesti.

sudo apt install firewalld

Palomuuripalvelun hallinta Linuxissa

Palomuuri on tavallinen systemd-palvelu, jota voidaan hallita systemctl-komennolla.

 
sudo systemctl start firewalld	#start the service for the mean time
sudo systemctl enable firewalld	#enable the service to auto-start at boot time
sudo systemctl status firewalld	#view service status

Kun olet käynnistänyt palomuuri-palvelun, voit myös tarkistaa, onko demoni käynnissä vai ei, käyttämällä firewall-cmd-työkalua (jos se ei ole aktiivinen, tämä komento tulostaa "not". käynnissä").

sudo firewall-cmd --state

Jos satut tallentamaan muutoksia pysyvästi, voit ladata palomuurin uudelleen. Tämä lataa palomuurisäännöt uudelleen ja säilyttää tilatiedot. Nykyisestä pysyvästä määrityksestä tulee uusi ajonaikainen kokoonpano.

sudo firewall-cmd --reload

Kuinka työskennellä palomuurivyöhykkeiden kanssa Firewallissa

Saat luettelon kaikista käytettävissä olevista palomuurivyöhykkeistä ja palveluista suorittamalla nämä komennot.

sudo firewall-cmd --get-zones
sudo firewall-cmd --get-services

Oletusvyöhyke on vyöhyke, jota käytetään jokaiselle palomuuritoiminnolle, jota ei ole erikseen sidottu toiseen vyöhykkeeseen. Voit saada oletusvyöhykkeen verkkoyhteyksille ja liitännäille suorittamalla.

sudo firewall-cmd --get-default-zone

Jos haluat asettaa oletusvyöhykkeen, esimerkiksi ulkoiseksi, käytä seuraavaa komentoa. Huomaa, että vaihtoehdon --permanent lisääminen asettaa asetukset pysyvästi (tai mahdollistaa tietojen kyselyn pysyvästä asetusympäristöstä).

sudo firewall-cmd --set-default-zone=external
OR
sudo firewall-cmd --set-default-zone=external --permanent
sudo firewall-cmd --reload 

Katsotaan seuraavaksi, kuinka käyttöliittymä lisätään vyöhykkeeseen. Tämä esimerkki näyttää, kuinka langaton verkkosovitin (wlp1s0) lisätään kodin vyöhykkeelle, jota käytetään kotialueilla.

sudo firewall-cmd --zone=home --add-interface=wlp1s0

Liitäntä voidaan lisätä vain yhdelle vyöhykkeelle. Siirrä se toiselle vyöhykkeelle käyttämällä --change-interface-kytkintä kuvan mukaisesti tai poista se edellisestä vyöhykkeestä –remove-interface-kytkimellä ja lisää se sitten uudelle alueelle.

Olettaen, että haluat muodostaa yhteyden julkiseen WI-FI-verkkoon, sinun tulee siirtää langaton liitäntäsi takaisin julkiseen vyöhykkeeseen seuraavasti:

sudo firewall-cmd --zone=public --add-interface=wlp1s0
sudo firewall-cmd --zone=public --change-interface=wlp1s0

Voit käyttää useita vyöhykkeitä samanaikaisesti. Saadaksesi luettelon kaikista aktiivisista vyöhykkeistä, joissa on käytössä olevat ominaisuudet, kuten liitännät, palvelut, portit, protokollat, suorita:

sudo firewall-cmd --get-active-zones

Edelliseen kohtaan liittyen, jos haluat löytää lisätietoja tietystä vyöhykkeestä, eli kaikesta siihen lisätystä tai käyttöönotetusta, käytä jotakin seuraavista komennoista:

sudo firewall-cmd --zone=home --list-all
OR
sudo firewall-cmd --info-zone public

Toinen hyödyllinen vaihtoehto on --get-target, joka näyttää pysyvän vyöhykkeen kohteen. Kohde on jokin seuraavista: oletus, HYVÄKSY, PUDOTA, hylkää. Voit tarkistaa eri vyöhykkeiden kohteen:

sudo firewall-cmd --permanent --zone=public --get-target  
sudo firewall-cmd --permanent --zone=block --get-target  
sudo firewall-cmd --permanent --zone=dmz --get-target  
sudo firewall-cmd --permanent --zone=external --get-target
sudo firewall-cmd --permanent --zone=drop --get-target

Porttien avaaminen ja estäminen Firewallissa

Avataksesi portin (tai portin/protokolla-yhdistelmän) palomuurissa lisäämällä se vyöhykkeelle --add-port-vaihtoehdolla. Jos et nimenomaisesti määritä vyöhykettä, se otetaan käyttöön oletusvyöhykkeellä.

Seuraava esimerkki näyttää, kuinka portit 80 ja 443 lisätään sisään tulevan verkkoliikenteen sallimiseksi HTTP:n ja HTTPS:n kautta. > protokollat vastaavasti:

sudo firewall-cmd --zone=public --permanent --add-port=80/tcp --add-port=443/tcp

Lataa seuraavaksi palomuuri uudelleen ja tarkista julkisen vyöhykkeen käytössä olevat ominaisuudet vielä kerran, sinun pitäisi nähdä juuri lisätyt portit.

sudo firewall-cmd --reload
sudo firewall-cmd --info-zone public

Portin estäminen tai sulkeminen palomuurissa on yhtä helppoa, poista se vain vyöhykkeestä --remove-port-vaihtoehdolla. Esimerkiksi porttien 80 ja 443 sulkemiseen julkisella vyöhykkeellä.

sudo firewall-cmd --zone=public --permanent --remove-port=80/tcp --remove-port=443/tcp

Portin tai portin/protokollan yhdistelmän sijaan voit käyttää palvelun nimeä, jolle portti on määritetty seuraavassa osiossa kuvatulla tavalla.

Palvelujen avaaminen ja estäminen palomuurissa

Jos haluat avata palvelun palomuurissa, ota se käyttöön valitsemalla --add-service. Jos vyöhyke jätetään pois, käytetään oletusvyöhykettä.

Seuraava komento ottaa http-palvelun pysyvästi käyttöön julkisella vyöhykkeellä.

sudo firewall-cmd --zone=public --permanent --add-service=http 
sudo firewall-cmd --reload 

--remove-service-vaihtoehtoa voidaan käyttää palvelun poistamiseen käytöstä.

sudo firewall-cmd --zone=public --permanent --remove-service=http 
sudo firewall-cmd --reload 

IP-naamioinnin ottaminen käyttöön ja poistaminen käytöstä palomuurin avulla

IP-masquerading (tunnetaan myös nimellä IPMASQ tai MASQ) on NAT (Network Address Translation).) -mekanismi Linux-verkotuksessa, jonka avulla verkossa olevat isännät, joilla on yksityiset IP-osoitteet, voivat kommunikoida Internetiin käyttämällä Linux-palvelimesi (IPMASQ-yhdyskäytävä) määritettyä julkista IP-osoitetta.

Se on yksi-moneen kartoitus. Näkymättömiltä isänniltäsi tuleva liikenne näkyy muille Internetin tietokoneille ikään kuin se tulisi Linux-palvelimeltasi.

Voit ottaa IP-naamioinnin käyttöön halutulla vyöhykkeellä, esimerkiksi julkisella vyöhykkeellä. Mutta ennen kuin teet sen, tarkista ensin, onko naamiointi aktiivinen vai ei ("ei" tarkoittaa, että se on poistettu käytöstä ja "kyllä" tarkoittaa muuta).

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

Tyypillinen käyttötapaus naamioitumiselle on portin edelleenohjaus. Olettaen, että haluat SSH:ta etäkoneelta sisäisen verkkosi isännälle, jonka IP-osoite on 10.20.1.3 ja jota sshd-daemon kuuntelee portilla 5000.

Voit lähettää kaikki yhteydet Linux-palvelimesi porttiin 22 kohdeisäntäsi aiottuun porttiin lähettämällä:

sudo firewall-cmd --zone=public --add-forward-port=port=22=proto=tcp:toport=5000:toaddr=10.20.1.3

Voit poistaa naamioitumisen käytöstä vyöhykkeellä käyttämällä --remove-masquerade-kytkintä.

sudo firewall-cmd --zone=public --remove-masquerade

Kuinka ottaa IMCP-viesti käyttöön ja poistaa se käytöstä palomuurissa

ICMP (Internet Control Message Protocol) -viestit ovat joko tietopyyntöjä tai vastauksia tietopyyntöihin tai virhetilanteissa.

Voit ottaa ICMP-viestit käyttöön tai poistaa ne käytöstä palomuurissa, mutta ennen sitä luetellaan ensin kaikki tuetut icmp-tyypit.

sudo firewall-cmd --get-icmptypes

Voit lisätä tai poistaa haluamasi lohkotyypin.

sudo firewall-cmd --zone=home --add-icmp-block=echo-reply
OR
sudo firewall-cmd --zone=home --remove-icmp-block=echo-reply

Voit tarkastella kaikkia vyöhykkeelle lisättyjä icmp-tyyppejä --list-icmp-blocks-kytkimen avulla.

sudo firewall-cmd --zone=home --list-icmp-blocks

Kuinka käyttää suoraa käyttöliittymää raaka-iptables-komentojen välittämiseen

Firewall-cmd tarjoaa myös suoria valintoja (--direct), joiden avulla pääset suoraan palomuuriin. Tämä on hyödyllistä niille, joilla on perustiedot iptablesista.

Tärkeää: Käytä suoria vaihtoehtoja vain viimeisenä keinona, kun ei ole mahdollista käyttää yllä kuvattuja tavallisia firewall-cmd-vaihtoehtoja.

Tässä on esimerkki raaka-iptables-säännön välittämisestä --add-rules-kytkimen avulla. Voit poistaa nämä säännöt helposti korvaamalla --add-rule-kohdan --remove-rule:

sudo firewall-cmd --direct --add-rule ipv4 filter IN_public_allow 0 -m tcp -p tcp --dport 80 -j ACCEPT

Lisätietoja iptablesista on tässä oppaassa: Iptables-palomuurin määrittäminen mahdollistamaan palvelujen etäkäyttö Linuxissa.

Jos et tunne iptables-syntaksia, voit valita palomuurin "rikkaan kielen" luodaksesi monimutkaisempia palomuurisääntöjä helposti ymmärrettävällä tavalla, kuten seuraavassa selitetään.

Kuinka käyttää monipuolista kieltä palomuurissa

rikasta kieltä (tunnetaan myös nimellä rich säännöt) käytetään monimutkaisempien palomuurisääntöjen lisäämiseen IPv4:lle ja IPv6:lle. tietämättä iptables-syntaksia.

Se laajentaa kattamiamme vyöhykeominaisuuksia (palvelu, portti, icmp-block, naamiointi ja eteenpäin suuntautuva portti). Se tukee lähde- ja kohdeosoitteita, lokien kirjaamista, toimintoja ja rajoituksia lokeille ja toimille.

--add-rich-rule-sääntöä käytetään monipuolisten sääntöjen lisäämiseen. Tämä esimerkki näyttää, kuinka uudet IPv4- ja IPv6-yhteydet sallitaan palvelun http ja loki 1 minuutissa tarkastuksen avulla:

sudo firewall-cmd --add-rich-rule='rule service name="http" audit limit value="1/m" accept'

Voit poistaa lisätyn säännön korvaamalla --add-rich-rule-vaihtoehdon vaihtoehdolla --remove-rich-rule.

sudo firewall-cmd --remove-rich-rule='rule service name="http" audit limit value="1/m" accept'

Tämä ominaisuus mahdollistaa myös liikenteen estämisen tai sallimisen tietystä IP-osoitteesta. Seuraava esimerkki näyttää kuinka hylätään yhteydet IP-osoitteesta 10.20.1.20.

sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.254" reject'

Paniikkitilan ottaminen käyttöön ja poistaminen käytöstä palomuurissa

Paniikkitila on palomuurin alainen erityinen tila, jossa kaikki saapuvat ja lähtevät paketit pudotetaan ja aktiiviset yhteydet vanhenevat aktivoinnin jälkeen.
Voit ottaa tämän tilan käyttöön hätätilanteissa, joissa verkkoympäristöäsi uhkaava uhka poistuu.

Voit kysyä paniikkitilaa --query-panic-vaihtoehdolla.

sudo firewall-cmd --query-panic

Ota paniikkitila käyttöön valitsemalla --panic-on. Voit testata, toimiiko se käyttämällä ping-komentoa kuvan mukaisesti. Koska paketti pudotetaan, nimeä www.google.com ei voida ratkaista, joten virheilmoitus näytetään.

sudo firewall-cmd --panic-on
ping -c 2 www.google.com

Voit poistaa paniikkitilan käytöstä --panic-off-vaihtoehdolla.

sudo firewall-cmd --panic-off

Kuinka lukita palomuuri

Muista, että mainitsimme palomuurin perusasioissa, että paikalliset sovellukset tai palvelut voivat muuttaa palomuurin asetuksia, jos niitä käytetään pääkäyttäjän oikeuksin. Voit hallita, mitkä sovellukset voivat pyytää palomuurin muutoksia, määrittämällä ne lukituksen sallittujen luettelossa.

Tämä ominaisuus on oletuksena pois päältä. Voit ottaa sen käyttöön tai poistaa sen käytöstä --lockdown-on- tai --lockdown-kytkimellä.

sudo firewall-cmd --lockdown-on
OR
sudo firewall-cmd --lockdown-off

Huomaa, että on suositeltavaa ottaa tämä ominaisuus käyttöön tai poistaa se käytöstä muokkaamalla pääasetustiedostoa, koska palomuuri-cmd ei välttämättä ole lukituksen sallittujen luettelossa, kun otat lukituksen käyttöön.

sudo vim /etc/firewalld/firewalld.conf

Etsi parametri Lockdown ja muuta sen arvo arvosta no (tarkoittaa pois päältä) arvoksi yes (tarkoittaa päällä).

Lockdown=yes

Jos haluat tehdä tästä asetuksesta pysyvän, lataa palomuuri uudelleen.

sudo firewall-cmd --reload
Yhteenveto

Palomuuri on helppokäyttöinen korvike iptables-palvelulle, joka käyttää iptablesia taustajärjestelmänä. Tässä artikkelissa olemme näyttäneet kuinka palomuuripaketti asennetaan, selostettu palomuurin tärkeät ominaisuudet ja keskusteltu niiden määrittämisestä ajonaikaisissa ja pysyvissä määritysympäristöissä.

Jos sinulla on kysyttävää tai kommentteja, ota meihin yhteyttä alla olevan kommenttilomakkeen kautta. Saat lisätietoja palomuurioppaasta (man firewalld) tai palomuuridokumentaatiosta projektin verkkosivustolla.