RST MySQL v2.0 (Linux, О работе)  11.09.2007

В работе довольно часто возникает необходимость быстро подцепиться к удаленному серверу mysql на linux-хостинге. Осложняется эта задача тем что на дешевых тарифных планах отсутствует доступ по ssh. Решение я нашел давно и успешно им пользуюсь, но недавно обнаружил что авторский сайт закрылся. Поэтому выкладываю у себя описание от автора и сам скрипт.
Все права на скрипт и описание принадлежат RusH Security Team.

RST MySQL v2.0
Утилита a'la phpmyadmin для работы с базами данных MySQL.
Язык: PHP
Возможности: (далее…)

Тривиальная задачка — Squid / MySQL / Postfix / Courier-IMAP / ClamAv / SpamAssassin (Linux, О работе)  07.05.2007

Внимание задача:

  1. Авторизация и учет трафика по каждому пользователю
  2. Почтовый сервер и почтовые ящики каждому пользователю
  3. Возможность самостоятельно добавлять пользователей и ящики не обладая специальными навыками
  4. Разумная стоимость решения
  5. Возможность масштабирования
  6. Отсутствие привязки к домену Windows

Внимание решение:
Сервер на базе ОС Linux

  1. Прокси Squid с авторизацией через базу MySQL
  2. SMTP-сервер Postfix с хранилищем данных в базе MySQL и администрированием через веб-интерфейс PostfixAdmin
  3. Фильтрация спама (SpamAssassin) и вирусов (ClamAv)
  4. IMAP-сервер Courier-IMAP с авторизацией через MySQL базу
  5. Веб-интерфейс для работы с почтой с функциями Groupware работающий по с сервером по протоколу IMAP
  6. Инсталляция и настройка всего комплекса обошлась заказчику в 10 т.р. (+ средней мощности персональный компьютер, используемый в качестве сервера)
  7. Масштабирование ограничено лишь фантазией заказчика и аппаратным обеспечением (Celeron 1,8 Ггц/1024 мб оперативной памяти/80 Ггб свободного пространства на жестком диске – хватило без проблем на 200 пользователей)

В дополнение ко всему сделал импорт таблицы логинов и паролей из файла Excel (база пользователей изначально была создана секретарем в экселе). Сейчас дописываю скрипт веб-интерфейса для управления учетными записями доступа к Интернету через прокси-сервер.

Теперь подробнее о том, как я это сделал.
Установку Squid, MySQL и Courier-IMAP я описывать не буду, т.к. она ничем не отличается от установки любого другого ПО в ОС Linux. Для авторизации пользователей использовался squid helper написаный на C (взять можно здесь).
Postfix обязательно должен быть собран с поддержкой MySQL. В процессе настройки main.cf я использовал следующие конфиги связей с mysql (не забудте изменить пароли и логины MySQL пользователя).

Для осуществления фильтрации почты на спам и вирусы необходимо взять скрипт прописав в нем свои пути к clamav и сокету spamd, и указать его в master.cf следующим образом:
smtp inet n - n - - smtpd -o content_filter=clamassassin
clamassassin unix - n n - - pipe
flags=Rq user=clamav argv=/etc/postfix/clamassassin.sh -f ${sender} -- ${recipient}

Основные тезисы я изложил. Дальше писать сейчас не времени.
Если буду вопросы по описанной мной схеме, буду писать более детальное продолжение...

MySQL Warning 1052 Column ‘url’ in group statement is ambiguous (Linux)  27.03.2007

Наткнулся на занятную ошибку в MySQL.

Делаем следующий запрос: select sum(size) as size,trim(leading "http://" from substring_index(url,'/',3)) as url from table_name where to_days(date)>=to_days("20070315") and to_days(date)<=to_days("20070331") and user='user' group by url order by size desc;
В системе учета трафика над которой я работаю таким запросов можно увидеть сайты посещенные пользователем за определенный период времени с группировкой по адресу и сортировкой по суммарному объему данных полученных с каждого ресурса.

Получаем ответ без группировки по урлам и с примерно вот таким окончанием: 113 rows in set, 1 warning (21.28 sec)

Рассматриваем проблемму более детально:
mysql> show warnings;
+---------+------+----------------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------------+
| Warning | 1052 | Column 'url' in group statement is ambiguous |
+---------+------+----------------------------------------------+

Причем пару недель назад все работало как часы.
Решение нашел модифицировав запрос таким образом: select sum(size) as size,trim(leading "http://" from substring_index(url,'/',3)) as url_col from table_name where to_days(date)>=to_days("20070315") and to_days(date)<=to_days("20070331") and user='user' group by url_col order by size desc;

Теперь копаюсь в логах и ищу причину начала такого поведения... Если раскопаю, напишу...

SMTP-авторизация пользователей из MySQL базы (Linux)  20.03.2007

Сейчас наткнулся на документацию о настройке этого чуда и вспомнил как подкидывался пытаясь заставить её работать на одном из сових серверов. Убил больше недели на разнообразные извращения с pam_mysql пока не сделал все намного проще через saslauthd.

Вот статья на которую я наткнулся сегодня

Могу смело рекомендавать связку Postfix + MySQL + Courier-IMAP + ClamAV + Spamassasin всем желающим запустить на своем сервере гибкую почтовую систему. В документации этой не хватает только проверки на вирусы и спам. Если дойдут руки выложу здесь свою схему фильтрации спама и вирусов на почтовом сервере.