Переброс портов (iptables)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

NeverM
Сообщения: 248
ОС: gentoo

Переброс портов (iptables)

Сообщение NeverM »

Есть два сервера в инете. На одном (севрер 1) стоит веб сервер на втором (сервер 2) веб сервера нету, нужно чтобы люди обращавшиеся как к 1 так и к 2 попадали на один и тотже сайт (который крутиться на 1).

На сервере 2 добавил ip форвардинг:

Код: Выделить всё

~ # cat /proc/sys/net/ipv4/ip_forward
1

Прописал в iptables правило с редиректом на ya.ru ради эксперимента:

Код: Выделить всё

-A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 213.180.204.8:80

Ну и само собой запусил iptables, теперь проверяю всё это дело. С сервера:

Код: Выделить всё

~ # telnet 127.0.0.1 80
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

И с удалённой вындовой машины:

Код: Выделить всё

telnet myhost 80
Подключение к myhost...Не удалось открыть подключение к этому узлу, на порт
80: Сбой подключения


Как видно не чего не работает. Подскажите в чём косяк?
Спасибо сказали:
neru_dead
Сообщения: 331
ОС: Debian Etch

Re: Переброс портов (iptables)

Сообщение neru_dead »

Правила по умолчанию случайно не:

Код: Выделить всё

    # Set polices by default
    $IPT -P INPUT DROP
    $IPT -P FORWARD DROP
    $IPT -P OUTPUT ACCEPT


?

Тут тоже самое обсуждается...

(Посидев и порисовав схему работы такую, даже не представляю как оно будет работать :). DMZ понятно, а тут... )
Debian GNU/Linux 4.0
Registered User # 410887
Спасибо сказали:
NeverM
Сообщения: 248
ОС: gentoo

Re: Переброс портов (iptables)

Сообщение NeverM »

нет, по умолчанию всё ACCEPT
Спасибо сказали:
NeverM
Сообщения: 248
ОС: gentoo

Re: Переброс портов (iptables)

Сообщение NeverM »

Если открыть конфиг, то можно увидеть счётчик соединений или что это :)

Код: Выделить всё

[136:7768] -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 213.180.204.8:80

Как видно он НЕ равен 0
Спасибо сказали:
NeverM
Сообщения: 248
ОС: gentoo

Re: Переброс портов (iptables)

Сообщение NeverM »

Интересная ситуация: поднял апач и сделал вот такое правило:

Код: Выделить всё

-A PREROUTING -p tcp -m tcp --dport 8080 -j DNAT --to-destination myip:80

Тоесть при обращение на порт 8080 идёт редирект на эту же машину на 80 порт. Это правило заработало. Чтобы это могло значить? Какаято блокировка со стороны провайдера? Я вообще не могу представить это это может быть реализуемо
Спасибо сказали:
neru_dead
Сообщения: 331
ОС: Debian Etch

Re: Переброс портов (iptables)

Сообщение neru_dead »

Если я все правильно понимаю то:
При обращение на сервер2 он DNAT`ит на сервер1, но так как на сервер1 стоит шлюз не сервер2, то ответ уже идет не от сервер2 а от сервер1.
Поэтому он и не работает, наверное...

Вот что хотел спросить, а смысл во всей этой конструкции ?
Debian GNU/Linux 4.0
Registered User # 410887
Спасибо сказали:
NeverM
Сообщения: 248
ОС: gentoo

Re: Переброс портов (iptables)

Сообщение NeverM »

neru_dead писал(а):
27.11.2007 09:51
Если я все правильно понимаю то:
При обращение на сервер2 он DNAT`ит на сервер1, но так как на сервер1 стоит шлюз не сервер2, то ответ уже идет не от сервер2 а от сервер1.
Поэтому он и не работает, наверное...

Около года назад я подобное делал и всё отлично работало

neru_dead писал(а):
27.11.2007 09:51
Вот что хотел спросить, а смысл во всей этой конструкции ?

Долго и сложно расказывать, там по мимо 80 ещё кое какие порты нужно пробросить :)
Спасибо сказали:
Gerhard
Сообщения: 30

Re: Переброс портов (iptables)

Сообщение Gerhard »

проверяй цепочку FORWARD т.к в работающем случае с портом 8080 пакеты у тебя через нее не проходят, потому что предназначаются этой же машине.
В случае с -DNAT на www.ya.ru после PREROUTING пакеты становятся транзитными и обязаны пройти через FORWARD, но похоже не могут.
Спасибо сказали:
NeverM
Сообщения: 248
ОС: gentoo

Re: Переброс портов (iptables)

Сообщение NeverM »

Gerhard
FORWARD по умолчанию ACCEPT, правил не каких нет
Спасибо сказали:
Gerhard
Сообщения: 30

Re: Переброс портов (iptables)

Сообщение Gerhard »

Надо еще добавить

-t nat -А POSTROUTING -d $ip_server1 --d-port 80 -j SNAT --to-sourse $ip_server2:80

чтобы пакеты проброшенные на server1 уходили от имени server2. Иначе server1 будет отвечать напрямую клиенту, а там этих ответов никто не ждет.
Спасибо сказали:
NeverM
Сообщения: 248
ОС: gentoo

Re: Переброс портов (iptables)

Сообщение NeverM »

Gerhard
Попробывал, ситуация к сожеление не изминилась
Спасибо сказали:
NeverM
Сообщения: 248
ОС: gentoo

Re: Переброс портов (iptables)

Сообщение NeverM »

Всё разобрался, если кому интересно то вот: http://tula.bofh.ru/articles/91/print

Теперь такой вопрос: Можно ли каким нибудь образом сделать всё это только чтобы трафик шёл не через сервер2 а сразу напрямую, тоесть чтобы был простой редирект
Спасибо сказали: