Všechny operační systémy založené na jádře Linuxu mají vestavěnou bránu firewall, která monitoruje a filtruje příchozí a odchozí provoz na základě pravidel stanovených uživatelem nebo platformou. Ve výchozím nastavení distribuce CentOS 7 tuto funkci provádí obslužný program iptables , který spolupracuje s integrovaným firewallem netfilter. Někdy musí správce systému nebo správce sítě přizpůsobit činnost této komponenty zápisem příslušných pravidel. V dnešním článku bychom chtěli hovořit o základech konfigurace iptables ve výše uvedeném OS.
Obsah
Samotný nástroj je k dispozici ihned po dokončení instalace CentOS 7, ale navíc budete muset nainstalovat některé služby, o kterých budeme diskutovat později. V této platformě existuje další vestavěný nástroj, který plní funkci firewallu s názvem FirewallD. Chcete-li se vyhnout konfliktům během další práce, doporučujeme tuto komponentu vypnout. Podrobné pokyny k tomuto tématu naleznete v našem dalším materiálu na následujícím odkazu.
Další podrobnosti: Zakažte bránu firewall v CentOS 7
Jak víte, systém může používat IPv4 a IPv6. Dnes se zaměříme na příklad IPv4, ale pokud chcete konfigurovat jiný protokol, budete muset místo příkazu iptables v konzole použít ip6tables .
Nejdříve přidejte do systému další komponenty nástroje, které se dnes zvažují. Pomohou při nastavení pravidel a dalších parametrů. Načítání se provádí z oficiálního úložiště, takže netrvá dlouho.
sudo yum install iptables-services
je zodpovědný za instalaci sudo yum install iptables-services
. Zadejte ji a stiskněte klávesu Enter . sudo iptables --version
. Nyní je operační systém zcela připraven k další konfiguraci brány firewall prostřednictvím nástroje iptables . Nabízíme seznámení se s konfigurací položek, od správy služeb.
Správa provozního režimu iptables je vyžadována v případech, kdy potřebujete zkontrolovat účinek určitých pravidel nebo jednoduše restartovat komponentu. To se provádí pomocí vestavěných příkazů.
sudo service iptables stop
a stisknutím klávesy Enter služby zastavte. sudo service iptables start
. Takový restart, spuštění nebo zastavení nástroje je kdykoliv k dispozici, nezapomeňte vrátit návratovou hodnotu pouze tehdy, když je požadován.
Jak již bylo zmíněno, firewall je spravován ručně nebo automaticky přidává pravidla. Některé další aplikace mohou k nástroji přistupovat například úpravou určitých zásad. Většina těchto akcí je však stále prováděna ručně. Seznam všech aktuálních pravidel je k dispozici prostřednictvím příkazu sudo iptables -L
.
V zobrazeném výsledku budou informace o třech řetězcích: „INPUT“ , „OUTPUT“ a „FORWARD“ - příchozí, odchozí a dopředný provoz.
Stav všech řetězců můžete určit zadáním sudo iptables -S
.
Pokud vám pravidla, která vidíte, nevyhovují, jsou jednoduše odstraněna. Celý seznam je vymazán takto: sudo iptables -F
. Po aktivaci budou pravidla vymazána absolutně pro všechny tři okruhy.
Pokud je nutné ovlivnit pouze zásady z kteréhokoli řetězce, přidá se na řádek další argument:
sudo iptables -F INPUT
sudo iptables -F OUTPUT
sudo iptables -F FORWARD
Absence všech pravidel znamená, že nyní žádné nastavení filtrování provozu není použito pro žádnou ze stran. Správce systému již nastavuje nové parametry pomocí stejné konzoly, příkazu a různých argumentů.
Každý okruh je konfigurován samostatně pro příjem nebo blokování provozu. Nastavením konkrétní hodnoty můžete zajistit, že bude například blokován veškerý příchozí provoz. K tomu musí být příkaz sudo iptables --policy INPUT DROP
, kde INPUT je název obvodu a hodnota DROP je resetovací hodnota.
Přesně stejné parametry jsou nastaveny pro další obvody, například sudo iptables --policy OUTPUT DROP
. Je-li nutné nastavit hodnotu pro příjem dat, pak se DROP změní na ACCEPT a sudo iptables --policy INPUT ACCEPT
.
Jak víte, všechny síťové aplikace a procesy pracují přes specifický port. Blokováním nebo povolením určitých adres můžete řídit přístup ke všem síťovým cílům. Analyzujme přesměrování portů pomocí příkladu 80 . V terminálu stačí zadat příkaz sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
, kde -A je přidání nového pravidla, INPUT je indikace obvodu, -P je definice protokolu, v tomto případě TCP, a -dport je cílový port.
Přesný stejný příkaz platí pro port 22 , který používá služba SSH: sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
.
Pro zablokování zadaného portu se použije řetězec přesně stejného typu, pouze na konci se ACCEPT změní na DROP . Výsledkem je například sudo iptables -A INPUT -p tcp --dport 2450 -j DROP
.
Všechna tato pravidla jsou uložena v konfiguračním souboru a můžete je kdykoliv zobrazit. Nezapomeňte, že se to provádí pomocí sudo iptables -L
. Pokud je nutné s portem vyřešit IP adresu sítě, linka se mírně upraví - po přidání TPC , -s a samotné adresy. sudo iptables -A INPUT -p tcp -s 12.12.12.12/32 --dport 22 -j ACCEPT
, kde 12.12.12.12/32 je požadovaná IP adresa.
Blokování nastává na stejném principu, na konci se mění hodnota ACCEPT na DROP . Pak to dopadá, například, sudo iptables -A INPUT -p tcp -s 12.12.12.0/24 --dport 22 -j DROP
.
Protokol ICMP (Internet Control Message Protocol) je protokol, který je součástí protokolu TCP / IP a slouží k odesílání chybových zpráv a nouzových situací při práci s provozem. Pokud například není požadovaný server k dispozici, provede tento nástroj servisní funkce. Pomůcka iptables vám umožňuje zablokovat ji přes bránu firewall a můžete to provést pomocí příkazu sudo iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP
. Bude blokovat požadavky od vás a vašeho serveru.
Příchozí požadavky jsou blokovány trochu jinak. Pak musíte zadat sudo iptables -I INPUT -p icmp --icmp-type 8 -j DROP
. Po aktivaci těchto pravidel nebude server reagovat na požadavky ping.
Někdy servery podléhají útokům DDoS nebo jiným neoprávněným zásahům votřelců. Správná konfigurace firewallu vám umožní chránit se před tímto druhem hacků. Pro začátek doporučujeme nastavit tato pravidla:
iptables -A INPUT -p tcp --dport 80 -m limit --limit 20/minute --limit-burst 100 -j ACCEPT
, kde - limit 20 / minute je limit frekvence pozitivních výsledků. Jednotku měření můžete určit sami, například /second, /minute, /hour, /day
. --limit-burst number - omezení počtu paketů, které mají být předány. Všechny hodnoty jsou nastaveny individuálně podle preferencí administrátora. sudo iptables -N block-scan
. sudo iptables -A block-scan -p tcp —tcp-flags SYN,ACK,FIN,RST -m limit —limit 1/s -j RETURN
. sudo iptables -A block-scan -j DROP
. Výraz bloková kontrola v těchto případech je název použitého obvodu. Nastavení zobrazená dnes jsou pouze základem práce v nástroji pro správu brány firewall. V oficiální dokumentaci nástroje naleznete popis všech dostupných argumentů a možností a nakonfigurujte bránu firewall speciálně pro vaše požadavky. Výše byly považovány za standardní bezpečnostní pravidla, která jsou používána nejčastěji a ve většině případů jsou vyžadována.