Здесь показаны различия между двумя версиями данной страницы.
| Следующая версия | Предыдущая версия | ||
|
linux:libs:redis [2023/02/23 23:21] werwolf создано |
linux:libs:redis [2023/02/23 23:42] (текущий) werwolf |
||
|---|---|---|---|
| Строка 18: | Строка 18: | ||
| Обновите локальный кэш пакета ''apt'' и установите Redis с помощью следующей команды: | Обновите локальный кэш пакета ''apt'' и установите Redis с помощью следующей команды: | ||
| - | <code> | + | <code bash> |
| - | </code> | + | sudo apt update |
| - | + | sudo apt install redis-server | |
| - | - ''sudo apt update'' '''' | + | |
| - | - ''sudo apt install redis-server'''''' | + | |
| - | + | ||
| - | <code> | + | |
| </code> | </code> | ||
| - | ''''''''Copy'''' | ||
| После этого будет выполнена загрузка и установка Redis и ее зависимостей. После этого в файл конфигурации Redis, созданный автоматически при установке, необходимо внести одно важное изменение. | После этого будет выполнена загрузка и установка Redis и ее зависимостей. После этого в файл конфигурации Redis, созданный автоматически при установке, необходимо внести одно важное изменение. | ||
| Строка 34: | Строка 29: | ||
| <code> | <code> | ||
| + | sudo nano /etc/redis/redis.conf | ||
| </code> | </code> | ||
| - | |||
| - | - ''sudo nano /etc/redis/redis.conf'''''' | ||
| - | |||
| - | <code> | ||
| - | </code> | ||
| - | |||
| - | ''''''''Copy'''' | ||
| Внутри файла найдите директиву ''supervised''. Эта директива позволяет объявить систему инициализации для управления Redis как службой, предоставляя вам более широкий контроль за ее работой. Для директивы ''supervised'' по умолчанию установлено значение ''no''. Поскольку вы запускаете Ubuntu, которая использует систему инициализации systemd, измените значение на ''systemd'': | Внутри файла найдите директиву ''supervised''. Эта директива позволяет объявить систему инициализации для управления Redis как службой, предоставляя вам более широкий контроль за ее работой. Для директивы ''supervised'' по умолчанию установлено значение ''no''. Поскольку вы запускаете Ubuntu, которая использует систему инициализации systemd, измените значение на ''systemd'': | ||
| Строка 47: | Строка 36: | ||
| /etc/redis/redis.conf | /etc/redis/redis.conf | ||
| - | <code> | + | <code bash> |
| . . . | . . . | ||
| Строка 66: | Строка 55: | ||
| Это единственное изменение, которое вам нужно внести в файл конфигурации Redis на данный момент,поэтому сохраните и закройте его после завершения редактирования. Перезапустите службу Redis, чтобы изменения в файле конфигурации вступили в силу: | Это единственное изменение, которое вам нужно внести в файл конфигурации Redis на данный момент,поэтому сохраните и закройте его после завершения редактирования. Перезапустите службу Redis, чтобы изменения в файле конфигурации вступили в силу: | ||
| - | <code> | + | <code bash> |
| + | sudo systemctl restart redis.service | ||
| </code> | </code> | ||
| - | |||
| - | - ''sudo systemctl restart redis.service'''''' | ||
| - | |||
| - | <code> | ||
| - | </code> | ||
| - | |||
| - | ''''''''Copy'''' | ||
| После этого установка и настройка Redis будет закончена, и вы можете запускать его на вашем компьютере. Перед началом использования Redis рекомендуется сначала проверить корректность работы системы. | После этого установка и настройка Redis будет закончена, и вы можете запускать его на вашем компьютере. Перед началом использования Redis рекомендуется сначала проверить корректность работы системы. | ||
| Строка 85: | Строка 68: | ||
| <code> | <code> | ||
| + | sudo systemctl status redis | ||
| </code> | </code> | ||
| - | - ''sudo systemctl status redis'''''' | ||
| - | |||
| - | <code> | ||
| - | </code> | ||
| - | |||
| - | ''''''''Copy'''' | ||
| Если она запускается без ошибок, при вводе данной команды вы должны получить примерно следующий результат: | Если она запускается без ошибок, при вводе данной команды вы должны получить примерно следующий результат: | ||
| - | <code> | ||
| - | </code> | ||
| - | ''Output'' | + | <code bash> |
| - | + | ||
| - | <code> | + | |
| ● redis-server.service - Advanced key-value store | ● redis-server.service - Advanced key-value store | ||
| Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled) | Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled) | ||
| Строка 116: | Строка 90: | ||
| </code> | </code> | ||
| - | ''Здесь вы можете видеть, что служба Redis запущена и уже активирована, т.е. для нее настроен запуск при загрузке сервера.'' | + | Здесь вы можете видеть, что служба Redis запущена и уже активирована, т.е. для нее настроен запуск при загрузке сервера. |
| - | ''''''**Примечание:** данную опцию рекомендуется использовать во многих стандартных случаях использования Redis. Однако если вы предпочитаете запускать Redis каждый раз вручную при загрузке сервера, воспользуйтесь следующей командой:'' | + | **Примечание:** данную опцию рекомендуется использовать во многих стандартных случаях использования Redis. Однако если вы предпочитаете запускать Redis каждый раз вручную при загрузке сервера, воспользуйтесь следующей командой: |
| - | ''''<code> | + | <code bash> |
| + | sudo systemctl disable redis | ||
| </code> | </code> | ||
| - | |||
| - | - ''sudo systemctl disable redis'''''' | ||
| - | |||
| - | <code> | ||
| - | </code> | ||
| - | |||
| - | ''''''''Copy'''' | ||
| Чтобы убедиться, что Redis работает правильно, подключитесь к серверу с помощью клиента командной строки: | Чтобы убедиться, что Redis работает правильно, подключитесь к серверу с помощью клиента командной строки: | ||
| <code> | <code> | ||
| + | redis-cli | ||
| </code> | </code> | ||
| - | |||
| - | - ''redis-cli'''''' | ||
| - | |||
| - | <code> | ||
| - | </code> | ||
| - | |||
| - | ''''''''Copy'''' | ||
| В появившемся диалоговом окне протестируйте подключение с помощью команды ''ping'': | В появившемся диалоговом окне протестируйте подключение с помощью команды ''ping'': | ||
| - | <code> | + | <code bash> |
| + | ping | ||
| </code> | </code> | ||
| - | - ''ping'''''' | ||
| - | <code> | + | <code bash> |
| - | </code> | + | |
| - | + | ||
| - | ''''''''Copy'''' | + | |
| - | + | ||
| - | <code> | + | |
| - | </code> | + | |
| - | + | ||
| - | ''Output'' | + | |
| - | + | ||
| - | <code> | + | |
| PONG | PONG | ||
| </code> | </code> | ||
| - | ''Данный вывод подтверждает, что подключение сервера активно. Затем проверьте, что вы можете задать ключи:'' | + | Данный вывод подтверждает, что подключение сервера активно. Затем проверьте, что вы можете задать ключи: |
| - | + | <code bash> | |
| - | ''''<code> | + | set test "It's working!" |
| </code> | </code> | ||
| - | - ''set test "It's working!"'''''' | ||
| - | <code> | + | <code bash> |
| - | </code> | + | |
| - | + | ||
| - | ''''''''Copy'''' | + | |
| - | + | ||
| - | <code> | + | |
| - | </code> | + | |
| - | + | ||
| - | ''Output'' | + | |
| - | + | ||
| - | <code> | + | |
| OK | OK | ||
| </code> | </code> | ||
| - | ''Запросите значение с помощью следующей команды:'' | + | Запросите значение с помощью следующей команды: |
| - | ''''<code> | + | <code bash> |
| + | get test | ||
| </code> | </code> | ||
| - | - ''get test'''''' | ||
| - | |||
| - | <code> | ||
| - | </code> | ||
| - | |||
| - | ''''''''Copy'''' | ||
| Если все работает корректно, вы получите сохраненное значение: | Если все работает корректно, вы получите сохраненное значение: | ||
| - | <code> | + | <code bash> |
| - | </code> | + | |
| - | + | ||
| - | ''Output'' | + | |
| - | + | ||
| - | <code> | + | |
| "It's working!" | "It's working!" | ||
| </code> | </code> | ||
| - | ''Убедившись, что вы можете получить значение, закройте диалоговое окно Redis и вернитесь в командную строку:'' | + | <code bash> |
| - | ''''<code> | + | exit |
| </code> | </code> | ||
| - | - ''exit'''''' | ||
| - | |||
| - | <code> | ||
| - | </code> | ||
| - | |||
| - | ''''''''Copy'''' | ||
| В качестве последнего теста мы проверим, может ли Redis сохранять данные даже после остановки или перезапуска. Для этого необходимо перезапустить Redis: | В качестве последнего теста мы проверим, может ли Redis сохранять данные даже после остановки или перезапуска. Для этого необходимо перезапустить Redis: | ||
| - | <code> | + | <code bash> |
| + | sudo systemctl restart redis | ||
| </code> | </code> | ||
| - | |||
| - | - ''sudo systemctl restart redis'''''' | ||
| - | |||
| - | <code> | ||
| - | </code> | ||
| - | |||
| - | ''''''''Copy'''' | ||
| Откройте клиент командной строки и проверьте, что ваше тестовое значение все еще доступно: | Откройте клиент командной строки и проверьте, что ваше тестовое значение все еще доступно: | ||
| - | <code> | + | <code bash> |
| - | </code> | + | redis-cli |
| - | - ''redis-cli'''''' | ||
| - | |||
| - | <code> | ||
| </code> | </code> | ||
| - | ''''''''Copy'''' | ||
| - | <code> | ||
| - | </code> | ||
| - | - ''get test'''''' | + | <code bash> |
| + | get test | ||
| - | <code> | ||
| </code> | </code> | ||
| - | ''''''''Copy'''' | ||
| Значение вашего ключа должно оставаться доступным: | Значение вашего ключа должно оставаться доступным: | ||
| - | <code> | + | <code bash> |
| - | </code> | + | |
| - | + | ||
| - | ''Output'' | + | |
| - | + | ||
| - | <code> | + | |
| "It's working!" | "It's working!" | ||
| </code> | </code> | ||
| + | Выйдите в командную строку после завершения: | ||
| - | ''Выйдите в командную строку после завершения:'' | + | <code bash> |
| - | + | exit | |
| - | ''''<code> | + | |
| </code> | </code> | ||
| - | |||
| - | - ''exit'''''' | ||
| - | |||
| - | <code> | ||
| - | </code> | ||
| - | |||
| - | ''''''''Copy'''' | ||
| После этого установку Redis можно считать выполненной и готовой к работе. Однако некоторые настройки по умолчанию являются небезопасными и предоставляют злоумышленникам возможность атаковать ваш сервер и получить доступ к [[http://redis.io/topics/security|данным.Остальные шаги в этом руководстве описывают методы для устранения этих факторов уязвимости, как указано на официальном веб-сайте Redis]]. Хотя эти шаги не являются обязательными, и Redis будет функционировать, если вы решите не выполнять эти действия, но мы настоятельно рекомендуем вам выполнить описанные ниже шаги, чтобы повысить безопасность вашей системы. | После этого установку Redis можно считать выполненной и готовой к работе. Однако некоторые настройки по умолчанию являются небезопасными и предоставляют злоумышленникам возможность атаковать ваш сервер и получить доступ к [[http://redis.io/topics/security|данным.Остальные шаги в этом руководстве описывают методы для устранения этих факторов уязвимости, как указано на официальном веб-сайте Redis]]. Хотя эти шаги не являются обязательными, и Redis будет функционировать, если вы решите не выполнять эти действия, но мы настоятельно рекомендуем вам выполнить описанные ниже шаги, чтобы повысить безопасность вашей системы. | ||
| Строка 284: | Строка 184: | ||
| Чтобы исправить это, откройте файл конфигурации Redis для редактирования: | Чтобы исправить это, откройте файл конфигурации Redis для редактирования: | ||
| - | <code> | + | <code bash> |
| - | </code> | + | sudo nano /etc/redis/redis.conf |
| - | - ''sudo nano /etc/redis/redis.conf'''''' | ||
| - | |||
| - | <code> | ||
| </code> | </code> | ||
| - | ''''''''Copy'''' | ||
| - | Найдите эту строку и убедитесь, что она незакомментирована (удалите символ ''#'', если он существует): | + | Найдите эту строку и убедитесь, что она не закомментирована (удалите символ ''#'', если он существует): |
| /etc/redis/redis.conf | /etc/redis/redis.conf | ||
| - | <code> | + | <code bash> |
| bind 127.0.0.1 ::1 | bind 127.0.0.1 ::1 | ||
| </code> | </code> | ||
| Строка 307: | Строка 203: | ||
| <code> | <code> | ||
| + | sudo systemctl restart redis | ||
| + | |||
| </code> | </code> | ||
| - | - ''sudo systemctl restart redis'''''' | ||
| - | <code> | ||
| - | </code> | ||
| - | |||
| - | ''''''''Copy'''' | ||
| Чтобы убедиться, что изменение вступило в силу, запустите следующую команду ''netstat'': | Чтобы убедиться, что изменение вступило в силу, запустите следующую команду ''netstat'': | ||
| - | <code> | + | <code bash> |
| - | </code> | + | sudo netstat -lnp %%|%% grep redis |
| - | - ''sudo netstat -lnp %%|%% grep redis'''''' | ||
| - | |||
| - | <code> | ||
| </code> | </code> | ||
| - | ''''''''Copy'''' | ||
| - | <code> | + | <code bash> |
| - | </code> | + | |
| - | + | ||
| - | ''Output'' | + | |
| - | + | ||
| - | <code> | + | |
| tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 14222/redis-server | tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 14222/redis-server | ||
| tcp6 0 0 ::1:6379 :::* LISTEN 14222/redis-server | tcp6 0 0 ::1:6379 :::* LISTEN 14222/redis-server | ||
| </code> | </code> | ||
| - | ''Данный вывод указывает, что программа ''redis-server'' привязана к **localhost** (''127.0.0.1''), отражая изменения, которые вы только что внесли в файл конфигурации. Если вы увидите другой IP-адрес в этой колонке (например, ''0.0.0.0''), вам нужно еще раз проверить, что вы не закомментировали нужную строку и перезапустить службу Redis.'' | + | Данный вывод указывает, что программа ''redis-server'' привязана к **localhost** (''127.0.0.1''), отражая изменения, которые вы только что внесли в файл конфигурации. Если вы увидите другой IP-адрес в этой колонке (например, ''0.0.0.0''), вам нужно еще раз проверить, что вы не закомментировали нужную строку и перезапустить службу Redis. |
| Теперь, когда Redis использует только **localhost**, злоумышленникам будет труднее выполнять запросы или получить доступ к вашему серверу. Однако для Redis в настоящее время не настроено требование аутентификации пользователей перед внесением изменений в конфигурацию или данные, которые она хранит. Чтобы исправить это, Redis позволяет настроить требование аутентификации с помощью пароля перед внесением изменений через клиент Redis (''redis-cli''). | Теперь, когда Redis использует только **localhost**, злоумышленникам будет труднее выполнять запросы или получить доступ к вашему серверу. Однако для Redis в настоящее время не настроено требование аутентификации пользователей перед внесением изменений в конфигурацию или данные, которые она хранит. Чтобы исправить это, Redis позволяет настроить требование аутентификации с помощью пароля перед внесением изменений через клиент Redis (''redis-cli''). | ||
| Строка 346: | Строка 230: | ||
| Настройка пароля Redis позволяет использовать одну из двух встроенных функций безопасности — команду ''auth'', которая требует аутентификации клиентов для доступа к базе данных. Пароль настраивается непосредственно в файле конфигурации Redis, ''/etc/redis/redis.conf'', поэтому вам нужно снова открыть этот файл в предпочитаемом редакторе: | Настройка пароля Redis позволяет использовать одну из двух встроенных функций безопасности — команду ''auth'', которая требует аутентификации клиентов для доступа к базе данных. Пароль настраивается непосредственно в файле конфигурации Redis, ''/etc/redis/redis.conf'', поэтому вам нужно снова открыть этот файл в предпочитаемом редакторе: | ||
| - | <code> | + | <code bash> |
| + | sudo nano /etc/redis/redis.conf | ||
| </code> | </code> | ||
| - | |||
| - | - ''sudo nano /etc/redis/redis.conf'''''' | ||
| - | |||
| - | <code> | ||
| - | </code> | ||
| - | |||
| - | ''''''''Copy'''' | ||
| Прокрутите содержимое файла до раздела ''SECURITY'' и найдите следующую закомментированную директиву: | Прокрутите содержимое файла до раздела ''SECURITY'' и найдите следующую закомментированную директиву: | ||
| Строка 360: | Строка 238: | ||
| /etc/redis/redis.conf | /etc/redis/redis.conf | ||
| - | <code> | + | <code bash> |
| # requirepass foobared | # requirepass foobared | ||
| </code> | </code> | ||
| - | Разкомментируйте ее, удалив символ ''#'' и измените ''foobared'' на безопасный пароль. | + | Раз комментируйте ее, удалив символ ''#'' и измените ''foobared'' на безопасный пароль. |
| **Примечание:** над директивой ''requirepass'' в файле ''redis.conf'' располагается закомментированное предупреждение: | **Примечание:** над директивой ''requirepass'' в файле ''redis.conf'' располагается закомментированное предупреждение: | ||
| - | <code> | + | <code bash> |
| # Warning: since Redis is pretty fast an outside user can try up to | # Warning: since Redis is pretty fast an outside user can try up to | ||
| # 150k passwords per second against a good box. This means that you should | # 150k passwords per second against a good box. This means that you should | ||
| Строка 377: | Строка 255: | ||
| Таким образом, очень важно, чтобы вы указали очень надежный и очень длинный пароль. Вместо того чтобы придумать пароль самостоятельно, вы можете использовать команду ''openssl'' для генерации случайного пароля, как в следующем примере. Использовав вывод первой команды во второй команде ''openssl'', как показано здесь, вы сможете удалить любые переносы строк, созданные при выполнении первой команды: | Таким образом, очень важно, чтобы вы указали очень надежный и очень длинный пароль. Вместо того чтобы придумать пароль самостоятельно, вы можете использовать команду ''openssl'' для генерации случайного пароля, как в следующем примере. Использовав вывод первой команды во второй команде ''openssl'', как показано здесь, вы сможете удалить любые переносы строк, созданные при выполнении первой команды: | ||
| - | <code> | + | <code bash> |
| + | openssl rand 60 %%|%% openssl base64 -A | ||
| </code> | </code> | ||
| - | - ''openssl rand 60 %%|%% openssl base64 -A'''''' | ||
| - | |||
| - | <code> | ||
| - | </code> | ||
| - | |||
| - | ''''''''Copy'''' | ||
| Вывод должен выглядеть следующим образом: | Вывод должен выглядеть следующим образом: | ||
| - | <code> | + | <code bash> |
| - | </code> | + | |
| - | + | ||
| - | ''Output'' | + | |
| - | + | ||
| - | <code> | + | |
| RBOJ9cCNoGCKhlEBwQLHri1g+atWgn4Xn4HwNUbtzoVxAYxkiYBi7aufl4MILv1nxBqR4L6NNzI0X6cE | RBOJ9cCNoGCKhlEBwQLHri1g+atWgn4Xn4HwNUbtzoVxAYxkiYBi7aufl4MILv1nxBqR4L6NNzI0X6cE | ||
| </code> | </code> | ||
| - | ''Скопируйте и вставьте вывод этой команды в качестве нового значения для ''requirepass''. Оно должно выглядеть следующим образом:'' | + | Скопируйте и вставьте вывод этой команды в качестве нового значения для ''requirepass''. Оно должно выглядеть следующим образом: |
| - | <code> | + | <code bash> |
| + | nano /etc/redis/redis.conf | ||
| </code> | </code> | ||
| - | ''/etc/redis/redis.conf'' | + | <code bash> |
| - | + | ||
| - | <code> | + | |
| requirepass RBOJ9cCNoGCKhlEBwQLHri1g+atWgn4Xn4HwNUbtzoVxAYxkiYBi7aufl4MILv1nxBqR4L6NNzI0X6cE | requirepass RBOJ9cCNoGCKhlEBwQLHri1g+atWgn4Xn4HwNUbtzoVxAYxkiYBi7aufl4MILv1nxBqR4L6NNzI0X6cE | ||
| </code> | </code> | ||
| - | ''После установки пароля сохраните и закройте файл, а потом перезапустите Redis:'' | + | После установки пароля сохраните и закройте файл, а потом перезапустите Redis: |
| - | ''''<code> | + | <code bash> |
| + | sudo systemctl restart redis.service | ||
| </code> | </code> | ||
| - | |||
| - | - ''sudo systemctl restart redis.service'''''' | ||
| - | |||
| - | <code> | ||
| - | </code> | ||
| - | |||
| - | ''''''''Copy'''' | ||
| Чтобы убедиться, что пароль работает, откройте командную строку Redis: | Чтобы убедиться, что пароль работает, откройте командную строку Redis: | ||
| - | <code> | + | <code bash> |
| + | redis-cli | ||
| </code> | </code> | ||
| - | - ''redis-cli'''''' | ||
| - | <code> | ||
| - | </code> | ||
| - | |||
| - | ''''''''Copy'''' | ||
| Ниже показана последовательность команд, используемых для проверки работы пароля Redis. Первая команда пытается задать ключ для значения перед аутентификацией: | Ниже показана последовательность команд, используемых для проверки работы пароля Redis. Первая команда пытается задать ключ для значения перед аутентификацией: | ||
| - | <code> | + | <code bash> |
| - | </code> | + | set key1 10 |
| - | - ''set key1 10'''''' | ||
| - | |||
| - | <code> | ||
| </code> | </code> | ||
| - | ''''''''Copy'''' | ||
| Это не сработает, потому что вы не выполнили аутентификацию, поэтому Redis возвращает ошибку: | Это не сработает, потому что вы не выполнили аутентификацию, поэтому Redis возвращает ошибку: | ||
| - | <code> | + | <code bash> |
| - | </code> | + | |
| - | + | ||
| - | ''Output'' | + | |
| - | + | ||
| - | <code> | + | |
| (error) NOAUTH Authentication required. | (error) NOAUTH Authentication required. | ||
| </code> | </code> | ||
| - | ''Следующая команда выполняет аутентификацию с паролем, указанным в файле конфигурации Redis:'' | + | <code bash> |
| - | ''''<code> | + | auth RBOJ9cCNoGCKhlEBwQLHri1g+atWgn4Xn4HwNUbtzoVxAYxkiYBi7aufl4MILv1nxBqR4L6NNzI0X6cE |
| - | </code> | + | |
| - | - ''auth your_redis_password '''''' | ||
| - | |||
| - | <code> | ||
| </code> | </code> | ||
| - | ''''''''Copy'''' | ||
| Redis принимает пароль: | Redis принимает пароль: | ||
| - | <code> | + | <code bash> |
| - | </code> | + | |
| - | + | ||
| - | ''Output'' | + | |
| - | + | ||
| - | <code> | + | |
| OK | OK | ||
| </code> | </code> | ||
| - | ''После этого запуск предыдущей команды будет успешным:'' | + | После этого запуск предыдущей команды будет успешным: |
| - | ''''<code> | + | <code bash> |
| + | set key1 10 | ||
| </code> | </code> | ||
| - | - ''set key1 10'''''' | ||
| - | <code> | + | <code bash> |
| - | </code> | + | |
| - | + | ||
| - | ''''''''Copy'''' | + | |
| - | + | ||
| - | <code> | + | |
| - | </code> | + | |
| - | + | ||
| - | ''Output'' | + | |
| - | + | ||
| - | <code> | + | |
| OK | OK | ||
| </code> | </code> | ||
| - | ''''get key1'' запрашивает в Redis значение нового ключа.'' | + | get key1 запрашивает в Redis значение нового ключа. |
| - | <code> | + | <code bash> |
| - | </code> | + | get key1 |
| - | - ''get key1'''''' | ||
| - | |||
| - | <code> | ||
| </code> | </code> | ||
| - | ''''''''Copy'''' | ||
| - | <code> | ||
| - | </code> | ||
| - | ''Output'' | + | <code bash> |
| - | + | ||
| - | <code> | + | |
| "10" | "10" | ||
| </code> | </code> | ||
| - | ''Подтвердив, что вы можете выполнять команды в клиенте Redis после аутентификации, вы можете закрыть ''redis-cli'':'' | + | Подтвердив, что вы можете выполнять команды в клиенте Redis после аутентификации, вы можете закрыть ''redis-cli'': |
| - | <code> | + | <code bash> |
| - | </code> | + | quit |
| - | + | ||
| - | - ''quit'''''' | + | |
| - | + | ||
| - | <code> | + | |
| </code> | </code> | ||
| - | ''''''''Copy'''' | ||
| Затем мы рассмотрим переименование команд Redis, которые при ошибочном вводе или вводе злоумышленником могут причинить серьезный ущерб вашему компьютеру. | Затем мы рассмотрим переименование команд Redis, которые при ошибочном вводе или вводе злоумышленником могут причинить серьезный ущерб вашему компьютеру. | ||
| Строка 547: | Строка 362: | ||
| Чтобы активировать или отключить команды Redis, откройте файл конфигурации еще раз: | Чтобы активировать или отключить команды Redis, откройте файл конфигурации еще раз: | ||
| - | <code> | + | <code bash> |
| - | </code> | + | sudo nano /etc/redis/redis.conf |
| - | - ''sudo nano /etc/redis/redis.conf'''''' | ||
| - | |||
| - | <code> | ||
| </code> | </code> | ||
| - | |||
| - | ''''''''Copy'''' | ||
| **Предупреждение.** Седующие шаги с демонстрацией отключения или переименования команд являются примерами. Вы должны отключить или переименовать команды, имеющие смысл для вас. Вы можете просмотреть полный список команд самостоятельно и узнать, как они могут использоваться злоумышленниками, по адресу [[http://redis.io/commands|redis.io/commands]]. | **Предупреждение.** Седующие шаги с демонстрацией отключения или переименования команд являются примерами. Вы должны отключить или переименовать команды, имеющие смысл для вас. Вы можете просмотреть полный список команд самостоятельно и узнать, как они могут использоваться злоумышленниками, по адресу [[http://redis.io/commands|redis.io/commands]]. | ||
| Строка 563: | Строка 373: | ||
| /etc/redis/redis.conf | /etc/redis/redis.conf | ||
| - | <code> | + | <code bash> |
| . . . | . . . | ||
| # It is also possible to completely kill a command by renaming it into | # It is also possible to completely kill a command by renaming it into | ||
| Строка 578: | Строка 388: | ||
| /etc/redis/redis.conf | /etc/redis/redis.conf | ||
| - | <code> | + | <code bash> |
| . . . | . . . | ||
| # rename-command CONFIG "" | # rename-command CONFIG "" | ||
| Строка 590: | Строка 400: | ||
| После переименования команды примените изменения, перезапустив Redis: | После переименования команды примените изменения, перезапустив Redis: | ||
| - | <code> | + | <code bash> |
| - | </code> | + | |
| - | - ''sudo systemctl restart redis.service'''''' | + | sudo systemctl restart redis.service |
| - | <code> | ||
| </code> | </code> | ||
| - | ''''''''Copy'''' | ||
| Чтобы протестировать новую команду, откройте командную строку Redis: | Чтобы протестировать новую команду, откройте командную строку Redis: | ||
| - | <code> | + | <code bash> |
| - | </code> | + | redis-cli |
| - | + | ||
| - | - ''redis-cli'''''' | + | |
| - | + | ||
| - | <code> | + | |
| </code> | </code> | ||
| - | ''''''''Copy'''' | ||
| Затем выполните аутентификацию: | Затем выполните аутентификацию: | ||
| - | <code> | + | <code bash> |
| + | auth your_redis_password | ||
| </code> | </code> | ||
| - | - ''auth your_redis_password '''''' | ||
| - | <code> | + | <code bash> |
| - | </code> | + | |
| - | + | ||
| - | ''''''''Copy'''' | + | |
| - | + | ||
| - | <code> | + | |
| - | </code> | + | |
| - | + | ||
| - | ''Output'' | + | |
| - | + | ||
| - | <code> | + | |
| OK | OK | ||
| </code> | </code> | ||
| - | ''Предположим, вы переименовали команду ''CONFIG'' в ''ASC12_CONFIG'', как показано в предыдущем примере. Сначала попробуйте воспользоваться первоначальной команду ''CONFIG''. Команда не будет выполнена, потому что вы переименовали ее:'' | + | Предположим, вы переименовали команду ''CONFIG'' в ''ASC12_CONFIG'', как показано в предыдущем примере. Сначала попробуйте воспользоваться первоначальной команду ''CONFIG''. Команда не будет выполнена, потому что вы переименовали ее: |
| - | <code> | + | <code bash> |
| + | config get requirepass | ||
| </code> | </code> | ||
| - | - ''config get requirepass'''''' | ||
| - | <code> | ||
| - | </code> | ||
| - | ''''''''Copy'''' | ||
| - | <code> | ||
| - | </code> | ||
| - | ''Output'' | + | <code bash> |
| - | + | ||
| - | <code> | + | |
| (error) ERR unknown command 'config' | (error) ERR unknown command 'config' | ||
| </code> | </code> | ||
| + | Вызов переименованной команды будет успешным. Регистр не имеет значения: | ||
| - | ''Вызов переименованной команды будет успешным. Регистр не имеет значения:'' | + | <code bash> |
| + | asc12_config get requirepass | ||
| - | ''''<code> | ||
| </code> | </code> | ||
| - | - ''asc12_config get requirepass'''''' | ||
| - | <code> | ||
| - | </code> | ||
| - | ''''''''Copy'''' | ||
| - | <code> | + | <code bash> |
| - | </code> | + | |
| - | + | ||
| - | ''Output'' | + | |
| - | + | ||
| - | <code> | + | |
| 1) "requirepass" | 1) "requirepass" | ||
| 2) " your_redis_password " | 2) " your_redis_password " | ||
| </code> | </code> | ||
| - | ''После этого вы можете закрыть ''redis-cli'':'' | + | После этого вы можете закрыть ''redis-cli'': |
| - | <code> | + | <code bash> |
| + | exit | ||
| </code> | </code> | ||
| - | - ''exit'''''' | ||
| - | <code> | ||
| - | </code> | ||
| - | |||
| - | ''''''''Copy'''' | ||
| Обратите внимание, что если вы уже используете командную строку Redis, а затем перезапустите Redis, вам нужно будет повторно выполнить аутентификацию. Иначе вы получите следующую ошибку при вводе команды: | Обратите внимание, что если вы уже используете командную строку Redis, а затем перезапустите Redis, вам нужно будет повторно выполнить аутентификацию. Иначе вы получите следующую ошибку при вводе команды: | ||
| - | <code> | ||
| - | </code> | ||
| - | ''Output'' | + | <code bash> |
| - | + | ||
| - | <code> | + | |
| NOAUTH Authentication required. | NOAUTH Authentication required. | ||
| </code> | </code> | ||
| - | ''''''В отношении практики переименования команд в конце раздела ''SECURITY'' файла ''/etc/redis/redis.conf'' есть следующее предостережение:'' | + | В отношении практики переименования команд в конце раздела ''SECURITY'' файла ''/etc/redis/redis.conf'' есть следующее предостережение: |
| - | > ''Обратите внимание, что изменение имени команд, зарегистрированных в файле AOF или передающихся “slave” компонентам системы, может вызывать проблемы.'' | + | > Обратите внимание, что изменение имени команд, зарегистрированных в файле AOF или передающихся “slave” компонентам системы, может вызывать проблемы. |
| **Примечание:** проект Redis предпочитает использовать термины «master» и «slave», в то время как DigitalOcean предпочитает использовать варианты «primary» и «secondary». Чтобы не допустить путаницы, мы решили использовать здесь термины, используемые в документации Redis. | **Примечание:** проект Redis предпочитает использовать термины «master» и «slave», в то время как DigitalOcean предпочитает использовать варианты «primary» и «secondary». Чтобы не допустить путаницы, мы решили использовать здесь термины, используемые в документации Redis. | ||