...

Потихоньку делаю реализацию 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 mailing list
[email protected]
https://lists.altlinux.org/mailman/listinfo/sysadmins

Ответить