Počevši s CentoOS-om 7 pojavio se novi alat za konfiguriranje pravila filtriranja prometa. firewalld. Preporučuje se pomoću njega za upravljanje pravilima iptables. U CentOS 8, umjesto standardnog iptables filtrirajućeg paketa, sada se koristi okvir nftables, a kada konfigurirate pravila vatrozida putem firewallda, zapravo konfigurirate nftables. U ovom ćemo članku razmotriti instalaciju, osnovne koncepte i konfiguraciju firewalld-a na poslužitelju koji pokreće CentOS 8 (u CentOS-u 7 sve je isto).
sadržaj:
- Ključni pojmovi, zone i pravila Firewalld-a
- Instalirajte i omogućite firewalld na CentOS-u
- Radite s pravilima firewalld-a
- Firewalld: Blokiranje IP-a, iznimka
- Prosljeđivanje luke u firewalldu
FirewallD - vatrozid za zaštitu poslužitelja od neželjenog prometa s podrškom za dinamičko upravljanje pravilima (bez ponovnog pokretanja) i primjenom upornih pravila vatrozida. Radi kao sučelje za iptables i nftables. FirewallD se može koristiti na gotovo svim Linux distribucijama.
Ključni pojmovi, zone i pravila Firewalld-a
Prije nego što započnete instalaciju i konfiguraciju firewalld, upoznat ćemo se s konceptom zona koji se koriste za određivanje razine povjerenja u različite spojeve. Za razne zone firewalld možete primijeniti razna pravila filtriranja, navesti aktivne mogućnosti vatrozida u obliku unaprijed definiranih usluga, protokola i portova, prosljeđivanja vrata i bogatih pravila.
Firewalld filtrira dolazni promet po zonama, ovisno o pravilima koja se primjenjuju na zonu. ako IP-adresa pošiljatelja zahtjeva je u skladu s pravilima bilo koje zone, paket će biti poslan kroz ovu zonu. Ako se adresa ne podudara s bilo kojom od zona konfiguriranih na poslužitelju, paket će biti obrađen zadanom zonom. Prilikom instalacije firewalld zove se zadana zona javnost.
Postoje zaštitne zone u kojima su dozvole za razne usluge već unaprijed konfigurirane. Možete koristiti ove postavke ili stvoriti vlastite zone. Popis zadanih zona koji se stvore tijekom instalacije firewalld-a (pohranjeno u imenik / usr / lib / firewalld / zone /):
ispustiti | minimalna razina povjerenja. Sve su dolazne veze blokirane bez odgovora, dopuštene su samo odlazne veze; |
blok | zona je slična prethodnoj, ali kad se odbiju dolazni zahtjevi, šalje se poruka zabranjena icmp-host za Ipv4 ili icmp6-adm poruka za Ipv6; |
javnost | Predstavlja javne, nepouzdane mreže. Možete dopustiti odabrane ulazne veze pojedinačno; |
vanjski | vanjske mreže kada vatrozid koristite kao gateway. Konfiguriran je za maskiranje NAT-a, tako da vaša interna mreža ostaje privatna, ali dostupna; |
interni | antonim vanjske zone. Domaćin ima dovoljnu razinu povjerenja, dostupan je niz dodatnih usluga; |
DMZ | koristi se za računala koja se nalaze u DMZ-u (izolirana računala bez pristupa ostatku mreže). Dopuštene su samo određene ulazne veze; |
posao | zonu za rad strojeva (većina računala u mreži je pouzdana); |
dom | zonu kućne mreže. Možete vjerovati većini računala, ali podržane su samo određene ulazne veze; |
pouzdana | Povjerite svim strojevima na mreži. Najotvorenija od svih dostupnih opcija, zahtijeva svjesnu upotrebu. |
firewalld koriste se dva skupa pravila - trajna i privremena. Privremena pravila rade dok se poslužitelj ne ponovno pokrene. Prema zadanom prilikom dodavanja pravila u firewalld, pravila se smatraju privremenim (dužina trajanja). Da biste stalno dodavali pravilo, morate koristiti zastavu - trajan. Ova se pravila primjenjuju nakon ponovnog pokretanja poslužitelja..
Instalirajte i omogućite firewalld na CentOS-u
Na CentOS 7/8, firewalld je instaliran prema zadanim postavkama prilikom instaliranja OS-a. Ako ste ga izbrisali i želite instalirati firewalld, možete koristiti standardni yum / dnf manager:
# yum instalirati firewalld -y
- za Centos 7# dnf instalirati firewalld -y
- za Centos 8
Do demona firewalld pokrenuo se automatski s pokretanjem poslužitelja, morate ga dodati pokretanju:
# systemctl omogućuju firewalld
I pokrenite:
# systemctl start firewalld
Provjera statusa usluge:
# systemctl status firewalld
● firewalld.service - firewalld - dinamički vatrozidski demon učitan: učitan (/usr/lib/systemd/system/firewalld.service; omogućen; unaprijed postavljen dobavljač: omogućen) Aktivno: aktivno (radi) od pon 2019-10-14 14:54 : 40 +06; Prije 22 sata Dokumenti: čovjek: firewalld (1) Glavni PID: 13646 (firewalld) CGroup: /system.slice/firewalld.service └─13646 / usr / bin / python2 -Es / usr / sbin / firewalld --nofork --nopid 14. listopada 14:54:40 server.vpn.ru systemd [1]: Pokretanje vatrozida - dinamički demon zaštitnog zida ... 14. listopada 14:54:40 server.vpn.ru systemd [1]: Započet firewalld - dinamički vatrozidski demon.
Ili naredbom:
# vatrozid-cmd - drzava
# vatrozid-cmd - drzava
trčanje
Radite s pravilima firewalld-a
Zadana pravila:
Prije konfiguriranja pravila firewallda morate provjeriti koja se zona prema zadanim postavkama koristi:
# firewall-cmd --get-default-zone
Budući da smo upravo instalirali i nismo konfigurirali firewalld, imamo zadanu zonu javnost.
Provjerite jezgru. Ona je također jedna - javna:
# firewall-cmd --getget-active-zone
javna sučelja: eth0
Kao što vidite, mrežnim sučeljem eth0 upravlja zona. javnost.
Popis mrežnih sučelja CentOS može se prikazati:# ip link show
ili# nmcli status uređaja
Da biste pogledali osnovna pravila, unesite:
# firewall-cmd - list-sve
javni (aktivni) cilj: zadani icmp-block-inverzija: nema sučelja: eth0 izvori: usluge: dhcpv6-klijent ssh portovi: protokoli: maskarada: nema naprijed-portovi: izvori portova: icmp-blokovi: bogata pravila:
Kao što možete vidjeti iz popisa, u ovu su zonu dodani uobičajeni postupci vezani za DHCP klijent i ssh..
Dostupne zone
Da biste pogledali popis svih zona, trebate pokrenuti naredbu:
# firewall-cmd --get-zone
Dobio sam slijedeći popis:
blok dmz drop vanjski dom interni javni rad od povjerenja
Da biste provjerili pravila određene zone, dodajte zastavu zone.
# firewall-cmd --zone = home - lista-sve
kućni cilj: zadani icmp-block-inverzija: nema sučelja: izvori: usluge: dhcpv6-client mdns samba-client ssh portovi: protokoli: maskarada: nema naprijed-portovi: izvori-portovi: icmp-blokovi: bogata pravila:
Pravila svih zona mogu se pregledati naredbom:
# firewall-cmd - list-sve-zone
Popis će biti prilično velik, jer može biti mnogo zona.
Promijenite zadanu zonu.
Prema mreži se sva mrežna sučelja nalaze u zoni javnost, ali mogu se prenijeti u bilo koju zonu naredbom:
# firewall-cmd --zone = home -change-sučelje = eth0
Nakon parametra -zona = odredite željenu zonu.
Za promjenu zadane zone koristite naredbu:
# firewall-cmd --set-default-zone = dom
Dodavanje pravila za aplikacije
Da biste otvorili port za aplikaciju, iznimkama možete dodati uslugu. Prikaži popis dostupnih usluga:
# firewall-cmd --get-usluge
Izlaz će sadržavati veliki broj usluga. Pojedinosti o usluzi nalaze se u xML datoteka. Te se datoteke nalaze u direktoriju / usr / lib / firewalld / usluge.
Na primjer:
# cd / usr / lib / firewalld / usluge
# mačka smtp.xml
Pošta (SMTP) Ova opcija omogućuje dolaznu isporuku SMTP pošte. Ako trebate omogućiti udaljenim domaćinima da se izravno povezu s vašim uređajem za isporuku pošte, omogućite ovu opciju. Ovo ne trebate omogućiti ako prikupljate poštu s vašeg davatelja internetskih usluga putem POP3 ili IMAP ili ako koristite alat kao što je fetchmail. Imajte na umu da nepravilno konfigurirani SMTP poslužitelj može omogućiti udaljenim računalima da koriste vaš poslužitelj za slanje neželjene pošte.
XML datoteka sadrži opis usluge, protokol i broj porta koji će se otvoriti u firewalld-u.
Pri dodavanju pravila možete koristiti parametar -dodatak usluga, Da biste otvorili pristup određenoj usluzi:
# firewall-cmd --zone = public --add-service = http
uspjeh
# firewall-cmd --zone = public --add-service = https
uspjeh
Nakon dodavanja pravila možete provjeriti dodaju li se usluge u navedenu zonu:
# firewall-cmd --zone = javni - popis-usluge
dhcpv6-klijent http https ssh
Ako želite ta pravila učiniti trajnim, morate dodati parametar prilikom dodavanja -trajan.
Da biste uklonili uslugu iz zone:
# vatrozid-cmd - stalni --zone = javni - uklanjanje-usluga = http
# firewall-cmd --zone = javni - postojani --list-usluge
dhcpv6-klijent https ssh test
Ako svojoj iznimci želite dodati uslugu, možete stvoriti datoteku xML sebe i ispunite. Možete kopirati podatke s bilo koje usluge, promijeniti ime, opis i broj porta.
Kopirajte datoteku smtp.xml u imenik za rad s korisničkim uslugama:
# cp /usr/lib/firewalld/services/smtp.xml / itd / firewalld / usluge
Promijenite opis usluge u datoteci.
Sama xml datoteka također se mora preimenovati u naziv vaše usluge. Nakon toga, morate ponovno pokrenuti firewalld i provjeriti nalazi li se naša usluga na popisu:
# firewall-cmd --get-usluge
Nazvao sam službu test a na popisu se pojavio:
syslog-tls telnet test tftp
Sada možete dodati kreiranu uslugu u bilo koju zonu:
# firewall-cmd --zone = public --add-service = test - trajan
uspjeh
# firewall-cmd --zone = javni - postojani --list-usluge
dhcpv6-klijent http https ssh test
Ako na popisu niste pronašli uslugu koja vam je potrebna, možete otvoriti željeni port na firewalld pomoću naredbe:
# firewall-cmd --zone = public -add-port = 77 / tcp
- otvoreni port 77 TCP# firewall-cmd --zone = public -add-port = 77 / udp
- otvoreni port 77 UDP# firewall-cmd --zone = public -add-port = 77-88 / udp
- otvoreni raspon priključaka 77-88 UDP# firewall-cmd --zone = javni-popisi-portovi
- provjerite popis dopuštenih portova
Blokiraj / dopusti ICMP odgovore:
# firewall-cmd --zone = public --add-icmp-block = eho-odgovor
# firewall-cmd --zone = public --remove-icmp-block = eho-odgovor
Izbriši dodani port:
# firewall-cmd --zone = public -remove-port = 77 / udp
- ukloniti privremeno pravilo 77 UDP
# firewall-cmd - stalni --zone = public -remove-port = 77 / udp
- uklonite trajno pravilo
Dodavanje prilagođenih zona
Možete stvoriti vlastitu zonu (nazvat ću je imenom naš):
# firewall-cmd - trajna --new-zone = naša
Nakon stvaranja nove zone, kao i nakon kreiranja usluge, trebate ponovno pokrenuti sustav firewalld:
# firewall-cmd - ponovno učitavanje
uspjeh
# firewall-cmd --get-zone
blok dmz drop vanjski dom interni naš posao od povjerenja u javnost
zona naš na raspolaganju. Možete mu dodati usluge ili otvoriti određene portove.
Firewalld: Blokiranje IP-a, iznimka
Možete dodati pouzdane IP adrese u firewalld iznimke ili blokirati neželjene.
Dodavanje određene IP adrese (na primjer 8.8.8.8) na vašem poslužitelju putem izuzetaka firewalld, koristite naredbu:
# firewall-cmd --zone = public --add-rich-rule = 'obitelj pravila = "ipv4" adresa izvora = "8.8.8.8" prihvati "
Provjerite područje i provjerite IP dodan izuzecima u pravilu bogatih pravila:
# firewall-cmd --zone = javni - popis-sve
javni (aktivni) cilj: zadani icmp-block-inverzija: nema sučelja: eth0 izvori: usluge: dhcpv6-klijent http https ssh test portovi: protokoli: maskarada: nema naprijed-portovi: izvori-portovi: icmp-blokovi: bogata pravila: obitelj obitelj = "ipv4" izvor adrese = "8.8.8.8" prihvatiti
Za blokiranje IP, treba zamijeniti prihvatiti na odbiti:
# firewall-cmd --zone = public --add-rich-rule = 'obitelj pravila = "ipv4" adresa izvora = "8.8.4.4" odbaci "
# firewall-cmd --zone = javni - popis-sve
javni (aktivni) cilj: zadani icmp-block-inverzija: nema sučelja: eth0 izvori: usluge: dhcpv6-klijent http https ssh test portovi: protokoli: maskarada: nema naprijed-portovi: izvori-portovi: icmp-blokovi: bogata pravila: obitelj pravila = "ipv4" izvor adrese = "8.8.8.8" prihvati obitelj pravila = "ipv4" izvor izvora = "8.8.4.4" odbaci
Konkretnu uslugu možete omogućiti samo za zahtjeve s određene IP adrese:
# firewall-cmd --permanentni --add-rich-rule 'pravilo porodice = "ipv4" izvor adrese = "10.10.1.0/24" ime usluge = "https" prihvati "
Ako hitno trebate blokirati sve zahtjeve na poslužitelju, upotrijebite naredbu panika:
# firewall-cmd --panic-on
Način panike možete onemogućiti bilo naredbom:
# firewall-cmd - isključeno
Ili ponovno pokretanje poslužitelja.
Možete blokirati konfiguraciju firewalld-a tako da lokalne usluge s korijenskim povlasticama ne mogu promijeniti pravila vatrozida koje ste stvorili:
# firewall-cmd - zaključavanje
Onemogući način zaključavanja:
# firewall-cmd - zaključavanje-isključivanje
Prosljeđivanje luke u firewalldu
U firewalldu možete stvoriti pravilo prosljeđivanja vrata. Za prosljeđivanje priključka 443 do 9090:
# firewall-cmd --zone = public --add-forward-port = port = 443: proto = tcp: toport = 9090 - stalni
Da biste uklonili pravilo za prosljeđivanje porta:
# firewall-cmd --zone = public - ukloni-naprijed-port = port = 443: proto = tcp: toport = 9090