Каждый админ должен в своей жизни настроить сендмейл, написать биллинг и обругать маздай © bash.org.ru Сендмейл мы настраивать не будем, как и ругать детище Билли, а попробуем создать что-то вроде биллинга, т. к. этот вопрос рано или поздно встает практически перед всеми системными администраторами. Статья ориентирована на новичков в администрировании и опытным спецам навряд ли будет интересна. И так, что мы имеем? Сеть из 50-200 компьютеров, выделенный интернет-канал (ADSL, Ethernet, etc..), linux-роутер. Требуется считать интернет-трафик пользователей (по разным направлениям), ограничивать скорость, определять лимиты трафика в месяц. В дополнение, хочется управлять всем этим через какую-нибудь веб-морду. За основу возьмем дистрибутив ubuntu-server 8.04. Чтобы однозначно идентифицировать пользователя и обезопасить кражи трафика при помощи подмены айпи-адресов, настроим VPN-сеть, используя PPTPD. Практически все действия в консоли будем выполнять от рута, поэтому чтобы не писать каждый раз sudo, пишем: Настройка PPTP-сервера Устанавливаем: Открываем конфиг /etc/pptpd.conf и добавляем строчки: определяем адрес сервера и диапазон адресов пользователей в виртуальной сети. По-умолчанию pptpd хранит аккаунты пользователей в файле /etc/ppp/chap-secrets, добавляем тестовые аккаунты: обратите внимание на айпи-адреса, они должны быть из диапазона, указанного в параметре remoteip файла /etc/pptpd.conf! Перезапускаем сервис pptpd: Разрешаем подключения к нашему сервису: Вместо 192.168.0.0/24 подставьте адрес своей локальной сети. Пробуем подключиться к нашей виртуальной сети, для этого создаем на машине с Win XP новое VPN — соединение («Создание нового подключения» — «Подключение к сети на рабочем месте» -«Подключение к виртуальной частной сети»). Если все получилось двигаемся дальше. Настройка ulog-acctd Для сбора статистики о трафике будем использовать ulog-acctd, устанавливаем: Открываем конфиг /etc/ulog-acctd.conf. Нас интересуют параметры accounting format и fdelay. Параметр accounting format отвечает за формат записи лога, подробное описание каждого параметра есть в комментариях, так что подробно расписывать не буду. Нам нужен такой формат: Параметр fdelay определяет через какой промежуток времени ulog-acctd будет сбрасывать накопленную статистику в лог, выставим его в 10 секунд. Перезапускаем ulog-acctd. Настройка iptables Чтобы подключившиеся пользователи могли выходить в Сеть, настроим NAT для виртуальной сети: Этим правилом сообщаем ulog'у какой трафик логировать: Нас интересует транзитный трафик, идущий в VPN — сеть. Теперь протестируем получившуюся связку, подключитесь к сети и попробуйте что-нибудь скачать, в логе /var/log/ulog-acctd/account.log должны появится такие записи: Первое значение — время в формате unix, второе — адрес отправителя, третье — адрес получателя (пользователя), четвертое — количество байт. MySQL и схема БД root@srv:~# apt-get install mysql-server Создаем в MySQL пользователя ulog и импортируем схему БД: USE `ulogdb`; CREATE TABLE `data` ( CREATE TABLE `users` ( Это упрощенная схема, позже мы ее модернизируем. В таблице data храним агрегированную статистику по трафику, в users информация о пользователях. Добавьте в таблицу users пользователей, которых указали в /etc/ppp/chap-secrets. | |
| Категория: Linux | Просмотров: 610 | |
Главная » Рулим трафиком в Linux. Аккаунтинг, сбор статистики