Меню сайта

Библиотека

Проброс порта во внутреннюю сеть через мой шлюз
Описание Из внешки
Что имеем Провайдер предоставляет услугу - pppoe авторизацией. Имеем домашний шлюз на Ubuntu, в локальной сети стоит wi-fi точка доступа, к которой нам нужен доступ из интернета

Что хотим
Чтобы был доступ к локальной машине во внутренней сети из интернета,
к примеру к wi-fi точке доступа.

Приступим
Придется нам использовать пере-направление портов.
Пусть $FAKE_PORT (103)- обманный порт на внешнем интерфейсе шлюза , подключившись к которому мы должны попасть на адрес $LAN_IP (1.1.1.103) и порт $SRV_PORT (80).

т.е. вводе в браузере my_ip:103 мы попадали в веб-морду wifi точки доступа с ip - 1.1.1.103

Создаем простой скрипт:

bash:
Подсветка синтаксиса : Bash
  1. #!/bin/bash
  2. EXT_IP=`ifconfig ppp0 |grep "inet addr:" |sed 's/addr://g'| awk '{print $2}' `# Внешний IP.
  3. INT_IP="1.1.1.1" # Внутренний IP шлюза.
  4. EXT_IF=ppp0 # Внешний интерфейс шлюза.
  5. #EXT_IF=eth1 # Внешний интерфейс шлюза
  6. INT_IF=eth0 # Внутренний интерфейс.
  7. FAKE_PORT=103  # Вначале передаём скрипту "неправильный" порт на внешнем интерфейсе,
  8. LAN_IP=1.1.1.103     # затем - локальный адрес компьютера
  9. SRV_PORT=80   # и в конце - реальный порт для подключения к серверу
  10.  
  11. iptables -t nat -A PREROUTING -d $EXT_IP -p tcp -m tcp --dport $FAKE_PORT -j DNAT --to-destination $LAN_IP:$SRV_PORT
  12. iptables -t nat -A POSTROUTING -d $LAN_IP -p tcp -m tcp --dport $SRV_PORT -j SNAT --to-source $INT_IP
  13. iptables -t nat -A OUTPUT -d $EXT_IP -p tcp -m tcp --dport $SRV_PORT -j DNAT --to-destination $LAN_IP
  14. iptables -I FORWARD 1 -i $EXT_IF -o $INT_IF -d $LAN_IP -p tcp -m tcp --dport $SRV_PORT -j ACCEPT
Parsed in 0.070 seconds, using GeSHi 1.0.8.11. Created cache - 11.09.23 15:29


Кладем скрипт в /etc/ppp/ip-up.d/ с именем 0_wifi, не забывая про права, чтобы при авторизации pppoe, правила iptables автоматически добавлялись

p.s. все ip-адреса выдуманы для примера
p.p.s. Вот и всё ребята Smile
 
Автор gosudar  •  Дата Декабрь 05 2016, 23:43  •  Тип FAQ  •  Просмотров 1173
Категория Домашний сервер   •  Трекбек
 голос(ов) 0



Часовой пояс: GMT + 3