Redis, což je zkratka pro „remote dictionary server“, je úložiště párů klíč–hodnota, které ukládá data jako páry klíč–hodnota. Redis je databáze NoSQL, což znamená, že nemá tabulky, řádky a sloupce jako v databázích MySQL a Oracle. Nepoužívá INSERT, SELECT, UPDATE a DELETE. Místo toho používá Redis k ukládání dat datové struktury. Využívá pět primárních datových struktur včetně řetězců, seznamů, sad, tříděných sad a hashů a také tři další datové struktury včetně bitmap, hyperloglogů a geoprostorových indexů. Jednou z nejdůležitějších vlastností Redis je, že jde o databázi v paměti, což znamená, že uchovává data v paměti, takže je superrychlá. Redis má však také možnosti zapisovat data na disk.
V tomto tutoriálu vám ukážeme, jak nainstalovat a zabezpečit Redis na Ubuntu 18.04.
Předpoklady
- Nové Ubuntu 18.04 VPS na cloudové platformě Atlantic.net.
- Heslo uživatele root nakonfigurované na vašem serveru.
Vytvořte cloudový server Atlantic.Net
Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte Ubuntu 18.04 s alespoň 1 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.
Jakmile se přihlásíte ke svému serveru Ubuntu 18.04, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.
apt-get update -y
Nainstalujte Redis Server
apt-get install redis-server php-redis -y
Po instalaci serveru Redis budete muset nakonfigurovat server Redis, aby používal systém init pro správu Redis jako služby. Můžete jej nakonfigurovat úpravou souboru redis.conf:
nano /etc/redis/redis.conf
Najděte následující řádek:
supervised no
Nahraďte jej následujícím řádkem:
supervised systemd
Uložte a zavřete soubor. Poté restartujte službu Redis, aby se změny projevily:
systemctl restart redis
Stav služby Redis můžete také zkontrolovat pomocí následujícího příkazu:
systemctl status redis
Měli byste získat následující výstup:
Ověřte server Redis
Doporučuje se otestovat, zda server Redis funguje podle očekávání nebo ne.
Můžete to otestovat pomocí nástroje příkazového řádku redis-cli:
redis-cli 127.0.0.1:6379> ping
Pokud je vše v pořádku, měli byste získat následující výstup:
PONG
Nyní můžete opustit prostředí Redis pomocí následujícího příkazu:
exit
Verzi Redis můžete také zkontrolovat pomocí následujícího příkazu:
redis-cli -v
Výstup:
redis-cli 4.0.9
Další informace o Redis spusťte následující příkaz:
redis-cli info
Měli byste vidět následující obrazovku:
Port naslouchání Redis můžete také ověřit pomocí následujícího příkazu:
netstat -lnp | grep redis
Měli byste vidět, že server Redis naslouchá na localhost na portu 6379:
Zabezpečte Redis pomocí hesla
Nejprve vygenerujte silné heslo pomocí příkazu OpenSSL, jak je znázorněno níže:
openssl rand 60 | openssl base64 -A
Měli byste vidět následující výstup (heslo jako toto):
MGDCmmWh2Ot+aZDv7TBr54SY5PueoSAVhX41sApcOLWYBTlPrfe01OT/nqO0YWK/y0ROozsDi9Dw61jR
Nyní vložte své heslo do konfiguračního souboru Redis /etc/redis/redis.conf:
nano /etc/redis/redis.conf
Najděte následující řádek:
# requirepass foobared
Nahraďte jej následujícím řádkem:
requirepass MGDCmmWh2Ot+aZDv7TBr54SY5PueoSAVhX41sApcOLWYBTlPrfe01OT/nqO0YWK/y0ROozsDi9Dw61jR
Uložte a zavřete soubor. Poté restartujte službu Redis, aby se změny projevily:
systemctl restart redis
Nyní se připojte k příkazovému řádku Redis pomocí následujícího příkazu:
redis-cli 127.0.0.1:6379>
Nyní spusťte následující příkaz a otestujte, zda heslo Redis funguje:
127.0.0.1:6379> set test "How Are You"
Zobrazí se následující chyba, protože nebylo ověřeno:
(error) NOAUTH Authentication required.
Nyní ověřte Redis pomocí hesla, jak je uvedeno níže:
127.0.0.1:6379> auth MGDCmmWh2Ot+aZDv7TBr54SY5PueoSAVhX41sApcOLWYBTlPrfe01OT/nqO0YWK/y0ROozsDi9Dw61jR
Měli byste získat následující výstup:
OK
Nyní znovu spusťte předchozí příkaz:
127.0.0.1:6379> set test "How Are You"
Výstup:
OK
Nyní zjistěte hodnotu testu:
127.0.0.1:6379> get test
Měli byste vidět následující výstup:
"How Are You"
Po úspěšném testování ukončete příkazový řádek Redis následujícím příkazem:
127.0.0.1:6379> exit
Přejmenovat nebezpečné příkazy
Vždy je dobré přejmenovat některé nebezpečné příkazy včetně config, shutdown, flushdb, flushall a rename. Tyto příkazy mohou zničit nebo vymazat vaše data, pokud jsou spuštěny omylem.
Tyto příkazy můžete přejmenovat úpravou souboru /etc/redis/redis.conf:
nano /etc/redis/redis.conf
Na konec souboru přidejte následující řádky:
rename-command CONFIG ATLANTICCONFIG rename-command FLUSHDB ATLANTICFLUSHDB rename-command SHUTDOWN ATLANTICSHUTDOWN rename-command FLUSHALL ATLANTICFLUSHALL
Uložte a zavřete soubor a restartujte službu Redis, aby se změny implementovaly:
systemctl restart redis
Chcete-li otestovat výše uvedené příkazy, zadejte příkazový řádek Redis:
redis-cli
Nyní ověřte Redis pomocí hesla, jak je uvedeno níže:
127.0.0.1:6379> auth MGDCmmWh2Ot+aZDv7TBr54SY5PueoSAVhX41sApcOLWYBTlPrfe01OT/nqO0YWK/y0ROozsDi9Dw61jR
Měli byste získat následující výstup:
OK
Nyní zkuste spustit původní příkaz CONFIG, jak je znázorněno níže:
127.0.0.1:6379> config get requirepass
Měla by se zobrazit následující chyba:
(error) ERR unknown command 'config'
Nyní to zkuste znovu s přejmenovaným příkazem:
127.0.0.1:6379> atlanticconfig get requirepass
Měli byste vidět následující výstup:
1) "requirepass" 2) "MGDCmmWh2Ot+aZDv7TBr54SY5PueoSAVhX41sApcOLWYBTlPrfe01OT/nqO0YWK/y0ROozsDi9Dw61jR"
Závěr
Gratulujeme! Váš server Redis je nyní nainstalován a zabezpečen. Tato metoda je kompatibilní s Atlantic.Net VPS Hosting. Pro více informací můžete navštívit stránku dokumentace Redis.