LINUX.ORG.RU
ФорумAdmin

Некомпетентность в iptables


0

0

Добрый вечер.

Имеется некоторая проблема с настройкой сервера, находящегося за маршрутизатором. Точнее даже не проблема, а некоторое недопонимание администратора, работающего с тем самым маршрутизатором (который собственно тоже работает под управлением Linux-машины).

Суть в следующем. Установили свежую систему, для определенности пусть будет Ubuntu-сервер. Подключили его ко внутренней сети с IP 10.10... Задача: обеспечить работу HTTP сервера, использующего порт 8080. Возникшая проблема: По словам администратора он «прокинул порты» на маршрутизаторе, точнее один порт 8080. Остальную настройку должен выполнить я на своем сервере.

В итоге имеем: 1. HTTP сервер нормально крутиться и отвечает внутри сети без проблем 2. Таблица iptables на нем девственно чиста, не настраивалась. 3. С наружного адреса сервер не доступен на 8080. Я не понимаю что могу еще настроить на машине внутри сети. После общения с админом маршрутизатора мозги вообще закипели и я усомнился в том что вообще что-то понимаю в функционировании IP сетей. Вот что сказал админ: «На маршрутизаторе не используется маскарадинг, все пакеты приходящие на порт 8080 перекидываются твоему (т.е. серверу внутри сети, о котором речь) с НЕИЗМЕНЕННЫМ IP-адресом внешней сети (пусть для определенности 93.93.110.110).»

Есть две просьбы: 1. Объясните мне - чайнику, КАК может компьютер в IP сети получить пакет у которого в заголовке ЧУЖОЙ IP??? 2. Рассудите меня с админом маршрутизатора и подскажите что нужно подправить для нормальной работы данной системы?

Заранее спасибо..

> 1. Объясните мне - чайнику, КАК может компьютер в IP сети получить пакет у которого в заголовке ЧУЖОЙ IP???

Пакет в пределах одного физического сегмента посылается основываясь на мак-адресах, а не на IP. Админ на маршрутизаторе скорее всего воспользовался целью -j ROUTE в iptables или сделал через iproute2.
Т.е. у пакета поменялся только мак отправителя/получателя и его отправили на внутренний интерфейс.

2. Рассудите меня с админом маршрутизатора и подскажите что нужно подправить для нормальной работы данной системы?

a). Пусть он сделает обычный DNAT, не понятно зачем он придумал такие извращения.
b). Сделай DNAT сам, типа:
iptables -t nat -A PREROUTING -p tcp -d 93.93.110.110 --dport 8080 -j DNAT --to-destination твой-внутренний-айпи

Честно говоря, будет ли работать вариант b, зависит от того правильно ли админ всё настроил, в частности правильно ли будут маршрутизироваться ответы от твоего сервера с исходящим айпи
93.93.110.110.

Вариант a намого проще и так обычно всегда и делают.

Nao
()
Ответ на: комментарий от Nao

Спасибо, попробую вариант второй. Первый малоприменим из-за «неадекватности» того самого админа. По поводу того почему он такой изврат использует - я спрашивал, ответ был весьма оригинален «чтобы была возможность протоколировать обращения»... объяснять что для этого есть много других способов не стал..

P.S. А POSTROUTING мне не нужно прописывать чтобы исходящим пакетам IP подменить?

robodal
() автор топика
Ответ на: комментарий от AptGet

Если речь о сервере-маршрутизаторе (хотя вряд ли), то не дождусь я его, а если о том что за маршрутизатором, то кину как получу... Ехать лень, а удаленно зайти не могу по тем самым причинам что описал здесь. Т.к. помимо веб-сервера аналогично должен быть организован SSH... жду..

robodal
() автор топика

может тебе тупо на сервере надо дефолтный роут через его роутер настроить?

maloi
()

Прилепи себе на сетевой интерфейс тот внешний адрес, пусть апач его слушает.

nnz
()
Ответ на: комментарий от robodal

> P.S. А POSTROUTING мне не нужно прописывать чтобы исходящим пакетам IP подменить?
Нет, он будет подменяться сам.

Nao
()

Кстати, как уже писали выше, маршрутизатор должен быть маршрутом по умолчанию.
И вариант с алиасом на интерфейс тоже должен работать.

Nao
()

>он «прокинул порты»
Что значит «прокинул порты»? Может «пробросил»?
Оперируя такими понятиями вы никогда не поймете что к чему.
Для начала советую посмотреть доходят ли до вас пакеты.
На вашем сервере запустите
#tcpdump -i eth0 -n port 8080
затем обратитесь к вашему серверу извне и наблюдайте за изменениями.
Должны появиться строчки , характеризующие тот факт что пакеты все же доходят до вашего хоста.

c-xp
()

А у тебя на сервере HTTP 1.0 или 1.1 используется?

oxumorron
()

iptables -A INPUT -i <сетевуха> ! -s <cеть 10.10...> --dport 8080 -j LOG --log-level info --log-prefix я_пакет_на_8080

Как-то так.Кстати,я бы на всякий что по порту 80,мало-ли чего он там на маршрутизаторе пробросил.

dusia
()

Ну для начала из внешки nmap <адрес маршрутизатора> -n -p 8080

anton_jugatsu
()
Ответ на: комментарий от Nao

> Пакет в пределах одного физического сегмента посылается основываясь

на мак-адресах, а не на IP

это на оборудовании 2 уровня, а

По словам администратора он «прокинул порты» на маршрутизаторе

на оборудовании 2 уровня такое сделать не возможно

2автору

с НЕИЗМЕНЕННЫМ IP-адресом внешней сети

все нормально, на железке поменялся dst адрес и отправили к вам.
вам нужно менять src адрес пакетов на внешний адрес железки (только исключить локальную сеть) и отправлять наружу.

anonymous
()
Ответ на: комментарий от anonymous

> это на оборудовании 2 уровня, а

По словам администратора он «прокинул порты» на маршрутизаторе.

на оборудовании 2 уровня такое сделать не возможно


Я говорил о хождении пакета уже внутри локальной сети. Просто автор не доумевает, как пакет с белым dst адресом (он белый уже _после_ пересылки маршрутизатором) вообще может дойти до его машинки внутри сети с серым ip.

все нормально, на железке поменялся dst адрес и отправили к вам.

вам нужно менять src адрес пакетов на внешний адрес железки


Если там сделали DNAT, то менять в ответном пакете src адрес не нужно, т.к. эту работу должен выполнить NAT на маршрутизаторе.

Вообще, строго говоря, приведённый ответ админа можно интерпретировать как обычный DNAT:

На маршрутизаторе не используется маскарадинг

да, зато прокинули порт DNATом

все пакеты приходящие на порт 8080 перекидываются твоему (т.е. серверу внутри сети, о котором речь) с НЕИЗМЕНЕННЫМ IP-адресом внешней сети

не понятно о каком адресе речь, о src или dst? если предположить что речь о src адресе, то он действительно не меняется :)

Nao
()
Ответ на: комментарий от Nao

Если там сделали DNAT, то менять в ответном пакете src

адрес не нужно, т.к. эту работу должен

выполнить NAT на маршрутизаторе.

это только в том случае если пакет назад через него и пойдет, а может и не пойти если у меня другой маршрут

anonymous
()

1. Объясните мне - чайнику, КАК может компьютер в IP сети получить

пакет у которого в заголовке ЧУЖОЙ IP???

у пакета есть src ip, src port, dst ip, dst port можно менять все что угодно

2. Рассудите меня с админом маршрутизатора и подскажите что

нужно подправить для нормальной работы данной системы?

кроме «перекидывания пакетов с наружи» надо разрешить forwarding от сервера наружу, т.к. скорей всего все заблокировано по умолчанию
хто виноват? скорей всего админ..

anonymous
()
Ответ на: комментарий от anonymous

> это только в том случае если пакет назад через него и пойдет, а может и не пойти если у меня другой маршрут
Если обратно он пойдёт по другому маршруту, то велика вероятность что пакет с таким src адресом (белым) будет зарезан на том другом маршрутизаторе :)

Nao
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.