Menaxhimi i shërbimeve
Menaxhimi i portit
Aktivizimi i FirewallD
konkluzioni
FirewallD është një mur zjarri i menaxhuar në mënyrë dinamike që ofron mbështetje për rregullat e murit të zjarrit IPv4 dhe IPv6 dhe zonat e mureve të zjarrit që disponohen në serverët e bazuar në RHEL 7. Është një zëvendësim i drejtpërdrejtë iptablesi netfilterkodit të kernelit dhe funksionon me të .
Në këtë artikull do të hedhim një vështrim të shkurtër në menaxhimin e murit të zjarrit në CentOS 7 duke përdorur firewall-cmdkomandën.
Kontrollimi nëse FirewallD po funksionon
Hapi i parë është të kontrolloni nëse FirewallD është i instaluar dhe po funksionon. Kjo mund të bëhet systemdduke ekzekutuar sa vijon:
$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2016-03-10 15:07:00 UTC; 1min 30s ago
...
Përndryshe, mund të kontrolloni duke përdorur firewall-cmdmjetin:
$ firewall-cmd --state
running
Zonat e menaxhimit
FirewallD funksionon duke përdorur konceptin se zonesku një zonë përcakton nivelin e besimit të përdorur për një lidhje. Ju mund të ndani ndërfaqe të ndryshme rrjeti në zona të ndryshme në mënyrë që të aplikoni rregulla specifike të murit të zjarrit për ndërfaqe ose mund të përdorni një zonë për të gjitha ndërfaqet.
Nga kutia, gjithçka është bërë në publiczonën e paracaktuar , por ka disa zona të tjera të parakonfiguruara që mund të aplikohen gjithashtu.
Renditja e të gjitha zonave të disponueshme
Mund t'ju duhet të merrni një listë të të gjitha zonave të disponueshme, nga të cilat ka disa jashtë kutisë. Përsëri, kjo mund të bëhet duke përdorur firewall-cmd:
$ firewall-cmd --get-zones
block dmz drop external home internal public trusted work
Kontrollimi i zonës së paracaktuar
Mund të zbuloni zonën e paracaktuar që është konfiguruar aktualisht duke përdorur firewall-cmd:
$ firewall-cmd --get-default-zone
public
Nëse dëshironi të ndryshoni zonën e paracaktuar (për shembull, në home), kjo mund të bëhet duke ekzekutuar:
$ firewall-cmd --set-default-zone=home
success
Ky informacion do të pasqyrohet në skedarin kryesor të konfigurimit, /etc/firewalld/firewalld.conf. Megjithatë, rekomandohet që të mos e modifikoni manualisht këtë skedar dhe në vend të kësaj të përdorni firewall-cmd.
Kontrollimi i zonave të caktuara aktualisht
Ju mund të merrni një listë të zonave në të cilat ju janë caktuar ndërfaqet duke ekzekutuar:
$ firewall-cmd --get-active-zones
public
interfaces: eth0
Ju gjithashtu mund të kontrolloni zonën e një ndërfaqe të vetme ( eth0në këtë rast) duke ekzekutuar:
$ firewall-cmd --get-zone-of-interface=eth0
public
Krijimi i zonave
Nëse zonat e para-konfiguruara të paracaktuara nuk u përshtaten plotësisht nevojave tuaja, mënyra më e lehtë për të krijuar një zonë të re ( zone1) është përsëri nëpërmjet firewall-cmd:
$ firewall-cmd --permanent --new-zone=zone1
success
Pas krijimit, duhet të ringarkoni:
$ firewall-cmd --reload
success
Aplikimi i një zone në një ndërfaqe
Për të caktuar përgjithmonë një ndërfaqe rrjeti në një zonë, mund të përdorni firewall-cmdedhe pse mbani mend të përfshini --permanentflamurin për të vazhduar ndryshimin. Nëse përdorni NetworkManager, duhet të sigurohuni gjithashtu që ta përdorni nmclipër të vendosur zonën e lidhjes.
$ firewall-cmd --permanent --zone=internal --change-interface=eth1`
success
Marrja e konfigurimit të përhershëm të një zone
Për të kontrolluar konfigurimin e përhershëm të një zone ( publicnë këtë rast) duke përfshirë ndërfaqet e caktuara, shërbimet e lejuara, cilësimet e portit dhe më shumë, ekzekutoni:
$ firewall-cmd --permanent --zone=public --list-all
public (default)
interfaces:
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
Menaxhimi i shërbimeve
Pasi të keni caktuar dhe konfiguruar zonat tuaja të kërkuara, mund të filloni të shtoni shërbime në zona. Shërbimet përshkruajnë protokollet dhe portat që mund të aksesohen për një zonë.
Listimi i shërbimeve ekzistuese
Një numër shërbimesh të zakonshme janë të para-konfiguruara brenda murit të zjarrit. Këto mund të renditen:
$ firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp ssh telnet tftp tftp-client transmission-client vdsm vnc-server wbem-https
Ju gjithashtu mund të merrni një listë të shërbimeve të aktivizuara për zonën e paracaktuar:
$ firewall-cmd --list-services
dhcpv6-client ssh
Shtimi i një shërbimi në një zonë
Ju mund të aktivizoni një shërbim të caktuar për një zonë ( public) përgjithmonë duke përdorur --add-serviceflamurin:
$ firewall-cmd --permanent --zone=public --add-service=http
success
Dhe pastaj ringarkoni seancën aktuale të murit të zjarrit:
$ firewall-cmd --reload
success
Më pas, për të verifikuar është shtuar:
$ firewall-cmd --zone=public --list-services
dhcpv6-client http ssh
Heqja e një shërbimi nga një zonë
Ju mund të hiqni një shërbim të caktuar për një zonë ( public) përgjithmonë duke përdorur --remove-serviceflamurin:
$ firewall-cmd --permanent --zone=public --remove-service=http
success
Dhe pastaj ringarkoni seancën aktuale të murit të zjarrit:
$ firewall-cmd --reload
success
Më pas, për të verifikuar është shtuar:
$ firewall-cmd --zone=public --list-services
dhcpv6-client ssh
Shtimi/heqja e shumë shërbimeve nga një zonë
Mund të shtoni ose hiqni shumë shërbime (për shembull, httpdhe https) nga një zonë ose një nga një, ose të gjitha përnjëherë duke i mbështjellë emrat e shërbimeve të dëshiruara në kllapa kaçurrelë ( {, }):
$ firewall-cmd --permanent --zone=public --add-service=
success
$ firewall-cmd --permanent --zone=public --list-services
dhcpv6-client http https ssh
Krijimi i shërbimeve të reja
Ndonjëherë mund t'ju duhet të shtoni shërbime të reja me porosi - për shembull nëse keni ndryshuar portin për demonin SSH. Shërbimet përcaktohen duke përdorur skedarë të parëndësishëm XML, me skedarët e paracaktuar që gjenden në /usr/lib/firewalld/services:
$ tree /usr/lib/firewalld/services
/usr/lib/firewalld/services
├── amanda-client.xml
├── bacula-client.xml
├── bacula.xml
├── dhcpv6-client.xml
├── dhcpv6.xml
├── dhcp.xml
├── dns.xml
├── freeipa-ldaps.xml
├── freeipa-ldap.xml
├── freeipa-replication.xml
├── ftp.xml
├── high-availability.xml
├── https.xml
├── http.xml
...
Mënyra më e lehtë për të krijuar një shërbim të ri është kopjimi i një prej këtyre skedarëve ekzistues të shërbimit dhe modifikimi i tij. Shërbimet me porosi duhet të qëndrojnë në /etc/firewalld/services. Për shembull, për të personalizuar shërbimin SSH:
$ cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-custom.xml
Përmbajtja e këtij skedari të kopjuar duhet të duket si kjo:
$ cat /etc/firewalld/services/ssh-custom.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>SSH</short>
<description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
<port protocol="tcp" port="22"/>
</service>
Për të ndryshuar portin, duhet të ndryshoni emrin e shkurtër për shërbimin dhe portin. Ju gjithashtu mund të ndryshoni përshkrimin nëse dëshironi, por këto janë vetëm meta të dhëna shtesë që mund të përdoren nga një ndërfaqe përdoruesi ose një aplikacion tjetër. Në këtë shembull, unë po ndryshoj portin në 1234:
$ nano /etc/firewalld/services/ssh-custom.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>SSH-Custom</short>
<description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
<port protocol="tcp" port="1234"/>
</service>
Pasi të ruhet, do t'ju duhet të ringarkoni murin e zjarrit dhe më pas mund të aplikoni rregullin tuaj në zonën tuaj:
$ firewall-cmd --reload
success
$ firewall-cmd --permanent --zone=public --add-service=ssh-custom
success
Menaxhimi i portit
Përveç përdorimit të shërbimeve, ju gjithashtu mund të lejoni manualisht portet me anë të protokollit. Për të lejuar portin TCP 7777për publiczonën:
$ firewall-cmd --permanent --zone=public --add-port=7777/tcp
success
Ju gjithashtu mund të shtoni një gamë portash:
$ firewall-cmd --permanent --zone=public --add-port=7000-8000/tcp
success
Për të hequr (dhe për të mohuar) portin TCP 7777për publiczonën:
$ firewall-cmd --permanent --zone=public --remove-port=7777/tcp
success
Ju gjithashtu mund të listoni portet e lejuara aktualisht për një zonë të caktuar ( public) pas ringarkimit të sesionit aktual të murit të zjarrit:
$ firewall-cmd --zone=public --list-ports
7000-8000/tcp
Aktivizimi i FirewallD
Pasi të keni konfiguruar murin e zjarrit sipas dëshirës tuaj, duhet të siguroheni që ta aktivizoni atë nëpërmjet systemd në mënyrë që të siguroheni që të fillojë që në fillim:
$ systemctl enable firewalld
konkluzioni
Ka shumë cilësime dhe opsione të tjera brenda FirewallD, të tilla si përcjellja e portit, maskimi dhe komunikimi me murin e zjarrit nëpërmjet D-Bus. Shpresojmë që ky udhëzues t'ju ketë ndihmuar të kuptoni bazat sidoqoftë dhe ju ka dhënë mjetet për të filluar me fikjen e zjarrit nga serveri juaj. Disa lexim shtesë më poshtë do t'ju ndihmojnë të përfitoni sa më shumë nga muri i zjarrit.