Поиск P2P трафика средствами iptables на Gentoo Linux

Почти любому админу офиса приходилось сталкиваться с ситуации, когда “умный” пользователь решил покачать любимые фильмы, музыку и программы через P2P сети. Как правильно такой “умный” пользователь не думает о таких вещах, как пропускная способность канала, цена трафика и т.п. А администратору сети приходится потом отвечать на неприятные вопросы начальника.

Если у вас в сети используются маршрутизаторы/NAT сервера linux. то отловить умников будет очень просто. Для борьбы с P2P трафиком есть специальный модуль iptables – ipp2p.

В gentoo установить модуль очень просто. Сперва посмотрим его описание:

emerge -s ipp2p

Теперь поставим модуль:

emerge ipp2p

Проверяем, что модуль подгрузился:

lsmod | fgrep ipt_ipp2p

И если его нет, подгрузим

modprobe ipt_ipp2p

Теперь можно посмотреть помощь к модулю.

iptables -m ipp2p --help

Теперь собственно работа. Я предпочитаю не запрещать сразу, а быть в курсе происходящего. Потому поместим в цепочку FORWARD такое правило:

iptables -A FORWARD -i eth0 -m ipp2p --ipp2p -j LOG --log-level info --log-prefix "p2p "

Значение –ipp2p эквивалентно срабатыванию правила для всех известных типов P2P трафика. При срабатывании правила в syslog-ng будет писать в /var/log/messages сообщение (у меня так настроен syslog-ng, чтобы все попадало в messages). Осталась последняя часть – отчеты.

#!/bin/bash
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i486-pc-linux-gnu/gcc-bin/4.1.2:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2'
export LOG=/var/log/.p2p.report
export TO=some@mail.zone
export FROM=root@server.zone

echo "From: ${FROM}" > ${LOG}
echo "To: ${TO}" >> ${LOG}
echo "Subject: `hostname -a` P2P report `date +%Y-%m-%d`" >> ${LOG}
echo "Content-type: text/plain" >> ${LOG}
echo "" >> ${LOG}
echo "" >> ${LOG}
echo "Report mask:" >> ${LOG}
echo "COUNT DATE SRC" >> ${LOG}
echo "" >> ${LOG}

fgrep p2p /var/log/messages | awk '{print $1" "$2" "$9}' | sort | uniq -c >> ${LOG}

cat ${LOG} | sendmail -i -f ${FROM} ${TO}
rm -f ${LOG}

Можно поставит этот скрипт в крон, чтобы получать отчеты каждый день или час.

Последний штрих, добавить модуль в автозагрузку

echo ipt_ipp2p >> /etc/modules.autoload.d/kernel-2.6

И сохранить правило в стартап скрипте iptables

/etc/init.d/iptables save

Дополнительно информация на сайте модуля


Tags:

Вторник, Июнь 2nd, 2009 Советы
Tinkerbell Personal Checks |Garden Planters | Jewellery For Women | Best Dog Foods | Budget Wedding Gowns | Shop For Jewellery | Vintage Jewellery| Diamante Jewellery | Car Finance Credit | DoorStep Loans