Konfigurirajte FirewallD na poslužitelju pomoću CentOS 8 i 7

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 /):

ispustitiminimalna razina povjerenja. Sve su dolazne veze blokirane bez odgovora, dopuštene su samo odlazne veze;
blokzona je slična prethodnoj, ali kad se odbiju dolazni zahtjevi, šalje se poruka zabranjena icmp-host za Ipv4 ili icmp6-adm poruka za Ipv6;
javnostPredstavlja javne, nepouzdane mreže. Možete dopustiti odabrane ulazne veze pojedinačno;
vanjskivanjske mreže kada vatrozid koristite kao gateway. Konfiguriran je za maskiranje NAT-a, tako da vaša interna mreža ostaje privatna, ali dostupna;
interniantonim vanjske zone. Domaćin ima dovoljnu razinu povjerenja, dostupan je niz dodatnih usluga;
DMZkoristi 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;
posaozonu za rad strojeva (većina računala u mreži je pouzdana);
domzonu kućne mreže. Možete vjerovati većini računala, ali podržane su samo određene ulazne veze;
pouzdanaPovjerite 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

Naredba cmd vatrozida je firewalld sučelje nftables / iptables.

# 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

U sustavu Windows možete konfigurirati prosljeđivanje porta s mrežom.

Da biste uklonili pravilo za prosljeđivanje porta:

# firewall-cmd --zone = public - ukloni-naprijed-port = port = 443: proto = tcp: toport = 9090