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


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

Автор Тема: Сломался проброс портов  (Прочитано 884 раз)

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

Оффлайн tarya

  • Автор темы
  • Активист
  • *
  • Сообщений: 305
    • Просмотр профиля
Сломался проброс портов
« : 21 Марта 2015, 20:31:00 »
Друзья выручайте.

Есть сервер на убунте, за ним стоит еще один терминальный. Настроен проброс порта RDP. Тут стала задача заменить материнскую плату на сервере, так как она была повреждена и не запускалась после сбоя питания. Итого установил другую материнскую плату, но в ней особенности - всего одно разъем для подключения сетевой карты, и получилось что сетевых теперь всего две, одна в мир, другая в офис. Ранее было три сетевые eth0, eth1, eth2. На последней eth2 висел именно этот сервер RDP с адресом 192.168.1.100 и он небыл доступен из офиса.

Пробрасывал я порты так:

Цитировать
sudo iptables -A FORWARD -i eth0 -p tcp --dport 3389 -j ACCEPT
sudo iptables -t nat -A PREROUTING -p tcp -d 111.111.111.111 --dport 3389 -j DNAT --to-destination 192.168.1.100:3389
sudo iptables -t nat -A POSTROUTING -p tcp --dst 192.168.1.100 --dport 3389 -j SNAT --to-source 111.111.111.111

А теперь у меня две сетевые. Чтоб сделать эмуляцию сетевой в другой подсети я сетевой карте eth1 присвоил подсеть.

Цитировать
auto eth1:0
iface eth1:0 inet static
   address 192.168.1.1
   netmask 255.255.255.0

Все как бы заработало. На сервере поднялся интернет. И я зашел на сервер RDP как по врутренему адресу 192.168.1.100 так и по внешнему 111.111.111.111 (я за ним и сижу) просто простучался как бы извне.

И у меня все работает. Но у других нет.

Что делать, как проверять, куда копать?

Спасибо за ваши советы.

Оффлайн shushpanchik

  • Активист
  • *
  • Сообщений: 296
    • Просмотр профиля
    • SKSS - "Современные компьютерные сети и системы"
Re: Сломался проброс портов
« Ответ #1 : 21 Марта 2015, 22:02:19 »
Не совсем понятно для чего
sudo iptables -t nat -A PREROUTING -p tcp -d 111.111.111.111 --dport 3389 -j DNAT --to-destination 192.168.1.100:3389
И чей ИП 111.111.111.111 в примере? Удаленного клиента или внешний ИП сервера?

sudo iptables -t nat -A PREROUTING -d <внешний.ИП.сервера.Ubuntu> -p tcp --dport 3389 -j DNAT --to-destination 192.168.1.100:3389
sudo iptables -t nat -A POSTROUTING -d 192.168.1.100 -p tcp --dport 3389 -j SNAT --to-source 192.168.1.1
Это правило разрешит всем из инета коннектиться на RDP. Для начала попробуйте так.

Еще осмелюсь предположить что eth1:0 не совсем корректный виртуальный интерфейс. Скорее наверное eth1:1. Если я не прав, пусть меня поправят гуру. Хотя, если интерфейс с таким именем поднялся - значит такое имя допустимо.
« Последнее редактирование: 21 Марта 2015, 22:08:17 от shushpanchik »

Оффлайн tarya

  • Автор темы
  • Активист
  • *
  • Сообщений: 305
    • Просмотр профиля
Re: Сломался проброс портов
« Ответ #2 : 21 Марта 2015, 22:58:37 »
"111.111.111.111" это внешний айпи моего сервера за которым стоит RPD.

Эим правила я нашел в сети когда искал как сделать:

Цитировать
sudo iptables -A FORWARD -i eth0 -p tcp --dport 3389 -j ACCEPT
sudo iptables -t nat -A PREROUTING -p tcp -d 111.111.111.111 --dport 3389 -j DNAT --to-destination 192.168.1.100:3389
sudo iptables -t nat -A POSTROUTING -p tcp --dst 192.168.1.100 --dport 3389 -j SNAT --to-source 111.111.111.111

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

Оно замечательно работает. Что интересно я вот нахожусь за натом этого адреса 111.111.111.111. Я настраиваю клиент подключиться на 111.111.111.111:3389 и проблем нет, моментально заходит. Потом словил чужую wifi сеть, подключился и пытаюсь из нее и не работает ничего.

Если мои правила не верны то ранее они работали.

Я думал что все это из за виртуального интерфейса 192.168.1.1 что я прописал. Я его убрал вообще. Переписал сервер на адрес 192.168.0.100 чтоб он находится на том же интерфейсе что и все. Подправил правила вышепоказанные чтоб не на 192.168.1.100 а на 192.168.0.100 - но все оказалось так же. Изнутри на внешний айпи и порт работает, а с наружи нет.

Пользователь решил продолжить мысль [time]22 Март 2015, 00:08:29[/time]:
Вот мой iptables-save, прошу не бить.

Цитировать
# Generated by iptables-save v1.4.21 on Sat Mar 21 22:03:56 2015
*filter
:INPUT ACCEPT [32:5376]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -m state --state NEW -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1234 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 2345 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p gre -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
-A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o eth1 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -p udp -m udp --sport 1701 -j ACCEPT
-A FORWARD -i eth0 -p tcp -m tcp --dport 3389 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p gre -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -j ACCEPT
COMMIT
# Completed on Sat Mar 21 22:03:56 2015
# Generated by iptables-save v1.4.21 on Sat Mar 21 22:03:56 2015
*mangle
:PREROUTING ACCEPT [3296:501286]
:INPUT ACCEPT [2215:283725]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2170:560429]
:POSTROUTING ACCEPT [3296:788671]
-A FORWARD -j ACCEPT
COMMIT
# Completed on Sat Mar 21 22:03:56 2015
# Generated by iptables-save v1.4.21 on Sat Mar 21 22:03:56 2015
*nat
:PREROUTING ACCEPT [1353:175207]
:INPUT ACCEPT [1282:167812]
:OUTPUT ACCEPT [49:3312]
:POSTROUTING ACCEPT [12:720]
-A PREROUTING -d 111.111.111.111/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.0.100:3389
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/23 -o eth0 -j MASQUERADE
-A POSTROUTING -d 192.168.0.100/32 -p tcp -m tcp --dport 3389 -j SNAT --to-source 111.111.111.111

Пользователь решил продолжить мысль [time]22 Март 2015, 00:26:40[/time]:
К стати ваш вариант один в один как и мой.

Пользователь решил продолжить мысль [time]22 Март 2015, 01:46:30[/time]:
Ребята выручайте, это что-то не так с iptables.



Пользователь решил продолжить мысль [time]22 Март 2015, 02:22:47[/time]:
У меня уже такие мысли лезут. Что если я могу подключиться на внешний адрес из под этой же сети, но не могу извне то может просто провайдер что-то блокирует? Может такое быть?

Пользователь решил продолжить мысль 22 Марта 2015, 02:02:03:
Нет, провайдер ничего не блокирует. Запустил TCPDUMP если заходишь с локального компьютера то бегают пакеты и все работает. Если заходишь извне то пакет приходит и все.

Цитировать
00:56:38.480911 IP 111.111.111.223.56951 > 111.111.111.111.3389: Flags , seq 1808589832, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 181472354 ecr 0,sackOK,eol], length 0
00:56:45.379724 IP 111.111.111.223.56952 > 111.111.111.111.3389: Flags , seq 3593840610, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 181479291 ecr 0,sackOK,eol], length 0
00:56:51.364137 IP 111.111.111.223.56953 > 111.111.111.111.3389: Flags , seq 2994539063, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 181485273 ecr 0,sackOK,eol], length 0
00:57:03.355179 IP 111.111.111.223.56954 > 111.111.111.111.3389: Flags , seq 3973123576, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 181497253 ecr 0,sackOK,eol], length 0

Видно как с 111.111.111.223 приходит запрос и обвывается. Вот я 4 раза пробовал зайти и 4 раза выстреливала вот такая строка.
« Последнее редактирование: 22 Марта 2015, 02:02:03 от tarya »

Оффлайн shushpanchik

  • Активист
  • *
  • Сообщений: 296
    • Просмотр профиля
    • SKSS - "Современные компьютерные сети и системы"
Re: Сломался проброс портов
« Ответ #3 : 22 Марта 2015, 21:26:32 »
Попробуйте
sudo iptables -t nat -A PREROUTING -p tcp -d 111.111.111.111 --dport 3389 -j DNAT --to-destination 192.168.0.100:3389
sudo iptables -t nat -A POSTROUTING -p tcp --dst 192.168.0.100 --dport 3389 -j SNAT --to-source внутренний ip сервера

Вот мое реально работающее правило:
iptables -t nat -A PREROUTING -d $EXT_IP -i ppp0 -p tcp -m tcp --dport 13390 -j DNAT --to-destination 192.168.100.199:3389
iptables -t nat -A POSTROUTING -d 192.168.100.199 -p tcp -m tcp --dport 3389 -j SNAT --to-source 192.168.100.250
Думаю тут понятно, что в переменной EXT_IP внешний ИП сервера, 192.168.100.250 - внутренний, 192.168.100.199 - RDP, идет форвард с порта 13390 на 3389

Оффлайн tarya

  • Автор темы
  • Активист
  • *
  • Сообщений: 305
    • Просмотр профиля
Re: Сломался проброс портов
« Ответ #4 : 22 Марта 2015, 21:39:23 »
Я просто хочу сказать что он работал чудесно на старой материнской плате. Так как тут не заработало я решил вернуть все как было и все заработало.

Я тут только что подумал что на этой материнке как я писал у меня 3 сетевые карты, на одну из них и повешен сервер RDP я подумал что вытащу одну из них и запущу все в конфигурации на 2 карты, и когда все заработает заменю материнскую плату.

Оффлайн sieger1x2

  • Любитель
  • *
  • Сообщений: 84
    • Просмотр профиля
Re: Сломался проброс портов
« Ответ #5 : 23 Марта 2015, 14:40:43 »
Прочитайте комментарии.


Цитировать
# Generated by iptables-save v1.4.21 on Sat Mar 21 22:03:56 2015
*filter
:INPUT ACCEPT [32:5376]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# Дефолтные политики INPUT,FORWARD,OUTPUT - ACCEPT т.е. разрешено, разрешать прохождение трафика для конкретных вещей - смысла не имеет
# С ЭТОГО МАРКЕРА

-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -m state --state NEW -j ACCEPT

-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1234 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 2345 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p gre -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT



-A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT


-A FORWARD -p udp -m udp --sport 1701 -j ACCEPT
-A FORWARD -i eth0 -p tcp -m tcp --dport 3389 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p gre -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -j ACCEPT
# ПО ЭТОТ СМЫСЛА В ПРАВИЛАХ НЕТ
Не понятно зачем следующие 2 правила
я думаю их нужно удалить

-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A FORWARD -i eth0 -o eth1 -j REJECT --reject-with icmp-port-unreachable
COMMIT
# Completed on Sat Mar 21 22:03:56 2015
# Generated by iptables-save v1.4.21 on Sat Mar 21 22:03:56 2015
*mangle
:PREROUTING ACCEPT [3296:501286]
:INPUT ACCEPT [2215:283725]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2170:560429]
:POSTROUTING ACCEPT [3296:788671]
-A FORWARD -j ACCEPT
COMMIT
# Completed on Sat Mar 21 22:03:56 2015
# Generated by iptables-save v1.4.21 on Sat Mar 21 22:03:56 2015
*nat
:PREROUTING ACCEPT [1353:175207]
:INPUT ACCEPT [1282:167812]
:OUTPUT ACCEPT [49:3312]
:POSTROUTING ACCEPT [12:720]
# Это правило оставте
-A PREROUTING -d 111.111.111.111/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.0.100:3389
# Прочитайте что такое маски подсетей, правило ниже удалить
-A POSTROUTING -o eth0 -j MASQUERADE
# Хватит одно этого правила(ниже)
-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
# Это правило удалить
-A POSTROUTING -s 192.168.0.0/23 -o eth0 -j MASQUERADE
# Это тоже удалить
-A POSTROUTING -d 192.168.0.100/32 -p tcp -m tcp --dport 3389 -j SNAT --to-source 111.111.111.111


Возможно у вас не включен форвард пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward
« Последнее редактирование: 23 Марта 2015, 14:42:18 от sieger1x2 »

Оффлайн tarya

  • Автор темы
  • Активист
  • *
  • Сообщений: 305
    • Просмотр профиля
Re: Сломался проброс портов
« Ответ #6 : 04 Апреля 2015, 21:36:37 »
sieger1x2,
Друг, ты реально выручил!

Все заработало. Покромсал все правила как ты написал. Если чесно конечно опыта нет в этом. Там что инетересно оно генерилось само как то все. И я старался не трогать никогда. Сейчас с твоей помощью взглянул на все иначе и заработало.

Вот что осталось:

# Generated by iptables-save v1.4.21 on Sat Apr  4 21:31:50 2015
*filter
:INPUT ACCEPT [3021:483350]
:FORWARD ACCEPT [2035:714769]
:OUTPUT ACCEPT [2983:712264]
-A FORWARD -p udp -m udp --sport 1701 -j ACCEPT
-A FORWARD -i eth0 -p tcp -m tcp --dport 3389 -j ACCEPT
COMMIT
# Completed on Sat Apr  4 21:31:50 2015
# Generated by iptables-save v1.4.21 on Sat Apr  4 21:31:50 2015
*mangle
:PREROUTING ACCEPT [5067:1198906]
:INPUT ACCEPT [3026:483771]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2987:712792]
:POSTROUTING ACCEPT [5103:1443343]
-A FORWARD -j ACCEPT
COMMIT
# Completed on Sat Apr  4 21:31:50 2015
# Generated by iptables-save v1.4.21 on Sat Apr  4 21:31:50 2015
*nat
:PREROUTING ACCEPT [2135:275401]
:INPUT ACCEPT [1967:252408]
:OUTPUT ACCEPT [335:23881]
:POSTROUTING ACCEPT [335:23881]
-A PREROUTING -d 111.111.11.111/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.1.100:3389
-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
-A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
COMMIT
# Completed on Sat Apr  4 21:31:50 2015

 

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