Tomsk Sysadmins Forum
Unix => Администрирование => Topic started by: BuTbKa on December 11, 2008, 22:37:15
-
Есть линукс, в них сквид и айпитаблес.
Есть задача маркировать пакеты, которые генерирует сквид: исходящие запросы и входящие ответы.
Первая часть задачи решается легко: делаем -t mangle -A OUTPUT -m owner --uid-owner squid -j MARK.
Вторая часть задачи решается тяжело, и я хотел бы найти лучшее решение.
Сейчас мне пришло в голову snat'ить пакеты сквида на определённый диапазон портов, а потом делать
-A INPUT -p tcp --dport мой:диапазон
Для надёжности ещё добавить -m state --state ESTABLISHED, чтобы исключить случайно залетевшие пакеты.
Но здесь возникает новый вопрос: как предотвратить использование этого диапазона другими программами?
Тут же в голове рождается новое хитрое решение: проверять в OUTPUT --sport соединений, идущих не от сквида, и если он в нашем диапазоне, то snat'ить в другой диапазон.
Так, кучей снатов вроде бы можно добиться желаемого. Но наверняка есть более простое, хитрое и одновременно изящное решение.
Помогите его найти, пожалуйста?
-
"Для протокола"
Как я уже говорил, на #tlug
Можно попробовать взять модуль connmark http://home.regit.org/?page_id=7 (http://home.regit.org/?page_id=7)
К сожалению, в работе не испробовал, нужен был для "хитрого" DNAT, но возникли проблемы со сборкой на "хитром" железе (ASUS wl500gp).
-
А смысл всего объясни, для чего ты это делаешь? Возможно есть другие пути.
-
Тема закрыта, connmark помог