IPtables переброс определенных пакетов

Linux, безопасность, сети и все что с этим связано
AlexeyVitebsk
Заглянувший
Сообщения: 11
Зарегистрирован: 15 апр 2009, 13:24

IPtables переброс определенных пакетов

Сообщение AlexeyVitebsk »

Доброго времени суток.

Уже 2-й день ломаю голову как это сделать:

1. Имеется сервер, 1 интерфейс, на нем весит apache.
2. Имеется еще один сервис, весит на 1234 порте.

требуется все пакеты, содержащие "vasya" перебросить с 80-го порта на 1234, а остальные чтобы как и надо ушли на апач.

Делаю так

iptables -t mangle -A PREROUTING -p tcp --dport 80 -m string --string "vasya" --algo bm -j MARK --set-mark 123
iptables -t nat -A PREROUTING -p tcp --dport 80 -m mark --mark 123 -j REDIRECT --to-ports 5280

Но вот какая незадача... редирект не работает.

Вот еще прикол в том, что:
1. если я с первого правила уберу "-m string --string "vasya" --algo bm" - т.е. проверку и буду маркировать все пакеты 80го порта - правило редиректа будет работать.
2. если я во 2-м правиле уберу правило редиректа(поставлю например DROP), а первое оставлю без изменений - то начинает дропать вообще все пакеты, не смотря на match.

Почему же они не работают как надо? Может есть другой вариант?

Berserker
Неотъемлемая часть форума
Сообщения: 279
Зарегистрирован: 23 апр 2005, 21:13
Откуда: minsk

Re: IPtables переброс определенных пакетов

Сообщение Berserker »

Трансляция адресов работает начиная с первого SYN пакета. В нем никаких данных, в том числе "vasya", не содержится . Так что это не будет работать. Пакет-то перебросится, но коннект порвется.

Berserker
Неотъемлемая часть форума
Сообщения: 279
Зарегистрирован: 23 апр 2005, 21:13
Откуда: minsk

Re: IPtables переброс определенных пакетов

Сообщение Berserker »

ИМХО Это надо разруливать ср-вами апача. Есть там какие-то модули с POST / GET фильтрами, чтоб сделали редирект , если придет запрос с vasya.

Ответить