Открываем конфиг сислога и вписываем:
!suhosin
*.* /var/log/suhosin
На самом деле, с сухосином подстава: даже с указанными строками он в messages пишет, поэтому надо или из строки с messages удалить *.notice, или вписать в конец первой части ;suhosin.none (ДО /var/log/messages), без пробелов.
вариант 2: указываем прямо ему, куда пишем. Например через suhosin.log.script.name, принимает 2 аргумента.
Перезапускаем сервис
Теперь надо настроить ротацию логов - на загруженном веб сервере он может очень быстро расти.
Во фре это newsyslog, конфиг в /etc/newsyslog.conf
/var/log/suhosin 644 15 1024 * ZC
Тут C=create, Z=gzip - сжать gzip, и если такого не было - создать. При создании нового выставить права 644, хранить 15 предыдущих файлов, ограничиваем по размеру файла в 1024кб (если надо по времени - вместо 1024 ставим *, а вместо звёздочки - когда, обычно это @TO0)
По последнему аргументу - если мы вычищали syslog, то пути к пиду не должно быть: программа писала в сислог и надо именно его логи крутить, что по умолчанию и делается. Если же вписали имя конфига в сам сухосин - тут надо указать пид апача, чтобы он перезапустил апач с сухосином. Поэтому последним аргуметом будет путь к пиду апача.
В линуксах это обычно logrotate, и наши конфиги надо пихать в /etc/logrotate.d/
О причинах:
вариант 1: в скриптах выставлено увеличение памяти, например строка в логе
Apr 28 12:13:46 srv suhosin[25059]: ALERT - script tried to increase memory_limit to 536870912 bytes which is above the allowed value (attacker '1.2.3.4', file '/usr/home/user/data/www/site.ru/bitrix/php_interface/dbconn.php', line 39)
На 39 строке видим
@ini_set("memory_limit", "512M");а у нас лимит стоит 128М. Так что или уменьшать в этой переменной (что возможно не всегда, например если это чужие сайты на хостинге), или увеличивать выделение памяти сайту.
Вариант 2: просто кривые движки или с частыми проверками "сколько же мне могут отдать"
Apr 27 22:04:24 srv suhosin[8322]: ALERT - script tried to increase memory_limit to 4294967295 bytes which is above the allowed value (attacker '1.2.3.4', file '/usr/home/user/data/www/site.ru/includes/class_xml.php', line 35)
Хотя такие строки как раз надо проверять - ни один нормальный скрипт не запросит 4 гига памяти и это похоже на атаку переполнением. Впрочем, это скорее всего тоже бага в движке сайта. Но в данном случае было прописано
@ini_set('memory_limit', -1);
Вариант 3:
Apr 28 12:18:05 srv suhosin[28777]: ALERT - configured request variable name length limit exceeded - dropped variable '...'
Чаще всего это говорит о криворукости программистов. Или предложить им ввести лимиты на длину, или увеличить эти самые лимиты. Зачастую правильнее следить за длиной...
Вариант 4: это уже 99% - атака
Apr 28 14:09:55 srv suhosin[5007]: ALERT - configured GET variable value length limit exceeded - dropped variable 'q' (attacker '1.2.3.4', file '/home/user/data/www/site.ru/index.php')
Hi there, sorry i don't speak russian.
ОтветитьУдалитьThis error "configured GET variable value length limit exceeded - dropped variable 'q'" is often not an attack.
For some reason some browser get redirected multiple times and the URL gets longer everytime. These users usually come from facebook links.. I still didn't find the origin of the problem leading to these multiple redirects..