mysyslog.ru

2 Июнь 2009

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

написано в рубрике: Новости — constantine.malov @ 21:48

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

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

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

  1. emerge -s ipp2p

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

  1. emerge ipp2p

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

  1. lsmod | fgrep ipt_ipp2p

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

  1. modprobe ipt_ipp2p

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

  1. iptables -m ipp2p –help

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

  1. 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). Осталась последняя часть – отчеты.

  1. #!/bin/bash
  2. 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′
  3. export LOG=/var/log/.p2p.report
  4. export TO=some@mail.zone
  5. export FROM=root@server.zone
  6.  
  7. echo "From: ${FROM}" > ${LOG}
  8. echo "To: ${TO}" >> ${LOG}
  9. echo "Subject: `hostname -a` P2P report `date +%Y-%m-%d`" >> ${LOG}
  10. echo "Content-type: text/plain" >> ${LOG}
  11. echo "" >> ${LOG}
  12. echo "" >> ${LOG}
  13. echo "Report mask:" >> ${LOG}
  14. echo "COUNT DATE SRC" >> ${LOG}
  15. echo "" >> ${LOG}
  16.  
  17. fgrep p2p /var/log/messages | awk ‘{print $1" "$2" "$9}’ | sort | uniq -c >> ${LOG}
  18.  
  19. cat ${LOG} | sendmail -i -f ${FROM} ${TO}
  20. rm -f ${LOG}

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

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

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

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

  1. /etc/init.d/iptables save

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

Нет комментариев

Еще нет комментариев.

RSS лента комментариев к этой записи. TrackBack URL

Извините, комментирование на данный момент закрыто.

Работает на WordPress