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
() автор топика
Ответ на: комментарий от robodal

Да, речь идет о сервере за маршрутизатором

AptGet ★★★
()

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

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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.