V tomto tutoriálu vám ukážeme, jak nastavit firewall pomocí iptables na Linux VPS se systémem Ubuntu nebo CentOS jako operačním systémem. Iptables je administrační nástroj pro filtrování paketů IPv4 a NAT a používá se k nastavení a správě tabulek pravidel filtrování paketů IPv4 v jádře Linuxu.
Správná konfigurace a nastavení firewallu je jednou z nejdůležitějších a nejdůležitějších věcí, které musíte udělat pro zabezpečení svého serveru.
U iptables je definováno několik různých tabulek pro porovnávání paketů a každá tabulka může obsahovat několik vestavěných řetězců a také některé řetězce definované uživatelem. Řetězce jsou ve skutečnosti seznamy pravidel, která odpovídají sadě paketů, a každé pravidlo určuje, co se má s odpovídajícím paketem dělat.
Výchozí tabulka je filter
a obsahuje vestavěné řetězce INPUT, FORWARD a OUTPUT. Řetěz INPUT se používá pro pakety směřující do místních soketů, řetězec FORWARD se používá pro pakety směrované přes box, zatímco řetězec OUTPUT se používá pro lokálně generované pakety.
Připojte se k serveru přes SSH a vypište pravidla definovaná v konkrétním řetězci pomocí následující syntaxe:
sudo iptables -L CHAIN
Nahraďte CHAIN jedním z vestavěných řetězců, abyste viděli definovaná pravidla. Pokud není vybrán žádný řetězec, budou ve výstupu uvedeny všechny řetězce.
sudo iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
Pravidla brány firewall určují, co dělat s určitým paketem, pokud odpovídá určitým kritériím, a v případě, že paket nesplňuje kritéria, bude prozkoumáno další pravidlo brány firewall definované v řetězci. To je velmi důležitá věc, kterou byste měli vědět při definování pravidel brány firewall, protože se můžete snadno uzamknout ze svého serveru, pokud po pravidle blokování definujete pravidlo, které přijímá pakety z vaší místní IP adresy.
Cíle, které můžete použít pro pravidla brány firewall, jsou ACCEPT, DROP, QUEUE a RETURN. ACCEPT nechá paket projít, DROP paket zahodí, QUEUE předá paket uživatelskému prostoru, zatímco RETURN zastaví procházení paketu aktuálním řetězcem a bude pokračovat podle dalšího pravidla v předchozím řetězci. Výchozí zásada řetězce definuje, co dělat s paketem, pokud neodpovídá určitému pravidlu brány firewall. Jak můžete vidět na výstupu prvního příkazu, výchozí zásada pro všechny vestavěné řetězce je nastavena na ACCEPT. ACCEPT nechá paket projít, takže v podstatě neexistuje žádná ochrana.
Před přidáním jakýchkoli konkrétních pravidel přidejte následující:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Tím zabráníte přerušení již vytvořených připojení a vaše aktuální relace SSH zůstane aktivní.
Dále přidejte pravidla pro povolení provozu na vašem rozhraní zpětné smyčky:
sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A OUTPUT -o lo -j ACCEPT
Dále povolte přístup k vašemu serveru přes SSH pro vaši místní IP adresu, abyste k serveru měli přístup pouze vy:
sudo iptables -A INPUT -s 111.111.111.111 -p tcp --dport 22 -j ACCEPT
Kde 111.111.111.111
je vaše místní IP adresa a 22
je naslouchací port vašeho démona SSH. V případě, že se vaše lokální IP adresa mění dynamicky, je nejlepší vynechat -s 111.111.111.111
a použít jinou metodu k ochraně služby SSH před nežádoucím provozem.
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Dále povolte přístup ke svým důležitým službám, jako je HTTP/HTTPS server:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
[ecko_alert color=”blue”]Uvízli jste někde? Získejte od nás VPS a my váš server řádně zabezpečíme a nakonfigurujeme vám firewall zdarma![/ecko_alert]
Nyní uveďte aktuální pravidla a zkontrolujte, zda je vše v pořádku. Pro podrobný výstup můžete použít následující příkaz:
sudo iptables -nvL
Pokud máte další služby, kterým chcete povolit přístup, je nejlepší to udělat nyní. Jakmile budete hotovi, můžete nastavit výchozí zásadu pro vestavěný řetězec INPUT na DROP.
sudo iptables -P INPUT -j DROP
Tím zahodíte všechny pakety, které nesplňují kritéria pravidel brány firewall. Konečný výstup by měl být podobný následujícímu:
Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0
Pokud však nyní restartujete server, ztratíte všechna definovaná pravidla brány firewall, takže je opravdu důležité, aby byla pravidla trvalá.
V případě, že používáte Ubuntu VPS, musíte si pro tento účel nainstalovat další balíček. Pokračujte a nainstalujte požadovaný balíček pomocí následujícího příkazu:
sudo apt-get install iptables-persistent
Dne Ubutnu 14.04 pravidla brány firewall můžete uložit a znovu načíst pomocí následujících příkazů:
sudo /etc/init.d/iptables-persistent save sudo /etc/init.d/iptables-persistent reload
Na Ubuntu 16.04 místo toho použijte následující příkazy:
sudo netfilter-persistent save sudo netfilter-persistent reload
Pokud používáte CentOS VPS, můžete pravidla brány firewall uložit pomocí příkazu níže:
service iptables save
Samozřejmě nemusíte nic z toho dělat, pokud používáte některou z našich plně spravovaných hostingových služeb VPS, v takovém případě můžete jednoduše požádat naše zkušené administrátory Linuxu, aby vám pomohli nakonfigurovat vaše iptables na vašem serveru. Jsou k dispozici 24×7 a okamžitě se postarají o váš požadavek.
PS . Pokud se vám líbil tento příspěvek na téma Jak nastavit bránu firewall s iptables na Ubuntu a CentOS, sdílejte jej se svými přáteli na sociálních sítích pomocí tlačítek níže nebo jednoduše zanechte komentář v sekci komentářů. Děkuji.