... Потихоньку делаю реализацию 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
