Тривиальная задачка — 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}

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

Командировка в столицу (О работе)  23.04.2007

Уж послали так послали. 10, 11 и 12 апреля провел в столице нашей родины. Привез от туда немного фотографий, заряд бодрости и не самую лучшую определенность в том что будет завтра. В целом поездка удалась.

Зарабатывать в Москве можно.  Причем в Москве можно много зарабатывать, но жить там абсолютно расхотелось после поездки. Тем более деньги можно зарабатывать и в Ростове достаточно приятные. 🙂

В последнее время все больше углубляюсь в информационную безопасность и  все больше не люблю майкрософт. Как бы банально это не звучало, но линукс (как серверная ОС) намного гибче и безопасней. Проблемы ИБ это далеко не проблемы конкретной ОС или отдельно взятого приложения, это система, над которой надо постоянно работать совершенствуя её.

Mail.ru не работает — перегрелись сервера (О разном)  29.03.2007

Примерно на 15 минут сервис бесплатной почты Mail.ru полностью вышел из строя. До этого, в течение часа наблюдались перебои в работе почтового сервиса. Как сообщили источники в Mail.ru, произошло это из-за высокой температуры на серверной площадке компании «Golden telecom» (сейчас там 37 градусов по Цельсию). Неполадки затронули и других клиентов «GT» (Pochta.ru, Mamba.ru, банк «Русский стандарт», «МакДональдс» и др.).

По словам специалистов, такие происшествия не проходят без последствий для оборудования: «Горят сервера, камни, веники, маршрутизаторы, а это стоит огромные деньги. Теряется почта юзеров, а потом мы виноваты», – говорит один из сотрудников Mail.ru.
На момент написания данной заметки полная работа почты и агента Mail.ru все еще не была восстановлена.

Скопировал отсюда: http://www.habrahabr.ru/blog/mail_ru/8095.html

23 год от рождества Борисова :) (О разном)  28.03.2007

Сегодня мне таки исполнилось 22 года. Еще одна маленькая ступенька большого пути. За год произошла масса приятных событий и перемен в жизни. Надеюсь год грядущий таит в себе не меньше положительных моментов.

Поздравления принимаю еще со вчера, приятно очень. Спасибо всем кто поздравил и еще поздравит меня сегодня! Очень приятно получать весточки со всей страны, и не только из России.
🙂

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;

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

Первое приближение… (О разном)  27.03.2007

Вроде как начинает ощущаться первое приближение праздника, а настроение плавно уходит в неопределенное состояние. Даже не знаю в чем причина, но ощущение как будто всё вокруг ждет от меня чего то...а я ничего особенного не хочу делать, хочу кофе, хочу в Таганрог, хочу фотографировать...

Уже сегодня начинают приходить поздравления. На самом деле очень приятно получать весточки и поздравления от самых разных людей...

Собственно……рабочее утро! (Фото-мир)  23.03.2007

Вот такой я сегодняшний…
Только сейчас вспомнил что на моем блоге так и нет моей фотки. Не нашел ничего приличного и решил сделать её. Не люблю "постановочные" фото, поэтому бардак на столе даже пальцем не тронул... 🙂

Ростов, ЗЖМ, Коммунистический, рассвет… (Фото-мир)  22.03.2007

Рассвет на “западном”. 6:45 утра.

Сегодня снял попути на работу... Жаль на фото не передаются мои ощущения в тот момент, на душе весна, хотелось петь и танцевать, даже не знаю почему именно!

Вобщем все идет отлично! Желаю всем удачного дня!

Gentoo Portage на Mac OS X — рождение! (Linux)  21.03.2007

Долго ли, коротко ли.....становится постепенно макинтош похож на человека 🙂

В процессе участвуют:
1. Документация с офф.сайта gentoo
2. Достаточно прямые для этого дела руки
3. Желание добиться результата
4. И немного классической музыки... 🙂

Процесс еще идет, но я уже наткнулся на грабли. В процессе компиляции coreutils-6.7-r1 на сборке sha512 процессор ушел в "сотку", а компилятор в петлю. Проблема решилась временной сменой версии компилятора:
# gcc_select 3.3
# emerge  --oneshot --nodeps sys-apps/coreutils
# gcc_select 4.0

Процесс пошел дальше... Если наткнусь еще на какие нибудь грабли, обязательно напишу здесь об этом.

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

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

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

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