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


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

Автор Тема: Подключение из локалки к рабочему столу в   (Прочитано 3304 раз)

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

Оффлайн ignat-by

  • Автор темы
  • Новичок
  • *
  • Сообщений: 22
  • Такие вот мы серьёзные !
    • Просмотр профиля
Здравствуйте.

У меня вот какая нетривиальная задача: есть локальная сеть организации (10 компов), в качестве шлюза стоит ubuntu server 10.04 LTS. По роду деятельности нужно позволить подключиться к удаленному рабочему столу нашим компам из своей локальной сети к компам по IP в интернете (в идеале) или хотя бы в локальной сети провайдера (хотя бы). Дело осложняется тем, что все рабочие машины ходят под виндой, кроме шлюза.
Как прокинуть порт 3389 через NAT в локалку везде написано, а вот как обратно, из локалки в интернет - нигде не нашёл.
При этом надо не к конкретной машине цепляться, а к любой и при этом эти машины в интернете.
Основное соединение по PPPoE (но без модема, IP серый, настройки по dhcp), дополнительное соединение напрямую с белым IP (Ethernet, есть шлюз и DNS). При этом на нашем шлюзе поднят DNS.

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

И ещё попутно вопрос: как в iptables сделать так, чтобы шлюз с белым IP нормально пинговался с любого места в интернете. При всех разрешениях в iptables у меня этот IP совсем не пингуется ни откуда, а войти на сервер можно только  из внутренней сети провайдера.
Опять же под виндой все работает как надо, но своей "стабильностью" винда достала и есть огромное желание переехать на Линукс.
« Последнее редактирование: 28 Мая 2010, 09:05:26 от ignat-by »

Оффлайн mitox

  • Новичок
  • *
  • Сообщений: 25
    • Просмотр профиля
Если я не ошибаюсь это дело можно пустить через маскарадинг

$IPT -t nat -A POSTROUTING -o $SV (имя интерфейса, который смотрит в инет) -d  Указываем айпишник уд раб стола -p tcp --dport 3389 -j MASQUERADE
Крутой каматозник

Оффлайн ignat-by

  • Автор темы
  • Новичок
  • *
  • Сообщений: 22
  • Такие вот мы серьёзные !
    • Просмотр профиля
Если я не ошибаюсь это дело можно пустить через маскарадинг

$IPT -t nat -A POSTROUTING -o $SV (имя интерфейса, который смотрит в инет) -d  Указываем айпишник уд раб стола -p tcp --dport 3389 -j MASQUERADE

Примерно так я уже делал - не получается... К тому же надо сделать так, чтобы в iptables не указывались конкретные IP. Их очень много и они не всегда заранее известны. Да и не полезут пользователи менять что-то в iptables....

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Показывайте iptables-save
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн ignat-by

  • Автор темы
  • Новичок
  • *
  • Сообщений: 22
  • Такие вот мы серьёзные !
    • Просмотр профиля
Показывайте iptables-save

Вот:

(Нажмите, чтобы показать/скрыть)

eth0 - локальная сеть
eth1 - первый провайдер (PPPoE,) - на нем ppp0
eth2 - второй провайдер (белый статический IP)
virbr0 - как я понял от виртуальной машины

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

Гарри Кашпировский

  • Гость
А мысль в голову не приходила, что на той стороне провайдером просто тупо закрыт порт?
Цитировать
И ещё попутно вопрос: как в iptables сделать так, чтобы шлюз с белым IP нормально пинговался с любого места в интернете.
Разрешить в файрволе ответы на ICMP запросы? В том конфиге, что показан, ответ запрещен.
« Последнее редактирование: 27 Мая 2010, 15:45:38 от Гарри Кашпировский »

Оффлайн ignat-by

  • Автор темы
  • Новичок
  • *
  • Сообщений: 22
  • Такие вот мы серьёзные !
    • Просмотр профиля
А мысль в голову не приходила, что на той стороне провайдером просто тупо закрыт порт?

В общем, приходила. Да скорее всего так и есть.Поэтому в первую очередь нужно настроить соединение с рабочими столами внутри сети провайдера из нашей локалки. А ведь из-под винды-то все работает.

Цитировать
И ещё попутно вопрос: как в iptables сделать так, чтобы шлюз с белым IP нормально пинговался с любого места в интернете.
Разрешить в файрволе ответы на ICMP запросы? В том конфиге, что показан, ответ запрещен.
А как его разрешить ?

Гарри Кашпировский

  • Гость
А ведь из-под винды-то все работает.
Посмотрел еще раз правила, не увидел разршённого порта 3389 в цепочке FORWARD, к чему бы это? :)
А как его разрешить ?
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT С интерфейсами сам :)

Оффлайн ignat-by

  • Автор темы
  • Новичок
  • *
  • Сообщений: 22
  • Такие вот мы серьёзные !
    • Просмотр профиля
А ведь из-под винды-то все работает.
Посмотрел еще раз правила, не увидел разршённого порта 3389 в цепочке FORWARD, к чему бы это? :)

Вот такая строчка подойдет ?
-A FORWARD -o ppp0 -m state --state NEW -p tcp --dport 3389 -j ACCEPT

А вот такая инструкция сработает ?
-A PREROUTING -p tcp --dport 3389 -j MASQUERADE

А как его разрешить ?
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT С интерфейсами сам :)

Т.е. мне надо только поменять 0 на 8 ?

Сейчас попробую.

Пользователь решил продолжить мысль 27 Мая 2010, 17:44:11:
В общем, ничего из вышенаписанного не сработало... :(

« Последнее редактирование: 27 Мая 2010, 17:44:12 от ignat-by »

Гарри Кашпировский

  • Гость
А с чего оно должно было сработать?
Значит так, идем простым путём.
# iptables-save >/etc/iptables_paranoid.conf
# iptables -F
# iptables -X
# iptables -t nat -A POSTROUTING -s local_net/mask  ! -d local_net/mask -j MASQUERADE
# iptables -t mangle -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Заработало? Если чудо, то
iptables-restore /etc/iptables_paranoid.conf
И разбираться.

Оффлайн ignat-by

  • Автор темы
  • Новичок
  • *
  • Сообщений: 22
  • Такие вот мы серьёзные !
    • Просмотр профиля
Спасибо за желание помочь, однако

А с чего оно должно было сработать?
Значит так, идем простым путём.
# iptables-save >/etc/iptables_paranoid.conf
# iptables -F
# iptables -X
# iptables -t nat -A POSTROUTING -s local_net/mask  ! -d local_net/mask -j MASQUERADE

не сработало.

# iptables -t mangle -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
А подобная строка была изначально, только с привязкой к конкретному интерфейсу.

Задача проникнуть из локалки на компы в сети провайдера оказалась очень нетривиальной. Вот только как бы её решить ? Всю голову уже сломал.... :idiot2:

Пользователь решил продолжить мысль 28 Мая 2010, 03:55:02:
Размышлизмы: а если выход из локалки  в сеть провайдера организовать через роутинг ?....  Вот только с правилами че-то у меня неполучается.... Но при этом проблема возникает в том, что одно из соединений динамичное (dhcp), хотя на практике ни IP ни DNS не меняется, только адрес шлюза иногда...

Пользователь решил продолжить мысль 28 Мая 2010, 08:42:54:
Родил вот такое, но чего-то то же не пашет:

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -p tcp --dport 3389 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 3389 -j DNAT --to-destination 94.190.112.73
iptables -t nat -A POSTROUTING -p tcp -d 94.190.112.73 --dport 3389 -j MASQUERADE

где eth0 - интерфейс в локалку, 94.190.112.73 - адрес шлюза основного провайдера (который по dhcp)

При этом трассировка застревает на этом самом шлюзе.
А как прописать, что бы вместо адреса шлюза была подсеть типа 94.190.0.0/16 или название выходного интерфейса типа -o ppp0 ?
« Последнее редактирование: 28 Мая 2010, 08:42:54 от ignat-by »

Гарри Кашпировский

  • Гость
Довольно странно, остается только предположить, что команда
cat /proc/sys/net/ipv4/ip_forward возвращает значение 0,
или провайдер действительно закрыл порт.

Оффлайн ignat-by

  • Автор темы
  • Новичок
  • *
  • Сообщений: 22
  • Такие вот мы серьёзные !
    • Просмотр профиля
Довольно странно, остается только предположить, что команда
cat /proc/sys/net/ipv4/ip_forward возвращает значение 0,
или провайдер действительно закрыл порт.

cat /proc/sys/net/ipv4/ip_forward возвращает значение 1, тут всё нормально.

да и порт вряд ли закрыт, т.к. через шлюз на винде все нормально цепляется.

А в -j DNAT --to-destination адрес конкретной машины как-то можно заменить на адрес сети 94.190.0.0/16 ?

Оффлайн mitox

  • Новичок
  • *
  • Сообщений: 25
    • Просмотр профиля
если не сложно выложи плиз скрипт с  правилами iptables  и  конфиг networks
Крутой каматозник

Гарри Кашпировский

  • Гость
В DNAT, нет.

 

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