RADIUS-часть не важна для запроса, но я подумал, что я объясню контекст:
У меня есть радиус-сервер на основе Linux, который всегда включает определенный атрибут в пакет «Access-Accept», что одно из моих сетевых устройств не любит.На сервере нет возможности отключить указанный атрибут.Я искал возможность использования сценария для изменения исходящего доступа, принятия, удаления атрибута и пересчета полей контрольной суммы и аутентификатора Radius.
Я смогу закодировать скрипт Python, который создает сокет UDP дляпрослушайте, а затем измените пакет радиуса по мере необходимостиЧасть, с которой я застрял:
(A) Как перенаправить исходящий трафик на сокет моего скрипта?
(B) Как обеспечить, чтобы исходный и целевой IP / порт оставались неизменными?
Делатьнекоторые исследования для (A), похоже, что мы можем использовать iptables для перенаправления входящих данных в скрипт:
Предлагаемая команда в приведенной выше ссылке:
iptables -t nat -D PREROUTING -s yourhost -d desthost -p tcp --dport 80 -j REDIRECT --to 10101
Однако мне нужно изменить исходящие данные.Я предполагаю, что мне нужно изменить PREROUTING на POSTROUTING. Там также, кажется, ключевое слово NAT.Я не уверен, как это повлияет на IP-адреса.
Меня также беспокоит, если мой сценарий отправит модифицированный пакет с теми же IP-адресами / портами, не получит ли он еще раз правило iptable, и получитзастрял в бесконечном цикле?Как мне избежать этого?
Для запроса (B), я полагаю, использование Scapy - это опция, обеспечивающая неизменность IP / порта в измененном пакете.Если есть более простой вариант, я хотел бы знать, что.
Любая помощь с вышеизложенным будет принята с благодарностью.