Palomuurin asentaminen, määrittäminen ja käyttö CentOS: ssa ja Ubuntussa


Firewalld (palomuuridemon) on vaihtoehto iptables-palvelulle, sillä se hallitsee järjestelmän palomuuria dynaamisesti verkon (tai palomuuri) alueiden tuella ja tarjoaa D-Bus-käyttöliittymän kokoonpanojen hallintaan. Sitä on helppo käyttää ja määrittää, ja se on nyt RHEL/CentOS-, Fedora- ja useiden muiden Linux-jakelujen oletuspalomuurien hallintatyökalu.

Tässä artikkelissa käsitellään järjestelmän palomuurin määrittämistä palomuurilla ja pakettien perussuodatuksen toteuttamista CentOS/RHEL 7: ssä ja Ubuntussa.

Palomuurin perusteet

Palomuuri koostuu kolmesta kerroksesta, jotka ovat:

  • ydinkerros: vastuussa kokoonpanon ja takapään käsittelystä (lueteltu alla).
  • D-Bus-käyttöliittymä: ensisijainen tapa muuttaa ja luoda palomuuriasetuksia.
  • taustat: vuorovaikutukseen netfilterin kanssa (natiivi ydinmoduuli, jota käytetään palomuureihin). Ne sisältävät iptables, ip6tables, ebtables, ipset, nft, linnftables; verkonhallinta; ja moduulit.

Se hallitsee palomuurisääntöjä toteuttamalla verkko-/palomuurialueita, jotka määrittävät verkkoyhteyksien tai -rajapintojen luottamustason. Muita tuettuja palomuuriominaisuuksia ovat palvelut, suora kokoonpano (käytetään suoraan iptables-syntaksin välittämiseen), IPSets ja ICMP-tyypit.

Firewalld tukee kahdenlaisia kokoonpanoympäristöjä:

  • ajonaikaiset määritykset, jotka ovat voimassa vasta, kun kone on käynnistetty uudelleen tai palomuuri-palvelu on käynnistetty uudelleen
  • pysyvä kokoonpano, joka on tallennettu ja toimii jatkuvasti.

Palomuuri-cmd-komentorivityökalua käytetään ajonaikaisen ja pysyvän määrityksen hallintaan. Vaihtoehtoisesti voit käyttää palomuurin määrityksen graafisen käyttöliittymän (GUI) määritystyökalua vuorovaikutuksessa daemonin kanssa.

Lisäksi palomuuri tarjoaa tarkan rajapinnan muille paikallisille palveluille tai sovelluksille, jotta ne voivat pyytää muutoksia palomuurisääntöihin suoraan, jos niillä on pääkäyttöoikeudet.

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

Tärkeiden palomuuriominaisuuksien ymmärtäminen

Palomuurin keskeinen piirre on verkko/palomuuri-alueet. Jokainen muu ominaisuus on rajattu vyöhykkeeseen. Palomuurivyöhyke kuvaa yhteyden, käyttöliittymän tai lähdeosoitteen sidonnan luottamustasoa.

Oletuskokoonpanossa on joukko ennalta määritettyjä vyöhykkeitä, jotka on lajiteltu vyöhykkeiden oletusluottamustason mukaan epäluotettavista luotettaviin: pudotus, esto, julkinen, ulkoinen, dmz, työ, koti, sisäinen ja luotettu. Ne määritetään tiedostoihin, jotka on tallennettu hakemistoon/usr/lib/firewalld/zone.

Voit määrittää tai lisätä mukautettuja vyöhykkeitä CLI-asiakkaan avulla tai yksinkertaisesti luoda tai kopioida vyöhyketiedoston/etc/firewalld/zone-tiedostosta olemassa olevista tiedostoista ja muokata sitä.

Toinen tärkeä käsite palomuurissa on palvelut. Palvelu määritetään käyttämällä portteja ja protokollia; nämä määritelmät edustavat tiettyä verkkopalvelua, kuten web-palvelinta tai etäkäyttöpalvelua. Palvelut määritellään tiedostoihin, jotka on tallennettu hakemistoon/usr/lib/firewalld/services/tai/etc/firewalld/services /.

Jos tiedät iptables/ip6tables/ebtables-peruskäsitteet, voit myös käyttää suoraa käyttöliittymää (tai kokoonpanoa) päästäksesi suoraan palomuuriin. Mutta niille, joilla ei ole mitään iptables-tietämystä, voit käyttää monipuolista kieltä monimutkaisempien palomuurisääntöjen luomiseen IPv4: lle ja IPv6: lle.

Kuinka asentaa Firewalld Package Linux

CentOS 7: ssä palomuuri-paketti on esiasennettu ja voit tarkistaa sen seuraavalla komennolla.

$ rpm -qa firewalld

Ubuntu 16.04: ssä ja 18.04: ssä voit asentaa sen käyttämällä oletuspakettien hallintaa kuvan osoittamalla tavalla.

$ sudo apt install firewalld

Palomuuri-palvelun hallinta Linuxissa

Firewalld on säännöllinen 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

Palomuuripalvelun käynnistämisen jälkeen voit myös tarkistaa palomuurin käynnistyksen palomuurin cmd-työkalulla (jos se ei ole aktiivinen, tämä komento antaa\"ei käynnissä").

$ sudo firewall-cmd --state

Jos satut tallentamaan muutokset pysyvästi, voit ladata palomuurin uudelleen. Tämä lataa palomuurisäännöt uudelleen ja pitää tilatiedot. Nykyisestä pysyvästä kokoonpanosta tulee uusi ajonaikainen kokoonpano.

$ sudo firewall-cmd --reload

Kuinka työskennellä palomuurivyöhykkeiden kanssa palomuurissa

Saadaksesi luettelon kaikista käytettävissä olevista palomuurialueista ja -palveluista, suorita nämä komennot.

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

Oletusvyöhyke on vyöhyke, jota käytetään jokaiseen palomuuriominaisuuteen, joka ei ole nimenomaisesti rajattu toiseen vyöhykkeeseen. Voit saada oletusvyöhykesarjan verkkoyhteyksille ja rajapinnoille suorittamalla.

$ sudo firewall-cmd --get-default-zone

Jos haluat asettaa oletusalueen, esimerkiksi ulkoiseksi, käytä seuraavaa komentoa. Huomaa, että vaihtoehdon --pysyvä lisääminen asettaa kokoonpanon pysyvästi (tai mahdollistaa tietojen kyselyn pysyvästä kokoonpanoympäristöstä).

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

Seuraavaksi katsotaan, miten käyttöliittymä lisätään vyöhykkeelle. Tämä esimerkki osoittaa, kuinka langaton verkkosovitin (wlp1s0) lisätään kotialueelle, jota käytetään kotialueilla.

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

Rajapinta voidaan lisätä vain yhteen vyöhykkeeseen. Jos haluat siirtää sen toiseen vyöhykkeeseen, käytä --change-interface -kytkintä kuvan osoittamalla tavalla tai poista se edellisestä vyöhykkeestä –remove-interface-kytkimellä ja lisää se sitten uuteen vyöhykkeeseen.

Olettaen, että haluat muodostaa yhteyden julkiseen WI-FI-verkkoon, siirrä langaton käyttöliittymä 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. Suorita luettelo kaikista aktiivisista vyöhykkeistä, joissa on käytössä olevat toiminnot, kuten käyttöliittymät, palvelut, portit, protokollat:

$ sudo firewall-cmd --get-active-zones

Suhteessa edelliseen kohtaan, jos haluat löytää lisätietoja tietystä vyöhykkeestä, ts. Kaikesta siihen lisätystä tai sallitusta, käytä yhtä näistä 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 yksi seuraavista: oletus, HYVÄKSY, PISTE, 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

Kuinka avata ja estää portteja palomuurissa

Voit avata portin (tai portti/protokollayhdistelmän) palomuurissa lisäämällä sen vyöhykkeeseen --add-port -vaihtoehdolla. Jos et määritä vyöhykettä nimenomaisesti, se otetaan käyttöön oletusvyöhykkeellä.

Seuraava esimerkki näyttää, kuinka portit 80 ja 443 lisätään sallimaan sisäinen verkkoliikenne HTTP- ja HTTPS-protokollien kautta:

$ 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 pystyä näkemään juuri lisätyt portit.

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

Palomuurin portin estäminen tai sulkeminen on yhtä helppoa, poista se vain vyöhykkeeltä --remove-port -vaihtoehdolla. Esimerkiksi suljetaan julkisen vyöhykkeen portit 80 ja 443.

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

Sen sijaan, että käytät porttia tai portti/protokolla-yhdistelmää, voit käyttää palvelunimeä, jolle portti on osoitettu, seuraavassa osassa kuvatulla tavalla.

Palvelujen avaaminen ja estäminen palomuurissa

Voit avata palvelun palomuurissa ottamalla sen käyttöön --add-service -vaihtoehdolla. Jos vyöhyke jätetään pois, käytetään oletusaluetta.

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ä palomuurilla

IP-naamiointi (tunnetaan myös nimellä IPMASQ tai MASQ) on NAT (verkko-osoitekäännös) -mekanismi Linux-verkossa, jonka avulla verkon isännät, joilla on yksityiset IP-osoitteet, voivat kommunikoida Internetin kanssa käyttämällä Linux-palvelimesi (IPMASQ-yhdyskäytävä) julkista IP-osoitetta. osoite.

Se on kartoitus yksi kerrallaan. Näkymättömien isäntien liikenne näkyy muille Internetin tietokoneille ikään kuin se olisi peräisin Linux-palvelimeltasi.

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

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

Tyypillinen naamioinnin käyttötapa on suorittaa portin edelleenlähetys. Oletetaan, että haluat SSH: n etäkoneelta sisäisen verkon isännälle IP 10.20.1.3: lla, jota sshd-daemon kuuntelee portilla 5000.

Voit välittää kaikki yhteydet Linux-palvelimesi porttiin 22 kohdepalvelimen aiottuun porttiin antamalla:

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

Voit poistaa naamioinnin vyöhykkeeltä 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 virheellisissä olosuhteissa.

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

$ sudo firewall-cmd --get-icmptypes

Lisää tai poista haluamasi lohkotyyppi.

$ 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öhykkeeseen lisättyjä icmp-tyyppejä --list-icmp-lohkot -kytkimellä.

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

Kuinka käyttää suoraa rajapintaa Raw iptables -komentojen välittämiseen

Palomuuri-cmd tarjoaa myös suorat vaihtoehdot ( --direct ), jotta pääset suoraan palomuuriin. Tämä on hyödyllistä niille, joilla on perustiedot iptablesista.

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

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

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

Lisätietoja iptables-ohjelmista on tässä oppaassa: Iptables-palomuurin määrittäminen palvelujen etäkäytön mahdollistamiseksi Linuxissa.

Jos et ole perehtynyt iptables-syntaksiin, voit valita palomuurin\"rikkaan kielen" monimutkaisempien palomuurisääntöjen luomiseksi helposti ymmärrettävällä tavalla, kuten seuraavassa selitetään.

Rikkaan kielen käyttäminen palomuurissa

Rikkaalla kielellä (tunnetaan myös nimellä rikas säännöt) lisätään monimutkaisempia palomuurisääntöjä IPv4: lle ja IPv6: lle ilman iptables-syntaksin tuntemusta.

Se laajentaa peittoalueemme ominaisuuksia (palvelu, portti, icmp-lohko, naamiointi ja eteenpäin suuntautuva portti). Se tukee lähde- ja kohdeosoitteita, kirjaamista, toimintoja ja lokien ja toimintojen rajoituksia.

--add-rich-rule -toimintoa käytetään lisäämään Rich-sääntöjä. Tämä esimerkki osoittaa, kuinka uudet IPv4- ja IPv6-yhteydet sallitaan palvelun http yhteydessä ja kirjataan 1 minuutti auditoinnin 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 --remove-rich-rule -asetuksella.

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

Tämä ominaisuus mahdollistaa myös tietyn IP-osoitteen liikenteen estämisen tai sallimisen. Seuraava esimerkki näyttää, miten IP 10.20.1.20 -yhteydet hylätään.

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

Kuinka paniikkitila otetaan käyttöön ja pois käytöstä palomuurissa

Paniikkitila on palomuurin alla oleva erityistila, jossa kaikki sisäiset ja ulkoiset paketit pudotetaan, ja aktiiviset yhteydet vanhentuvat, kun ne on aktivoitu.
Voit ottaa tämän tilan käyttöön hätätilanteissa, joissa verkkoympäristösi uhkaa.

Jos haluat kysyä paniikkitilaa, käytä --query-panic -vaihtoehtoa.

$ sudo firewall-cmd --query-panic

Ota paniikkitila käyttöön --panic-on -vaihtoehdolla. Voit testata, toimiiko se, käyttämällä ping-komentoa kuvan mukaisesti. Koska paketti on pudonnut, nimeä www.google.fi ei voida ratkaista, joten näyttöön tulee virhe.

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

Poista paniikkitila käytöstä --panic-off -vaihtoehdolla.

$ sudo firewall-cmd --panic-off

Kuinka palomuuri lukitaan

Muista, että mainitsimme palomuurin perustietojen alla, että paikalliset sovellukset tai palvelut voivat muuttaa palomuurin kokoonpanoa, jos niillä on pääkäyttöoikeudet. Voit hallita, mitkä sovellukset voivat pyytää palomuurimuutoksia määrittämällä sitten lukituksen sallittujen luetteloon.

Tämä ominaisuus on oletusarvoisesti pois käytöstä, voit ottaa sen käyttöön tai poistaa sen käytöstä kytkimellä - lockdown-on tai --lockdown .

$ 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 arvoksi no (tarkoittaa pois päältä) arvoon yes (tarkoittaa päällä).

Lockdown=yes

Tämän asetuksen tekeminen pysyväksi päivittää palomuuri uudelleen.

$ sudo firewall-cmd --reload

Firewalld on helppokäyttöinen korvike iptables-palvelulle, joka käyttää iptablesia taustana. Tässä artikkelissa olemme osoittaneet palomuuripaketin asentamisen, selittäneet palomuurin tärkeitä ominaisuuksia ja keskustelleet niiden määrittämisestä ajonaikaisessa ja pysyvässä kokoonpanossa.

Jos sinulla on kysyttävää tai kommentteja, ota rohkeasti yhteyttä alla olevan kommenttilomakkeen kautta. Voit lukea lisätietoja palomuurin manuaalisesta sivusta (man firewalld) tai palomuurin dokumentaatiosta projektin verkkosivustolla.