Memcached - по. которое отвечает за кэширование данных в ОЗУ на основе хэш таблиц и доступна для можества серверов. С его помощью оптимизируют производительность базы данных, ПО временно сохраняет часто запрашиваемые или недавно извлеченные записи в памяти. Уменьшает количество прямых запросов к базам данных. Поскольку такие системы, как Memcached, при неправильной настройке подвергают сервер dos-атакам, важно заранее обеспечить безопасность серверов Memcached. Расскажу, как защитить сервер Memcached, привязав установку к локальному сетевому интерфейсу.

     И так нам понадобится виртуалка или комп с установленной centos 7. Подключаемся к ней с помощью PUTTY (как смотрим тут). Сначала надо проверить может уже установлен memcached, для этого выполните команду:

[root@test ~]# netstat -plunt 

Если вывод говорит , что команда неизвестна вам потребуется установить net-tools выполнив команду:

[root@test ~]#  yum install net-tools

Теперь снова повторяем команду netstat , вывод должен быть примерно таким (при условии , что memcached установлен):

[root@test ~]# netstat -plunt
....
tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 26537/memcached

....

Если в выводе нет подобной записи, ставим memcached из официальных репозиториев CentOS. Обновляем локальный индекс пакетов:

[root@test ~]#  yum update

Теперь сам пакет, ну и если надо библиотеку инструментов (я ставлю):

[root@test ~]#  yum install memcached libmemcached

Запускаем и включаем в автозагрузку:

[root@test ~]# systemctl start memcached

[root@test ~]# systemctl enable memcached

ОК, переходим к настройке:

Проверим настройку в конфигурационном файле /etc/sysconfig/memcached, а также отключим прослушиватель UDP. Эти действия защитят сервер от атак. Открываем файл:

[root@test ~]# nano /etc/sysconfig/memcached

Находим переменную OPTIONS:

. . .
OPTIONS=""

Подключение к локальному сетевому интерфейсу ограничит трафик клиентами одной машины. Для этого нужно добавить -l 127.0.0.1 в переменную OPTIONS. Это ограничение может быть слишком строгим для определенных сред, но это будет хорошим началом в настройке безопасности.

Поскольку протокол UDP используется в dos атаках намного эффективнее, чем TCP, также можно отключить прослушиватель UDP. Для этого добавьте параметр -U 0 в переменную OPTIONS. В результате файл должен выглядеть следующим образом:

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1 -U 0"

Сохраняем и закрываем файл ctrl+O,ctrl+X.

Перезапускаем сервис Memcached:

[root@test ~]# systemctl restart memcached

Убедитесь, что Memcached привязан к локальному интерфейсу и прослушивает только TCP-соединения:

[root@test ~]# netstat -plunt
. . .
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 2383/memcached
. . .

Должна быть только запись TCP, что подтверждает, что memcached привязан к адресу 127.0.0.1 и использует только протокол TCP.

Теперь убедитесь, что вы разрешили доступ к серверу Memcached, открыв порт 11211 в брандмауэре:

[root@test ~]# firewall-cmd --permanent --zone=public --add-port=11211/tcp

[root@test ~]# firewall-cmd --reload

 Установите расширения и библиотеки Memcached для PHP, Perl, Python:

[root@test ~]# yum install php-pecl-memcache perl-Cache-Memcached python-memcached

Перезапустите сервис Apache или Nginx, чтобы отразить изменения.

[root@test ~]# systemctl restart httpd
[root@test ~]# systemctl restart nginx

Вот, както так.