Vzdrževanje omrežne varnosti je ključnega pomena za skrbnike sistema, konfiguracija požarnega zidu prek ukazne vrstice pa je bistvena veščina za učenje. Članek bo poudaril, kako upravljati požarni zid s firewall-cmd v ukazni vrstici Linuxa.
Požarni zid je v bistvu programska oprema, ki jo lahko konfigurirate za nadzor dohodnega in odhodnega omrežnega prometa. Požarni zidovi drugim uporabnikom preprečujejo uporabo omrežnih storitev v sistemu, ki ga uporabljate. Večina sistemov Linux ima privzeti požarni zid. Prejšnje različice sistemov Linux uporabljajo iptables kot demon za filtriranje paketov. Novejše različice Fedore, RHEL / CentOS, openSUSE prihajajo z Firewallom kot privzetim demonom požarnega zidu. Firewalld lahko namestite tudi v distribucijah Debian in Ubuntu.
Priporočam, da namesto iptables uporabite Firewalld. Ne verjemite mi samo na besedo. Preberite več iz našega obsežnega vodnika o razpoložljivih odprtokodnih požarnih zidovih za vaš sistem Linux.
Požarni zid je dinamični demon za upravljanje požarnih zidov s podporo za omrežja ali območja požarnega zidu. Območja požarnega zidu določajo stopnje zaupanja omrežne varnosti omrežnih vmesnikov, storitev ali povezav. Skrbniki omrežnega varnostnega sistema so ugotovili, da Firewalld odlično deluje z IPv4, IPv6, nabori IP in Ethernet mostovi. Za upravljanje požarnega zidu lahko uporabite ukaz terminala firewall-cmd ali konfiguracijsko orodje GUI za konfiguriranje požarnega zidu.
Ta priročnik bo uporabil požarni zid-cmd ukaz za upravljanje omrežne varnosti, naše testno okolje pa bo Fedora Workstation 33.
Preden dobimo vsa tehnična znanja, se naučimo nekaj osnov omrežja.
Osnove omrežja
Računalnik, povezan v omrežje, dobi IP naslov, ki se uporablja za usmerjanje podatkov. Računalniki imajo tudi vrata v območju od 0-65535, ki delujejo kot priključne točke na naslovu IP. Aplikacije lahko rezervirajo določena vrata. Spletni strežniki običajno rezervirajo vrata 80 za varno komunikacijo HTTP. V bistvu so območja vrat 0 - 1024 rezervirana za dobro znane namene in sistem.
Glavna internetna protokola za prenos podatkov (TCP in UDP) uporabljata ta vrata med omrežno komunikacijo. Gostiteljski računalnik vzpostavi povezavo med izvornim naslovom IP in vrati (vrata 80 za nezaščiten HTTP) ter ciljnim naslovom in vrati.
Za upravljanje omrežne varnosti lahko programska oprema požarnega zidu dovoli ali blokira prenos podatkov ali komunikacijo na podlagi pravil, kot so vrata ali naslovi IP.
Namestitev požarnega zidu
Fedora, RHEL / CentOS 7/8, openSUSE
Firewalld je privzeto nameščen v Fedori, RHEL / CentOS 7/8 in openSUSE. V nasprotnem primeru ga lahko namestite z naslednjim ukazom:
# yum namestite požarni zid -y
ALI
#dnf namestite požarni zid -y
Debian / Ubuntu
Sistemi Ubuntu se privzeto priložijo nezapletenemu požarnemu zidu. Če želite uporabljati požarni zid, morate omogočiti repozitorij vesolja in deaktivirati nezapleteni požarni zid.
sudo add-apt-repository vesolje
sudo apt namestite požarni zid
Izključi nezapleteni požarni zid:
sudo systemctl onemogoči ufw -
Omogoči požarni zid med zagonom:
sudo systemctl enable -now firewalld
Preverite, ali Firewalld deluje:
sudo firewall-cmd -state
teče
Območja požarnega zidu
Požarni zid olajša konfiguracijo požarnega zidu z določitvijo privzetih con. Območja so nabor pravil, ki ustrezajo vsakodnevnim potrebam večine skrbnikov Linuxa. Območje požarnega zidu lahko določi ravni zaupanja vrednih ali zavrnjenih za storitve in vrata.
- Zaupanja vredno območje: Vse omrežne povezave sprejemajo in uporabljajo samo v zaupanja vrednih okoljih, kot je družinski dom ali testni laboratorij.
- Javna cona: Pravila lahko določite samo tako, da določenim vratom omogočite odpiranje povezav, medtem ko bodo druge povezave prekinjene. Uporablja se lahko na javnih površinah, ko drugim omrežjem ne zaupate.
- Domače, notranje, delovne cone: V teh treh conah je sprejetih večina dohodnih povezav. Dohodne povezave izključujejo promet na vratih, ki ne pričakujejo nobenih povezav ali dejavnosti. Uporabite ga lahko pri domačih povezavah, kjer splošno zaupajo drugi uporabniki v omrežju. Omogoča le izbrane dohodne povezave.
- Območje bloka: To je izredno paranoična nastavitev požarnega zidu, kjer so možne samo povezave, ki se začnejo znotraj omrežja ali strežnika. Vse dohodne povezave z omrežjem so zavrnjene in izda se sporočilo, prepovedano gostitelju ICMP.
- Območje DMZ: Demilitarizirano območje se lahko uporablja za dostop javnosti do nekaterih storitev. Sprejete so samo izbrane povezave. To je bistvena možnost za nekatere vrste strežnikov v omrežju organizacije.
- Zunanje območje: Ko je to območje omogočeno, bo delovalo kot usmerjevalnik in ga bo mogoče uporabljati v zunanjih omrežjih z omogočenim maskiranjem. Naslov IP vašega zasebnega omrežja je preslikan in skrit za javnim naslovom IP. Sprejete so samo izbrane dohodne povezave, vključno s SSH.
- Območje padca: Vsi dohodni paketi se izpustijo brez odgovora. To območje omogoča samo odhodne omrežne povezave.
Primer privzetih con, ki jih definira Fedora delovna postaja 33
cat / usr / lib / firewalld / zone / FedoraWorkstation.xmlFedora delovna postaja Nezaželeni dohodni omrežni paketi so zavrnjeni od vrat 1 do 1024, razen pri izbranih omrežnih storitvah. [požarni zid] Sprejemajo se dohodni paketi, povezani z odhodnimi omrežnimi povezavami. Dovoljene so odhodne omrežne povezave.
Pridobite svoje trenutno območje:
Lahko uporabite - - get-active-zone zastavico za preverjanje trenutno aktivnih con v vašem sistemu.
sudo firewall-cmd --get-active-zone
[sudo] geslo za tuts:
FedoraWorkstation
vmesniki: wlp3s0
libvirt
vmesniki: virbr0
Privzeto območje na Fedora Workstation 33 v območju FedoraWorkstation
Pridobite privzeto območje in vsa določena območja:
sudo firewall-cmd --get-default-zone
[sudo] geslo za tuts:
FedoraWorkstation
[tuts @ fosslinux ~] $ sudo firewall-cmd --get-zone
FedoraServer Fedora Workstation block dmz drop external home internal libvirt nm-shared public trusted work
Seznam storitev:
Storitve, ki jih požarni zid omogoča drugim sistemom, lahko dobite s pomočjo - -seznam storitev zastavo.
[tuts @ fosslinux ~] $ sudo firewall-cmd --list-services
dhcpv6-client mdns samba-client ssh
V Fedori Linux 33 požarni zid omogoča dostop do štirih storitev (dhcpv6-client mdns samba-client ssh) z dobro znanimi številkami vrat.
Seznam nastavitev vrat požarnega zidu:
Lahko uporabite - -seznam-pristanišča zastavico, če si želite ogledati druge nastavitve vrat na katerem koli območju.
tuts @ fosslinux ~] $ sudo firewall-cmd --list-ports --zone = FedoraWorkstation
[sudo] geslo za tuts:
1025-65535 / udp 1025-65535 / tcp
Določili smo območje za preverjanje z možnostjo - -zone = FedoraWorkstaion.
Upravljanje con, pristanišč in storitev
Konfiguracije požarnega zidu lahko nastavite kot izvajalno ali trajno. Vsa dejanja cmd požarnega zidu trajajo le, dokler se računalnik ali požarni zid znova ne zažene. Stalne nastavitve morate ustvariti z zastavico -permanent.
Ustvari cono
Če želite ustvariti območje, morate uporabiti - -novo cono zastavo.
Primer:
Ustvarite novo stalno območje, imenovano fosscorp:
[tuts @ fosslinux ~] $ sudo firewall-cmd --new-zone fosscorp --permanent
[sudo] geslo za tuts:
uspeh
Znova naložite pravila požarnega zidu, da aktivirate novo cono:
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload
Dodajte ssh storitev v cono fosscorp, da boste lahko dostopali do nje na daljavo:
[tuts @ fosslinux ~] $ sudo firewall-cmd --zone fosscorp --add-service ssh --permanent
[sudo] geslo za tuts:
uspeh
Potrdite, da je novo območje 'fosscorp' aktivno:
[tuts @ fosslinux ~] $ sudo firewall-cmd --get-zone
FedoraServer FedoraWorkstation block dmz drop external fosscorp home interni libvirt nm-javno javno zaupanja vredno delo
Vaša nova cona fosscorp je zdaj aktivna in zavrača vse dohodne povezave, razen prometa SSH.
Uporabi - -Spremeni vmesnik zastavico, da bo območje fosscorp aktivno in privzeto območje za omrežni vmesnik (wlp3s0), ki ga želite zaščititi:
[tuts @ fosslinux ~] $ sudo firewall-cmd --change-interface wlp3s0 \
> --zone fosscorp --trajno
Vmesnik je pod nadzorom [požarnega zidu] NetworkManagerja, pri čemer je območje nastavljeno na 'fosscorp'.
uspeh
Če želite nastaviti fosscorp kot privzeto in primarno območje, zaženite naslednji ukaz:
[tuts @ fosslinux ~] $ sudo firewall-cmd --set-default fosscorp
uspeh
Oglejte si območja, ki so trenutno dodeljena vsakemu vmesniku s pomočjo - -get-active-zone zastava:
[tuts @ fosslinux ~] $ sudo firewall-cmd --get-active-zone
fosscorp
vmesniki: wlp3s0
Dodajanje in odstranjevanje storitev:
Hiter način za omogočanje prometa skozi požarni zid je dodati vnaprej določeno storitev.
Seznam vnaprej določenih storitev:
tuts @ fosslinux ~] $ sudo firewall-cmd --get-services
[sudo] geslo za tuts:
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc
bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client
[…]
Odblokirajte vnaprej določeno storitev
Promet HTTPS (ali katero koli drugo vnaprej določeno storitev) lahko prek požarnega zidu omogočite z uporabo - -dodatna storitev zastavo.
[tuts @ fosslinux ~] $ sudo firewall-cmd --add-service https --permanent
uspeh
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload
Storitev lahko odstranite tudi z - -storitev odstranjevanja zastava:
[tuts @ fosslinux ~] $ sudo firewall-cmd --remove-service https --permanent
uspeh
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload
Dodajte in odstranite vrata
Številko vrat in prototip lahko dodate tudi neposredno z zastavico -add-port. Neposredno dodajanje številke vrat je lahko priročno, če vnaprej določena storitev ne obstaja.
Primer:
Lahko dodate nestandardne pristanišče 1717 za SSH na vaše območje po meri z naslednjim ukazom:
[tuts @ fosslinux ~] $ sudo firewall-cmd --add-port 1717 / tcp --permanent
[sudo] geslo za tuts:
uspeh
[tuts @ fosslinux ~] $ sudo firewall-cmd -reload
Odstranite vrata z možnostjo zastavice -remove-port:
[tuts @ fosslinux ~] $ sudo firewall-cmd --remove-port 1717 / tcp --permanent
uspeh
[tuts @ fosslinux ~] $ sudo firewall-cmd -reload
Določite lahko tudi območje za dodajanje ali odstranjevanje vrat, tako da v ukaz dodate zastavico -zone:
V območje FedoraWorstation dodajte vrata 1718 za povezavo TCP:
[tuts @ fosslinux ~] $ sudo firewall-cmd --zone = FedoraWorkstation --permanent --add-port = 1718 / tcp
uspeh
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload
uspeh
Potrdite, ali so spremembe začele veljati:
[tuts @ fosslinux ~] $ sudo firewall-cmd --list-all
FedoraWorkstation (aktivno)
cilj: privzeto
inverzija icmp-blok: št
vmesniki: wlp3s0
viri:
storitve: dhcpv6-client mdns samba-client ssh
vrata: 1025-65535 / udp 1025-65535 / tcp 1718 / tcp
protokoli:
maškarada: ne
naprej-pristanišča:
izvorna vrata:
icmp-bloki:
bogata pravila:
Opomba: Pod pristanišči smo dodali številka pristanišča 1718 da omogočite TCP promet.
Lahko odstranite vrata 1718 / tcp z zagonom naslednjega ukaza:
[tuts @ fosslinux ~] $ sudo firewall-cmd --zone = FedoraWorkstation --permanent --remove-port = 1718 / tcp
uspeh
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload
uspeh
Opomba: Če želite, da so vaše spremembe trajne, morate dodati - -trajno zastavico za vaše ukaze.
Povzetek
Firewalld je odličen pripomoček za upravljanje vaše omrežne varnosti. Najboljši način za povečanje znanja skrbnika sistema je pridobiti praktične izkušnje. Toplo priporočam namestitev Fedore v vaš najljubši navidezni stroj (VM) ali v Boxes, da preizkusite vse razpoložljive funkcije požarnega zidu-cmd. Več funkcij cmd požarnega zidu lahko izveste na uradni domači strani Firewalld.