SOHOUnix & Evil Traffic Counter |
1. Устанавливаем apache2, mysql-server: "apt-get install apache2 mysql-server" (считаем, что perl уже установлен) 2. В директорию "/usr/lib/cgi-bin/" необходимо поместить файлы программы (скачать можно внизу страницы), делаем эту директорию активной: "cd /usr/lib/cgi-bin/", устанавливаем права командой "chmod 755 *" |
|||||
3. Создаем необходимую базу данных в mysql: "mysql -u root -p<dump" (потребуется ввести рутовый пароль mysql) |
4. Правим файл "/usr/lib/cgi-bin/billing.conf" [environment]-секция описать конкретное окружение; поменять содержимое переменной syslogd_pid на "/var/run/syslogd.pid" (по умолчанию "/var/run/rsyslogd.pid") [admin]-секция указать ip-адрес админской машины |
5. Подготовим раздел для логов iptables (из-за возможной большой нагрузки используется ramfs): "mkdir /media/log" (masq.sh сюда подмонтирует ramfs !!!ПЕРЕД МОНТИРОВАНИЕМ ВСЕ УДАЛИТСЯ ИЗ /media/log!!! если раскомментировать строчку в masq.sh) |
6. Правим файл"masq.sh" под конкретное окружение копируем его в директорию "/etc/init.d/" устанавливаем ему необходимые права "chmod 755 /etc/init.d/masq.sh" выполняем "/etc/init.d/masq.sh", (включение форвардинга, nat, инициализация iptables) |
7. Выполняем: "/usr/lib/cgi-bin/cycle.pl" (создание /etc/init.d/ipt.sh, /etc/init.d/tc.sh) "/etc/init.d/ipt.sh" (правила iptables для клиентов) "/etc/init.d/tc.sh" |
8. Выполнение скриптов при перезагрузке (желательно до cron): update-rc.d ipt.sh defaults update-rc.d tc.sh defaults "ln -s /etc/init.d/masq.sh S60masq.sh" "ln -s /etc/init.d/tc.sh S61tc.sh" "ln -s /etc/init.d/ipt.sh S62ipt.sh" |
9. В "/etc/crontab" добавляем строчки:
"* * * * * root cd /usr/lib/cgi-bin/ && ./cycle.pl 1>/dev/null 2>/dev/null&& ./ipt_parser.pl" (запуск cycle.pl и парсера логов iptables каждую минуту) "*/15 * * * * root cd /usr/lib/cgi-bin/ && ./summator.pl" |
10. Настройка sysklogd (rsyslog) для сбора логов iptables: "nano /etc/syslog.conf"(/etc/rsyslog.conf) |
||||
10a. в конец файла добавляем строчку: "kern.warning -/media/log/iptables.log" |
10b. Не хочется, чтобы логи засоряли другие файлы, кроме iptables.log (для этого требуется во все правила из syslog.conf, под которые попадают сообщения от ядра уровня warning, добавить исключение - ";kern.!=warning"): "kern.*;kern.!=warning -/var/log/kern.log" "*.*;kern.!=warning;auth,authpriv.none -/var/log/syslog" Аналогично в разделе описывающем /var/log/messages заменить *.=warning на *.=warning;kern.!=warning |
||||
10c. Не забыть перезапустить sysklogd: "/etc/init.d/sysklogd restart" | |||||
11. Интерфейс администратора (заходить с ip админа) - http://"адрес_сервера"/cgi-bin/admin.pl интерфейс пользователя - http://"адрес_сервера"/cgi-bin/stat.pl |
1. В домашней директории некоторого пользователя создаем пароль: "htpasswd -c /home/cool_user/.htpasswd cool_user" ("cool_user" заменяем на имя имеющегося в системе пользователя) |
2. Правим файл "/etc/apache2/apache2.conf" В конец конфига добавляем строчки: ("cool_user" заменяем на имя имеющегося в системе пользователя) <Directory "/usr/lib/cgi-bin/"> <Files admin.pl> AuthType Basic AuthName "Basic" AuthUserFile /home/cool_user/.htpasswd Require user cool_user </Files> <Files edit.pl> AuthType Basic AuthName "Basic" AuthUserFile /home/cool_user/.htpasswd Require user cool_user </Files> </Directory> |
3. Перезапустить apache2 "/etc/init.d/apache2 restart" |
cycle.pl...основная программа cool_env.pm...пакет с основными функциями conf.pm...пакет для работы с конфигурационным файлом billing.conf...конфигурационный файл summator.pl...периодическое суммирование трафика (служ. нужды) masq.sh...инициализация iptables admin.pl...Web-интерфейс для админа etc.css...css для admin.pl (этот файл необходимо поместить в /var/www/) |
edit.pl...редактирование mysql-базы ipt_parser.pl...занесение логов iptables в mysql ipstat.pl...предварительный анализ логов iptables stat.pl...Web-интерфейс для клиентов ustat.pl...расширенная статистика techstat.pl...состояние скриптов, базы, некоторые логи dump...скрипт для создания mysql-базы данных |
ЧаВо (FAQ) – Ча-стые Во-просы (Frequently Asked Questions):
|
Про войну (хочу поделиться): |
Quake_1: |