Tuesday, October 24, 2006

 

Сохранение POST-запросов в apache

В некоторые моменты чувствую себя очень неуютно из-за того, что нет возможности посмотреть, что конкретно делают с моим сервером некоторые персоны. Я долго искал возможность логгировать все, в том числе и POST запросы клиентов и нашел способ - через mod_security.

Устанавливается он элементарно apxs -cia mod_security.c (см документацию, правда, для его работы в наиболее удобном, "Concurrent", режиме логгирования, нужен модуль unique_id. После установи модуля следует добавить следующую секцию в httpd.conf:


<IfModule mod_security.c>
SecAuditEngine On

# У mod_security есть два механизма логгирования, Concurrent - более быстрый и продвинутый.
SecAuditLogType Concurrent

# Здесь будет храниться индекс - файл, по структуре похожий на access_log + идентификаторы, по которым можно найти полную информацию в StorageDir
SecAuditLog /var/log/www/audit/index

# Тут хранятся все данные запросов. Каждый запрос в отдельном файле. Запросы разнесены по каталогам (вместе все запросы одной транзакции, вместе все транзакции одного дня)
SecAuditLogStorageDir /var/log/www/audit/data/

# Наиболее полное логгирование (man)
SecAuditLogParts ABCDEFGHZ

# Добавить обработку POST данных.
SecFilterScanPOST On
SecFilterEngine On

# Следующие строки нужны для сохранения загруженных на сервер файлов:
SecUploadDir /var/log/www/audit/upload
SecUploadKeepFiles On

</IfModule>


Включать это имеет смысл при подозрении, что кто-то пытается использовать вашу систему не по назначению, теперь любой шаг проходимца будет записан.


p.s. Работоспособность конфига проверялась в apache 1.3.37, mod_security 1.9.4, но работать должно и в 2.0/2.0

Sunday, October 08, 2006

 

KOI8-R локаль в [K]Ubuntu


UPD: обновлено для Ubuntu 6.10

"А по улицам там ходят медведи с балалайками и разговаривают на KOI8-R" (почти BOR). Так вот, я и есть такой медведь. И когда мне дают дистрибутив с локалью UTF8 по умолчанию, я буду все переделывать. Для себя и для других медведей - инструкция:

а) Все начинается с генерации локали ru_RU-KOI8-R, делается это командой locale-gen. В качестве парамета ей целесообразно указать язык (ru), иначе она будет генерировать локали всех языков (/usr/share/i18n/locales/*), но только для кодировки UTF-8. Для языка ru будут сгенерированы следующие локали:
#cat /var/lib/locales/supported.d/ru
ru_RU.UTF-8 UTF-8
ru_UA.UTF-8 UTF-8

Следующими командами можно заставить сгенерировать ее локаль для кодировки KOI8-R:
#sudo -s sh -c 'echo "ru_RU.KOI8-R KOI8-R" >> /var/lib/locales/supported.d/ru'
#sudo locale-gen ru
Generating locales...
ru_RU.KOI8-R... done
ru_RU.UTF-8... done
ru_UA.UTF-8... done
Generation complete.

б) Далее, обновляем переменные окружения. Имя конфиг-файла зависит от версии Ubuntu:
Для Ubuntu <6.10 sudo vim /etc/environment
Ubuntu 6.10 sudo vim /etc/default/locale
В нем пишем: LANG="ru_RU.KOI8-R"
LANGUAGE="ru_RU:ru:en_GB:en"

С русификацией иксов покончено

в) Приступаем к консоли. Пишем:
apt-get install console-cyrillic
В файл .profile добавляем:
loadkeys /usr/share/console-cyrillic/ru-koi8-r.kmap
consolechars -f /usr/share/console-cyrillic/UniCyr_8x14.psf -m /usr/share/console-cyrillic/koi8-r.acm.gz

Готово.
У меня заработало все, кроме mcedit, который пришлось пересобрать. (В Kubuntu 6.10 заработал и mcedit)


This page is powered by Blogger. Isn't yours?