GNU/Linux >> Znalost Linux >  >> Linux

Jak provést zabezpečenou instalaci Redis v systému Linux

Redis je prospěšný pro mnoho věcí, jednou z nich je ukládání do mezipaměti. Redis můžete také použít jako primární úložiště dat nebo dokonce jako náhradu za databázi. Jak ale provedete zabezpečenou instalaci Redis? Instalace Redis může být bolestná, a pokud nebudete opatrní, můžete skončit s mnoha chybami. Naštěstí pro vás tento tutoriál vám pomohl.

V tomto tutoriálu se dozvíte, jak bezpečně nainstalovat Redis na váš systém Linux, spolu s několika tipy, jak se vyhnout běžným chybám.

Čtěte dále a ušetříte si starosti s odstraňováním chyb instalace Redis!

Předpoklady

Tento tutoriál bude praktickou ukázkou. Pokud je chcete sledovat, ujistěte se, že máte následující:

  • Počítač Ubuntu 20.04 LTS – Tento výukový program používá Ubuntu 20.04 LTS, ale pokyny jsou podobné pro většinu distribucí Linuxu.
  • Oprávnění uživatele root nebo uživatel bez tohoto oprávnění s sudo privilegia

Redis Install s APT Package Manager

Existuje několik způsobů, jak nainstalovat Redis na Ubuntu, ale pro tento tutoriál si Redis nainstalujete pomocí správce balíčků APT.

Redis je napsán v C, takže budete muset zkompilovat Redis z jeho zdrojového kódu ručně. Bylo by potřeba nainstalovat několik závislostí a proces sestavování není úplně spolehlivý.

Kompilace Redis ze zdroje se nedoporučuje, ale výhodou je, že si svou instalaci můžete přizpůsobit, pokud chcete. Stáhnete si zdrojový kód a poté jej ručně nakonfigurujete.

Otevřete terminál a spusťte apt update níže, abyste zajistili, že máte nejnovější seznamy balíčků.

sudo apt update -y

Nyní spusťte apt install příkaz níže k instalaci Redis na váš počítač.

Níže uvedený příkaz používá apt správce balíčků ke stažení a instalaci redis-server balíček z repozitářů Ubuntu na váš počítač. -y příznak říká apt automaticky přijímat výzvy během procesu instalace.

sudo apt install redis-server -y

Konfigurace souboru Redis.conf pro spuštění Redis jako služby

Právě jste nainstalovali Redis, ale ještě není připraven k použití. Než budete moci začít používat Redis, musíte nejprve nakonfigurovat redis.conf soubor.

Soubor redis.conf konfigurační soubor je součástí balíčku Redis, který jste nainstalovali, a je uložen v /etc/redis/ adresář ve výchozím nastavení. Tento soubor obsahuje všechny možnosti konfigurace pro Redis.

Přípona souboru .conf je logická, protože se řídí konvenčním vzorem. Mnoho dalších programů používá stejný styl. Webový server Apache například používá pro svůj hlavní konfigurační soubor příponu .conf.

1. Spusťte následující systemctl příkaz na stop redis-server servis. Zastavení provozu služby Redis je doporučeným postupem, když s Redis poprvé začínáte.

sudo systemctl stop redis.service

2. Dále otevřete /etc/redis/redis.conf soubor ve vašem preferovaném textovém editoru.

Najděte dozorovaný a poté jej nastavte na systemd , jak je znázorněno níže, a uložte změny. Tím sdělíte operačnímu systému, aby spustil Redis jako službu.

3. Nyní spusťte systemctl restart příkazem níže restartujte službu Redis (redis.service ), protože služba Redis o změnách zatím neví.

sudo systemctl restart redis.service

4. Nakonec spusťte systemctl status níže, abyste zjistili, zda Redis běží.

sudo systemctl status redis.service

Jak můžete vidět níže, výstup ukazuje, že služba Redis běží.

Testování, zda server Redis funguje správně

Nakonfigurovali jste a ověřili, že služba Redis aktivně běží, ale to neznamená, že server Redis funguje. Jak otestovat, zda server Redis funguje správně? Připojte se k serveru Redis a odešlete příkazy, abyste zjistili, zda server odpovídá.

1. Spusťte redis-cli příkaz níže pro připojení k serveru Redis. redis-cli je rozhraní příkazového řádku pro Redis, které vám umožňuje odesílat příkazy na server a kontrolovat jeho stav.

redis-cli

Níže můžete zjistit, že se nacházíte ve výzvě serveru Redis (127.0.0.1:6379> ). redis-cli příkaz se pokusí připojit k serveru Redis na 127.0.0.1:6379 ve výchozím stavu.

2. Dále spusťte ping níže, abyste zkontrolovali, zda je server Redis dosažitelný.

ping

Jak vidíte, server vrátil PONG , což znamená, že server Redis je dosažitelný a nyní může úspěšně komunikovat se službou.

Možná jste stále skeptičtí; spusťte set příkaz níže. set je příkaz Redis, který nastavuje pár klíč-hodnota v databázi.

set test "This is a test"

Jak vidíte, příkaz set vrací „OK “, což znamená, že služba Redis funguje správně.

3. Spusťte exit příkaz níže pro ukončení redis-cli . Tím se uzavře připojení k serveru Redis.

exit

Vazba serveru Redis na Localhost

Právě jste otestovali, že server Redis funguje správně, ale může být přístupný i z jiných zařízení ve vaší síti. Toto chování je nežádoucí a obvykle byste chtěli svůj server Redis chránit před cizími lidmi.

Svázáním serveru Redis s localhostem se nastaví chování, že k serveru Redis má přístup pouze počítač, na který jste nainstalovali Redis.

1. Otevřete /etc/redis/redis.conf soubor ve vašem textovém editoru.

2. Najděte řádek, který říká bind 127.0.0.1 ::1 a odkomentujte řádek odstraněním znaku čísla (# ) na začátku řádku.

3. Nyní spusťte níže uvedený příkaz a restartujte redis-server servis.

sudo systemctl restart redis-server

4. Nakonec spusťte následující příkaz a zkontrolujte, zda je váš server Redis vázán na localhost. netstat -lnp příkaz uvádí všechna aktivní síťová připojení a grep redis part filtruje výstup na řádky, které obsahují „redis .“

-lnp je zkratka pro Local Name Protocol, síťový protokol používaný systémy typu UNIX k překladu názvů hostitelů na IP adresy.

sudo netstat -lnp | grep redis

Níže můžete vidět, že server Redis nyní naslouchá pouze na rozhraní localhost (127.0.0.1:6379 ). Po změně v konfiguračním souboru můžete vidět, že pod vašimi aktivními internetovými připojeními je uvedeno pouze rozhraní localhost (tcp ).

Nyní se žádná jiná zařízení ve vaší síti nemohou připojit k vašemu serveru Redis.

Zabezpečení připojení k serveru Redis pomocí hesla

V tomto okamžiku není Redis nastaven tak, aby vyžadoval od uživatelů ověření pomocí hesla. Kdokoli, kdo zná IP adresu nebo název hostitele vašeho serveru Redis, se k němu může připojit a změnit jeho data.

Jak chráníte svůj server Redis? Nastavte heslo, které bude vyžadovat ověření uživatelů při připojování k vašemu serveru Redis.

1. Znovu otevřete redis.conf konfiguračního souboru ve vašem textovém/kódovém editoru.

2. Dále nastavte silné heslo pomocí následujícího:

  • Hledejte requirepass foobared pod SECURITY sekce
  • Smažte znak čísla (# ) na začátku řádku
  • Nahraďte foobared se silným heslem dle vlastního výběru a uložte změny

3. Spuštěním následujících příkazů restartujte a připojte se k serveru Redis.

sudo systemctl restart redis-server
redis-cli

4. Nyní spusťte ping příkaz, abyste zjistili, zda dostanete odpověď ze serveru.

ping

Níže můžete vidět chybovou zprávu, která říká Je vyžadováno ověření NOAUTH . Tato zpráva označuje, že pro vzdálený přístup k serveru Redis potřebujete ověřovací heslo.

5. Spusťte níže uvedený auth následovaný vaším heslem pro ověření vašeho připojení k vašemu serveru Redis.

auth Qae9p_fY:YjdtJ7k

Zobrazí se OK odpověď, když je ověření úspěšné, jako je ta níže.

6. Nakonec znovu spusťte ping otestujte, zda jste ověřili své připojení k serveru Redis.

ping

Nyní získáte PONG odpověď, jak je uvedeno níže, po ověření vašeho připojení. V tomto okamžiku jste nyní úspěšně ochránili svůj server Redis heslem.

Zakázání nebezpečných příkazů pro ochranu vašeho serveru Redis

Nastavení hesla pro ověření připojení k vašemu serveru Redis neznamená, že získá 100% ochranu. Ve výchozím nastavení obsahuje Redis několik nebezpečných příkazů, které uživatelům umožňují měnit data ve vaší databázi.

Když jsou tyto příkazy spuštěny neoprávněnými uživateli, umožňují vetřelcům číst, upravovat, ničit a dokonce vymazat data vaší databáze Redis.

Níže není uveden úplný seznam, protože váš server Redis může mít další nebezpečné příkazy, ale ve většině případů se jedná o nebezpečné příkazy:

FLUSHDB, FLUSHALL, KEYS, PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF
BGSAVE, SAVE, SPOP, SREM, RENAME, DEBUG, EVAL

Chcete-li svůj server Redis dále zabezpečit, přejmenujte tyto nebezpečné příkazy v redis.conf soubor:

1. Otevřete soubor redis.conf v textovém editoru a vyhledejte Přejmenování příkazu sekce.

Přejmenujte příkazy na prázdný řetězec a deaktivujte je podle níže uvedené syntaxe. Nahraďte the-command se skutečným příkazem k deaktivaci.

rename-command the-command ""

Například deaktivujte CONFIG příkaz přejmenováním CONFIG na prázdný řetězec, jak je znázorněno níže, a poté uložte změny. Dvojité uvozovky (“”) označují prázdný řetězec, který znamená deaktivaci příkazu.

2. Ukončete textový editor a spusťte níže uvedený příkaz pro restartování serveru Redis.

sudo systemctl restart redis-server

3. Nyní spusťte následující příkazy pro připojení k serveru Redis.

redis-cli
auth Qae9p_fY:YjdtJ7k

4. Nakonec spusťte config get příkaz k otestování CONFIG příkaz je zakázán.

config get requirepass

Zobrazí se ERR neznámý příkaz config odpověď, jak je uvedeno níže, což znamená, že CONFIG příkaz je zakázán.

Pokud config get requirepass protlačí, požádá váš server Redis o heslo pro ověření připojení k vašemu serveru Redis.

Nyní jste úspěšně přejmenovali nebezpečný příkaz Redis k ochraně vašeho serveru Redis. Nyní pokračujte v deaktivaci dalších nebezpečných příkazů v redis.conf soubor.

Blokování požadavku na připojení k serveru Redis pomocí brány firewall

Dalším způsobem zabezpečení serveru Redis je nastavení brány firewall. Nastavení brány firewall vyžaduje, abyste povolili pouze požadovaný port pro každou ze služeb běžících na vašem serveru.

Pokud například používáte Redis na svém serveru na portu 6379 , pak stačí otevřít tento port. Pokud potřebujete povolit přístup z konkrétní IP adresy nebo rozsahu adres, můžete tyto adresy přidat do pravidel brány firewall.

Chcete-li nastavit bránu firewall, musíte nejprve nainstalovat konfigurační nástroj brány firewall. Tento příklad používá UFW, běžně používaný nástroj pro konfiguraci brány firewall v systému Linux. K nastavení brány firewall však můžete použít i jiný nástroj, například iptables.

1. Spusťte následující příkaz pro instalaci UFW na váš počítač.

sudo apt install ufw -y

2. Dále spusťte níže uvedený příkaz pro povolení UFW.

sudo ufw enable

Když se zobrazí výzva uvedená níže, zadejte „Y“, abyste mohli pokračovat ve spuštění příkazu.

3. Spusťte ufw příkaz níže pro přidání pravidla, které umožňuje (allow ) provoz na portu 6379 pro váš server Redis. Nahraďte 11.22.33.44 IP adresa s IP adresami vašich zamýšlených uživatelů.

sudo ufw allow from 11.22.33.44 to any port 6379

4. Nakonec spusťte níže uvedený příkaz a ověřte, že jste pravidlo brány firewall přidali úspěšně. Příkaz zkontroluje status vašeho firewallu.

sudo ufw status

Ve výstupu níže můžete vidět, že firewall je aktivní a má pravidlo povolit provoz na portu 6379 pro Redis z IP adresy 11.22.33.44 .

Nyní všichni uživatelé s IP adresou 11.22.33.44 lze připojit k Redis přes port 6379 a bude se muset ověřit pomocí hesla. Podobným způsobem můžete přidat další porty pro další služby.

Závěr

V tomto tutoriálu jste se naučili, jak nainstalovat a zabezpečit server Redis přejmenováním nebezpečných příkazů na prázdné řetězce a nastavením brány firewall.

S těmito nově získanými znalostmi si můžete užívat všech výhod Redis, aniž byste se museli obávat, že vystavíte svůj server zbytečným rizikům.

Chcete se dozvědět více? Proč nezačít se zabezpečením serveru Redis v Kubernetes?


Linux
  1. Jak nainstalovat Python na Linux

  2. Jak nainstalovat a zabezpečit Redis na Ubuntu 18.04

  3. Jak nainstalovat Redis na Rocky Linux 8

  1. Jak nainstalovat Javu na Linux

  2. Jak nainstalovat službu SSH (zabezpečený shell) na Kali Linux

  3. Jak nainstalovat NodeJS na Linux

  1. Jak nainstalovat Linux ve 3 krocích

  2. Jak nainstalovat a zabezpečit Redis na Ubuntu 20.04

  3. Jak nainstalovat a nakonfigurovat Redis na Debianu