IPtables переброс определенных пакетов
Добавлено: 20 май 2010, 13:14
Доброго времени суток.
Уже 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.
Почему же они не работают как надо? Может есть другой вариант?
Уже 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.
Почему же они не работают как надо? Может есть другой вариант?