Udržování zabezpečení sítě je pro správce systému klíčové a konfigurace brány firewall pomocí příkazového řádku je základní dovednost, kterou se musíte naučit. V článku bude zdůrazněno, jak spravovat bránu firewall pomocí brány firewall-cmd v příkazovém řádku systému Linux.
Brána firewall je v podstatě software, který můžete nakonfigurovat tak, aby řídil příchozí a odchozí síťový provoz. Brány firewall mohou ostatním uživatelům zabránit v používání síťových služeb v systému, který používáte. Většina systémů Linux je dodávána s výchozí bránou firewall. Dřívější verze systémů Linux používaly iptables jako démona pro filtrování paketů. Novější verze Fedory, RHEL / CentOS, openSUSE jsou dodávány s Firewalldem jako výchozím démonem brány firewall. Firewalld můžete také nainstalovat do distribucí Debian a Ubuntu.
Doporučuji vám místo iptables použít Firewalld. Neberte to jen za slovo. Další informace najdete v našem komplexním průvodci dostupnými firewally s otevřeným zdrojovým kódem pro váš systém Linux.
Firewalld je dynamický démon pro správu bran firewall s podporou síťových zón nebo zón brány firewall. Zóny brány firewall definují úrovně důvěryhodnosti zabezpečení sítě síťových rozhraní, služeb nebo připojení. Správci bezpečnostních systémů sítě zjistili, že Firewalld funguje skvěle s IPv4, IPv6, sadami IP a ethernetovými mosty. Ke správě Firewalld můžete použít příkaz terminálu firewall-cmd nebo konfigurační nástroj GUI firewall-config.
Tato příručka bude využívat firewall-cmd příkaz pro správu zabezpečení sítě a naším testovacím prostředím bude Fedora Workstation 33.
Než se dočkáme všeho technického, naučme se několik základních informací o síti.
Základy sítě
Počítači připojenému k síti je přiřazena adresa IP, která se používá pro směrování dat. Počítače mají také porty v rozsahu 0-65535, které fungují jako spojovací body na IP adrese. Aplikace mohou rezervovat konkrétní porty. Webové servery obvykle rezervují port 80 pro zabezpečenou komunikaci HTTP. Rozsahy portů 0 - 1024 jsou v zásadě vyhrazeny pro dobře známé účely a systém.
Dva hlavní internetové protokoly přenosu dat (TCP a UDP) používají tyto porty během síťové komunikace. Hostitelský počítač naváže spojení mezi zdrojovou IP adresou a portem (port 80 pro nezabezpečený HTTP) a cílovou adresou a portem.
Za účelem správy zabezpečení sítě může software brány firewall povolit nebo blokovat přenos dat nebo komunikaci na základě pravidel, jako jsou porty nebo adresy IP.
Instalace Firewalld
Fedora, RHEL / CentOS 7/8, openSUSE
Firewalld je ve výchozím nastavení nainstalován ve Fedoře, RHEL / CentOS 7/8 a openSUSE. Pokud ne, můžete jej nainstalovat pomocí následujícího příkazu:
# yum nainstalovat firewalld -y
NEBO
#dnf nainstalovat firewalld -y
Debian / Ubuntu
Systémy Ubuntu se standardně dodávají s nekomplikovanou bránou firewall. Chcete-li použít firewalld, musíte povolit vesmírné úložiště a deaktivovat nekomplikovanou bránu firewall.
sudo add-apt-repository vesmír
sudo apt nainstalovat firewalld
Deaktivujte nekomplikovanou bránu firewall:
sudo systemctl vypnout ufw
Povolit firewalld v době bootování:
sudo systemctl povolit - nyní firewalld
Ověřte, že Firewalld běží:
sudo firewall-cmd -state
běh
Zóny brány firewall
Firewalld usnadňuje konfiguraci brány firewall vytvořením výchozích zón. Zóny jsou sada pravidel, která vyhovují každodenním potřebám většiny správců systému Linux. Zóna brány firewall může definovat důvěryhodné nebo zamítnuté úrovně pro služby a porty.
- Důvěryhodná zóna: Všechna síťová připojení jsou přijímána a používána pouze v důvěryhodných prostředích, jako je rodinný dům nebo testovací laboratoř.
- Veřejná zóna: Pravidla můžete definovat pouze tak, aby konkrétní porty mohly otevírat připojení, zatímco ostatní připojení budou zrušena. Může být použit na veřejných místech, pokud nedůvěřujete jiným hostitelům v síti.
- Domácí, vnitřní, pracovní zóny: Většina příchozích připojení je přijímána v těchto třech zónách. Příchozí připojení vylučují provoz na portech, které neočekávají žádná připojení ani aktivitu. Můžete jej použít v domácích připojeních, kde existuje obecná důvěra ostatních uživatelů v síti. Umožňuje pouze vybraná příchozí připojení.
- Bloková zóna: Jedná se o extrémně paranoidní nastavení brány firewall, kde jsou možná pouze připojení zahájená zevnitř sítě nebo serveru. Všechna příchozí připojení k síti jsou odmítnuta a je vydána zpráva ICMP-host-disabled.
- DMZ zóna: Demilitarizovanou zónu lze použít k povolení přístupu k některým službám pro veřejnost. Přijímána jsou pouze vybraná připojení. Je to základní volba pro určité typy serverů v síti organizace.
- Vnější zóna: Je-li tato zóna povolena, bude fungovat jako směrovač a lze ji použít v externích sítích se zapnutým maskováním. IP adresa vaší soukromé sítě je namapována a skryta za veřejnou IP adresou. Přijaty jsou pouze vybrané příchozí připojení, včetně SSH.
- Místo dopadu: Jakékoli příchozí pakety jsou zahozeny bez odpovědi. Tato zóna umožňuje pouze odchozí síťová připojení.
Příklad výchozích zón definovaných pracovní stanicí Fedora 33
cat / usr / lib / firewalld / zones / FedoraWorkstation.xmlPracovní stanice Fedora Nevyžádané příchozí síťové pakety jsou odmítnuty z portu 1 až 1024, s výjimkou vybraných síťových služeb. [firewall] Příchozí pakety, které se vztahují k odchozím síťovým připojením, jsou přijímány. Odchozí síťová připojení jsou povolena.
Získejte aktuální zónu:
Můžete použít - - get-active-zóny příznak pro kontrolu aktuálně aktivních zón ve vašem systému.
sudo firewall-cmd --get-active-zones
[sudo] heslo pro tutory:
FedoraWorkstation
rozhraní: wlp3s0
libvirt
rozhraní: virbr0
Výchozí zóna na pracovní stanici Fedora 33 v zóně FedoraWorkstation
Získejte výchozí zónu a všechny definované zóny:
sudo firewall-cmd --get-default-zone
[sudo] heslo pro tutory:
FedoraWorkstation
[tuts @ fosslinux ~] $ sudo firewall-cmd --get-zones
FedoraServer Fedora Workstation block dmz drop external home internal libvirt nm-shared public trusted work
Seznam služeb:
Služby, které brána firewall umožňuje ostatním systémům získat, získáte pomocí - -seznam služeb vlajka.
[tuts @ fosslinux ~] $ sudo firewall-cmd --list-services
dhcpv6-client mdns samba-client ssh
Na systému Fedora Linux 33 umožňuje brána firewall přístup ke čtyřem službám (dhcpv6-client mdns samba-client ssh) se známými čísly portů.
Seznam nastavení portu brány firewall:
Můžete použít - -seznam portů příznak pro zobrazení dalších nastavení portu v jakékoli zóně.
tuts @ fosslinux ~] $ sudo firewall-cmd --list-ports --zone = FedoraWorkstation
[sudo] heslo pro tutory:
1025-65535 / udp 1025-65535 / tcp
Zónu jsme určili ke kontrole pomocí možnosti - -zone = FedoraWorkstaion.
Správa zón, portů a služeb
Konfigurace brány firewall lze konfigurovat jako běhovou nebo trvalou. Všechny akce brány firewall-cmd přetrvávají pouze do restartování počítače nebo brány firewall. Musíte vytvořit trvalé nastavení s příznakem -permanent.
Vytvořte zónu
Chcete-li vytvořit zónu, musíte použít - -nová zóna vlajka.
Příklad:
Vytvořte novou trvalou zónu nazvanou fosscorp:
[tuts @ fosslinux ~] $ sudo firewall-cmd --new-zone fosscorp --permanent
[sudo] heslo pro tutory:
úspěch
Chcete-li aktivovat novou zónu, znovu načtěte pravidla brány firewall:
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload
Přidejte do zóny fosscorp službu ssh, abyste k ní měli vzdálený přístup:
[tuts @ fosslinux ~] $ sudo firewall-cmd --zone fosscorp --add-service ssh --permanent
[sudo] heslo pro tutory:
úspěch
Zkontrolujte, zda je vaše nová zóna „fosscorp“ aktivní:
[tuts @ fosslinux ~] $ sudo firewall-cmd --get-zones
FedoraServer FedoraWorkstation blokuje dmz drop externí Fosscorp domácí interní libvirt nm sdílená veřejná důvěryhodná práce
Váš nový zónový fosscorp je nyní aktivní a odmítá všechna příchozí připojení kromě provozu SSH.
Použijte - -změnit rozhraní příznak, aby se zóna fosscorp stala aktivní a výchozí zónou pro síťové rozhraní (wlp3s0), které chcete chránit:
[tuts @ fosslinux ~] $ sudo firewall-cmd --change-interface wlp3s0 \
> --zone fosscorp - stálý
Rozhraní je pod kontrolou [firewallu] NetworkManageru, nastavení zóny na „fosscorp“.
úspěch
Pokud chcete nastavit fosscorp jako výchozí a primární zónu, spusťte následující příkaz:
[tuts @ fosslinux ~] $ sudo firewall-cmd --set-default fosscorp
úspěch
Zobrazte zóny aktuálně přiřazené každému rozhraní pomocí - -get-active-zóny vlajka:
[tuts @ fosslinux ~] $ sudo firewall-cmd --get-active-zones
Fosscorp
rozhraní: wlp3s0
Přidat a odebrat služby:
Rychlý způsob, jak povolit provoz prostřednictvím brány firewall, je přidat předdefinovanou službu.
Seznam dostupných předdefinovaných služeb:
tuts @ fosslinux ~] $ sudo firewall-cmd --get-services
[sudo] heslo pro tutory:
RH-Satellite-6 amanda-klient amanda-k5-klient amqp amqps apcupsd audit bacula bacula-klient bb bgp bitcoin bitcoin-rpc
bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine kokpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client
[…]
Odblokujte předdefinovanou službu
Můžete povolit přenos HTTPS (nebo jakoukoli jinou předdefinovanou službu) prostřednictvím brány firewall pomocí - -doplňková služba vlajka.
[tuts @ fosslinux ~] $ sudo firewall-cmd --add-service https --permanent
úspěch
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload
Službu můžete také odebrat pomocí - -odebrat službu vlajka:
[tuts @ fosslinux ~] $ sudo firewall-cmd --remove-service https --permanent
úspěch
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload
Přidejte a odeberte porty
Můžete také přidat číslo portu a prototyp přímo s příznakem -add-port. Přímé přidání čísla portu může přijít vhod, když předdefinovaná služba neexistuje.
Příklad:
Můžete přidat nestandardní port 1717 pro SSH do vaší vlastní zóny pomocí následujícího příkazu:
[tuts @ fosslinux ~] $ sudo firewall-cmd --add-port 1717 / tcp --permanent
[sudo] heslo pro tutory:
úspěch
[tuts @ fosslinux ~] $ sudo firewall-cmd -reload
Odeberte port pomocí volby -remove-port flag:
[tuts @ fosslinux ~] $ sudo firewall-cmd --remove-port 1717 / tcp --permanent
úspěch
[tuts @ fosslinux ~] $ sudo firewall-cmd -reload
Můžete také určit zónu pro přidání nebo odebrání portu přidáním příznaku -zone do příkazu:
Přidejte port 1718 pro připojení TCP do zóny FedoraWorstation:
[tuts @ fosslinux ~] $ sudo firewall-cmd --zone = FedoraWorkstation --permanent --add-port = 1718 / tcp
úspěch
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload
úspěch
Potvrďte, zda se změny projevily:
[tuts @ fosslinux ~] $ sudo firewall-cmd --list-all
FedoraWorkstation (aktivní)
cíl: výchozí
icmp-block-inverze: ne
rozhraní: wlp3s0
Zdroje:
služby: dhcpv6-client mdns samba-client ssh
porty: 1025-65535 / udp 1025-65535 / tcp 1718 / tcp
protokoly:
maškaráda: ne
přední porty:
zdrojové porty:
bloky icmp:
bohatá pravidla:
Poznámka: Pod porty jsme přidali číslo portu 1718 povolit provoz TCP.
Můžete odstranit port 1718 / tcp spuštěním následujícího příkazu:
[tuts @ fosslinux ~] $ sudo firewall-cmd --zone = FedoraWorkstation --permanent --remove-port = 1718 / tcp
úspěch
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload
úspěch
Poznámka: Chcete-li, aby byly změny trvalé, musíte přidat - -trvalý označte své příkazy.
Shrnout
Firewalld je skvělý nástroj pro správu zabezpečení vaší sítě. Nejlepším způsobem, jak zvýšit dovednosti správce systému, je získat praktické zkušenosti. Důrazně doporučuji instalovat Fedoru na váš oblíbený virtuální stroj (VM) nebo do Boxů, abyste mohli experimentovat se všemi dostupnými funkcemi firewall-cmd. Další funkce brány firewall-cmd se můžete dozvědět z oficiální domovské stránky Firewalld.