Szolgáltatások kezelése
Port menedzsment
A FirewallD engedélyezése
Következtetés
A FirewallD egy dinamikusan felügyelt tűzfal, amely támogatja az RHEL 7 alapú szervereken elérhető IPv4 és IPv6 tűzfalszabályokat és tűzfalzónákat. Közvetlenül helyettesíti iptablesa kernel netfilterkódját , és azzal működik .
Ebben a cikkben röviden áttekintjük a tűzfal CentOS 7 firewall-cmdparanccsal történő kezelését.
Ellenőrizzük, hogy a FirewallD fut-e
Az első lépés annak ellenőrzése, hogy a FirewallD telepítve van-e és fut-e. Ezt systemda következő futtatásával teheti meg :
$ 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
...
Alternatív megoldásként ellenőrizheti a következő firewall-cmdeszközzel:
$ firewall-cmd --state
running
Zónák kezelése
A FirewallD azon koncepció alapján működik, zonesahol egy zóna határozza meg a kapcsolathoz használt bizalom szintjét. Különböző hálózati interfészeket feloszthat különböző zónákra, hogy interfészenként konkrét tűzfalszabályokat alkalmazhasson, vagy használhat egy zónát az összes interfészhez.
A dobozból minden az alapértelmezett publiczónán történik, de számos más előre konfigurált zóna is alkalmazható.
Az összes elérhető zóna listája
Előfordulhat, hogy be kell szereznie egy listát az összes elérhető zónáról, amelyek közül több már készen is van. Ez ismét megtehető a következő használatával firewall-cmd:
$ firewall-cmd --get-zones
block dmz drop external home internal public trusted work
Az alapértelmezett zóna ellenőrzése
A jelenleg konfigurált alapértelmezett zónát a következővel találhatja meg firewall-cmd:
$ firewall-cmd --get-default-zone
public
Ha meg kívánja változtatni az alapértelmezett zónát (például a következőre home), ezt a következő futtatásával teheti meg:
$ firewall-cmd --set-default-zone=home
success
Ez az információ megjelenik a fő konfigurációs fájlban, /etc/firewalld/firewalld.conf. Javasoljuk azonban, hogy ne módosítsa manuálisan ezt a fájlt, hanem használja a firewall-cmd.
Az aktuálisan hozzárendelt zónák ellenőrzése
A következő futtatásával megtekintheti azon zónák listáját, amelyekhez interfészeket rendeltek:
$ firewall-cmd --get-active-zones
public
interfaces: eth0
Egyetlen interfész zónáját is ellenőrizheti ( eth0ebben az esetben) a következő futtatásával:
$ firewall-cmd --get-zone-of-interface=eth0
public
Zónák létrehozása
Ha az alapértelmezett előre konfigurált zónák nem igazán felelnek meg az Ön igényeinek, akkor a legegyszerűbb módja annak, hogy új zónát ( zone1) hozzon létre, a következőn keresztül firewall-cmd:
$ firewall-cmd --permanent --new-zone=zone1
success
A létrehozás után újra kell töltenie:
$ firewall-cmd --reload
success
Zóna alkalmazása interfészre
Ahhoz, hogy egy zónához véglegesen hozzárendeljen egy hálózati interfészt, firewall-cmdne felejtse el beilleszteni a --permanentjelzőt a változás megőrzéséhez. Ha használja NetworkManager, akkor nmclia csatlakozási zóna beállításához is feltétlenül használja .
$ firewall-cmd --permanent --zone=internal --change-interface=eth1`
success
Zóna állandó konfigurációjának lekérése
Egy zóna állandó konfigurációjának ( publicebben az esetben) ellenőrzéséhez, beleértve a hozzárendelt interfészeket, engedélyezett szolgáltatásokat, portbeállításokat és egyebeket, futtassa:
$ firewall-cmd --permanent --zone=public --list-all
public (default)
interfaces:
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
Szolgáltatások kezelése
Miután hozzárendelte és konfigurálta a szükséges zónákat, megkezdheti a szolgáltatások hozzáadását a zónákhoz. A szolgáltatások leírják a zónákhoz elérhető protokollokat és portokat.
A meglévő szolgáltatások felsorolása
Számos általános szolgáltatás előre konfigurálva van a tűzfalon belül. Ezeket fel lehet sorolni:
$ 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
Az alapértelmezett zónához engedélyezett szolgáltatások listáját is megtekintheti:
$ firewall-cmd --list-services
dhcpv6-client ssh
Szolgáltatás hozzáadása zónához
Egy adott szolgáltatást publictartósan engedélyezhet egy zónához ( ) a --add-servicezászló használatával:
$ firewall-cmd --permanent --zone=public --add-service=http
success
Ezután töltse be újra az aktuális tűzfal munkamenetet:
$ firewall-cmd --reload
success
Ezután az ellenőrzéshez hozzáadták:
$ firewall-cmd --zone=public --list-services
dhcpv6-client http ssh
Szolgáltatás eltávolítása egy zónából
Egy adott szolgáltatást publicvéglegesen eltávolíthat egy zónához ( ) a --remove-servicezászló használatával:
$ firewall-cmd --permanent --zone=public --remove-service=http
success
Ezután töltse be újra az aktuális tűzfal munkamenetet:
$ firewall-cmd --reload
success
Ezután az ellenőrzéshez hozzáadták:
$ firewall-cmd --zone=public --list-services
dhcpv6-client ssh
Több szolgáltatás hozzáadása/eltávolítása egy zónából
Több szolgáltatást (például httpés https) is hozzáadhat vagy eltávolíthat egy zónából egyenként vagy egyszerre, ha a kívánt szolgáltatásneveket kapcsos zárójelekbe ( {, }) helyezi :
$ firewall-cmd --permanent --zone=public --add-service=
success
$ firewall-cmd --permanent --zone=public --list-services
dhcpv6-client http https ssh
Új szolgáltatások létrehozása
Néha előfordulhat, hogy új egyéni szolgáltatásokat kell hozzáadnia – például ha módosította az SSH-démon portját. A szolgáltatások triviális XML-fájlok segítségével vannak meghatározva, az alapértelmezett fájlok a következő helyen találhatók /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
...
Új szolgáltatás létrehozásának legegyszerűbb módja a meglévő szolgáltatásfájlok egyikének másolása és módosítása. Az egyedi szolgáltatásoknak itt kell lennie /etc/firewalld/services. Például az SSH szolgáltatás testreszabásához:
$ cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-custom.xml
A másolt fájl tartalmának így kell kinéznie:
$ 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>
A port megváltoztatásához módosítani kell a szolgáltatás rövid nevét és a portot. A leírást is módosíthatja, ha kívánja, de ez csak extra metaadatok, amelyeket egy felhasználói felület vagy más alkalmazás használhat. Ebben a példában a portot 1234-re módosítom:
$ 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>
Mentés után újra kell töltenie a tűzfalat, majd alkalmazhatja a szabályt a zónájára:
$ firewall-cmd --reload
success
$ firewall-cmd --permanent --zone=public --add-service=ssh-custom
success
Port menedzsment
A szolgáltatások használata mellett manuálisan is engedélyezheti a portokat protokollonként. A TCP-port 7777engedélyezése a publiczónához:
$ firewall-cmd --permanent --zone=public --add-port=7777/tcp
success
Porttartományt is hozzáadhat:
$ firewall-cmd --permanent --zone=public --add-port=7000-8000/tcp
success
Ahhoz, hogy távolítsa el (és így tagadja) TCP port 7777a publicterület közelében
$ firewall-cmd --permanent --zone=public --remove-port=7777/tcp
success
Az publicaktuális tűzfal munkamenet újratöltése után listázhatja az adott zónához ( ) jelenleg engedélyezett portokat is :
$ firewall-cmd --zone=public --list-ports
7000-8000/tcp
A FirewallD engedélyezése
Miután ízlése szerint konfigurálta a tűzfalat, mindenképpen engedélyezze a systemd-n keresztül, hogy biztosan elinduljon az indításkor:
$ systemctl enable firewalld
Következtetés
A FirewallD-n belül sokkal több beállítás és lehetőség található, mint például a porttovábbítás, a maszkolás és a tűzfallal való kommunikáció D-buszon keresztül. Remélhetőleg azonban ez az útmutató segített az alapok megértésében, és megadta azokat az eszközöket, amelyek segítségével elkezdheti a tűzfalat a szerveren kívül. Az alábbi további olvasmányok segítségével a legtöbbet hozhatja ki tűzfalából.