Совсем недавно, разработчики Cloudlinux и Kernelcare сделали хороший подарок всем владельцам серверов на CentOS — теперь администраторы, работающие с этой ОС могут бесплатно, без активации и покупки каких-либо лицензий воспользоваться патчами с защитой от симлинк-атаки.
Для этого на сервер нужно будет установить kernelcare, и настроить его на работу с бесплатным набором патчей. Ставим kernelcare и активируем патчсет:
# curl -s https://repo.cloudlinux.com/kernelcare/kernelcare_install.sh | bash # kcarectl --set-patch-type free --update
Далее смотрим, какому GID принадлежит Apache. На стандартных установках из RPM или с помощью пакетного менеджера, apache будет иметь gid 48. На серверах с cPanel gid апача будет 99. Создаём файл /etc/sysconfig/kcare/sysctl.conf, берём полученный gid, и прописываем туда:
fs.enforce_symlinksifowner = 1 fs.symlinkown_gid = 48
Важный момент — файл /etc/sysconfig/kcare/sysctl.conf не заменяет функционала привычного /etc/sysctl.conf полностью. Этот файл предусмотрен разработчиками потому, что при обновлении патчсета, заданные sysctl значения kernelcare сбрасываются. Будучи сохранёнными в этом файле, значения параметров, даже при обновлении патчей будут сохраняться.
Далее нам остаётся только применить правила в нашей системе, для этого выполняем команды:
# sysctl -w fs.enforce_symlinksifowner=1 # sysctl -w fs.symlinkown_gid=48
И радуемся, что одной головной болью на сервере большим количеством сайтов (которые периодически ломают) будет меньше.
Добрый день. А как сделать тоже самое для nginx