Урри, где у него кнопка!?! (с) «Кiборг-забойца, албо прыгоды Электронiка»

Задача скорее академическая, но не знаю чья это форма ответственности. Собственно, есть CentOS, который я мучаю последнее время. И накручиваю на нём iptables всякие. У него два интерфейса. Сейчас один будет воткнут в DMZ, а второй я попытался воткнуть в локальную сеть. Собственно, пока работает только интерфейс DMZ, то вопросов нет. Из локальной сети по адресу DMZ я его нормально обрабатываю. Если включены оба интерфейса, то я из локальной сети вижу его только по локальному интерфейсу. А по адресу DMZ не вижу.
Моё скромное представление о мире подсказывает мне, что таблица маршрутизации route предполагает, что ответы моего сервера надо отправлять через локальный интерфейс. А если я обращаюсь к серверу через интерфейс DMZ, то ответы с локального интерфейса не радуют получателя, то есть меня.
Таблица iptables имеет понятие о том, что соединение может быть уже установленным, и я могу менять трансляции адресов и прочие разрешения выдавать в зависимости от состояний RELATED и ESTEBLISHED у моего соединения. А вот как быть в данном случае? В таблице маршрутизации там многого не наисправишь — потому что маршрут по умолчанию в локальную сеть через локальный интерфейс — это верно. А вот как направить ответ через DMZ-шный интерфейс, если обращение шло через него?

То есть просится какая-то строка, что, дескать, если адрес отправилеля не локальный, а адрес получателя локальный, то всё равно использовать интерфейс DMZ, но у меня нет режима обработки в iptables «использовать интерфейс eth1».

PS: Я знаю, что извращение и в продакшен это не пойдёт, даже если настрою 🙂

Добавить комментарий