Uzak bağlantılar için Redis bağlantı noktasını açın


119

Redis'e sunucuda ping ping yapabilirim:

# redis-cli ping
PONG

Ama uzaktan, sorunlarım var:

$ src/redis-cli -h REMOTE.IP ping
Could not connect to Redis at REMOTE.IP:6379: Connection refused

Yapılandırmada standart bağlantı noktasını aldım:

# Accept connections on the specified port, default is 6379.
# If port 0 is specified Redis will not listen on a TCP socket.
port 6379

Öyleyse belki uzak Ubuntu makinesinde 6379 numaralı bağlantı noktasını açmalıyım? Nasıl yaparım?


redis uzak makinede dinlemiyor mu?
Sergio Tulentsev

belki, nasıl kontrol edilir
Maxim Yefremov

Ufw'yi devre dışı bıraktın mı?
insign

Yanıtlar:


214

Redis sunucusunda uzaktan erişime izin vermek için bağlama seçeneğini ayarladınız mı?

Önce (dosya /etc/redis/redis.conf)

bind 127.0.0.1

Sonra

bind 0.0.0.0

ve sudo service redis-server restartsunucuyu yeniden başlatmak için çalıştırın . Sorun bu değilse, erişimi engelleyebilecek güvenlik duvarlarını kontrol etmek isteyebilirsiniz.

Önemli: Kullanımdaki bağlantı noktasına kimin bağlanacağını kontrol etmek için bir güvenlik duvarı (iptables, ufw ..) kullanmıyorsanız, HERKES bu Redis örneğine bağlanabilir. RedisAUTH kullanmadan bu, herkesin verilerinize erişebileceği / değiştirebileceği / silebileceği anlamına gelir. Dikkatli ol!


2
yapılandırma dosyasında dizeden bind 0.0.0.0sonra dize ekledim bind 127.0.0.1. Yeniden başlatılan redis. Ve şimdi uzaktan bağlanabilir.
Maxim Yefremov

bind 0.0.0.0Tek bind 127.0.0.1 0.0.0.0
başımıza

1
@Nyxynyx 0.0.0.0 tüm adaptörlere bağlanır, bu yüzden gereksizdir. Yine de bir fark yaratmamalı.
MildlySerious

1
Herhangi bir ip aramasına redis açmak güvenli midir? Redis'e yalnızca belirli IP'lerden erişimi nasıl kısıtlayabiliriz?
brsbilgic

1
@MildlySerious çok teşekkürler. Güvenlik duvarı mı yoksa ağ mı yoksa başka bir sorun mu olduğunu anlamak için neredeyse 2 haftayı boşa harcadık. Ancak bu değişiklik şampiyon gibi çalıştı.
kinnu

23

Benim için şunları yapmam gerekiyordu:

1- Yorum yap bind 127.0.0.1

2- değiştirme protected-modeiçinno

3- Sunucumu iptables( https://www.digitalocean.com/community/tutorials/how-to-implement-a-basic-firewall-template-with-iptables-on-ubuntu-14-04 ) ile koru


1
0.0.0.0 bind kullanmak zorunda kaldım. "127.0.0.1 bağlama" benim için çalışmadı. "Korumalı modu" "hayır" olarak ayarlamama gerek yoktu. Uyarı: "Bağlama" işleminden önce boş alan bırakmayın, aksi takdirde sunucu başlamaz. Not: Redis'in Windows bağlantı noktasını kullanıyorum
Josh

7

Redis sunucunuzu daha fazla güvenlik altına almadan bunu yapmanın sizi saldırıya açık bırakabileceği için iyi bir fikir değildir. AUTH'yi de uyguladığınızdan veya başka şekilde güvence altına aldığınızdan emin olun. Ayrıntılar için http://redis.io/topics/security bakın.


3

1- Comment out bind 127.0.0.1

2- Parolanızı zorunlu hale getirin

ardından güvenlik duvarının bağlantı noktanızı engelleyip engellemediğini kontrol edin

iptables -L -n

hizmet iptables durdur


3
  1. $ REDIS_HOME / redis.conf dosyasını açın ve açıklamayı kaldırın ve requirepass -YOUR-PASSWORD-HERE-parolanızı belirtilen satırlara yazın.

  2. Redis-cli kullanarak redis'e giriş yapın ve komut kullanarak şifrenizi veritabanında doğrulayın auth -YOUR-PASSWORD-HERE-.

  3. $ REDIS_HOME / redis.conf içindeki dizesini olarak değiştirerek korumalı modu devre dışı bırakın protected-mode no.

  4. Tüm bağlantı noktası değerlerini arayın ve hepsini yorumlayın. bind 0.0.0.0$ REDIS_HOME / redis.conf dosyasına eklemeniz yeterli.

  5. Güvenlik duvarınızı devre dışı bırakın veya redis bağlantı noktasını açın.

  6. Redis kullanmaya başlayın ./redis-server $REDIS_HOME/redis.conf.

  7. Yapılandırmayı üzerinden kontrol edin ./redis-cli -h -YOUR-IP- -a -YOUR-PASSWORD-HERE-.

  8. Yapılandırmayı üzerinden kontrol edin ./redis-cli -h -YOUR-IP- ping.

9
Lütfen asla "Güvenlik duvarınızı devre dışı bırakın" tavsiyesinde bulunmayın.
Samantha Atkins

3
  1. Dosyayı yerinde açın /etc/redis.conf

  2. Yorum Yap bind 127.0.0.1

  3. Redis'i yeniden başlatın:

     sudo systemctl start redis.service
    
  4. Güvenlik Duvarını Devre Dışı Bırak:

     systemctl disable firewalld
    
  5. Güvenlik Duvarını Durdurun:

     systemctl stop firewalld
    

O zaman dene:

redis-cli -h 192.168.0.2(ip) -a redis(username)

1

AWS ec2 bulut sunucusunu kullanıyorsanız, zorunlu olduğuna inandığım bir fazladan adım daha vardır. Adım 3'ü kaçırdım ve güvenlik grubuna bir gelen kuralı eklemeyi anlamam bütün günümü aldı

Adım 1 (önceki gibi): redis.conf'unuzda, 0.0.0.0'ı bağlamak için 127.0.0.1'i değiştirin.

Adım 2 (önceki gibi): redis.conf dosyanızda korumalı modu evet korumalı moda değiştirin hayır

Amazon Ec2 Bulut Sunucusu için önemli:

Adım3: Mevcut ec2 makinenizde güvenlik grubuna gidin. 6379 portlu özel TCP için bir gelen kuralı ekleyin ve "her yerden kullan" seçeneğini seçin.


1

Benim durumumda, redis-stabil kullanıyorum

Go to redis-stable path 
 cd /home/ubuntu/software/redis-stable

Redis.conf dosyasını açın

vim redis.conf

Değişim bind 127.0.0.1Tobind 0.0.0.0

değiştirmek protected-mode yesTo protected-mode no

Redis sunucusunu yeniden başlatın:

/etc/init.d/redis-server stop
 redis-server redis.conf

0

Bağlama ve korumalı modun her ikisi de temel adımlardır. Ancak ufw etkinleştirilirse, ufw'de redis bağlantı noktasına izin vermeniz gerekir.

  1. Ufw durumunu kontrol edin ufw status, Status: activeardından redis-bağlantı noktasına izin verinufw allow 6379
  2. vi /etc/redis/redis.conf
  3. Değişim bind 127.0.0.1Tobind 0.0.0.0
  4. değiştirmek protected-mode yesToprotected-mode no
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.