The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Переброска порта. iptables."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Переброска порта. iptables."
Сообщение от russian_knight emailИскать по авторуВ закладки on 08-Июн-04, 11:10  (MSK)
Пользовался советом из http://opennet.ru/tips/info/466.shtml

Нужно дать доступ компьютеру в сети (1) через меня (2) к другому компьютеру в той же сети (3). ОС Fedora Core 2. Файрвол iptables.

В параметрах ядра NAT разрешён:

# cat /etc/sysctl.conf | grep forward
net.ipv4.ip_forward = 1

Вырезки из /etc/sysconfig/iptables:

-A PREROUTING -p tcp -m tcp -d 10.151.112.25 --dport 30 -j DNAT --to-destination 10.151.48.1:80
-A FORWARD -p tcp -m tcp -d 10.151.48.1 -i eth0 --dport 80 -j ACCEPT

10.151.112.25 - (2) компьютер
10.151.48.1 - (3) компьютер

Залогинившись по ssh на (1) компьютер пытаюсь достучаться до (3)-го:

lynx 10.151.112.25:30

Ответа нет.

Nmap же говорит:

30/tcp filtered

В чём проблема? Заранее всем спасибо.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Переброска порта. iptables."
Сообщение от Сергей Искать по авторуВ закладки(??) on 08-Июн-04, 11:40  (MSK)
насколько я понимаю ты хочешь это организовать через один интерфейс
если так, то ты надо в POSTROUTING изменить источник пакета на адрес машины 2
а то получается, что после первого пакеты хост два из цепочки выпадает, так как хост 3 обращается напрямую к 1 потому что они в одной сети

а FORWARD не обязателен, если не ходить с localhost

строка для POSTROUTING у меня выглядит примерно так

iptables -t nat -I POSTROUTING 1 -p tcp -d 10.151.48.1 --dport 80 -j SNAT --to-source 10.151.112.25

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Переброска порта. iptables."
Сообщение от russian_knight emailИскать по авторуВ закладки on 08-Июн-04, 12:15  (MSK)
Благодарю. Заработало.

Но если не трудно, хотел бы понять что тут происходит.
Моим правилом я менял destination *пакета* на другой ip адрес (3), а твоим я поменял ещё и source *пакета* на свой ip (2), чтобы ответы возвращались ко мне. Так?

Если так, то у меня возникают 2 вопроса:

1. Почему, не задав обратного правила (переброс от меня (2) на (1) компьютер), всё работает? Это выполняется атвоматически?
2. Почему мы это правило записали в POSTROUTING, а не в PREROUTING как и первое правило?

Извиняюсь если вопросы чайниковские ;-\

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Переброска порта. iptables."
Сообщение от Сергей Искать по авторуВ закладки(??) on 08-Июн-04, 13:21  (MSK)
Пару лет назад у меня были такие же вопросы, и как раз на этом сайте нашёл перевод документации по iptables где этот вопрос так же рассмотрен

в кратце суть такая
машина 1 вызывает машину 2, та, в цепочке PREROUTING меняет адрес назначения пакета, подставляя ему адрес машины 3
после этого проиходит маршрутизация и пакет покидает машину 2 и попадает на машину 3,
та, видя что пакет пришёл от машины 1, а также видя что машина 1 находится с ней в одной сети, посылает ответ прямо ей.
Машина 1 получает пакет от машины 3, видит что у неё нет с ней соединений и отбрасывает его, потому что она вызывает машину 2, про то что ты по дороге поменял адрес назначения ей ничего не известно.

Чтобы это не происходило и весь обмен пакетами шёл через машину 2, надо менять не только адрес назначения, но источника. Тогда машина 3 пошлёт ответ на машину 2, а машина перешлёт его изменив адреса обратно, на машину 1

А прямой вызов с машины 2 работает, потому что  машина 3 посылает ответ непосредственно на машину 2.

наверно ответил путанно, но для более внятного объяснения советую прочесть переводную документацию, она очень понятная и наглядная

Сергей

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру