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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

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

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

Оффлайн a.guzhin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Возникли проблемы с пробросом RDP на терминальный сервер. В качестве шлюза выступает Ubuntu Server 12.04 LTS.

Проблема в том, что снаружи к серверу не могут подключиться клиенты с 7 версией RDP (Windows 7), клиенты с версией протокола ниже 7 подключаются к серверу нормально (как из локальной сети, так и снаружи).

Собственно нормальная последовательность подключения следующая:
1. Запускаем RDP клиент, подключаемся к серверу
2. Запрос логина/пароля
3. Проверка подлинности сервера
4. Подключение к терминальной сессии

В моем случае последовательность следующая:
1. Запускаем RDP клиент, подключаемся к серверу
2. Запрос логина/пароля
3. Запрос логина/пароля
4. ...
n. Запрос логина/пароля

Соответственно клиент не подключается к сессии.

Но! Если на шлюзе я перезапущу интерфейсы (/etc/init.d/networking restart), то в течении некоторого времени я могу нормально зайти на сервер. Спустя какое-то время меня выбивает из сессии, и пока опять не перезапущу интерфейсы к серверу подключиться не получиться.

В какую сторону копать?

Правила следующие:
iptables -P INPUT DROP
iptables -P OUTPUT DROP

iptables -F
iptables -t nat -F
iptables -t mangle -F

iptables -X
iptables -t nat -X
iptables -t mangle -X

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

iptables -A INPUT -i eth0 -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT

iptables -A OUTPUT -o eth1 -j ACCEPT

iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT

iptables -t nat -A PREROUTING -p tcp -d XXX.XXX.XXX.XXX --dport 3389 -j DNAT --to-destination 10.0.0.34:3389
iptables -t nat -A POSTROUTING -p tcp --dst 10.0.0.34 --dport 3389 -j SNAT --to-source XXX.XXX.XXX.XXX
eth0 - локалка, eth1 - интернет.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Странные проблемы с пробросом RDP
« Ответ #1 : 21 Марта 2013, 21:48:23 »
Первым пунктом, перейти на iptables-save/iptables-restore для выгрузки/загрузки правил, затем анализировать iptables-save.

Оффлайн a.guzhin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Странные проблемы с пробросом RDP
« Ответ #2 : 22 Марта 2013, 08:22:22 »
Первым пунктом, перейти на iptables-save/iptables-restore для выгрузки/загрузки правил, затем анализировать iptables-save.
Переделал, правила так выглядят:
# Generated by iptables-save v1.4.12 on Fri Mar 22 08:12:32 2013
*mangle
:PREROUTING ACCEPT [21940:7317013]
:INPUT ACCEPT [853:87023]
:FORWARD ACCEPT [21073:7221740]
:OUTPUT ACCEPT [623:178022]
:POSTROUTING ACCEPT [21690:7399098]
COMMIT
# Completed on Fri Mar 22 08:12:32 2013
# Generated by iptables-save v1.4.12 on Fri Mar 22 08:12:32 2013
*nat
:PREROUTING ACCEPT [169:36145]
:INPUT ACCEPT [52:7076]
:OUTPUT ACCEPT [8:504]
:POSTROUTING ACCEPT [31:1884]
[20:1016] -A PREROUTING -d XXX.XXX.XXX.XXX/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 10.0.0.34:3389
[20:1016] -A POSTROUTING -d 10.0.0.34/32 -p tcp -m tcp --dport 3389 -j SNAT --to-source XXX.XXX.XXX.XXX
COMMIT
# Completed on Fri Mar 22 08:12:32 2013
# Generated by iptables-save v1.4.12 on Fri Mar 22 08:12:32 2013
*filter
:INPUT DROP [95:27729]
:FORWARD ACCEPT [21073:7221740]
:OUTPUT DROP [0:0]
[692:51126] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
[0:0] -A INPUT -i lo -j ACCEPT
[66:8168] -A INPUT -i eth0 -j ACCEPT
[0:0] -A INPUT -p icmp -j ACCEPT
[0:0] -A OUTPUT -o lo -j ACCEPT
[606:176626] -A OUTPUT -o eth0 -j ACCEPT
[11:732] -A OUTPUT -o eth1 -j ACCEPT
[0:0] -A OUTPUT -p icmp -j ACCEPT
COMMIT
# Completed on Fri Mar 22 08:12:32 2013

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Странные проблемы с пробросом RDP
« Ответ #3 : 22 Марта 2013, 09:09:50 »
Расшифруйте ваше правило на SNAT, как вы его понимаете.
В таком виде мне оно не нравится.

Оффлайн a.guzhin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Странные проблемы с пробросом RDP
« Ответ #4 : 22 Марта 2013, 10:01:14 »
Расшифруйте ваше правило на SNAT, как вы его понимаете.
В таком виде мне оно не нравится.
Ошибка закралась, поправил:
# Generated by iptables-save v1.4.12 on Fri Mar 22 09:55:42 2013
*filter
:INPUT DROP [133:32084]
:FORWARD ACCEPT [42460:15063400]
:OUTPUT DROP [0:0]
[253:16667] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
[0:0] -A INPUT -i lo -j ACCEPT
[173:27094] -A INPUT -i eth0 -j ACCEPT
[0:0] -A INPUT -p icmp -j ACCEPT
[0:0] -A OUTPUT -o lo -j ACCEPT
[271:72250] -A OUTPUT -o eth0 -j ACCEPT
[4:264] -A OUTPUT -o eth1 -j ACCEPT
[0:0] -A OUTPUT -p icmp -j ACCEPT
COMMIT
# Completed on Fri Mar 22 09:55:42 2013
# Generated by iptables-save v1.4.12 on Fri Mar 22 09:55:42 2013
*nat
:PREROUTING ACCEPT [289:57666]
:INPUT ACCEPT [144:24832]
:OUTPUT ACCEPT [4:264]
:POSTROUTING ACCEPT [16:1014]
[18:1153] -A PREROUTING -d XXX.XXX.XXX.XXX/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 10.0.0.34:3389
[18:1153] -A POSTROUTING -d 10.0.0.34/32 -p tcp -m tcp --dport 3389 -j SNAT --to-source 10.0.0.62
COMMIT
# Completed on Fri Mar 22 09:55:42 2013
# Generated by iptables-save v1.4.12 on Fri Mar 22 09:55:42 2013
*mangle
:PREROUTING ACCEPT [43021:15139449]
:INPUT ACCEPT [559:75845]
:FORWARD ACCEPT [42460:15063400]
:OUTPUT ACCEPT [279:72972]
:POSTROUTING ACCEPT [42735:15135914]
COMMIT
# Completed on Fri Mar 22 09:55:42 2013
10.0.0.34 - Терминальный сервер
10.0.0.62 - Шлюз

Но ситуацию не изменило, проблема так и осталась :(

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Странные проблемы с пробросом RDP
« Ответ #5 : 22 Марта 2013, 10:04:54 »
Всё равно, мне это не нравится. =)
Давайте смотреть
ip a ; ip r

Оффлайн a.guzhin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Странные проблемы с пробросом RDP
« Ответ #6 : 22 Марта 2013, 10:31:04 »
Всё равно, мне это не нравится. =)
Ну я понимаю это правило ровно так, как тут написано: http://www.opennet.ru/docs/RUS/iptables/#DNATTARGET.
Т.е. ответ на запрос, пришедший из локальной сети через шлюз, будет отправлен через шлюз, а не напрямую клиенту.

Давайте смотреть
ip a ; ip r

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:0c:29:42:3f:50 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.62/27 brd 10.0.0.63 scope global eth0
    inet6 fe80::20c:29ff:fe42:3f50/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:0c:29:16:ca:24 brd ff:ff:ff:ff:ff:ff
    inet XXX.XXX.XXX.124/24 brd XXX.XXX.XXX.255 scope global eth1
    inet6 fe80::20c:29ff:fe16:ca24/64 scope link
       valid_lft forever preferred_lft forever
default via XXX.XXX.XXX.1 dev eth1  metric 100
10.0.0.16/28 via 10.0.0.33 dev eth0
10.0.0.32/27 dev eth0  proto kernel  scope link  src 10.0.0.62
XXX.XXX.XXX.0/24 dev eth1  proto kernel  scope link  src XXX.XXX.XXX.124
192.168.15.0/27 via 10.0.0.33 dev eth0
192.168.16.0/26 via 10.0.0.33 dev eth0
192.168.16.64/26 via 10.0.0.33 dev eth0
192.168.17.0/24 via 10.0.0.33 dev eth0

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Странные проблемы с пробросом RDP
« Ответ #7 : 22 Марта 2013, 10:48:44 »
Ну я понимаю это правило ровно так, как тут написано: http://www.opennet.ru/docs/RUS/iptables/#DNATTARGET.
DNAT нормальный.
Но SNAT на шлюзе обычно выглядит иначе.

Оффлайн a.guzhin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Странные проблемы с пробросом RDP
« Ответ #8 : 22 Марта 2013, 14:35:05 »
Ну я понимаю это правило ровно так, как тут написано: http://www.opennet.ru/docs/RUS/iptables/#DNATTARGET.
DNAT нормальный.
Но SNAT на шлюзе обычно выглядит иначе.
Убрал SNAT, чтобы не смущал, все-равно не подключается (вернее подключается на некоторое время, потом обрыв соединения и подключения нет, пока не перезапустишь сеть на шлюзе):
# Generated by iptables-save v1.4.12 on Fri Mar 22 10:52:46 2013
*filter
:INPUT DROP [103:32924]
:FORWARD ACCEPT [64216:20683942]
:OUTPUT DROP [0:0]
[165:10533] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
[0:0] -A INPUT -i lo -j ACCEPT
[220:38425] -A INPUT -i eth0 -j ACCEPT
[0:0] -A INPUT -p icmp -j ACCEPT
[0:0] -A OUTPUT -o lo -j ACCEPT
[180:63154] -A OUTPUT -o eth0 -j ACCEPT
[1:72] -A OUTPUT -o eth1 -j ACCEPT
[0:0] -A OUTPUT -p icmp -j ACCEPT
COMMIT
# Completed on Fri Mar 22 10:52:46 2013
# Generated by iptables-save v1.4.12 on Fri Mar 22 10:52:46 2013
*nat
:PREROUTING ACCEPT [320:71175]
:INPUT ACCEPT [214:37957]
:OUTPUT ACCEPT [1:72]
:POSTROUTING ACCEPT [5:418]
[1:52] -A PREROUTING -d XXX.XXX.XXX.124/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 10.0.0.34:3389
COMMIT
# Completed on Fri Mar 22 10:52:46 2013
# Generated by iptables-save v1.4.12 on Fri Mar 22 10:52:46 2013
*mangle
:PREROUTING ACCEPT [64720:20782511]
:INPUT ACCEPT [488:81882]
:FORWARD ACCEPT [64217:20684030]
:OUTPUT ACCEPT [184:63604]
:POSTROUTING ACCEPT [64398:20747256]
COMMIT
# Completed on Fri Mar 22 10:52:46 2013


Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Странные проблемы с пробросом RDP
« Ответ #9 : 23 Марта 2013, 23:04:44 »
Так, а если посмотреть настройки сети на вендах
ipconfig & route print?

По поводу SNAT ситуация неоднозначна. Если этот шлюз не является дефолтным для терминального сервера, то по идее, надо делать так, как описано здесь:
http://lamp-dev.com/iptables-port-forwarding-with-snat-and-dnat/274

С другой стороны, на вендах RDP может быть расшарен лишь в локалку, и для обхода этого ограничения, действительно, можно использовать правило:
-A POSTROUTING -d 10.0.0.34/32 -p tcp -m tcp --dport 3389 -j SNAT --to-source 10.0.0.62

Однако, сдаётся мне, что проблема не связана с iptables, иначе оно, скорее всего, вообще бы не подключалось.
все-равно не подключается (вернее подключается на некоторое время, потом обрыв соединения и подключения нет, пока не перезапустишь сеть на шлюзе)
В таком случае, имеет смысл проверить логи и статистику ошибок на интерфейсах шлюза
ip -s lА также исследовать трафик в момент отваливания подключения через wireshark/tcpdump.
« Последнее редактирование: 23 Марта 2013, 23:07:25 от ArcFi »

 

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