[Sysadmins] анализ трафика и управление сетью

Peter V. Saveliev =?iso-8859-1?q?peet_=CE=C1_altlinux=2Eru?=
Пн Ноя 19 15:02:20 MSK 2007


...

Потихоньку делаю реализацию netlink для питона. Штука эта может быть полезна 
тем, кто хочет очень быстро написать программу для неспешной работы. 
Например, на её базе скоро сделаю userspace tarpit (ибо p-o-m не везде 
считается кошерным, что, вообще говоря, верно), ещё в планах стоит сделать 
б/м вменяемый honeypot (ибо honeyd меня своей укуренностью бесит). Т.е. 
задачи, где важна скорость и простота разработки, а не пропускная 
способность. Хотя на современных машинах и пропускная способность не 
сильно-то страдает...

Урл: http://www.radlinux.org/connexion/browser/branches/0.4.4/lib/cxnet

Пример кода, дропающий ~ каждый второй пакет (just как иллюстрация простоты) 
(для работы нужно сказать iptables ... -j QUEUE):

#!/usr/bin/python
from cxnet.netlink.ipq import *
from random import random

s = ipq_socket()
while True:
  (l,msg) = s.recv()
  if random() > 0.5:
      s.verdict(msg.data.packet_id, NF_REPEAT)
  else:
      s.verdict(msg.data.packet_id, NF_DROP)


Помимо NETLINK_FIREWALL есть (пока ограниченная) реализация NETLINK_ROUTE 
(пока только для мониторинга событий в сетевой подсистеме). В планах -- 
полная реализация NETLINK_ROUTE и NETLINK_NETFILTER.

Вопрос. Это ещё кому-нибудь надо/интересно? Писать документацию на это, или 
подождёт? Запаковать в Сизиф для тестов, или так пока оставить? Может (о 
чудо), есть желающие помочь?

ЗЫ: почему не libnetlink и C/C++? ну, попробуйте -- сами поймёте :)) Некоторые 
вещи там далеюцо ну очень уж с большим оверхедом для разработчика (я верю, 
что зато потом работает быстро, но см. выше)

-- 
Peter V. Saveliev


Подробная информация о списке рассылки Sysadmins