Поиск по этому блогу

пятница, 30 сентября 2011 г.

Визуализация логов сервера Apache

Logstalgia является визуализатором трафика веб-сайта. Все запросы к серверу представляются в формате игры понг, как сражение между веб-сервером и бесконечный поток запросов.

Запросы в виде разноцветных шаров (того же цвета, что и хост), двигаются по экрану. Успешные запросы отбиваются в то время как неудачные (например, 404 - Файл не найден) не отбиваются.

Пути запросов объединены в общее пространство путем выявления общих префиксов пути. Связанные пути сгруппированы по рубрикам. Например, по умолчанию путь, заканчивающийся в PNG, GIF или JPG сгруппированы под заголовком изображения. Пути, которые не соответствуют ни одной из указанных групп объединены в раздел Разное.

Logstalgia требуется видеокарта, с поддержкой OpenGL, по-этому ее лучше размешать на рабочей станции, а не на сервере.

Программу можно скачать вот здесь

Демонстрационное видео работы программы


P.S. интересно выглядит в Logstalgia DDoS-атака














среда, 28 сентября 2011 г.

База Dbmail 2.1.1 стала занимать много места, решено было ее почистить. Сначала делаем
dbmail-util -dy - помечает сообщения в корзине статусом DELETE.
Затем dbmail-util -py - удаляет все сообщения со статусом DELETE.
Если будит что-то говорить про сухой режим (dry-run) то можно попробовать сделать так dbmail-util -ubdsy
Также полезно будит произвести оптимизацию таблиц dbmail_messages, dbmail_messageblks
optimize table "название таблицы"

После всех этих манипуляций размер базы уменьшился с 14Гбайт до 300 Мбайт

Ну и за компанию очистить все почтовые ящики пользователя можно так dbmail-users -e "имя пользователя"
Просмотр количества писем в очереди mailq
Удаление всех писем из очереди postsuper -d ALL

вторник, 27 сентября 2011 г.

Почему Англичане говорят по Американски



Картинка кликабельна
Оригинал сообщения здесь







среда, 21 сентября 2011 г.

Если бы Apple выпустила принтер, то он был бы таким




понедельник, 12 сентября 2011 г.

Мир глазами пьяного

Для того чтобы узнать как все было на самом деле необходимо подвести курсор




пятница, 9 сентября 2011 г.

Как я устанавливал Dialup Admin

FreeBSD 7.3, Apache 2.2.16, FreeRADIUS 2.1.10, PHP 5.3.3, mysql-server-5.5.7

Скачал с официального сайта архив радиус сервера. Из скачанного архива копируем папку dialup_admin  в ту директорию которая в файле httpd.conf указана в качестве ServerRoot у меня это /usr/local. Создаем симлинк ln -s /usr/local/dialup_admin/htdocs /usr/local/www/dialup_admin для того, чтобы сервер имел доступ к php скриптам, которые там хранятся. У меня /usr/local/www указана в качестве DocumentRoot.

Настраиваем Apapche на выполнение php скриптов
LoadModule php5_module        libexec/apache22/libphp5.so
AddModule mod_php5.c
AddType application/x-httpd-php .php .htm .html .phtml


Создаем запись для dialup_admin в httpd.conf
Alias /dialup_admin/  /usr/local/www/dialup_admin/

Options  +FollowSymLinks +Indexes +SymLinksIfOwnerMatch
AllowOverride All
DirectoryIndex  index.html
AddType application/x-httpd-php .php .htm .html .phtml
AuthName "Restricted Area"
AuthType Basic
AuthUserFile /usr/local/www/dialup_admin/.htpasswd
require valid-user
Order allow,deny
Allow from all


Создаем файл .htpasswd следующей командой htpasswd -c .htpasswd login password

Создаем в mysql базу, если не была до этого создана. Для этого заходим в mysql mysql -u username -p

И собственно создаем базу
mysql> CREATE DATABASE radius;
mysql> exit;

Затем создаем таблицы
mysql -u root -p radius < /usr/local/dialup_admin/sql/mysql/badusers.sql 
mysql -u root -p radius < /usr/local/dialup_admin/sql/mysql/mtotacct.sql 
mysql -u root -p radius < /usr/local/dialup_admin/sql/mysql/totacct.sql 
mysql -u root -p radius < /usr/local/dialup_admin/sql/mysql/userinfo.sql

На этапе создания таблицы userinfo.sql возникла вот такая ошибка ERROR 1067 (42000) at line 4: Invalid default value for 'id' Решилось вот это строчке id int(10) DEFAULT '0' NOT NULL auto_increment, на такую вот id int(10) NOT NULL auto_increment,

Ну а дальше укажу только то что изменял:
general_radiusd_base_dir: /usr/local/sbin/
general_radclient_base_dir: /usr/local/dialup_admin/bin/
general_domain: my_site.su
general_radclient_bin: %{general_radclient_base_dir}
general_radius_server: 1.2.3.4
general_radius_server_port: 1812
general_radius_server_auth_proto: pap или chap на выбор
general_radius_server_secret: который использовался при настройке NAS сервера
sql_password_attribute: Cleartext-Password если необходимо, чтобы пароли в базе хранились открытым текстом, иначе будут шифроваться
general_decode_normal_attributes: no
general_use_session: yes

Все настройка закончена, набираем в браузере http;//my_site.su/dialup_admin

На главной странице в левом фрейме
php notice undefined offset 1 in /usr/local/dialup_admin/conf/config.php

исправил в php.ini
error_reporting=E_ALL & ~E_NOTICE
и убрал из disable_functions значение exec

if ($use_session == 0 && $config['general_use_session'] == 'yes'){
<------>// Start session
<------>@session_start();
<------>if (isset($nas_list))
<------><------>session_register('nas_list');

Проблема:
PHP Warning:  Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension  does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0

Лечение:
php.ini
session.bug_compat_42 = Off
session.bug_compat_warn = Off

Проблема:
Deprecated: Function session_register() is deprecated in /usr/local/dialup_admin/conf/config.php on line 108
Deprecated: Function session_register() is deprecated in /usr/local/dialup_admin/conf/config.php on line 71

Лечение:
session_register('nas_list'); заменить на $_SESSION['nas_list'];
session_register('mappings'); заменить на $_SESSION['mappings'];

Везде где встретится Deprecated: Function session_register() необходимо session_register('');
заменить на $_SESSION['']; потому, что session_redister начиная с версии php 5.3.x признана устаревшей

Проблема:
warning: mktime() expects parameter 1 to be long, string given 
Лечение:
$timest = mktime($time[0],$time[1],$time[2],$day[1],$day[2],$day[0]);--> $timest = mktime((int)$time[0],(int)$time[1],(int)$time[2],(int)$day[1],(int)$day[2],(int)$day[0]);

были еще вот такие ошибки DEBUG(SQL,MYSQL DRIVER) избавился следующим образом, в admin.conf sql_debug = false

Такого рода ошибки:
PHP Warning:  Invalid argument supplied for foreach() in /usr/local/dialup_admin/htdocs/user_new.php on line 103

PHP Warning:  Invalid argument supplied for foreach() in /usr/local/dialup_admin/htdocs/nas_admin.php on line 190
Исправил так:
перед foreach() следующей строки

if (is_array($$member_groups ))
{
 
if (is_array($my_nas_list))
{
соответственно

Для авторизации пользователей по протоколу CHAP пароли в базе должны храниться в формате plain_text.
Для смены формата необходимо написать следуюющее password_store_method=plain_text и при необходимости изменить аттрибуты пароля в базе