Redis installeren en beveiligen op CentOS 7

Redis is een open-source, in-memory data structure store, die gebruikt wordt als database, cache, en message broker. Het is een gedistribueerde in-memory key-value databank met optionele duurzaamheid. Ondersteunt belangrijke gegevensstructuren zoals string, hashes, lijsten, sets, bitmaps, gesorteerde sets, HyperlogLogs, stream, en geospatiale indexen met radius queries.

In deze zelfstudie laten we je zien hoe je Redis Server op CentOS 7 installeert en configureert. We zullen de Redis Server uit de Remi repository installeren, en daarna de installatie beveiligen.

Voorwaarde

Voor deze gids installeren we de Redis op CentOS 7 Server met 1 GB RAM en 2CPUs. Dit is alleen om te testen, en je zult meer dan dit nodig hebben voor je productie.

Wat we zullen doen:

  • Remi Repository installeren en inschakelen
  • Installeer Redis Server
  • Redis Server configureren
  • Redis Server beveiligen
  • Testen van

Stap 1 – Installeer en activeer Remi Repository

Eerst zullen we de Remi repository aan het CentOS 7 systeem toevoegen. De Remi repository levert de nieuwste versie van het Redis pakket voor onze installatie.

Laten we, voordat we de Remi repository toevoegen, eerst de EPEL repository en yum utility pakketten installeren.

sudo yum install epel-release yum-utils

Voeg nu de Remi repository voor CentOS 7 toe met het onderstaande yum commando.

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Schakel daarna de ‘remi’ repository in met het yum-config-manager gereedschap zoals hieronder.

sudo yum-config-manager --enable remi

De Remi repository is toegevoegd en ingeschakeld op het CentOS 7 systeem, controleer het met het yum commando hieronder.

yum repolist enabled

En je krijgt het resultaat zoals hieronder.

Remi bewaarplaats toevoegen

Stap 2 – Installeer Redis op CentOS 7

Nadat we de Remi repository geïnstalleerd hebben, installeren we het nieuwste Redis pakket. Je kunt de beschikbare Redis versie controleren met het yum commando hieronder.

yum search redis
yum info redis

Nu krijg je dat Redis 5.0.5 beschikbaar is in de Remi repository.

Installeer Redis op CentOS

Installeer Redis met het onderstaande commando.

sudo yum -y install redis

Als de installatie voltooid is, start je de redis service en voeg je hem toe aan het systeem opstarten.

systemctl start redis
systemctl enable redis

De Redis service is in bedrijf met de standaard configuratie, controleer de servicestatus en de poort die de server gebruikt.

systemctl status redis
netstat -plntu

En je krijgt het resultaat als hieronder.

Controleer de status van Redis

De Redis server is up and running op CentOS 7 systeem, draait op het localhost IP adres ‘127.0.0.1’ met standaard TCP poort ‘6379’.

Stap 3 – Redis configureren

In deze stap gaan we onze Redis Server installatie op de CentOS 7 server configureren.

Bewerk het Redis configuratiebestand ‘/etc/redis.conf’ met vim editor.

vim /etc/redis.conf

Verander nu ‘bind’ adres met je interne IP adres. Als je als een cluster draait, kun je veranderen met het privé IP adres. Het is aan te bevelen de Redis Server op een privé intern IP adres te draaien.

bind 127.0.0.1

Verander nu de waarde ‘daemonize’ in ‘yes’, want we gaan de Redis dienst als een daemon draaien.

daemonize yes

Omdat we de CentOS 7 server en systemd gebruiken, moeten we de ‘supervised’ regelconfiguratie veranderen in ‘systemd’.

supervised systemd

Sla op en sluit af.

Start nu de redis dienst opnieuw.

systemctl restart redis

De basis configuratie van de Redis Server is voltooid. Maak nu verbinding met de Redis Server met het redis-cli commando zoals hieronder.

redis-cli

Voer het ping commando hieronder uit.

ping
ping "Hello Redis"

Als je installatie juist is, krijg je het ‘PONG’ antwoord en de boodschap die je na het commando schrijft.

Redis configuratie bewerken

Stap 4 – Redis installatie beveiligen

In deze stap gaan we onze Redis installatie beveiligen. Er zijn 3 dingen die je moet weten over het beveiligen van de Redis Server.

1. Netwerk beveiliging

De Netwerkbeveiliging voor de redis server hangt samen met de ‘bind’ configuratie op de redis configuratie ‘redis.conf’. Het is aan te bevelen het interne privé netwerk te gebruiken voor je Redis installatie en niet het openbare.

Bewerk het Redis configuratiebestand ‘/etc/redis.conf’ met vim editor.

vim /etc/redis.conf

Verander in de sectie ‘bind’ het IP adres met het IP adres van je eigen interne netwerk.

bind INTERNAL-IP-ADDRESS

Sla op en sluit.

En nu zal de redis dienst draaien onder het ‘INTERNAL-IP-ADDRESS’.

2. Wachtwoord authenticatie

De wachtwoord authenticatie voor Redis geeft je toegangscontrole tot je Redis server. Dit is een kleine beveiligingslaag die je Redis server beter zal beveiligen, en hij is nog niet ingeschakeld bij de standaard installatie.

Om de wachtwoordauthenticatie voor Redis server in te schakelen moet je het ‘requirepass’ gedeelte in het ‘redis.conf’ bestand uitcommentariëren en er je sterke wachtwoord achter typen.

requirepass [email protected]#$

Verander de ‘[email protected]#$’ met je sterke wachtwoord. En nu is de wachtwoordauthenticatie voor Redis ingeschakeld.

3. Gevaarlijk Redis commando uitschakelen

Redis biedt een functie om enkele specifieke Redis commando’s uit te schakelen. Deze functie kan gebruikt worden om enkele gevaarlijke commando’s te hernoemen of uit te schakelen, zoals ‘FLUSHALL’ om alle gegevens te wissen, ‘CONFIG’ commando om configuratieparameters via de Redis CLI in te stellen, enz.

Om het Redis commando te veranderen of uit te schakelen, kun je de ‘rename-command’ optie gebruiken. Bewerk het redis configuratiebestand ‘redis.conf’ en voeg hieronder enkele configuraties toe.

# rename-command COMMAND "CUSTOM"
rename-command CONFIG "REDISCONFIG"
rename-command FLUSHALL "DELITALL"

Bewaar en sluit.

Als alles klaar is, start je de redis dienst opnieuw met het onderstaande systemctl commando.

systemctl restart redis

En de basis beveiliging voor het beveiligen van de Redis installatie is toegepast op onze host.

Redis veilig configureren

Andere overweging, je kunt ook de ‘Data Encryption’ ondersteuning voor Redis nodig hebben, evenals de benodigde veilige codering aan de toepassingskant.

Stap 5 – Testen

In deze stap gaan we onze Redis Server installatie testen met de ‘redis-cli’ commandoregel.

– Host en Authenticatie testen

Maak verbinding met de Redis Server met het redis-cli commando door de redis server hostnaam/ IP adres en poort op te geven.

redis-cli -h 10.5.5.15 -p 6379

Verander de ‘10.5.5.15’ met je IP adres.

Zodra je met de server verbonden bent, probeer je het ping commando.

ping
ping "Hello Redis"

Nu krijg je het resultaat zoals hieronder.

Redis testen

Je krijgt ann foutmelding omdat je eerst moet authenticeren voordat je een commando op de Redis CLI shell aanroept.

Voer het volgende commando uit om te authenticeren tegen de Redis Server.

AUTH [email protected]#$

Zodra je geauthentiseerd bent, kun je het ping commando proberen en je krijgt een antwoord van de Redis server.

ping
ping "Hello Redis"

Hieronder staat het resultaat nadat je geauthenticeerd bent tegen de Redis Server.

Ping Redis

– Uitgeschakelde/hernoemde commando’s testen

Voer alle commando’s die we hernoemd hebben uit op de shell en je krijgt de commandofout.

CONFIG
FLUSHALL

Hieronder staat het foutresultaat van die commando’s.

Gebruikte Redis CLI

Voer vervolgens de ‘CUSTOM’ commando’s voor elk uit.

Maak een nieuwe Sleutel met het ‘SET’ commando zoals hieronder.

SET Name "Hakase Labs"
SET Blog "Howtoforge.com"

Keys *

Verwijder nu alle sleutels en gegevens met het hernoemde ‘FLUSHALL’ commando ‘DELITALL’.

DELITALL

Voor het ‘CONFIG’ commando kun je proberen de nieuwe waarde van de Redis Server configuratie op te halen of in te stellen. Het ‘CONFIG’ commando hernoemd tot ‘REDISCONFIG’.

REDISCONFIG get bind
REDISCONFIG get requirepass

En hieronder staat het resultaat van deze nieuwe hernoemde aangepaste commando’s.

Gebruik het commando REDISCONFIG

De basisinstallatie van Redis Server op CentOS 7 Server is voltooid, en de basisbeveiliging voor Redis Server is toegepast.

Referentie