Nástroj příkazového řádku firewall-cmd je součástí firewallu aplikace, která je standardně nainstalována. Lze jej použít k provádění trvalých a netrvalých změn běhového prostředí.
Instalace firewallu
Ve výchozím nastavení je firewalld zahrnut do skupiny „core“ rpm, ale pokud není nainstalován, můžete jej vždy nainstalovat pomocí yum.
# yum install -y firewalld
Povolte spuštění brány firewall při spuštění:
# systemctl enable firewalld
Restartujte službu firewall nyní.
# systemctl restart firewalld
Dostupné možnosti s příkazem firewall-cmd
# firewall-cmd --help Usage: firewall-cmd [OPTIONS...] General Options -h, --help Prints a short help text and exists -V, --version Print the version string of firewalld -q, --quiet Do not print status messages Status Options --state Return and print firewalld state --reload Reload firewall and keep state information --complete-reload Reload firewall and lose state information --runtime-to-permanent Create permanent from runtime configuration
Příkaz firewall-cmd nabízí kategorie možností, jako jsou Obecné, Stav, Trvalé, Zóna, Typ Icmp, Služba, Adaptace a zóny dotazů, Přímé, Uzamčení, Bílá listina uzamčení a Panika. Další informace naleznete na manuálové stránce firewall-cmd.
Užitečné příklady cmd firewallu
1. Vypsat všechny zóny
Pomocí následujícího příkazu vypíšete informace pro všechny zóny. Zobrazí se pouze částečný výstup.
# firewall-cmd --list-all-zones work target: default icmp-block-inversion: no interfaces: sources: services: dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: drop target: DROP icmp-block-inversion: no interfaces: sources: services: ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: .....
Veřejná je výchozí nastavení zóny, pokud ji nezměníte. Pro kontrolu aktuálně nastavené výchozí zóny použijte níže uvedený příkaz:
# firewall-cmd --get-default-zone public
2. Seznam povolených služeb a portů v systému
Chcete-li zobrazit aktuálně povolenou službu ve vašem systému, použijte níže uvedený příkaz.
# firewall-cmd --list-services dhcpv6-client ssh
Seznam portů, které jsou otevřené ve vašem systému:
# firewall-cmd --list-ports
Pokud jste právě povolili firewall, za normálních okolností zde neuvidíte žádné porty.
3. Chcete-li povolit všechny příchozí porty pro službu
Požadované porty pro službu můžete otevřít také pomocí –add-service volba. Povolení přístupu klientům HTTP pro veřejnou zónu:
# firewall-cmd --zone=public --add-service=http success
Seznam služeb, které jsou povoleny pro veřejnou zónu:
# firewall-cmd --zone=work --list-services dhcpv6-client http ssh
Použití tohoto příkazu změní pouze konfiguraci Runtime a neaktualizuje konfigurační soubory. Následující posloupnost příkazů ukazuje, že změny konfigurace provedené v konfiguračním režimu Runtime se při restartu služby firewallu ztratí:
# systemctl restart firewalld
# firewall-cmd --zone=work --list-services dhcpv6-client ssh
Chcete-li provést změny trvalé, použijte volbu –permanent. Příklad:
# firewall-cmd --permanent --zone=public --add-service=http success
Změny provedené v režimu trvalé konfigurace se neprovedou okamžitě. Příklad:
# firewall-cmd --zone=work --list-services dhcpv6-client ssh
Změny provedené v trvalé konfiguraci se však zapisují do konfiguračních souborů. Restartování služby firewalld přečte konfigurační soubory a provede změny.
Příklad:
# systemctl restart firewalld
# firewall-cmd --zone=work --list-services dhcpv6-client http ssh
4. Povolit provoz na příchozím portu
Níže uvedený příkaz otevře port 2222 s okamžitou platností, ale nebude přetrvávat po restartování:
# firewall-cmd --add-port=[YOUR PORT]/tcp
Chcete-li například otevřít port TCP 2222:
# firewall-cmd --add-port=2222/tcp
Následující příkaz vytvoří trvalé pravidlo, ale neprojeví se okamžitě:
# firewall-cmd --permanent --add-port=[YOUR PORT]/tcp
Například pro otevření TCP portu 2222:
# firewall-cmd --permanent --add-port=2222/tcp
Chcete-li zobrazit seznam otevřených portů, použijte příkaz :
# firewall-cmd –-list-ports 2222/tcp
5. Spuštění a zastavení služby brány firewall
Ke spuštění/zastavení/stavu služby firewalld použijte následující příkazy:
# systemctl start firewalld.service # systemctl stop firewalld.service
Chcete-li zkontrolovat stav služby brány firewall:
# systemctl status firewalld.service