Настрой Snuffleupagus на freebsd 14

Itnull

Команда форума
Администратор

1. Установка пакета​

Сначала проверьте версию PHP:


php -v


Для FreeBSD чаще используются php82, php83 или php84.


Установка через pkg​


sudo pkg install php83-snuffleupagus


Если используете другую версию PHP:


php82-snuffleupagus
php84-snuffleupagus

Пакет установит:

/usr/local/lib/php/20230831/snuffleupagus.so


(путь зависит от PHP API version)




2. Подключение модуля в PHP​


Создайте файл:

/usr/local/etc/php/ext-20-snuffleupagus.ini

Содержимое:

extension=snuffleupagus.so
sp.configuration_file=/usr/local/etc/php/snuffleupagus.rules


Проверить загрузку модуля:

php -m | grep snuffleupagus




3. Создание файла правил​


Создайте:

/usr/local/etc/php/snuffleupagus.rules


Минимальный безопасный базовый набор:

# уровень логирования
sp.global.log_level("info");

# запрет опасных функций
sp.disable_function.function("system").drop();
sp.disable_function.function("exec").drop();
sp.disable_function.function("shell_exec").drop();
sp.disable_function.function("passthru").drop();
sp.disable_function.function("proc_open").drop();

# защита от небезопасной десериализации
sp.disable_function.function("unserialize").drop();

# защита cookie
sp.cookie.name("PHPSESSID").secure().httponly();

# защита от weak random
sp.disable_function.function("mt_rand").drop();




4. Перезапуск PHP​


Если используется PHP-FPM:

service php_fpm restart

Если Apache:

service apache24 restart


Если nginx + php-fpm:

service php_fpm restart
service nginx restart




5. Проверка работы​


php -i | grep snuffleupagus


Должно быть:

snuffleupagus support => enabled

Также можно проверить загрузку правил:

tail -f /var/log/php-fpm.log




6. Рекомендуемые настройки для FreeBSD production​


Дополнительно в php.ini:

expose_php = Off
display_errors = Off
allow_url_include = Off
session.cookie_httponly = On
session.cookie_secure = On




7. Проверка через тестовый скрипт​


Создайте файл:

<?php
system("id");
?>


Если правило работает — Snuffleupagus заблокирует выполнение.
 

Создайте аккаунт или войдите в систему, чтобы комментировать

Вы должны быть зарегистрированным, чтобы оставить комментарий

Создать аккаунт

Создайте аккаунт в нашем сообществе.

Войти

У вас уже есть аккаунт? Войдите здесь.

Назад
Сверху Снизу