Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Programi
  • Centos 7 firewall otvori port 80. Šta učiniti ako tražena usluga nije dostupna

Centos 7 firewall otvori port 80. Šta učiniti ako tražena usluga nije dostupna

Ali iptables komande su složene i mnogim korisnicima je teško zapamtiti sve opcije i slučajeve u kojima bi ih trebalo koristiti. Stoga programeri distribucije kreiraju vlastite dodatke preko iptables, koji pomažu da se pojednostavi upravljanje firewall-om. CentOS ima dodatak za upravljanje iptablesom pod nazivom Firewalld.

Firewalld ima nekoliko važnih razlika u odnosu na iptables. Ovdje se kontrola pristupa mreži vrši na nivou zona i servisa, a ne lanaca i pravila. I pravila se ažuriraju dinamički bez prekidanja aktivnih sesija. Ovaj članak će vas provesti kroz postavljanje CentOS 7 zaštitnog zida koristeći Firewalld kao primjer.

Kao što sam rekao gore, Firewalld ne radi sa lancima pravila, već sa zonama. Svakom mrežnom sučelju može se dodijeliti određena zona. Zona je skup pravila, ograničenja i dozvola koje se primjenjuju na to mrežno sučelje. Po interfejsu se može odabrati samo jedna zona. Programeri su kreirali nekoliko unaprijed postavljenih zona:

  • drop- blokirati sve dolazne pakete, dozvoliti samo odlazne
  • blok- za razliku od prethodne opcije, pošiljaocu paketa će biti poslata poruka da blokira svoj paket;
  • javnosti- podržane su samo dolazne veze za ssh i dhclient;
  • vanjski- Podržava NAT za skrivanje interne mreže;
  • interni- ssh, samba, mdns i dhcp usluge su dozvoljene;
  • dmz- koristi se za izolovane servere koji nemaju pristup mreži. Dozvoljene su samo SSH veze;
  • rad- ssh i dhcp usluge su dozvoljene;
  • Dom- slično internom;
  • pouzdano- sve je dozvoljeno.

Dakle, da biste omogućili ili onemogućili uslugu, samo je trebate dodati ili ukloniti iz trenutne zone ili promijeniti zonu interfejsa u onu u kojoj je to dozvoljeno. To je analogno standardnoj politici paketa u iptables. Pouzdana zona ima politiku ACCEPT i dozvoljava sve veze, blok zona ima politiku DENY, koja odbija sve veze, a sve ostale zone se mogu smatrati nasljednicima zone bloka, plus već imaju unaprijed definirana pravila za omogućavanje mrežnih veza za neke usluge.

Također Firewalld ima dvije vrste konfiguracije:

  • vrijeme izvođenja- vrijedi samo do ponovnog pokretanja, sve promjene koje nisu eksplicitno drugačije primijenjene na ovu konfiguraciju;
  • trajno- trajne postavke koje će raditi nakon ponovnog pokretanja.

Sada kada znate sve što treba da uradite, pređimo na uslužni program firewalld-cmd.

Firewall-cmd sintaksa i opcije

Možete upravljati postavkama Firewalld-a koristeći uslužni program za konzolu firewall-cmd i u grafičkom sučelju. CentOS se najčešće koristi na serverima, tako da ćete morati raditi na terminalu. Pogledajmo sintaksu uslužnog programa:

firewall-cmd opcije

Sljedeća sintaksa se koristi za upravljanje zonama:

firewall-cmd --configuration --zone = opcije zone

Kao konfiguraciju, morate navesti --permanent opciju da biste sačuvali promjene nakon ponovnog pokretanja ili ne specificirajte ništa, tada će promjene biti važeće samo do ponovnog pokretanja. Koristite naziv željene zone kao zonu. Pogledajmo uslužne opcije:

  • --stanje- prikaz stanja firewall-a;
  • --reload- ponovno učitavanje pravila iz trajne konfiguracije;
  • --complete-reload- teško ponovno učitavanje pravila, prekidanje svih veza;
  • --runtime-to-permanent- prenijeti postavke konfiguracije vremena rada u trajnu konfiguraciju;
  • --trajno- koristiti trajnu konfiguraciju;
  • --get-default-zone- prikaz podrazumevane zone;
  • --set-default-zone- postaviti zadanu zonu;
  • --get-active-zones- prikaz aktivnih zona;
  • --get-zone- prikaz svih dostupnih zona;
  • --get-services- prikaz unapred definisanih usluga;
  • --list-sve-zone- prikaz konfiguracije svih zona;
  • --nova zona- kreiranje nove zone;
  • --delete-zone- brisanje zone;
  • --list-all- uklonite sve što je dodato iz odabrane zone;
  • --list-services- prikazati sve usluge dodane u zonu;
  • --dodatni servis- dodati uslugu u zonu;
  • --remove-service- ukloniti uslugu iz zone;
  • --list-ports- portovi za prikaz dodani u zonu;
  • --add-port- dodati port u zonu;
  • --remove-port- ukloniti luku iz zone;
  • --query-port- pokazati da li je port dodat u zonu;
  • --list-protocols- prikaz protokola dodatih zoni;
  • --add-protocol- dodati protokol u zonu;
  • --remove-protocol- ukloniti protokol iz zone;
  • --list-source-ports- prikazati izvorne portove dodane u zonu;
  • --add-source-port- dodati izvorni port u zonu;
  • --remove-source-port- ukloniti izvorni port iz zone;
  • --list-icmp-blocks- prikazati listu icmp brava;
  • --add-icmp-block- dodati blokirajući icmp;
  • --add-icmp-block- ukloniti blokirajući icmp;
  • --add-forward-port- dodati port za prosljeđivanje na NAT;
  • --remove-forward-port- ukloniti port za NAT prosljeđivanje;
  • --add-maskarada- omogućiti NAT;
  • --remove-maskarada- ukloniti NAT.

Ovo su daleko od svih opcija uslužnog programa, ali će biti dovoljne za ovaj članak.

Konfiguriranje zaštitnog zida na CentOS 7

1. Status zaštitnog zida

Prvi korak je da pogledate status zaštitnog zida. Da biste to učinili, pokrenite:

sudo systemctl status firewalld

Ako je usluga Firewalld onemogućena, morate je omogućiti:

sudo systemctl start firewalld
sudo systemctl omogući firewalld

Sada morate vidjeti da li je Firewalld pokrenut pomoću komande firewall-cmd:

sudo firewall-cmd --state

Ako je program pokrenut i sve je u redu, dobićete poruku "running".

2. Upravljanje zonama

Kao što možete zamisliti, zone su glavni alat za upravljanje mrežnim vezama. Da vidite zadanu zonu, pokrenite:

sudo firewall-cmd --get-default-zone

U mom slučaju, ovo je javna zona. Možete promijeniti trenutnu zonu pomoću opcije --set-default-zone:

sudo firewall-cmd --set-default-zone = javno

Da vidite koje se zone koriste za sva mrežna sučelja, pokrenite:

sudo firewall-cmd --get-active-zones

Lista će pokazati zone i interfejse za koje su dodijeljene. Pomoću ove naredbe možete vidjeti konfiguraciju za određenu zonu. Na primjer, za javnu zonu:

3. Konfiguriranje usluga

Sve unapred definisane servise možete pogledati naredbom:

sudo firewall-cmd --get-services

Naredba će prikazati sve dostupne usluge, možete dodati bilo koju od njih u zonu da biste je omogućili. Na primjer, dozvolimo vezu na http:

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

I da uklonite ovu uslugu, pokrenite:

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

U oba slučaja koristili smo --permanent opciju tako da konfiguracija traje i nakon ponovnog pokretanja. Nakon izmjena, potrebno je ažurirati pravila:

sudo firewall-cmd --reload

Zatim, ako pogledate konfiguraciju zone, tamo će se pojaviti dodana usluga:

sudo firewall-cmd --zone = public --list-all

4. Kako otvoriti port u Firewalldu

Ako ne postoji servis za program koji vam je potreban, možete ručno otvoriti njegov port. Da biste to učinili, jednostavno dodajte željeni port u zonu. Na primjer port 8083:

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

Da uklonite ovaj port iz zone, pokrenite:

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

Slično uslugama, da biste otvorili port u firewall-u centos 7, morate ponovo pokrenuti zaštitni zid.

sudo firewall-cmd --reload

5. Prosljeđivanje porta zaštitnog zida

Prosljeđivanje portova u Firewalldu je mnogo lakše konfigurirati nego u iptables. Ako trebate, na primjer, da preusmjerite promet sa porta 2223 na port 22, samo dodajte preusmjeravanje u zonu:

sudo firewall-cmd --zone = public --add-forward-port = port = 2223: proto = tcp: toport = 22

Ovdje se preusmjeravanje vrši samo na trenutnoj mašini. Ako želite postaviti NAT mrežu i proslijediti port na drugu mašinu, prvo morate omogućiti maskiranu podršku:

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

Zatim možete dodati port:

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

6. Napredna pravila

Ako vam funkcionalnost zona nije dovoljna, možete koristiti napredna pravila. Opća sintaksa za proširena pravila je:

porodica pravila = "porodica" radnja revizije dnevnika izvorne vrijednosti odredišne ​​vrijednosti

Evo značenja glavnih parametara:

  • As protokolarne porodice možete odrediti ipv4 ili ipv6 ili ništa ne raditi, tada će se pravilo primijeniti na oba protokola;
  • izvor i odredište je pošiljalac i primalac paketa. Kao ovi parametri mogu se koristiti IP adresa, naziv usluge, port, protokol i tako dalje;
  • log- omogućava vam da evidentirate prolaz paketa, na primjer, u syslog. U ovoj postavci možete odrediti prefiks linije dnevnika i nivo opširnosti dnevnika;
  • revizija je alternativni način evidentiranja kada će poruke biti poslane auditd servisu.
  • Akcija je radnja koju treba poduzeti na odgovarajućem paketu. Dostupno: prihvatiti, odbaciti, odbiti, označiti.

Pogledajmo neke primjere. Moramo blokirati pristup serveru za korisnika sa IP 135.152.53.5:

sudo firewall-cmd --zone = public --add-rich-rule "familija pravila =" ipv4 "izvorna adresa = 135.152.53.5 odbaciti"

Ili trebamo zabraniti pristup samo portu 22 za istog korisnika:

sudo firewall-cmd --zone = public --add-rich-rule "familija pravila =" ipv4 "izvorna adresa = 135.152.53.5 port port = 22 protokol = tcp odbijen"

Sva napredna pravila možete pogledati pomoću naredbe:

sudo firewall-cmd --list-rich-rules

zaključci

U ovom članku smo raspravljali o tome kako se konfiguracija zaštitnog zida izvodi u CentOS-u 7 i koji zadaci se mogu izvršiti pomoću njega. Program je mnogo lakši za korištenje nego iptables, ali po mom mišljenju Ubuntu firewall dodatak je još lakši za korištenje.

Zaštitni zid instaliran u operativnom sistemu koristi se za sprečavanje neovlašćenog protoka saobraćaja između računarskih mreža. Posebna pravila za firewall kreiraju se ručno ili automatski, koja su odgovorna za kontrolu pristupa. Operativni sistem razvijen na Linux kernelu, CentOS 7 ima ugrađeni zaštitni zid i kontroliše ga zaštitni zid. FirewallD je podrazumevano uključen, a danas bismo želeli da razgovaramo o njegovoj konfiguraciji.

Kao što je gore pomenuto, FirewallD je podrazumevani zaštitni zid u CentOS 7. Zato će se o postavljanju zaštitnog zida raspravljati koristeći ovaj alat kao primjer. Možete postaviti pravila filtriranja koristeći iste iptables, ali to se radi na malo drugačiji način. Preporučujemo da se upoznate sa konfiguracijom pomenutog uslužnog programa klikom na sljedeću vezu, a mi ćemo početi analizirati FirewallD.

Osnovni koncepti zaštitnog zida

Postoji nekoliko zona - skupova pravila za kontrolu saobraćaja na osnovu poverenja u mreže. Svima im se dodjeljuju vlastite politike, čija kombinacija čini konfiguraciju zaštitnog zida. Svakoj zoni je dodeljen jedan ili više mrežnih interfejsa, što vam takođe omogućava da prilagodite filtriranje. Primijenjena pravila direktno zavise od korištenog sučelja. Na primjer, kada je povezan na javni Wi-Fi, firewall će povećati nivo kontrole, a na kućnoj mreži će otvoriti dodatni pristup učesnicima u lancu. Razmatrani zaštitni zid sadrži sljedeće zone:

  • pouzdan - maksimalni nivo povjerenja za sve mrežne uređaje;
  • home - grupa lokalne mreže. Postoji povjerenje u okruženje, ali ulazne veze su dostupne samo određenim mašinama;
  • radna - radna površina. Postoji povjerenje u većinu uređaja, a aktiviraju se i dodatne usluge;
  • dmz - zona za izolovane računare. Ovi uređaji su isključeni sa ostatka mreže i dozvoljavaju samo određeni dolazni saobraćaj;
  • interna - zona internih mreža. Poverenje se primenjuje na sve mašine, otvaraju se dodatni servisi;
  • eksterno - obrnuto na prethodnu zonu. Na vanjskim mrežama, NAT maskiranje je aktivno, pokriva internu mrežu, ali ne blokira mogućnost pristupa;
  • javna - zona javnih mreža sa nepovjerenjem prema svim uređajima i individualnim prijemom dolaznog saobraćaja;
  • blok - svi dolazni zahtjevi se odbacuju, šaljući grešku icmp-host-prohibited ili icmp6-adm-prohibited;
  • pad - minimalni nivo poverenja. Dolazne veze se prekidaju bez ikakvog obavještenja.

Sami političari su privremeni i stalni. Kada se parametri pojave ili se uređuju, radnja zaštitnog zida se odmah mijenja bez potrebe za ponovnim pokretanjem. Ako su privremena pravila primijenjena, nakon ponovnog pokretanja FirewallD-a ona će biti resetirana. Tako se zove trajno pravilo - biće trajno sačuvano kada se primeni argument -permanent.

Omogućavanje FirewallD

Prvo morate pokrenuti FirewallD ili se uvjeriti da je aktivan. Samo funkcionalni demon (program koji radi u pozadini) će primijeniti pravila zaštitnog zida. Aktivacija se vrši doslovno u nekoliko klikova:

  1. Trči klasično "terminal" na bilo koji pogodan način, na primjer, preko menija "aplikacije".
  2. Unesite naredbu sudo systemctl start firewalld.service i pritisnite tipku Enter.
  3. Uslužnim programom se upravlja u ime superkorisnika, tako da ćete morati potvrditi svoj identitet navođenjem lozinke.
  4. Da biste provjerili funkcionira li usluga, navedite firewall-cmd --state.
  5. Ponovo izvršite autentifikaciju u grafičkom prozoru koji se otvori.
  6. Nova linija će biti prikazana. Značenje "Trčanje" označava da zaštitni zid radi.

Ako jednog dana trebate privremeno ili trajno onemogućiti firewall, savjetujemo vam da koristite upute predstavljene u našem drugom članku na sljedećem linku.

Pregled zadanih pravila i dostupnih zona

Čak i zaštitni zid koji normalno radi ima svoja specifična pravila i dostupne zone. Prije nego počnete uređivati ​​pravila, preporučujemo da se upoznate sa trenutnom konfiguracijom. Ovo se radi pomoću jednostavnih naredbi:

  1. Naredba firewall-cmd --get-default-zone će vam pomoći da odredite zadanu zonu.
  2. Nakon što ga aktivirate, vidjet ćete novu liniju u kojoj će biti prikazan traženi parametar. Na primjer, na slici ispod, aktivna zona je "Javno".
  3. Međutim, nekoliko zona može biti aktivno odjednom, štoviše, one su vezane za zasebno sučelje. Saznajte ove informacije putem firewall-cmd --get-active-zones.
  4. Naredba firewall-cmd --list-all će prikazati zadana pravila za zonu. Pogledajte snimak ekrana ispod. Vidite da je aktivna zona "Javno" dodijeljeno pravilo "Zadano"- zadani rad, interfejs "Enp0s3" i dodao dvije usluge.
  5. Ako trebate znati sve dostupne zone zaštitnog zida, unesite firewall-cmd --get-zones.
  6. Parametri određene zone se definišu preko firewall-cmd --zone = name --list-all, gde ime- naziv zone.

Nakon definiranja potrebnih parametara, možete pristupiti njihovom mijenjanju i dodavanju. Pogledajmo pobliže nekoliko najpopularnijih konfiguracija.

Konfiguriranje zona sučelja

Kao što znate iz gornjih informacija, svaki interfejs ima svoju zadanu zonu. Ostat će u njemu sve dok postavke ne promijeni korisnik ili programski. Ručni prenos interfejsa u zonu za jednu sesiju je moguć, a vrši se aktiviranjem komande sudo firewall-cmd --zone = home --change-interface = eth0. Rezultat "uspjeh" označava da je transfer bio uspješan. Podsjetimo da se takve postavke resetuju odmah nakon ponovnog pokretanja zaštitnog zida.

Uz takvu promjenu parametara, treba imati na umu da se rad servisa može resetirati. Neki od njih ne podržavaju funkcioniranje u određenim zonama, na primjer, SSH je dostupan u "Dom", ali u custom ili special, servis će odbiti da radi. Možete provjeriti da li je interfejs uspješno vezan za novu granu unošenjem firewall-cmd --get-active-zones.

Ako želite da resetujete postavke koje ste ranije napravili, jednostavno ponovo pokrenite zaštitni zid: sudo systemctl restart firewalld.service.

Ponekad nije uvijek zgodno promijeniti područje interfejsa za samo jednu sesiju. U tom slučaju, morat ćete urediti konfiguracijsku datoteku tako da sva podešavanja budu trajno unesena. Za ovo preporučujemo korištenje uređivača teksta nano koji se instalira iz službenog spremišta sudo yum install nano. Zatim ostaje izvršiti sljedeće radnje:

  1. Otvorite konfiguracijsku datoteku kroz uređivač unosom sudo nano / etc / sysconfig / network-scripts / ifcfg-eth0, gdje eth0- naziv potrebnog interfejsa.
  2. Potvrdite autentičnost naloga za dalje korake.
  3. Pronađite parametar "ZONA" i promijenite njegovu vrijednost na ono što želite, na primjer, javno ili kućno.
  4. Drži ključeve Ctrl + O da sačuvate promjene.
  5. Nemojte mijenjati naziv datoteke, samo kliknite na Enter.
  6. Izađite iz uređivača teksta sa Ctrl + X.

Sada će zona interfejsa biti onakva kakva ste je odredili, do sljedećeg uređivanja konfiguracijskog fajla. Da bi ažurirane postavke stupile na snagu, pokrenite sudo systemctl restart network.service i sudo systemctl restart firewalld.service.

Postavljanje zadane zone

Iznad smo već demonstrirali naredbu koja vam omogućava da saznate zadanu zonu. Također se može promijeniti postavljanjem parametra po vašem izboru. Da biste to učinili, u konzoli samo napišite sudo firewall-cmd --set-default-zone = name, gdje ime- naziv tražene zone.

Uspeh komande će biti označen natpisom "uspjeh" na posebnoj liniji. Nakon toga, sva trenutna sučelja će biti vezana za navedenu zonu, ako nijedna druga nije navedena u konfiguracijskim datotekama.

Kreiranje pravila za programe i uslužne programe

Na samom početku članka govorili smo o djelovanju svake zone. Definicija usluga, uslužnih programa i programa u takvim granama omogućit će vam da za svaku od njih aplicirate pojedinačne parametre za zahtjeve svakog korisnika. Za početak, preporučujemo da se upoznate sa kompletnom listom trenutno dostupnih usluga: firewall-cmd --get-services.

Rezultat će biti prikazan direktno u konzoli. Svaki server je odvojen razmakom, a na listi lako možete pronaći alat koji vas zanima. Ako traženi servis nije dostupan, potrebno ga je dodatno instalirati. Pročitajte o pravilima instalacije u službenoj softverskoj dokumentaciji.

Gornja komanda prikazuje samo nazive usluga. Detaljne informacije o svakom od njih dobijaju se kroz pojedinačnu datoteku koja se nalazi ispod putanje /usr/lib/firewalld/services. Takvi dokumenti su u XML formatu, put, na primjer, do SSH-a izgleda ovako: /usr/lib/firewalld/services/ssh.xml, a dokument ima sljedeći sadržaj:

SSH
Secure Shell (SSH) je protokol za prijavljivanje i izvršavanje komandi na udaljenim mašinama. Pruža sigurnu šifrovanu komunikaciju. Ako planirate daljinski pristupiti svom stroju putem SSH-a preko sučelja sa zaštitnim zidom, omogućite ovu opciju. Potreban vam je instaliran openssh-server paket da bi ova opcija bila korisna.

Servisna podrška se ručno aktivira u određenoj zoni. V "terminal" naredba sudo firewall-cmd --zone = public --add-service = http, gdje --zona = javna- zona za aktiviranje, i --add-service = http- naziv usluge. Imajte na umu da će takva promjena važiti samo u jednoj sesiji.

Trajno dodavanje se vrši preko sudo firewall-cmd --zone = public --permanent --add-service = http, a rezultat "uspjeh" označava uspješan završetak operacije.

Možete pogledati kompletnu listu trajnih pravila za određenu zonu tako što ćete prikazati listu u posebnom redu u konzoli: sudo firewall-cmd --zone = public --permanent --list-services.

Rješavanje problema s nedostatkom pristupa servisu

Pravila zaštitnog zida prema zadanim postavkama ukazuju na najpopularnije i najsigurnije usluge kao što su dozvoljene, ali blokira neke standardne aplikacije ili aplikacije trećih strana. U tom slučaju, korisnik će morati ručno promijeniti postavke kako bi riješio problem pristupa. To se može učiniti na dva različita načina.

Port forwarding

Kao što znate, sve mrežne usluge koriste određeni port. Lako ga detektuje zaštitni zid i na njemu se mogu izvršiti zaključavanja. Da biste izbjegli takve radnje od strane zaštitnog zida, potrebno je da otvorite traženi port naredbom sudo firewall-cmd --zone = public --add-port = 0000 / tcp, gdje je --zona = javna- lučko područje, --add-port = 0000 / tcp- broj porta i protokol. Firewall-cmd --list-ports će prikazati listu otvorenih portova.

Ako trebate otvoriti portove koji su u opsegu, koristite liniju sudo firewall-cmd --zone = public --add-port = 0000-9999 / udp, gdje --add-port = 0000-9999 / udp- raspon portova i njihov protokol.

Gore navedene naredbe će vam omogućiti samo testiranje primjene takvih parametara. Ako je bilo uspješno, trebali biste dodati iste portove stalnim postavkama, a to se radi unosom sudo firewall-cmd --zone = public --permanent --add-port = 0000 / tcp ili sudo firewall-cmd -- zona = javna --stalna --add-port = 0000-9999 / udp. Lista otvorenih stalnih portova se vidi ovako: sudo firewall-cmd --zone = public --permanent --list-ports.

Definicija usluge

Kao što vidite, dodavanje portova je jednostavno, ali procedura postaje komplikovanija kada se koristi veliki broj aplikacija. Postaje teško pratiti sve portove koji se koriste, zbog čega bi bilo ispravnije definirati uslugu:


Vi samo trebate odabrati najprikladniji način rješavanja problema sa pristupom servisu i slijediti date upute. Kao što vidite, sve radnje su dovoljno jednostavne i ne bi trebalo biti nikakvih poteškoća.

Kreiranje prilagođenih zona

Već znate da je u početku FirewallD kreirao veliki broj različitih zona sa određenim pravilima. Međutim, postoje situacije kada administrator sistema treba da kreira prilagođenu zonu, kao npr "javni web" za instalirani web server, ili "PrivateDNS"- za DNS server. Koristeći ova dva primjera, analizirat ćemo dodavanje grana:


U ovom članku naučili ste kako kreirati prilagođene zone i dodati im usluge. Već smo pričali o njihovom postavljanju prema zadanim postavkama i dodjeljivanju interfejsa, samo trebate navesti ispravna imena. Ne zaboravite ponovo pokrenuti svoj firewall nakon bilo kakvih trajnih izmjena.

Kao što vidite, FirewallD firewall je prilično obiman alat koji vam omogućava da napravite najfleksibilniju konfiguraciju zaštitnog zida. Jedino što preostaje jeste da se uverite da se uslužni program pokreće zajedno sa sistemom i da navedena pravila počnu da rade odmah. Uradite to pomoću komande sudo systemctl enable firewalld.

FirewallD je alat za upravljanje firewall-om koji je podrazumevano dostupan na serverima CentOS 7. U osnovi, to je omot oko IPTables-a i dolazi sa grafičkim alatom za konfigurisanje firewall-a i alatom za komandnu liniju firewall-cmd. Uz uslugu IPtables, svaka promjena zahtijeva uklanjanje starih pravila i kreiranje novih pravila u ` / etc / sysconfig / iptables`dok firewalld primjenjuje samo razlike.

FirewallD zone

FirewallD koristi usluge i zone umjesto pravila i lanaca u iptables. Po defaultu su dostupne sljedeće zone:

  • drop- Odbacite sve dolazne mrežne pakete bez odgovora, dostupne su samo odlazne mrežne veze.
  • blok- Odbijte sve dolazne mrežne pakete sa porukom icmp-host-prohibited, dostupne su samo odlazne mrežne veze.
  • javnosti- Prihvataju se samo odabrane dolazne veze, za korištenje na javnim mjestima
  • vanjski- Za eksterne mreže sa maskiranjem, prihvataju se samo odabrane dolazne veze.
  • dmz- demilitarizovana zona DMZ, javno dostupna sa ograničenim pristupom internoj mreži, prihvataju se samo odabrane dolazne veze.
  • rad
  • Dom- Za računare u kućnoj zoni, prihvataju se samo odabrane dolazne veze.
  • interni- Za računare na vašoj internoj mreži, prihvataju se samo odabrane dolazne veze.
  • pouzdano- Sve mrežne veze su prihvaćene.

Da biste dobili listu svih dostupnih zona:

# firewall-cmd --get-zones work drop interni eksterni pouzdani kućni dmz javni blok

Da vidite listu podrazumevanih zona:

# firewall-cmd --get-default-zone public

Za promjenu zadane zone:

FirewallD usluge

FirewallD usluge su XML konfiguracijske datoteke koje sadrže informacije servisnog zapisa za firewalld. Da biste dobili listu svih dostupnih usluga:

# firewall-cmd --get-services amanda-client amanda-k5-client bacula bacula-client ceph ceph-mon dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync freeipa-ldap freeipa-ldaps freeipa-ldaps freeipa-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mosh mountd ms-wbt mysql nfs ntp openvpn pmcd pmcd pmproxy pmwebapi pmcd pmproxy pmwebapi pmcd pmproxy pmwebapi pmcd pmcd pmproxy pmwebpisd bapi pmcd pmproxy pmwebpxy pmwebpisd bapi post klijent sane smtp smtps snmp snmptrap squid ssh sinergija syslog syslog-tls telnet tftp tftp-client tinc tor-socks prijenos-klijent vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-server xmpp-local

XML konfiguracijske datoteke se pohranjuju u direktorije / usr / lib / firewalld / services / i / etc / firewalld / usluge /.

Konfiguriranje zaštitnog zida sa FirewallD

Kao primjer, evo kako možete konfigurirati firewall sa FirewallD ako koristite web server, SSH na portu 7022 i server za poštu.

Prvo ćemo postaviti zadanu zonu za DMZ.

# firewall-cmd --set-default-zone = dmz # firewall-cmd --get-default-zone dmz

Da dodate trajna pravila usluge za HTTP i HTTPS u DMZ, pokrenite sljedeću naredbu:

# firewall-cmd --zone = dmz --add-service = http --permanent # firewall-cmd --zone = dmz --add-service = https --permanent

Otvorite port 25 (SMTP) i port 465 (SMTPS):

Firewall-cmd --zone = dmz --add-service = smtp --permanent firewall-cmd --zone = dmz --add-service = smtps --permanent

Otvoreni, IMAP, IMAPS, POP3 i POP3S portovi:

Firewall-cmd --zone = dmz --add-service = imap --permanent firewall-cmd --zone = dmz --add-service = imaps --permanent firewall-cmd --zone = dmz --add-service = pop3 --permanent firewall-cmd --zone = dmz --add-service = pop3s --permanent

Pošto je SSH port promijenjen u 7022, uklonit ćemo SSH uslugu (port 22) i otvoriti port 7022

Firewall-cmd --remove-service = ssh --permanent firewall-cmd --add-port = 7022 / tcp --permanent

Da bismo implementirali promjene, moramo ponovo učitati firewall:

Firewall-cmd --reload

Na kraju, možete navesti pravila.

Prva stvar koja štiti server od vanjskih prijetnji je zaštitni zid koji filtrira dolazni i odlazni promet. Želim se pozabaviti postavljanjem iptablesa - posebnog slučaja firewall-a na CentOS-u u ovom članku, a također i govoriti o njegovom instaliranju i onemogućavanju. Moj vodič neće biti iscrpan, razmatraću samo one aspekte koje smatram najvažnijim i koje sam koristim u svom radu.

Ovaj članak je dio jedne serije članaka o serveru.

Uvod

Iptables je trenutno de facto standard u modernim linux distribucijama. Ne mogu se čak ni odmah sjetiti šta se još koristi kao zaštitni zid. Dakle, svaki Linux administrator mora da se bavi konfigurisanjem ovog firewall-a u svom radu.

Za ovaj firewall postoje različita vezivanja, koja se koriste za "prikladniju" konfiguraciju. Ubuntu ima ufw, u centima - firewalld, nisam upoznat sa drugima. Lično, ne vidim nikakvu pogodnost u korištenju ovih alata. Navikao sam postavljati Linux firewall na staromodan način, kao što sam naučio na samom početku. Čini mi se da je ovo najjednostavniji i najpovoljniji način koji ću podijeliti s vama. Njegova suština se svodi na kreiranje skripte sa pravilima zaštitnog zida. Ova skripta se može lako urediti kako bi odgovarala vašim potrebama i prenijeti sa servera na server.

Onemogućavanje firewalld-a

Već sam se dotakao pitanja onemogućavanja firewalld-a u temi o. Prije svega, onemogućite firewalld, koji je po defaultu prisutan u centosu 7 odmah nakon instalacije:

# systemctl stop firewalld

Sada ga uklonimo iz pokretanja kako se ne bi ponovo uključio nakon ponovnog pokretanja:

# systemctl onemogućava firewalld

Nakon toga, postavke zaštitnog zida na serveru postaju potpuno otvorene. Možete pogledati iptables pravila pomoću naredbe:

Instaliranje iptablesa

Zapravo, firewall na našem serveru je već pokrenut, jednostavno nema pravila, sve je otvoreno. Morat ćemo instalirati dodatne uslužne programe za upravljanje, bez kojih je nemoguće konfigurirati iptables. Na primjer, firewall se ne može ponovo pokrenuti:

# systemctl restart iptables.service Nije uspio izdati poziv metode: Jedinica iptables.service nije uspjela učitati: Nema takve datoteke ili direktorija.

Ili dodavanje u autorun neće raditi:

# systemctl omogući iptables.service Neuspješno izdavanje poziva metode: nema takve datoteke ili direktorija

Da biste izbjegli takve greške, instalirajte potreban paket s uslužnim programima:

# yum -y instalirati iptables-services

Sada možete dodati iptables za pokretanje i pokretanje:

# systemctl omogući iptables.service # systemctl start iptables.service

Konfiguracija zaštitnog zida

Koristim skriptu za upravljanje pravilima zaštitnog zida. Kreirajmo ga:

# mcedit /etc/iptables.sh

Zatim ćemo ga ispuniti potrebnim pravilima. Analizirat ću sve bitne dijelove scenarija, i Navest ću ga u cijelosti u obliku tekstualnog fajla na kraju članka... Pravila su napravljena u obliku slika kako bi se zabranilo kopiranje i lijepljenje. To može dovesti do grešaka u radu pravila, na koje sam i sam naišao tokom pripreme članka.

Razmotrit ćemo situaciju kada je server ulaz za internet za lokalnu mrežu.

Prije svega, postavit ćemo sve varijable koje ćemo koristiti u skripti. Ovo nije neophodno raditi, ali je preporučljivo jer je zgodno prenijeti postavke sa servera na server. Biće dovoljno samo da preraspodelite varijable.

Prije primjene novih pravila, čistimo sve lance:

Blokiramo sav promet koji ne odgovara nijednom od pravila:

Dozvoljavamo sav promet localhost i localhost:

Dozvoli ping:

Ako vam ovo nije potrebno, nemojte dodavati pravila dozvole za icmp.

Otvaramo pristup internetu za sam server:

Ako želite da otvorite sve dolazne serverske veze, onda dodajte pravilo:

Sada dodajmo zaštitu od najčešćih mrežnih napada. Prvo, ispustimo sve pakete koji nemaju status:

Blokiranje nul paketa:

Zatvaramo se od syn-flood napada:

Ako ne postavite ograničenja na pristup sa lokalne mreže, tada svima dopuštamo pristup internetu:

Zatim odbijamo pristup s Interneta lokalnoj mreži:

Da naša lokalna mreža koristi internet, uključite nat:

Kako ne bismo izgubili pristup serveru, nakon primjene pravila dozvoljavamo ssh konekcije:

I na kraju zapisujemo pravila tako da se primjenjuju nakon ponovnog pokretanja:

Sastavili smo jednostavnu konfiguraciju koja blokira sve dolazne veze osim ssh-a i omogućava pristup sa lokalne mreže na Internet. Usput smo se branili od nekih mrežnih napada.

Spremamo skriptu, činimo je izvršnom i pokrećemo:

# chmod 0740 /etc/iptables.sh # /etc/iptables.sh

Pogledajmo pravila i provjerimo da li su sva pravila na snazi:

# iptables -L -v -n

Imajte na umu da pravila trebate primijeniti samo ako imate pristup konzoli servera. Ako pogriješite u postavkama, možete izgubiti pristup. Uvjerite se da u hitnim slučajevima možete onemogućiti zaštitni zid i prilagoditi postavke.

Otvaranje luke

Hajde da sada malo proširimo našu konfiguraciju i otvorimo portove za neke usluge u iptables. Recimo da imamo web server i moramo mu otvoriti pristup sa Interneta. Dodajte pravila za web promet:

Dodata je dozvola za dolazne veze na portovima 80 i 443 koje web server koristi u svom radu.

Ako imate instaliran mail server, tada morate dozvoliti dolazne veze s njim na svim korištenim portovima:

Da bi DNS server ispravno radio, potrebno je da otvorite UDP port 53

Port forwarding

Razmotrimo situaciju kada je potrebno proslediti portove sa eksternog interfejsa na neki računar na lokalnoj mreži. Recimo da treba da dobijete rdp pristup računaru 10.1.3.50 sa interneta. Prosljeđujemo TCP port 3389:

Ako ne želite da blistate sa poznatim portom vani, onda možete preusmjeriti sa nestandardnog porta na rdp port ciljnog računara:

Ako port prosljeđujete izvana prema unutrašnjoj lokalnoj mreži, onda svakako komentirajte pravilo koje blokira pristup s vanjske mreže na internu. U mom primjeru, ovo pravilo glasi: $ IPT -A NASLJEDI -i $ WAN -o $ LAN1 -j ODBACI

Ili, prije ovog pravila, kreirajte pravilo koje dozvoljava vanjski pristup internoj usluzi, na primjer, ovako:

$ IPT -A NAPRIJED -i $ WAN -d 10.1.3.50 -p tcp -m tcp --dport 3389 -j PRIHVATI

Omogućavanje dnevnika

Prilikom konfiguracije, korisno je omogućiti zapisnike kako bismo pratili blokirane pakete i otkrili zašto nema pristupa potrebnim servisima za koje se čini da smo već otvorili. Šaljem sve blokirane pakete u zasebne lance (block_in, block_out, block_fw) koji odgovaraju smjeru prometa i označavam svaki smjer u logovima. Pogodnije je obaviti debrifing na ovaj način. Dodajte sljedeća pravila na sam kraj skripte, prije spremanja postavki:

Možete pratiti sve blokirane pakete u datoteci / var / log / messages.

Nakon što završite s konfiguracijom, zakomentirajte ove redove tako što ćete onemogućiti evidentiranje. To svakako trebate učiniti, jer trupci rastu vrlo brzo. Lično, ne vidim nikakav praktičan smisao u čuvanju takvih informacija.

Kako onemogućiti iptables

Ako iznenada odlučite da vam više ne treba zaštitni zid, možete ga onemogućiti na sljedeći način:

# systemctl stop iptables.service

Ova komanda zaustavlja zaštitni zid. I sljedeći uklanja iz pokretanja:

# systemctl onemogućava iptables.service

Onemogućavanjem zaštitnog zida dozvolili smo sve veze.

Zaključak

Kao što sam obećao, postavljam gotovu skriptu sa glavnim skupom pravila koja smo razmotrili.

Još jednom želim da vam skrenem pažnju na činjenicu da prilikom postavljanja iptablesa morate biti izuzetno oprezni. Nemojte započinjati ovaj posao ako nemate pristup serverskoj konzoli. Čak i dok sam pisao ovaj članak, izgubio sam pristup serveru zbog smiješne greške u pravilima. Ova greška je nastala zbog kopiranja i gubitka dvostruke crtice - zamijenjena je jednom crticom.

online kurs "Linux Administrator" u OTUS-u. Kurs nije za početnike, za upis je potrebno osnovno znanje o umrežavanju i instaliranju Linuxa na virtuelnu mašinu. Obuka traje 5 mjeseci, nakon čega će uspješni polaznici kursa moći proći intervjue sa partnerima. Šta će vam ovaj kurs dati:

  • Poznavanje Linux arhitekture.
  • Ovladavanje savremenim metodama i alatima za analizu i obradu podataka.
  • Mogućnost odabira konfiguracije za potrebne zadatke, upravljanje procesima i osiguranje sigurnosti sistema.
  • Posjedovanje osnovnih alata za rad sistem administratora.
  • Razumijevanje specifičnosti postavljanja, konfiguriranja i održavanja mreža zasnovanih na Linuxu.
  • Sposobnost brzog rješavanja nastalih problema i osiguravanja stabilnog i neprekidnog rada sistema.
Testirajte se na prijemnom ispitu i pogledajte detalje programa na.

Zone

Firewalld daemon upravlja grupama pravila koristeći takozvane zone.

Zone su u suštini skupovi pravila koja upravljaju saobraćajem na osnovu nivoa poverenja u određenu mrežu. Zone se dodeljuju mrežnim interfejsima i kontrolišu ponašanje zaštitnog zida.

Računari koji se često povezuju na različite mreže (na primjer, prijenosna računala) mogu koristiti zone za promjenu svojih skupova pravila na osnovu svog okruženja. Na primjer, kada je povezan na javnu WiFi mrežu, firewall može primijeniti stroža pravila i ublažiti ograničenja na kućnoj mreži.

Sljedeće zone postoje u firewalld-u:

  • pad: Najniži nivo poverenja u mrežu. Sav dolazni promet se prekida bez odgovora, podržane su samo izlazne veze.
  • blok: Ova zona je slična prethodnoj, ali se ulazni zahtjevi odbacuju porukom icmp-host-prohibited ili icmp6-adm-prohibited.
  • javna: Ova zona predstavlja javnu mrežu kojoj se ne može vjerovati, ali upravlja dolaznim vezama na individualnoj osnovi.
  • eksterno: područje eksternih mreža. Podržava NAT maskiranje tako da interna mreža ostaje zatvorena, ali i dalje dostupna.
  • unutrašnja: poleđina vanjske zone, interne mreže. Računari u ovoj zoni mogu se vjerovati. Dodatne usluge dostupne.
  • dmz: Koristi se za računare koji se nalaze u DMZ-u (izolovani računari koji neće imati pristup ostatku mreže); podržava samo neke dolazne veze.
  • rad: zona radne mreže. Većini mašina na mreži može se vjerovati. Dodatne usluge dostupne.
  • dom: zona kućne mreže. Okruženje se može vjerovati, ali su podržane samo korisnički definirane ulazne veze.
  • pouzdano: svim mašinama na mreži može se vjerovati.

Pravila čuvanja

Pravila zaštitnog zida su trajna i privremena. Ako se pojavi bilo koje pravilo ili se promijeni u skupu, trenutno se ponašanje zaštitnog zida odmah mijenja. Međutim, nakon ponovnog pokretanja, sve promjene će biti izgubljene ako se ne sačuvaju.

Većina komandi firewall-cmd može koristiti --permanent zastavicu, koja će sačuvati pravilo i zatim ga trajno koristiti.

Omogućavanje firewall firewall

Prvo morate omogućiti demona. Datoteka systemd jedinice naziva se firewalld.service. Da pokrenete demona, unesite.

sudo systemctl start firewalld.service

Provjerite je li servis pokrenut:

firewall-cmd --state
trčanje

Firewall je sada pokrenut i radi prema zadanoj konfiguraciji.

Trenutno je usluga omogućena, ali se neće automatski pokrenuti sa serverom. Da biste izbjegli slučajno blokiranje na vlastitom serveru, prvo kreirajte skup pravila, a zatim konfigurirajte automatsko pokretanje.

Podrazumevana pravila zaštitnog zida

Pregled zadanih pravila

Da biste saznali koja se zona koristi po defaultu, unesite:

firewall-cmd --get-default-zone
javnosti

U ovom trenutku, firewalld nije dobio nikakva uputstva u vezi sa drugim zonama, osim toga, nijedan interfejs nije povezan sa drugim zonama, tako da je sada javna zona podrazumevana zona i ujedno jedina aktivna zona.

Da dobijete listu hot spotova, unesite:


javnosti
interfejsi: eth0 eth1

Postoje dva mrežna sučelja vezana za javnu zonu: eth0 i eth1. Interfejsi povezani sa zonom rade prema pravilima za tu zonu.

Da saznate koja pravila zona koristi prema zadanim postavkama, unesite:

firewall-cmd --list-all
javno (zadano, aktivno)
interfejsi: eth0 eth1
izvori:
usluge: dhcpv6-client ssh
luke:
maskenbal: ne
naprijed-priključci:
icmp-blokovi:
bogata pravila:

Dakle, sada znate da:

  • public je zadana zona i jedina aktivna zona.
  • Interfejsi eth0 i eth1 su vezani za njega.
  • Podržava DHCP (dodjela IP adrese) i SSH (daljinska administracija) promet.

Druge zone zaštitnog zida

Sada biste se trebali upoznati sa ostalim zonama.

Da biste dobili listu svih dostupnih zona, unesite:

firewall-cmd --get-zones

Da biste dobili postavke za određenu zonu, dodajte oznaku -zone = naredbi.

firewall-cmd --zone = home --list-all
Dom
interfejsi:
izvori:
usluge: dhcpv6-client ipp-client mdns samba-client ssh
luke:
maskenbal: ne
naprijed-priključci:
icmp-blokovi:
bogata pravila:

Da biste naveli definicije svih dostupnih zona, dodajte opciju --list-all-zones. Za jednostavnije gledanje, izlaz se može poslati na pejdžer:

firewall-cmd --list-all-zones | manje

Konfiguriranje zona sučelja

U početku su svi mrežni interfejsi vezani za podrazumevanu zonu.

Promjena zone interfejsa za jednu sesiju

Da biste prenijeli sučelje u drugu zonu za jednu sesiju, koristite opcije —zone = i —change-interface =.

Na primjer, da dovedete eth0 u kućnu zonu, ukucali biste:

sudo firewall-cmd --zone = home --change-interface = eth0
uspjeh

Bilješka: Prilikom premeštanja interfejsa u drugu zonu, morate uzeti u obzir da to može uticati na rad nekih servisa. Na primjer, kućna zona podržava SSH, tako da veze s ove usluge neće biti prekinute. Ali neke zone prekidaju sve veze, uključujući SSH, i tada možete slučajno sebi blokirati pristup vlastitom serveru.

Da biste bili sigurni da je interfejs vezan za novu zonu, unesite:

firewall-cmd --get-active-zones
Dom
interfejsi: eth0
javnosti
interfejsi: eth1

Nakon ponovnog pokretanja zaštitnog zida, interfejs će se ponovo povezati sa podrazumevanom zonom.

sudo systemctl ponovo pokrenite firewalld.service
firewall-cmd --get-active-zones
javnosti
interfejsi: eth0 eth1

Trajna promjena područja interfejsa

Ako nijedna druga zona nije navedena u postavkama interfejsa, nakon ponovnog pokretanja zaštitnog zida, interfejs će biti ponovo vezan za podrazumevanu zonu. Na CentOS-u se takve konfiguracije pohranjuju u direktoriju / etc / sysconfig / network-scripts, u datotekama formata ifcfg-interface.

Da biste definirali zonu za sučelje, otvorite konfiguracijsku datoteku za to sučelje, na primjer:

Dodajte varijablu ZONE = na kraj datoteke i navedite drugu zonu kao vrijednost, na primjer, home:

. . .
DNS1 = 2001: 4860: 4860 :: 8844
DNS2 = 2001: 4860: 4860 :: 8888
DNS3 = 8.8.8.8
ZONA = dom

Sačuvajte i zatvorite datoteku.

Da ažurirate postavke, ponovo pokrenite mrežnu uslugu i zaštitni zid:

sudo systemctl restart network.service
sudo systemctl ponovo pokrenite firewalld.service

Nakon ponovnog pokretanja, eth0 će se vezati za kućnu zonu.

firewall-cmd --get-active-zones
Dom
interfejsi: eth0
javnosti
interfejsi: eth1

Postavljanje zadane zone

Također možete odabrati drugu zadanu zonu.

Za ovo se koristi parametar –set-default-zone =. Nakon toga, svi interfejsi će biti vezani za drugu zonu:

sudo firewall-cmd --set-default-zone = home
Dom
interfejsi: eth0 eth1

Kreiranje pravila za aplikacije

Dodavanje usluge u zonu

Najlakši način je da dodate uslugu ili port u zonu koju koristi zaštitni zid. Pregledajte dostupne usluge:

firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client pmmp dns ftp visoka dostupnost http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libsfd-wd pmp pop3s postgresql proxy-dhcp radijus rpc-bind samba samba-client smtp ssh telnet tftp tftp-client prijenos-klijent vnc-server wbem-https

Bilješka: Više informacija o svakoj specifičnoj usluzi možete pronaći u .xml datotekama u direktoriju /usr/lib/firewalld/services. Na primjer, informacije o SSH servisu su pohranjene u /usr/lib/firewalld/services/ssh.xml i izgledaju ovako:



SSH

Da biste omogućili servisnu podršku u određenoj zoni, koristite opciju –add-service =. Možete odrediti ciljnu zonu koristeći opciju -zone =. Podrazumevano, ove promjene će raditi za jednu sesiju. Da biste sačuvali svoje promjene i trajno ih koristili, dodajte —permanent flag.

Na primjer, da pokrenete web server da opslužuje HTTP promet, prvo morate omogućiti podršku za ovaj promet u javnoj zoni za jednu sesiju:

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

Ako uslugu treba dodati u zadanu zonu, oznaka –zone = može se izostaviti.

Provjerite je li operacija uspješna:

firewall-cmd --zone = public --list-services
dhcpv6-client http ssh

Testirajte uslugu i zaštitni zid. Ako sve radi kako treba, možete promijeniti stalni skup pravila i dodati mu pravilo koje će podržati ovu uslugu.

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

Da vidite listu trajnih pravila, unesite:

sudo firewall-cmd --zone = public --permanent --list-services
dhcpv6-client http ssh

Javna zona sada trajno podržava HTTP i port 80. Ako web server može opsluživati ​​SSL/TLS promet, možete dodati i https uslugu (za jednu sesiju ili u skupu trajnih pravila):

sudo firewall-cmd --zone = public --add-service = https
sudo firewall-cmd --zone = public --permanent --add-service = https

Šta ako usluga koju želite nije dostupna?

Firewall firewall podrazumevano uključuje mnoge od najčešćih usluga. Međutim, neke aplikacije zahtijevaju usluge koje firewalld ne podržava. U ovom slučaju možete učiniti dvije stvari.

Metoda 1: podešavanje porta

Najlakši način da to učinite je da otvorite port aplikacije u potrebnoj zoni zaštitnog zida. Vi samo trebate navesti port ili opseg portova i protokol.

Na primjer, aplikaciju koja koristi port 5000 i TCP treba dodati u javnu zonu. Da biste omogućili podršku za aplikaciju po sesiji, koristite parametar –add-port = i navedite tcp ili udp protokol.

sudo firewall-cmd --zone = public --add-port = 5000 / tcp

Provjerite je li operacija uspješna:

firewall-cmd --list-ports
5000 / tcp

Također možete odrediti raspon serijskih portova tako što ćete prvi i posljednji port raspona odvojiti crticom. Na primjer, ako vaša aplikacija koristi UDP portove 4990-4999, da biste ih dodali u javnu zonu, unijeli biste:

sudo firewall-cmd --zone = public --add-port = 4990-4999 / udp

Nakon testiranja, ova pravila možete dodati stalnim postavkama zaštitnog zida.

sudo firewall-cmd --zone = public --permanent --add-port = 5000 / tcp
sudo firewall-cmd --zone = public --permanent --add-port = 4990-4999 / udp
sudo firewall-cmd --zone = public --permanent --list-ports
uspjeh
uspjeh
4990-4999 / udp 5000 / tcp

Metoda 2: definiranje usluge

Dodavanje portova zonama je jednostavno, ali ako imate puno ovih aplikacija, može biti teško pronaći čemu služi određeni port. Da biste izbjegli ovu situaciju, možete definirati usluge umjesto portova.

Usluge su jednostavno kolekcije portova sa određenim imenom i opisom. Usluge olakšavaju upravljanje postavkama, ali su same po sebi složenije od portova.

Prvo morate kopirati postojeću skriptu iz direktorija /usr / lib / firewalld / services u direktorij / etc / firewalld / services (gdje firewall traži nestandardne postavke).

Na primjer, možete kopirati definiciju SSH usluge i koristiti je za definiranje primjera uvjetne usluge. Ime skripte mora odgovarati imenu usluge i imati ekstenziju .xml.

sudo cp /usr/lib/firewalld/services/service.xml /etc/firewalld/services/example.xml

Ispravite kopirani fajl.

sudo nano /etc/firewalld/services/example.xml

Datoteka sadrži SSH definiciju:



SSH
Secure Shell (SSH) je protokol za prijavljivanje i izvršavanje komandi na udaljenim mašinama. Pruža sigurnu šifrovanu komunikaciju. Ako planirate daljinski pristupiti svom stroju putem SSH-a preko sučelja sa zaštitnim zidom, omogućite ovu opciju. Potreban vam je instaliran openssh-server paket da bi ova opcija bila korisna.

Većina definicije usluge su metapodaci. Možete promijeniti kratki naziv usluge u oznakama ... Ovo je čovjeku čitljivo ime usluge. Također morate dodati opis usluge. Jedina promjena koja će utjecati na uslugu je promjena broja porta i protokola.

Vratimo se na primjer usluge; Recimo da traži otvaranje TCP porta 7777 i UDP porta 8888. Definicija će izgledati ovako:



Primjer usluge
Ovo je samo primjer usluge. Verovatno ne bi trebalo da se koristi na pravom sistemu.

Sačuvajte i zatvorite datoteku.

Ponovo pokrenite svoj firewall:

sudo firewall-cmd --reload

Usluga će se sada pojaviti na listi dostupnih usluga:

firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns primjer ftp visoke dostupnosti http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-nfs pm open pm pmwebapi pmwebapis pop3s postgresql proxy-dhcp radijus rpc-bind samba samba-client smtp ssh telnet tftp tftp-client prijenos-klijent vnc-server wbem-https

Kreiranje zona

Vatrozid obezbeđuje mnogo unapred definisanih zona, koje su dovoljne za veći deo posla. Međutim, u nekim situacijama postaje neophodno kreirati prilagođenu zonu.

Na primjer, možete kreirati javnu web zonu za web server i privatnu DNS zonu za DNS uslugu.

Kada kreirate zonu, potrebno je da je dodate stalnim postavkama zaštitnog zida.

Pokušajte kreirati javne web i privatneDNS zone:

sudo firewall-cmd --permanent --new-zone = publicweb
sudo firewall-cmd --permanent --new-zone = privateDNS

Provjerite postoje li zone:

sudo firewall-cmd --permanent --get-zones

U trenutnoj sesiji nove zone neće biti dostupne:

firewall-cmd --get-zones
blok dmz ispusti eksterni dom interni javni pouzdan rad

Da biste pristupili novim zonama, morate ponovo pokrenuti firewall:

sudo firewall-cmd --reload
firewall-cmd --get-zones
blokiraj dmz ispusti vanjski dom interni privatniDNS javni javni web pouzdan rad

Sada možete dodijeliti potrebne usluge i portove novim zonama. Na primjer, SSH, HTTP i HTTPS se mogu dodati javnoj web zoni.

sudo firewall-cmd --zone = publicweb --add-service = ssh
sudo firewall-cmd --zone = publicweb --add-service = http
sudo firewall-cmd --zone = publicweb --add-service = https
firewall-cmd --zone = publicweb --list-all
publicweb
interfejsi:
izvori:
usluge: http https ssh
luke:
maskenbal: ne
naprijed-priključci:
icmp-blokovi:
bogata pravila:

Možete dodati DNS u privateDNS zonu:

sudo firewall-cmd --zone = privateDNS --add-service = dns
firewall-cmd --zone = privateDNS --list-all
privateDNS
interfejsi:
izvori:
usluge: dns
luke:
maskenbal: ne
naprijed-priključci:
icmp-blokovi:
bogata pravila:

Zatim možete povezati mrežna sučelja na nove zone:

sudo firewall-cmd --zone = publicweb --change-interface = eth0
sudo firewall-cmd --zone = privateDNS --change-interface = eth1

Sada možete testirati postavku. Ako sve radi kako treba, ova pravila možete dodati u trajne postavke.

sudo firewall-cmd --zone = publicweb --permanent --add-service = ssh
sudo firewall-cmd --zone = publicweb --permanent --add-service = http
sudo firewall-cmd --zone = publicweb --permanent --add-service = https
sudo firewall-cmd --zone = privateDNS --permanent --add-service = dns

Zatim možete konfigurirati mrežna sučelja da se automatski povežu na odgovarajuću zonu.

Na primjer, eth0 će se vezati za publicweb:

sudo nano / etc / sysconfig / network-scripts / ifcfg-eth0
. . .
IPV6_AUTOCONF = br
DNS1 = 2001: 4860: 4860 :: 8844
DNS2 = 2001: 4860: 4860 :: 8888
DNS3 = 8.8.8.8
ZONA = publicweb

I eth1 interfejs će biti vezan za privatniDNS:

sudo nano / etc / sysconfig / network-scripts / ifcfg-eth1
. . .
NETMASK = 255.255.0.0
DEFROUTE = "ne"
NM_CONTROLLED = "da"
ZONA = privatniDNS

Ponovo pokrenite mrežne usluge i firewall:

sudo systemctl restart network
sudo systemctl restart firewalld

Provjerite zone:

firewall-cmd --get-active-zones
privateDNS
interfejsi: eth1
publicweb
interfejsi: eth0

Provjerite rade li potrebne usluge u zonama:

firewall-cmd --zone = publicweb --list-services
http htpps ssh
firewall-cmd --zone = privateDNS --list-services
dns

Prilagođene zone su potpuno spremne za rad. Možete postaviti bilo koju od njih kao podrazumevanu zonu. Na primjer:

sudo firewall-cmd --set-default-zone = publicweb

Automatsko pokretanje zaštitnog zida

Sada kada ste provjerili sve postavke i uvjerili se da sva pravila rade kako je očekivano, možete konfigurirati firewall za automatsku reprodukciju.

Da biste to učinili, unesite:

sudo systemctl omogući firewalld

Firewall će sada početi sa serverom.

Zaključak

Firewall firewall je vrlo fleksibilan alat. Zone vam omogućavaju da brzo promijenite politiku zaštitnog zida.

Sada znate kako funkcioniše firewalld, upoznati ste sa osnovnim konceptima firewall-a, možete kreirati prilagođene zone i dodati usluge.

Oznake:,

Top srodni članci