Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: [РЕШЕНО]Непонятки с перебросом портов  (Прочитано 3323 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ravenyd123

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Суть такая. Стоит небольшая сеть ввиде:

Интернет--------->85.113.37.77 [сервер №1] 192.168.66.100-------------(локальная сеть)------------192.168.66.101[сервер №2]

Мне надо было сделать, чтобы сервер №2 был доступен из интернета.
Сделал переброс нужного порта:

Цитировать
iptables -t nat -A PREROUTING -p udp -d 85.113.37.77 --dport 27017 -j DNAT --to-destination 192.168.66.101:27017
iptables -t nat -A POSTROUTING -p udp -d 192.168.66.101 --dport 27017 -j SNAT --to-source 85.113.37.77
iptables -t nat -A POSTROUTING -p udp -s 192.168.66.101 --sport 27017 -j SNAT --to-source 85.113.37.77:27017
iptables -t nat -A OUTPUT --dst 85.113.37.77 -p udp --dport 27017 -j DNAT --to-destination 192.168.66.101:27017

Теперь сервер №2 по порту 27017 виден в интернете, но вот проблема заключается в том, что сервер №2 определяет всех клиентов из интернета под одним IP - 192.168.66.100
Как сделать, чтобы сервер №2 видел настоящий реальный IP клиента ?

Пользователь решил продолжить мысль 23 Января 2011, 09:47:59:
Я так думаю, что надо еще что-то прописать в iptables. Но гугление и курение мануалов мне не помогли :(

Пользователь решил продолжить мысль 23 Января 2011, 10:05:08:
iptables -L -v

Цитировать
root@raven2:~# iptables -L -v
Chain INPUT (policy ACCEPT 830K packets, 101M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 231K packets, 16M bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  eth0   eth1    192.168.66.0/24      anywhere            ctstate NEW
9374K 3406M ACCEPT     all  --  any    any     anywhere             anywhere            ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  eth1   eth0    192.168.66.101       anywhere            ctstate NEW
    0     0 ACCEPT     all  --  eth0   eth1    192.168.66.0/24      anywhere            ctstate NEW
    0     0 ACCEPT     all  --  any    any     anywhere             anywhere            ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  eth0   eth1    192.168.66.0/24      anywhere            ctstate NEW
    0     0 ACCEPT     all  --  any    any     anywhere             anywhere            ctstate RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT 922K packets, 489M bytes)
 pkts bytes target     prot opt in     out     source               destination
root@raven2:~#
« Последнее редактирование: 23 Января 2011, 12:39:46 от ravenyd123 »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Непонятки с перебросом портов
« Ответ #1 : 23 Января 2011, 10:13:18 »
Не нужно прописывать те строки с SNAT.

Оффлайн ravenyd123

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Непонятки с перебросом портов
« Ответ #2 : 23 Января 2011, 10:25:27 »
Не нужно прописывать те строки с SNAT.

Обнулил правила и занова ввел, но уже без SNAT. Результат тот же  - у всех IP 192.168.66.100

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Непонятки с перебросом портов
« Ответ #3 : 23 Января 2011, 10:32:35 »
Тогда все правила показывай
sudo iptables-save

Оффлайн ravenyd123

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Непонятки с перебросом портов
« Ответ #4 : 23 Января 2011, 10:35:36 »
Тогда все правила показывай
sudo iptables-save

Цитировать
root@raven2:~# sudo iptables-save
# Generated by iptables-save v1.4.4 on Sun Jan 23 10:35:11 2011
*filter
:INPUT ACCEPT [39999:2863545]
:FORWARD ACCEPT [21465:1520428]
:OUTPUT ACCEPT [42633:12173093]
-A FORWARD -s 192.168.66.0/24 -i eth0 -o eth1 -m conntrack --ctstate NEW -j ACCE                                                                    PT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Sun Jan 23 10:35:11 2011
# Generated by iptables-save v1.4.4 on Sun Jan 23 10:35:11 2011
*nat
:PREROUTING ACCEPT [41622:2698874]
:POSTROUTING ACCEPT [753:42479]
:OUTPUT ACCEPT [270:17472]
-A PREROUTING -d 85.113.37.77/32 -p udp -m udp --dport 27015 -j DNAT --to-destin                                                                    ation 192.168.66.101:27015
-A POSTROUTING -j MASQUERADE
-A OUTPUT -d 85.113.37.77/32 -p udp -m udp --dport 27015 -j DNAT --to-destinatio                                                                    n 192.168.66.101:27015
COMMIT
# Completed on Sun Jan 23 10:35:11 2011
# Generated by iptables-save v1.4.4 on Sun Jan 23 10:35:11 2011
*mangle
:PREROUTING ACCEPT [773810:81099884]
:INPUT ACCEPT [43987:3097024]
:FORWARD ACCEPT [729339:77887868]
:OUTPUT ACCEPT [46884:12473944]
:POSTROUTING ACCEPT [775822:90315702]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65                                                                    495 -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Sun Jan 23 10:35:11 2011
root@raven2:~#

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Непонятки с перебросом портов
« Ответ #5 : 23 Января 2011, 10:43:37 »
-A POSTROUTING -j MASQUERADE
Здесь нужно указать направление, которое нужно маскардить, а то оно так всё маскардит. Например, если интерфейс инета eth0, то должно быть так:
iptables -t nat -o eth0 -A POSTROUTING -j MASQUERADE

Оффлайн ravenyd123

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Непонятки с перебросом портов
« Ответ #6 : 23 Января 2011, 10:58:55 »
-A POSTROUTING -j MASQUERADE
Здесь нужно указать направление, которое нужно маскардить, а то оно так всё маскардит. Например, если интерфейс инета eth0, то должно быть так:
iptables -t nat -o eth0 -A POSTROUTING -j MASQUERADE

Заменил, но почему-то теперь сервер №2 из инета не виден )))))

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Непонятки с перебросом портов
« Ответ #7 : 23 Января 2011, 11:01:27 »
Ну и по традиции iptables-save в качестве отчёта о проделанной работе.

Оффлайн ravenyd123

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Непонятки с перебросом портов
« Ответ #8 : 23 Января 2011, 11:07:31 »
-A POSTROUTING -j MASQUERADE
Здесь нужно указать направление, которое нужно маскардить, а то оно так всё маскардит. Например, если интерфейс инета eth0, то должно быть так:
iptables -t nat -o eth0 -A POSTROUTING -j MASQUERADE

Использовал ppp0

Пользователь решил продолжить мысль 23 Января 2011, 11:07:44:
Цитировать
root@raven2:~# iptables-save
# Generated by iptables-save v1.4.4 on Sun Jan 23 11:06:29 2011
*filter
:INPUT ACCEPT [26772:1622122]
:FORWARD ACCEPT [17621:1073819]
:OUTPUT ACCEPT [26503:1781520]
-A FORWARD -s 192.168.66.0/24 -i eth0 -o eth1 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.66.0/24 -i eth0 -o eth1 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.66.0/24 -i eth0 -o eth1 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.66.0/24 -i eth0 -o eth1 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Sun Jan 23 11:06:29 2011
# Generated by iptables-save v1.4.4 on Sun Jan 23 11:06:29 2011
*nat
:PREROUTING ACCEPT [36721:2203744]
:POSTROUTING ACCEPT [6359:377363]
:OUTPUT ACCEPT [659:42531]
-A PREROUTING -d 85.113.37.77/32 -p udp -m udp --dport 27015 -j DNAT --to-destination 192.168.66.101:27015
-A POSTROUTING -o ppp0 -j MASQUERADE
-A OUTPUT -d 85.113.37.77/32 -p udp -m udp --dport 27015 -j DNAT --to-destination 192.168.66.101:27015
COMMIT
# Completed on Sun Jan 23 11:06:29 2011
# Generated by iptables-save v1.4.4 on Sun Jan 23 11:06:29 2011
*mangle
:PREROUTING ACCEPT [172533:77594046]
:INPUT ACCEPT [37559:2287387]
:FORWARD ACCEPT [134414:75185665]
:OUTPUT ACCEPT [37178:2489859]
:POSTROUTING ACCEPT [171609:77678836]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Sun Jan 23 11:06:29 2011
root@raven2:~#


Пользователь решил продолжить мысль 23 Января 2011, 11:14:19:
Еще вот такие правила прописываю на сервере №1 для доступа сервера №2 к интернету:

Цитировать
iptables -A FORWARD -i eth0 -o eth1 -s 192.168.66.00/24 -m conntrack --ctstate NEW -j ACCEPT
 iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -o ppp0 -A POSTROUTING -j MASQUERADE - этим заменил то, что было раньше:  iptables -A POSTROUTING -t nat -j MASQUERADE
 sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

Пользователь решил продолжить мысль 23 Января 2011, 11:15:08:
eth0 - локальная сеть
eth1 - смотрит в инет
« Последнее редактирование: 23 Января 2011, 11:15:08 от ravenyd123 »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Непонятки с перебросом портов
« Ответ #9 : 23 Января 2011, 11:20:49 »
Так, а проверяешь из твоей же локалки, но обращаясь к интернет адресу?
Если да, то в этом случае это направление нужно тоже маскардить, если твой сервер №2 не приемлет обращение от имени одного ip с разных mac:
iptables -t nat -i eth0 -o eth0 -A POSTROUTING -j MASQUERADE

Еще вот такие правила прописываю на сервере №1 для доступа сервера №2 к интернету: iptables -A FORWARD
Они все бесполезны без политики DROP по умолчанию на цепочке, и соответственно нам пока не мешают.



Оффлайн ravenyd123

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Непонятки с перебросом портов
« Ответ #10 : 23 Января 2011, 11:39:28 »
Так, а проверяешь из твоей же локалки, но обращаясь к интернет адресу?
Если да, то в этом случае это направление нужно тоже маскардить, если твой сервер №2 не приемлет обращение от имени одного ip с разных mac:
iptables -t nat -i eth0 -o eth0 -A POSTROUTING -j MASQUERADE

Еще вот такие правила прописываю на сервере №1 для доступа сервера №2 к интернету: iptables -A FORWARD
Они все бесполезны без политики DROP по умолчанию на цепочке, и соответственно нам пока не мешают.
iptables -t nat -i eth0 -o eth0 -A POSTROUTING -j MASQUERADEвыводит:
Цитировать
root@raven2:~# iptables -t nat -i eth0 -o eth0 -A POSTROUTING -j MASQUERADE
iptables v1.4.4: Can't use -i with POSTROUTING

Try `iptables -h' or 'iptables --help' for more information.

Да...пытаюсь из локалки подключиться к внешнему айпи: connect 85.113.37.77:27015



Пользователь решил продолжить мысль 23 Января 2011, 11:40:45:
Хотя и из самого инета тоже коннект не проходит

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Непонятки с перебросом портов
« Ответ #11 : 23 Января 2011, 11:42:37 »
iptables v1.4.4: Can't use -i with POSTROUTING
Вот я затупил.. Вот так:

iptables -t nat -s 192.168.66.0/24 -d 192.168.66.0/24 -o eth0 -A POSTROUTING -j MASQUERADE

Оффлайн ravenyd123

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Непонятки с перебросом портов
« Ответ #12 : 23 Января 2011, 11:52:10 »
iptables v1.4.4: Can't use -i with POSTROUTING
Вот я затупил.. Вот так:

iptables -t nat -s 192.168.66.0/24 -d 192.168.66.0/24 -o eth0 -A POSTROUTING -j MASQUERADE

У меня через локалку по внешнему IP заходит. А из инета не заходит.
И мой IP подменяется первыйм сервером.

Цитировать
root@raven2:~# iptables-save
# Generated by iptables-save v1.4.4 on Sun Jan 23 11:50:28 2011
*filter
:INPUT ACCEPT [185691:16559764]
:FORWARD ACCEPT [94630:6364404]
:OUTPUT ACCEPT [207029:98140353]
-A FORWARD -s 192.168.66.0/24 -i eth0 -o eth1 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.66.0/24 -i eth0 -o eth1 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.66.0/24 -i eth0 -o eth1 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.66.0/24 -i eth0 -o eth1 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Sun Jan 23 11:50:28 2011
# Generated by iptables-save v1.4.4 on Sun Jan 23 11:50:28 2011
*nat
:PREROUTING ACCEPT [156456:10045142]
:POSTROUTING ACCEPT [17544:974202]
:OUTPUT ACCEPT [2569:163569]
-A PREROUTING -d 85.113.37.77/32 -p udp -m udp --dport 27015 -j DNAT --to-destination 192.168.66.101:27015
-A POSTROUTING -o ppp0 -j MASQUERADE
-A POSTROUTING -s 192.168.66.0/24 -d 192.168.66.0/24 -o eth0 -j MASQUERADE
-A OUTPUT -d 85.113.37.77/32 -p udp -m udp --dport 27015 -j DNAT --to-destination 192.168.66.101:27015
COMMIT
# Completed on Sun Jan 23 11:50:28 2011
# Generated by iptables-save v1.4.4 on Sun Jan 23 11:50:28 2011
*mangle
:PREROUTING ACCEPT [1522240:895361243]
:INPUT ACCEPT [196479:17225081]
:FORWARD ACCEPT [1323161:877628361]
:OUTPUT ACCEPT [217745:98853191]
:POSTROUTING ACCEPT [1540898:976482697]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Sun Jan 23 11:50:28 2011
root@raven2:~#

Пользователь решил продолжить мысль 23 Января 2011, 11:52:45:
Как все сложно-то )

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Непонятки с перебросом портов
« Ответ #13 : 23 Января 2011, 12:03:52 »
И мой IP подменяется первыйм сервером.
Это так и будет, если через локалку долбиться до сервера по внешнему адресу. Тут задача впринципе неразрешима, когда сервер №2 отказывается принимать пакеты с разных mac адресов, и из за этого приходится подменять адрес источника. Вообще, если по правильному, то нужно к серверу в локалке обращаться только по его локальному адресу.

А если с инета будут на сервер приходить, то адреса будут видны их родные, т.к. мы их не маскардим.

А из инета не заходит.

А у тебя может какой пиринг провайдер делает по eth1? Что в маршрутах прописано (route -n)? Может надо и выход с eth1 тоже маскардить?
iptables -t nat -o eth1 -A POSTROUTING -j MASQUERADE

Оффлайн ravenyd123

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Непонятки с перебросом портов
« Ответ #14 : 23 Января 2011, 12:08:33 »
Цитировать
root@raven2:~# route -n
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
85.113.63.105   0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
192.168.66.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0
root@raven2:~#

 

Страница сгенерирована за 0.055 секунд. Запросов: 25.