• Ubuntu
  • Ubuntu Sunucuda Redis Server Kurulumu

Ubuntu 20.04 sunucuda Redis kurulumu yapıp, güvenlik ayarlarını yapacağız.

Ön Şartlar

Aşağıdaki makalede anlatıldığı gibi sudo ayrıcalıklarına sahip root olmayan yeni bir kullanıcı oluşturup, UFW güvenlik duvarı ayarlarını yapın.

https://flarumtr.com/d/2035-ubuntu-sifir-sunucu-ilk-kurulumu

Ubuntu Redis Kurulumu ve Yapılandırması

Redis’i yüklemek için Ubuntu deposunu kullanacağız. İlk önce depomuzu güncelleyelim.

sudo apt update

Ardından aşağıdaki komutu yazarak Redis kurulumunu yapın.

sudo apt install redis-server

Yukarıdaki komut Redis’i sunucunuza indirip kuracaktır. Ancak otomatik gelen ayarları değiştirmemiz gerekiyor.

sudo nano /etc/redis/redis.conf

Dosyasını açın. supervised satırını bulun ve karşısına systemd yazın.

supervised systemd

Şimdi dosyayı kaydedip kapatmak için CTRL+X ardından Y ve ENTER tuşlayın.

Ardından, yapılandırma dosyasında yaptığınız değişikliklerin aktif olması için Redis’i yeniden başlatın:

sudo systemctl restart redis.service

Artık Redis Ubuntu 20.04 makinenizde çalışmaya başladı. Kullanmaya başlamadan önce Redis’in doğru çalışıp çalışmadığını test edelim.

Redis’i Testi

Redis’in sunucuda çalışıp çalışmadığını test ederek işe başlayalım.

sudo systemctl status redis

Hatasız çalışıyorsa, bu komut aşağıdakine benzer bir çıktı verecektir:

● redis-server.service - Advanced key-value store
     Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-04-30 23:26:54 UTC; 4s ago
       Docs: http://redis.io/documentation,
             man:redis-server(1)
    Process: 36552 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)
   Main PID: 36561 (redis-server)
      Tasks: 4 (limit: 2345)
     Memory: 1.8M
     CGroup: /system.slice/redis-server.service
             └─36561 /usr/bin/redis-server 127.0.0.1:6379

Çıkmak için CTRL+Z sonra ENTER tuşlayın.

Redis’i test etmek için Redis’in komut satırı istemcisini kullanacağız.

redis-cli

ping komutla bağlantıyı test edelim :

127.0.0.1:6379 > ping

Çıktısı aşağıdaki gibi olmalı.

PONG

127.0.0.1:6379 > set test "It's working!"

OK

127.0.0.1:6379 > get test

Her şeyin yolunda gittiyse aşağıdaki çıktıyı almalısınız:

"It's working!"

Redis-cli’den çıkmak için:

127.0.0.1:6379 > exit

Son bir test daha yapacağız. Bakalım Redis yeniden başlatıldığında da başarılı bir şekilde çalışmaya devam edecek mi?

sudo systemctl restart redis

Ardından komut satırı Redis istemcisine tekrar bağlanın:

redis-cli

127.0.0.1:6379 > get test

"It's working!"

127.0.0.1:6379 > exit

Localhost’a Bağlama

Redis uzak bağlantılara izin verilecek şekilde yapılandırılabilir ama bu güvenli değildir. Ben bu makalede Redis’i sadece localhost bağlantılarına izin verecek şekilde yapılandıracağım.

Redis yapılandırma dosyasını düzenlemek açın:

sudo nano /etc/redis/redis.conf

bind 127.0.0.1 ::1 satırının başında # (hashtag) varsa kaldırın.
Dosyayı kaydedip kapatın.
Ardından, systemd’nin değişikliklerinizi okuduğundan emin olmak için hizmeti yeniden başlatın:

sudo systemctl restart redis

Değişikliklerin aktif olup olmaığını kontrol etmek için netstat kullanacağız. Eğer sunucunuzda kurulu değilse aşağıdaki komutla kurabilirsiniz.

sudo apt install net-tools

sudo netstat -lnp | grep redis

Outputtcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 14222/redis-server
tcp6 0 0 ::1:6379 :::* LISTEN 14222/redis-server

Artık Redis kurulumunuz yalnızca localhost’u dinlediğine göre, kötü niyetli kişilerin istekte bulunması veya sunucunuza erişim sağlamaları daha zor olacaktır.

Redis Şifresinin Yapılandırılması

Bu adımda Redis için bir şife belirleyeceğiz. Redis şifresi Redis yapılandırma dosyasında bulunur. Bu dosyaya Redis şifresini ekleyeceğiz. Redis şifresinin güçlü bir şifre olması gerekiyor. Şifre belirlemek için en mantıklı çözümlerden biri openssl kullanmaktır.

openssl rand 60 | openssl base64 -A

Çıktısı aşağıdakine benzer bir şifre örneği olacaktır:

RBOJ9cCNoGCKhlEBwQLHri1g+atWgn4Xn4HwNUbtzoVxAYxkiYBi7aufl4MILv1nxBqR4L6NNzI0X6cE

Şimdi bu şifresi Redis yapılandırma dosyasına ekleyeceğiz.

sudo nano /etc/redis/redis.conf

Aşağıdaki bölümü bulun.

requirepass foobared

requirepass foobared satırının başıdna bulunan # kaldırın ve foobared yazan kısmı kaldırın ve yerine belirlediğiniz şifreyi girin.
Yani son görünüm aşağıdakine benzer olmalı.

requirepass RBOJ9cCNoGCKhlEBwQLHri1g+atWgn4Xn4HwNUbtzoVxAYxkiYBi7aufl4MILv1nxBqR4L6NNzI0X6cE

Değişikliklerin aktif olması için Redis’i yeniden başlatın.

sudo systemctl restart redis.service

Şifrenin çalışıp çalışmadığını test etmek için Redis-cli istemcisini açın:

redis-cli

127.0.0.1:6379 > set key1 10

Yukarıdaki komutu girince Redis bir hata vermesi lazım.

(error) NOAUTH Authentication required.

Şimdi belirlediğimiz Redis şifresi doğrulamasını yapalım.

127.0.0.1:6379 > auth buraya_redis_sifresini_yazin

Output
OK

127.0.0.1:6379 > set key1 10

Output
OK

127.0.0.1:6379 > get key1

Output
"10"

127.0.0.1:6379 > quit

Redis Tehlikeli Komutlarını Yeniden Adlandırma

Redis’te varsayılan olarak gelen bi diğer güvenlik özelliği ise tehlikeli olarak kabul edilen komutlardır. Şimdi bu komutları kendi kafamıza göre yeniden adlandıracağız. Kötü niyetli kişilerin bir şekilde sunucunuzu ele geçirirse verilerinizi güvende tutmak için bunu yapmakta fayda var.
Şimdi Redis yapılandırma dosyasını tekrar açalım.

sudo nano /etc/redis/redis.conf

Tehlikeli olarak kabul edilen komutları devre dışı bırakmak için:

rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command DEBUG ""

Bir komutu yeniden adlandırmak için ise aşağıdakine benzer giriş yapmanız gerekiyor.

rename-command CONFIG ASC12_CONFIG

Yapılan değişikliklerin aktif olması için Redis’i yeniden başlatın.

sudo systemctl restart redis.service

Sonuç

Ubuntu 20.04 yüklü sunucuda Redis kurulumunu gerçekleştirip, sadece localhost bağlantılarına cevap verecek şekilde yapılandırdık. Ayrıca Redis için bir şifre velirleyip tehlikeli olarak kabul edilen komutların bir kısmını devre dışı bıraktık, bir kısmını ise yeniden adlandırıp Redis sunucusunu güvenli hale getirmiş olduk.

Hadımköy Kombi Servisi Minecraft Türk Sunucular