Рубрика - 'Linux'

Смена имени интерфейса после подключения (Linux)  19.06.2007

Столкнулся с необходимостью привязать имя интерфейса к ip-адресу при входящем подключении VPN.

Нашел вот такое решение:
/etc/ppp/ip-up дописать следующее:
if [ $5 = "remote_ip_addr" ];
then
/sbin/ifconfig $1 down
/sbin/ip link set $1 name iface_name
/sbin/ifconfig iface_name up
fi

P.S. Не надо ругаться, что я не даю никаких разъяснений. Эта запись скорее для себя, чтобы не забыть. Но если у Вас есть вопросы по теме, то я с удовольствием на них отвечу...

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

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

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 всем желающим запустить на своем сервере гибкую почтовую систему. В документации этой не хватает только проверки на вирусы и спам. Если дойдут руки выложу здесь свою схему фильтрации спама и вирусов на почтовом сервере.

Mac OS X (Linux)  20.03.2007

Страшнее макинтоша может быть только два макинтоша 🙂
На новой работе у меня как раз два макинтоша: ноутбук и сервер. Ноутбуку я ума дал достаточно быстро. 🙂 Стал с него серфить по инету, сидеть в аське, приучил к нему firefox и thunderbird. Вобщем сделал из него человека, а с маршрутизатором дела идут пока сложнее. Сегодня нашел сносную документацию и теперь хочу прикрутить к нему систему портеджей из Gentoo Linux, потом адаптировать его под хостинг и сделать на нем полноценный фаервол на базе iptables, а не ipfw. Незнаю насколько мои задумки реально осуществить, но буду пытаться.

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