расположение моментального снимка redis не так, как указано в конфигурации

#redis

#redis

Вопрос:

После того, как некоторое время все работало нормально, я получаю сообщение об ошибке записи в моем экземпляре redis:

 (error) MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.
  

В журнале я вижу:

  9948:C 22 Mar 20:49:32.241 # Failed opening the RDB file root (in server root dir /var/spool/cron) for saving: Read-only file system
  

Однако мой конфигурационный файл redis — /etc/ redis / redis.conf, что подтверждено:

  redis-cli -p 6379 info | grep 'config_file'
 config_file:/etc/redis/redis.conf
  

И там у меня есть:

  dir /mnt/data/redis
  

И действительно, там есть снимок.

Но, несмотря на вышесказанное, redis теперь считает, что мой каталог данных

  redis-cli -p 6379 CONFIG GET dir
 1) "dir"
 2) "/var/spool/cron"
  

Соответствует ошибке, которую я получал, как указано выше.

Кто-нибудь может сказать мне, почему / как мой каталог данных меняется после запуска redis, так что он больше не соответствует тому, что указано в файле конфигурации?

Комментарии:

1. Возможно, кто-то изменил вашу dir конфигурацию с помощью CONFIG SET dir /var/spool/cron команды.

2. @for_stack никто другой не имеет доступа к этому компьютеру — по крайней мере, никто не находится на верхнем уровне. Хотя я начал замечать это, как только открыл порт для всего мира, чтобы иметь доступ к нему с других серверов. Это обычная атака? Возможно, мне нужно добавить некоторое промежуточное программное обеспечение, чтобы предотвратить зло.

3. Похоже, что открытие redis во вселенной — просто ужасная идея. Я ограничусь своей группой безопасности и / или внедрю промежуточное программное обеспечение. techrepublic.com/article /…

4. Да, открывать Redis для публики всегда плохая идея. Также проверьте это . Кажется, кто-то пытался взломать ваш сервер.

5. @for_stack и успешно. По крайней мере, в части изменения конфигурации и удаления данных. Хотя попытка записи в /var / spool / cron завершилась неудачей, поскольку это доступно только для чтения с точки зрения redis. Безопасность из-за неясности при сбое!

Ответ №1:

Итак, ответ заключается в том, что сервер redis был взломан и конфигурация изменена, что, как оказалось, очень легко сделать. (Я должен отметить, что у меня не было причин думать, что это было нелегко сделать. Я просто предположил, что в этом случае безопасность с помощью obscurity была достаточной — неправильно. Неважно, это была просто игровая площадка, а не какой-либо производственный сервер).

Поэтому не открывайте свой порт redis для всего мира. Используйте группы безопасности if в AWS, чтобы ограничить доступ к машинам, которым это необходимо, или используйте AUTH (что все равно не очень здорово, потому что тогда всем клиентам нужно знать единый пароль, который, по-видимому, также отправляется в открытом виде), или используйте какое-то промежуточное программное обеспечение, контролирующее доступ.

Взломать redis легко, это может скомпрометировать ваши данные и даже обеспечить несанкционированный доступ по SSH к вашему серверу. И именно поэтому вы не должны использовать highline.