Пост
Hello :)

Linux

-

IPTABLES Port Forwarding RDP / Переадресовываем пакеты

Когда уезжаю в Оренбург, оставляю дома компьютер включенным 24/7, иногда требуется подключится по RDP и скинуть пару файлов или ещё что-нибудь. Проблема заключается в том, что IP динамический и постоянно меняется, есть лёгкое решение, настроить DynDNS в настройках модема и остановиться на этом, но любой программист любит извращаться, пока не реализует свою идею. А вот и моё извращение, вбив в настройках модема данные DynDNS я получил адрес example.dyndns.org (далее, IP автоматически обновляется я только указываю адрес при подключении), так вот задумка была в том, имея свой сервер реализовать переадресацию tcp пакетов, с сервера на домашний компьютер, то есть при подключении по адресу: serj.ws:5000 я автоматически коннектился к RDP (домашнему компьютеру), как реализовал:

 

 

 

Написал небольшой BASH скрипт, который определяет IP адрес example.dyndns.org, далее вбивает привила для форвардинга:

(77.77.77.77 - Пример IP сервера, XX.XX.XX.XX - IP example.dyndns.org) и добавил в крон.

 

iptables -A FORWARD -i eth0 -p tcp --dport 5000 -j ACCEPT
iptables -t nat -A PREROUTING -d 77.77.77.77 -p tcp -m tcp --dport 5000 -j DNAT --to-destination XX.XX.XX.XX:3389
iptables -t nat -A POSTROUTING -d XX.XX.XX.XX -p tcp -m tcp --dport 3389 -j SNAT --to-source 77.77.77.77

 

1) Из первого правила, следует: eth0 - сетевой интерфейс с инетом, из которого разрешаем коннект на 5000 порт.

2) Из второго правила, следует: 77.77.77.77 - IP Сервера, форвардим tcp трафик с порта 5000 на IP XX.XX.XX.XX с портом 3389

3) В Третьем, возвращаем полученный ответ с XX.XX.XX.XX на 77.77.77.77 

 

В итоге, можно спокойно подключаться по адресу 77.77.77.77 :5000, вот такое издевательство мне пришло в голову :)

  • Serj, 15 февраля 2012
4 комментария
Avatar
  1. Ерхан Измаганбетов
    Ерхан Измаганбетов
    12 октября 2014 17:34
    Здравствуйте вы тут писали (Написал небольшой BASH скрипт, который определяет IP адрес example.dyndns.org, далее вбивает привила для форвардинга: (77.77.77.77 - Пример IP сервера, XX.XX.XX.XX - IP example.dyndns.org) и добавил в крон) можете про это подробна написать?
  2. DELETED
    DELETED
    4 октября 2013 08:07
    Спасибо! Помогло решить проблему малого количества пиров при использовании AceStream на компьютере, получающем интернет от машины с линуксом на борту.
  3. DELETED
    DELETED
    8 января 2013 17:15
    А почему третье правило ругается, что multiple -d flags not allowed?
    1. DELETED
      DELETED
      8 января 2013 17:24
      а, все, разобрался. Надо было совать в iptables.up.rules

© SERJ.WS 2011-2021