Поиск 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
Дополнительно информация на сайте модуля
|
|