LINUX.ORG.RU

Пустить Remote App через прокси на Linux Ubuntu server


0

1

Имеется наша локальная сеть, она ходит в инет через прокси-сервер. На сервере есть файл iprules который определяет кто и как будет иметь доступ извне/изнутри.

Имеет PC с Win Server с установленным сервером терминалов и Remote App.

Как сделать так, чтобы Remote App созданное на статический IP и малоиспользуемый порт, 31111 например, перенаправлялось на локальный IP (тут не знаю, важен порт или нет).

Я делал всё легко через NAT роутера, а как использовать iptables я затрудняюсь сказать.

В данный момент такая связка:

iptables -t nat -A PREROUTING -d 208.77.188.166 -p tcp --dport 31111 -j DNAT --to-destination 192.168.1.2 iptables -t nat -A POSTROUTING -d 192.168.2.1 -p tcp --dport 31111 -j SNAT --to-source 192.168.1.1 iptables -t nat -A OUTPUT -d 208.77.188.166 -p tcp --dport 31111 -j DNAT --to-destination 192.168.1.2 iptables -I FORWARD -i eth0 -o eth1 -d 192.168.2.1 -p tcp -m tcp --dport 31111 -j ACCEPT

не работает.

Ответ на: комментарий от AlkisTer

Это команда, которую надо выполнить из-под учетной записи root на целевой машине. И результат давай сюда

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

Быстрым решением будет

iptables -t nat -I PREROUTING -d $ip_ext -p tcp --dport 31111 -j DNAT --to-destination 192.168.1.2
, где $ip_ext - твой внешний адрес.

Если сразу не заработает, то сделай так:

apt-get install conntrack
conntrack -D -p tcp --dport 31111
И не свети свой внешний адрес вместе с настройками файрволла в интернете.

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

Как из PuTTy сохранить код в Windows?

Не Ctrl-C единым, можешь юзать Ctrl-Insert, например

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

conntrack -D -p tcp --dport 31111

Можете рассказать что делает это команда? Первая я понял, устанавливать модуль, а вот вторая...

-D это delete. Удалить порт из чего?

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

Удаляет запись о соединении из таблицы connection tracking'а. Пакеты, принадлежащие какому-то соединению, не проходят через таблицу nat. Если бы до добавления правила существовало соединение с $ip_ext:31111, то после добавления пакеты, принадлежащие этому соединению, уходили бы туда же.

В общем-то, tcp трафик обычно попадает в правильное место, но с udp надо держать ухо востро

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

А какую команду надо написать чтобы изнутри можно было соединение проверить? Это правильная:

-A POSTROUTING -d 192.168.13.107/32 -p tcp -m tcp --dport 34343 -j SNAT --to-source 192.168.13.1

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

Не работает, ни изнутри, не снаружи. conntrack даёт:

tcp 6 30 SYN_SENT src=192.168.13.** dst=87.249.227.*** sport=2274 dport=34343 packets=3 bytes=144 [UNREPLIED] src=192.168.13.107 dst=192.168.13.1 sport=34343 dport=2274 packets=0 bytes=0 mark=0 secmark=0 use=2 conntrack v0.9.13 (conntrack-tools): 1 flow entries have been deleted.

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

Попробуй

iptables -I FORWARD -d $int_ip_serv --dport 34343 -j ACCEPT
iptables -I FORWARD -s $int_ip_serv --sport 34343 -j ACCEPT
, хотя у тебя вроде везде accept'ы были. $int_ip_serv - внутренний адрес серва.

И изнутри на внутренний адрес попытайся зайти

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

Созданный на локальный адрес RApp на порт 34343 не работает. Созданный на порт 3389 работает.

Видимо нужно переадресация порта с 34343 на 3389, через роутер я так и делал, всё работало. С iptables всё значительно сложнее.

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

:D

Я почему-то думал, что там какой-то кастомный сервис. Знал бы, что рдп - быстрее бы решилось.

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

Прокинулось, и изнутри работает и снаружи!

Теперь надо настроить переадресацию порта, так как 3389 лучше не использовать.

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

Дык, я говорил что это RemoteApp для Сервера 2008. По стандарту он работает по порту 3389. А я хочу чтобы по интернету был другой порт.

AlkisTer ()
Ответ на: комментарий от AlkisTer
iptables -t nat -I PREROUTING -d $ext_ip -p tcp --dport $port -j DNAT --to $int_ip:3389
iptables -I FORWARD -d $int_ip -p tcp --dport 3389 -j ACCEPT
iptables -I FORWARD -s $ext_ip -p tcp --sport 3389 -j ACCEPT
anonymous ()
Ответ на: комментарий от anonymous

Всё работает!

Сделано как в предыдущем сообщении, плюс -A POSTROUTING -d 192.168.13.107/32 -p tcp -m tcp --dport 3389 -j SNAT --to-source 192.168.13.1 для внутренной проверки.

Огромное спасибо за помощь!

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