2016-02-24 2 views
0

Почему соединение Redis работает с C# без указания учетных данных? У меня этот код работает и подключается к удаленному серверу. Моя клиентская машина - это окна, а REMOTE-MACHINE - сервер Linux. Означает ли это, что кто-либо из моей локальной сети может подключиться?Почему соединение Redis работает с C# без указания учетных данных?

public class RedisConnectorHelper 
    {     
     static RedisConnectorHelper() 
     { 
      RedisConnectorHelper.lazyConnection = new Lazy<ConnectionMultiplexer>(() => 
      { 
       return ConnectionMultiplexer.Connect("REMOTE-MACHINE"); 
      }); 
     } 

     private static Lazy<ConnectionMultiplexer> lazyConnection;   

     public static ConnectionMultiplexer Connection 
     { 
      get 
      { 
       return lazyConnection.Value; 
      } 
     } 
    } 
+0

'Redis-cli' также работает без учетных –

ответ

1

С Redis Security страницы:

Redis предназначен для доступа из доверенных клиентов внутри доверенных сред. Это означает, что обычно не рекомендуется размещать экземпляр Redis непосредственно в Интернете или, в общем, в среде, где ненадежные клиенты могут напрямую обращаться к порту Redis TCP или UNIX.

Предоставлена ​​некоторая очень простая аутентификация с паролем, хранящимся в файле конфигурации, но, как описывают его документы, it provides a tiny layer of authentication.

Безопасность должна быть реализована на сетевом уровне с помощью брандмауэров, блокировки портов, SSL. Сам Redis не предоставляет SSL, но вы можете использовать SSL-прокси, например, Cloud-провайдеры, такие как Amazon и Azure, поставить прокси-сервер SSL перед их кластерами.

Redis клиенты, как StackExchange.Redis поддержки SSL, например, путем установки ssl=true в connection string

2

Поведение Redis по умолчанию позволяет принимать соединения без указания каких-либо учетных данных для этого. Если вы хотите изменить это, то измените файл Redis .conf, чтобы настроить его по своему вкусу. Что касается вашего вопроса в локальной сети, я понятия не имею, как настроена ваша сеть, поэтому я действительно не могу ответить на это для вас.

+0

Документов предупреждают, однако, что это очень слабая мера безопасности - пароли хранятся в файл конфигурации. Предполагается, что соединения «сервер-сервер» должны быть защищены на сетевом уровне, используя брандмауэры, блокирующие порты, серверные сертификаты и т. Д. –

Смежные вопросы