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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: проброс портов rdp  (Прочитано 18032 раз)

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

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
Re: проброс портов rdp
« Ответ #15 : 22 Ноября 2011, 07:18:59 »
а как фильтровать IP, которые нужно пропускать в НАТ. Т.е. всех блочить на внешний порт, кроме определённых айпи?

#================================
# Чужой адрес
ALIEN_EXT_IP='1.2.3.4'


iptables -A INPUT -p tcp --dport $SRDP_PORT -j DROP

iptables -A INPUT -s $ALIEN_EXT_IP -p tcp --dport $SRDP_PORT -j ACCEPT
#================================

iptables -t nat -I PREROUTING --dst $IP_EXT -p tcp --dport $SRDP_PORT -j DNAT --to-destination $RDP_HOST_IP:$DRDP_PORT

#iptables -t nat -I POSTROUTING -p tcp --dst $RDP_HOST_IP --dport $DRDP_PORT -j SNAT --to-source $IP_INT

iptables -t nat -I OUTPUT --dst $IP_EXT -p tcp --dport $SRDP_PORT -j DNAT --to-destination $RDP_HOST_IP:$DRDP_PORT

iptables -I FORWARD -i $IP_INT --dst $RDP_HOST_IP -j ACCEPT

не закрывается, всё равно проходит коннект с айпи НЕ 1.2.3.4
думаю дальше...

Пользователь решил продолжить мысль 22 Ноября 2011, 08:12:57:
освежил принцип работы iptables, решение ниже

в первое правило добавляем: -s $ALIEN_EXT_IP

iptables -t nat -I PREROUTING -s $ALIEN_EXT_IP --dst $IP_EXT -p tcp --dport $SRDP_PORT -j DNAT --to-destination $RDP_HOST_IP:$DRDP_PORT
« Последнее редактирование: 22 Ноября 2011, 08:14:55 от ⚡ Thunde® ⚡ »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: проброс портов rdp
« Ответ #16 : 22 Ноября 2011, 08:50:23 »
Отвечаю phantom-d

Ну, во-первых, давайте уберём косяки с граблями и удалим лишнее

1.
*nat
-A POSTROUTING -j MASQUERADE
Меняем на
-t nat -A POSTROUTING -o eth4 ! -d 192.168.34.0/24 -j MASQUERADEЕсли есть ещё локальные сети или внешние интерфейсы, то добавляем соответствующие правила

2. При
*filter
:FORWARD ACCEPT [62085:3687956]
следующие правила совершенно бессмысленны
*filter
-A FORWARD -d 192.168.34.200/32 -p udp -m udp --dport 11111 -j ACCEPT
-A FORWARD -d 192.168.34.200/32 -p tcp -m tcp --dport 11111 -j ACCEPT
-A FORWARD -s 192.168.34.0/24 -i eth1 -o eth4 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

3. Мало того, из тех правил, что я выделил как "неудавшиеся" (ну, допустим, что дефолтный ACCEPT был выставлен из-за непоняток - для выявления косяков) - 2 из них неработоспособные, а 2 - неправильным порядковым номеров.
А именно
Для снижения нагрузки на ядро разрешения на пакеты установленных соединений ставят первым или, как минимум, первым за приоритетными запрещающими правилами
Разрешение на исходящий траффик из локальной сети - вторым (хотя это спорно - всё зависит от того, какой траффик чаще начинается - локальный или доступ из внешки)
А вот правила на RDP - вообще неверные. Сразу видно, что Вы даже не пытались разобраться как это работает (имею ввиду и сам RDP и netfilter).
а. RDP - использует чисто tcp соединения
б. Цепочку FORWARD входящие пакеты RDP будут проходить уже с destination port 3389

Ввиду вышеописанного, таблица filter должна выглядеть так
Цитировать
*filter
:INPUT ACCEPT [16485763:10639686855]
:FORWARD DROP [62085:3687956]
:OUTPUT ACCEPT [11987074:5571091639]
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.34.0/24 -i eth1 -o eth4 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -d 192.168.34.200/32 -p tcp -m tcp --dport 3389 -j ACCEPT
COMMIT

Правда всё вышесказанное, никак не влияет на неработоспособность RDP. Проверяйте внешний адрес, возможно из-за этого проблемы.
Ну и... проверяйте роутер. Есть модели аппаратных роутеров, которые в веб.морде показывают, что порт проброшен, а по факту - проброса нет.

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
Re: проброс портов rdp
« Ответ #17 : 22 Ноября 2011, 09:07:08 »
Фишер, что есть ! тут
-t nat -A POSTROUTING -o eth4 ! -d 192.168.34.0/24 -j MASQUERADE

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: проброс портов rdp
« Ответ #18 : 22 Ноября 2011, 09:09:25 »
Это был вопрос? Извините, я Вашу пунктуацию не понимаю.

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
Re: проброс портов rdp
« Ответ #19 : 22 Ноября 2011, 09:14:26 »
да, это вопрос без знака вопроса.

что есть "!" в правиле, инверсия? Т.е. если сетка 1.1.1.0, в которую нужно раздать инет, то должно быть ! -d 1.1.1.0/24, так?

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: проброс портов rdp
« Ответ #20 : 22 Ноября 2011, 09:32:29 »
Да, всё правильно.
Знак ! перед условием - это знак отрицания.
Данным правилом Вы указываете, что пакет не предназначен для локальной сети.

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
Re: проброс портов rdp
« Ответ #21 : 22 Ноября 2011, 09:35:26 »
т.е. для раздачи надо указывать, что пакеты для инета, не для локалки, верно?

iptables -t nat -A POSTROUTING -o eth0 ! -d 192.168.0.0/24 -j MASQUERADEу меня просто без этого было, щас прочитал ваш пост подумал, что надо разобраться с этим.

Пользователь решил продолжить мысль 22 Ноября 2011, 09:35:59:
да, всё правильно, спасибо.

Оффлайн dragomir-onishhenko@yande

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: проброс портов rdp
« Ответ #22 : 22 Апреля 2016, 14:44:21 »
Господа, бьюсь с задачей вроде простой:
2 сетки, 2 интерфейса на сервере.
Сеть 1- хх.хх.1.х
Сеть 2 - хх.хх.2.х

Серверные интерфейсы: eth1 xx.xx.1.y eth2 xx.xx.2.z
Машина в сети xx.xx.1.20

Из одной сети должен попасть на рдп порт машины. Создал 4 правила.
 sudo iptables -t nat -I PREROUTING --dst 10.88.18.212 -p tcp --dport 3389 -j DNAT --to-destination 10.88.19.23:3389
 sudo iptables -t nat -I POSTROUTING -p tcp --dst 10.88.19.23 --dport 3389 -j SNAT --to-source 10.88.19.63
sudo iptables -t nat -I OUTPUT --dst 10.88.18.212 -p tcp --dport 3389 -j DNAT --to-destination 10.88.19.23:3389
 sudo iptables -I FORWARD -i 10.88.19.63 --dst 10.88.19.23 -j ACCEPT


Что не так?
Надо чтобы при подключении на порт 3389 сервера в сети хх.хх.2.х пробрасывался рдп на машину прямиком.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: проброс портов rdp
« Ответ #23 : 22 Апреля 2016, 14:56:32 »
3-е правило не понятно что делает (я-то знаю для чего оно, а Вы?)
4-ое правило уверен, что не вводится, ругаясь на синтаксис. А что оно должно делать я могу только догадываться.

А в сети разве не прозрачная адресация? Может проще просто тупо в filter разрешить бегать на этот сервис? Зачем Вам NAT?

PS Про некрофилию я не буду говорить... а надо бы

Оффлайн dragomir-onishhenko@yande

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: проброс портов rdp
« Ответ #24 : 22 Апреля 2016, 15:15:04 »
Да... согласен - не спорю... Прозрачная.
Так оно же уже должно работать?

iptables -t nat -A PREROUTING -i eth2 -p tcp -d хх.хх.2.хх --dport 3389 -j DNAT --to хх.хх.хх.1.20:3389
iptables -A FORWARD -i eth2 -o eth1 -d  хх.хх.хх.1.20 -p tcp --dport 3389 -j ACCEPT

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: проброс портов rdp
« Ответ #25 : 22 Апреля 2016, 15:22:24 »
повторю вопрос: если адресация прозрачная, то НАФИГА NAT?

Пользователь добавил сообщение 22 Апреля 2016, 15:41:16:
Видимо, да, ведь я не знаю какой куда интерфейс смотрит. Да и политика безопасности мне неизвестна.
Может даже и этого не нужно )))
« Последнее редактирование: 22 Апреля 2016, 15:41:16 от fisher74 »

Оффлайн dragomir-onishhenko@yande

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: проброс портов rdp
« Ответ #26 : 22 Апреля 2016, 15:53:42 »
Сервак - это единственная связь 2-х сетей. Мне нужно всего-лишь переадресовать по определенному порту на ип в другой сети. То есть запретов вобще никаких на серваке нет. То есть да - сеть прозрачная.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: проброс портов rdp
« Ответ #27 : 22 Апреля 2016, 16:03:56 »
Если запретов нет, то и последнее правило нужно как собаке пятая нога.

Оффлайн dragomir-onishhenko@yande

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: проброс портов rdp
« Ответ #28 : 22 Апреля 2016, 16:25:49 »
Все таки остановился на этом:

iptables -t nat -A PREROUTING -p tcp -d 10.88.18.212 --dport 3389 -j DNAT --to-destination 10.88.19.23:3389
iptables -A FORWARD -i eth2 -p tcp -d 10.88.19.23 --dport 3389 -j ACCEPT
Нат не нат, но как-то же надо пробросить...
Теперь я уже ничерта не понимаю, хотя задача, как мне показалось, минутная.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: проброс портов rdp
« Ответ #29 : 22 Апреля 2016, 16:36:37 »
Ежики кололись, плакали, но продолжали лезть на кактус...
Не ищем лёгких путей...
Вопрос "зачем?" для меня остался без ответ.

Пользователь добавил сообщение 22 Апреля 2016, 16:38:05:
Уберите весь этот шлак и работайте по прямым адресам...

 

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