Redis için şifre nasıl belirlenir?


87

Yerel makinemde redis ile çalışıyorum, bu yüzden php istemcimle sunucuya bağlanmak için gerçekten bir parola ayarlamama gerek yok (istemci olarak predis kullanıyorum). Ancak, uygulamamı canlı bir sunucuya taşıyorum, bu nedenle redis sunucuma bağlanmak için bir şifre oluşturmak istiyorum.

Birkaç sorum var:

  • Şifreyi nasıl ayarlayacağımı internette kontrol ettim ve görünüşe göre redis.conf'a şifreyi eklemem gerekiyor. Yine de şifreyi oluşturmak için yapılandırma dosyasına tam olarak ne eklemem gerektiğini bulamadım.

  • ayrıca önceden de şifreyi nasıl eklemeliyim. Redis sunucusuna bağlanmak için aşağıdaki parametre dizisini kullanıyorum

    $ sunucum = array ('ana bilgisayar' => '127.0.0.1', 'bağlantı noktası' => 6379, 'veritabanı' => 1);

şifreyi bu şekilde eklemeli miyim?

> $my_server = array('host'     => '127.0.0.1','port'     =>
> 6379,'database' => 1,'password'=>password);
  • son soru, canlı sunucuda redis sunucumu durdurmaya çalışıyorum. Aşağıdaki komutu her girdiğimde aynı hata mesajını almaya devam ediyorum

    redis-server durdurma

    [23925] 23 Eyl 20:23:03 # Önemli hata, 'durdur' yapılandırma dosyası açılamıyor

    genellikle yerel makinemde giriyorum

    /etc/init.d/redis-server stop

redis sunucusunu durdurmak, ancak /etc/init.d dosyamda redis-server adlı bir işlem olmadığından canlı sunucumda çalışmıyor.

Yanıtlar:


123

Şifreyi ayarlamak için redis.conf dosyanızı düzenleyin, bu satırı bulun

# requirepass foobared

Ardından açıklamayı kaldırın ve parolanızı şifrenizle değiştirin. Oldukça uzun bir şey seçtiğinizden emin olun, 32 karakter veya daha fazlası muhtemelen iyi olacaktır, yapılandırma dosyasındaki notlarda da belirtildiği gibi, bir dış kullanıcının saniyede 150.000 şifreyi tahmin etmesi kolaydır.

Predis kullanarak yeni şifrenizle kimlik doğrulaması yapmak için, gösterdiğiniz sözdizimi doğrudur. Bağlantı parametrelerinden biri olarak şifre eklemeniz yeterlidir.

Redis'i kapatmak için ... pidfileayar için yapılandırma dosyanızı kontrol edin , muhtemelen

pidfile /var/run/redis.pid

Komut satırından şunu çalıştırın:

cat /var/run/redis.pid

Bu size çalışan sunucunun işlem kimliğini verir, ardından işlemi bu pid'i kullanarak sonlandırır:

kill 3832

Güncelleme

Ayrıca şunu da eklemek istedim /etc/init.d/redis-server stop, canlı sunucunuzda çalışmaya alışkın olduğunuzu da yapabilirsiniz . /Etc/init.d/ içindeki tüm bu dosyalar sadece kabuk betikleri, redis-sunucu komut dosyasını yerel sunucunuzdan alın ve aynı konumdaki canlı sunucuya kopyalayın ve sonra vi ile ne yaptığına bakın. kullanmayı seviyorsanız, bazı yolları ve benzerlerini değiştirmeniz gerekebilir, ancak oldukça basit olmalıdır.


1
Bu, Windows'ta çalışmıyor gibi görünüyor. Her iki conf dosyasını da denedim. Redis yeniden başlatmayı birçok kombinasyonda denedim. İşe yarayan tek şey şuydu: "redis-cli yapılandırma seti biraz paspas gerektiriyor". Ek olarak, sunucu her yeniden başlatıldığında / kapatıldığında, şifre kaybediyordu. Sanırım bu pencereli.
Jeffz

1
Seçilen kurulum sürecine bağlı olarak Redis yapılandırma dosyasını "vi /etc/redis/redis.conf" veya "vi /etc/redis/6379.conf" (ör.) Olarak alabiliriz; burada "6379", için seçilen değerdir. Liman!
Eduardo Lucio

Maksimum şifre uzunluğu var mı?
AndreasKralj

Ayrıca, redis sunucusu çalışıyorsa, başlangıçta en üstteki pid'i yazdırır ... Redis sürümü = xxx bit = 64, commit = xxxxxx, değiştirildi = 0, pid = xxxx
dave4jr

Redis daha iyi hale geldi, makineler daha hızlı hale geldi. Redis 6'nın yapılandırma dosyasında "Redis oldukça hızlı olduğu için dışarıdan bir kullanıcı modern bir kutuya karşı saniyede 1 milyona kadar şifre deneyebilir" diyor. 150K :-) Ben şahsen openssl rand 50 | openssl base64 -Auzun bir şifre oluşturmak için böyle bir şey kullanıyordum . Ancak, şimdi ACL kullanmak daha iyidir.
Lashae

67

istemcide aşağıdaki komutu da kullanabilirsiniz

cmd :: config set requirepass p@ss$12E45

yukarıdaki komut p@ss$12E45bir redissunucu şifresi olarak ayarlanacaktır .


1
Sadece eklemek için: tutorialspoint.com/redis/redis_security.htm adresinde belirtildiği gibi redis-cli ile oturum açmak için önce çalıştırarak redis kabuğuna girin redis-cli.exe. Ardından yazın AUTH <password>.
arun

6
Ve devre dışı şifre doğrulaması için, sadece kullanımconfig set requirepass ""
Arun

3
Redis'i yeniden başlatırsanız eski haline sıfırlanacaktır. Yani, conf dosyasını da ekleyin.
theGamblerRises

Config set requiredepass "myPassword" bu komut benim için çalışmıyor, bu komutu çalıştırdığımda hatasız çalışıyor. Ardından Redis örneğimi yeniden başlattım. Ancak yine de herhangi bir şifreyi kanıtlamadan CLI'den Redis örneğine ping atabilirim. Daha sonra redis.conf'umu requiredepass özniteliği için kontrol ettim, orada varsayılan durumda buldum, bu da yapılandırma set mustepass komutunun, çalışmamasının nedeni bu yüzden config'imdeki needepass değerini ayarlayamadığı anlamına geliyor. Neden çalışmadığına dair herhangi bir tahmin / sebep var mı?
Ashish Shukla

52

Misal:

redis 127.0.0.1:6379> AUTH PASSWORD
(error) ERR Client sent AUTH, but no password is set
redis 127.0.0.1:6379> CONFIG SET requirepass "mypass"
OK
redis 127.0.0.1:6379> AUTH mypass
Ok

Redis-py kullanılıyorsa, ilişkili komut şu redis.Redis.config_set('requirepass', "mycoolpassword")
şekildedir

Config set requiredepass "myPassword" bu komut benim için çalışmıyor, bu komutu çalıştırdığımda hatasız çalışıyor. Ardından Redis örneğimi yeniden başlattım. Ancak yine de herhangi bir şifreyi kanıtlamadan CLI'den Redis örneğine ping atabilirim. Daha sonra redis.conf'umu requiredepass özniteliği için kontrol ettim, orada varsayılan durumda buldum, bu da yapılandırma set mustepass komutunun, çalışmamasının nedeni bu yüzden config'imdeki needepass değerini ayarlayamadığı anlamına geliyor. Neden çalışmadığına dair herhangi bir tahmin / sebep var mı?
Ashish Shukla

21
sudo nano /etc/redis/redis.conf 

bul ve uncomment line # requirepass foobared , ardından sunucuyu yeniden başlat

şimdi şifren foobared


18

redis-cli kullanarak:

root@server:~# redis-cli 
127.0.0.1:6379> CONFIG SET requirepass secret_password
OK

bu geçici olarak şifre belirleyecektir (yeniden başlatılana veya sunucu yeniden başlatılana kadar)

test şifresi:

root@server:~# redis-cli 
127.0.0.1:6379> AUTH secret_password
OK

7

redis yapılandırma dosyasını aç

sudo nano /etc/redis/redis.conf 

parola ayarla

yerine koymak

# requirepass foobared

ile

requirepass YOURPASSPHRASE

redis'i yeniden başlat

redis-server restart

5

Bunun için redis yapılandırma dosyasını güncellemeniz gerekir.Varsayılan olarak, redis için herhangi bir şifre yoktur.

01) redis yapılandırma dosyasını açın

sudo vi /etc/redis/redis.conf

GÜVENLİK bölümünün altında gerekli şifre alanını bulun ve bu alanın açıklamasını kaldırın. Ardından "foobared" yerine şifrenizi ayarlayın

# requirepass foobared

Gibi olmalı

requirepass YOUR_PASSWORD

Daha sonra redis'i yeniden başlatın ve redis-cli'yi başlatın.

Parolayı doğru ayarlayıp ayarlamadığınızı kontrol etmeniz gerekirse, aşağıdaki komutları redis-cli'de çalıştırabilirsiniz.

sithara@sithara-X555UJ ~ $ redis-cli
127.0.0.1:6379> set key1 18
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth admin
OK
127.0.0.1:6379> get key1
(nil)
127.0.0.1:6379> exit


sithara@sithara-X555UJ ~ $ redis-cli
127.0.0.1:6379> set key1 18
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth admin
OK
127.0.0.1:6379> set key2 check
OK
127.0.0.1:6379> get key2
"check"
127.0.0.1:6379> get key1
(nil)
127.0.0.1:6379> set key1 20
OK
127.0.0.1:6379> get key1
"20"
127.0.0.1:6379> exit

'


4

adım 1. aşağıdaki komutu kullanarak redis sunucusunu durdurun /etc/init.d/redis-server durdurma adımı 2. komutu girin: sudo nano /etc/redis/redis.conf

adım 3. # requiredepass foobared kelimesini bulun ve # öğesini kaldırın ve foobared'i PAROLANIZ olarak değiştirin

ör. gerekli pasolu kök


2

Şifreyi ayarlamak için tam olarak yapılandırma dosyasına eklemem gereken şeyi bulamadım.

/etc/redis/redis.confREPLICATION ile LIMITS arasında yer alması gereken GÜVENLİK bölümünde konfigürasyon dosyası bulunmalı ve şifre oluşturulabilir. Parola kurulumu, Requepass yönergesi kullanılarak yapılır. Daha fazla bilgi için AUTH komut açıklamasına bakmayı deneyin .


1

Redis şifresi nasıl belirlenir?

1. adım /etc/init.d/redis-server stop komutunu kullanarak redis sunucusunu durdurun

adım 2. komutu girin: sudo nano /etc/redis/redis.conf

adım 3. # requiredepass foobared kelimesini bulun ve # öğesini kaldırın ve foobared'i PAROLANIZ olarak değiştirin

ör. gerekli pasolu kök

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.