Задать вопрос
@Ferroff

Как пробросить порты в Mikrotik с PPTP интерфейса через 3G модем?

В загородном доме стоит роутер Mikrotik с подключенным LTE модемом, который определяется как интерфейс "lte1" для lte1 настроен DHCP-клиент, он получает от модема IP-адрес 192.168.0.101, gateway: 192.168.0.1 (адрес модема).
Для доступа в интернет из локальной сети 192.168.1.0-255 добавлен маскарад:

2 ;;; LTE Modem
chain=srcnat action=masquerade out-interface=lte1

Чтобы получить доступ к серверу подключенному к локальной сети с адресом 192.168.1.2 купил VPN с белым динамическим адресом 8.8.8.96 (если поднимаю PPTP с сервера - нет проблем, сервер доступен извне по этому адресу) но для безопасности хочу поднять PPTP на микротике и пробросить лишь некоторые порты на сервер.
Соединение устанавливется, появлется интерфейс "pptp-out1" со следующими параметрами: local addr: 8.8.8.96
remote addr: 8.8.8.10

# ADDRESS NETWORK INTERFACE
0 ;;; default configuration
192.168.1.1/24 192.168.1.0 ether2-master-local
1 D 192.168.0.101/24 192.168.0.0 lte1
2 D 8.8.8.96/32 8.8.8.10 pptp-out1


Создаю правило в для NAT:
3 chain=dstnat action=dst-nat to-addresses=192.168.1.2 to-ports=80 protocol=tcp in-interface=pptp-out1 dst-port=8080

или такое
3 chain=dstnat action=dst-nat to-addresses=192.168.1.2 to-ports=80
protocol=tcp dst-address=8.8.8.96 dst-port=8080


Ничего не работает, перепробовал разные варианты маскарада через pptp-out1, пытался прописывать разные маршруты, можно сказать наугад - знания теории не хватило.

Маршруты:
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE
0 ADS 0.0.0.0/0 192.168.0.1 0
1 ADC 8.8.8.10/32 8.8.8.96 pptp-out1 0
2 ADC 192.168.0.0/24 192.168.0.101 lte1 0
3 ADC 192.168.1.0/24 192.168.1.1 bridge-local 0


Фильтры
Flags: X - disabled, I - invalid, D - dynamic
0 ;;; default configuration
chain=input action=accept protocol=icmp

1 ;;; default configuration
chain=input action=accept connection-state=established

2 ;;; default configuration
chain=input action=accept connection-state=related

3 X ;;; default configuration
chain=input action=drop in-interface=ether1-gateway

4 X ;;; default configuration
chain=input action=drop in-interface=sfp1-gateway

5 ;;; default configuration
chain=forward action=accept connection-state=established

6 ;;; default configuration
chain=forward action=accept connection-state=related

7 X ;;; default configuration
chain=forward action=drop connection-state=invalid
  • Вопрос задан
  • 2803 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
martin74ua
@martin74ua Куратор тега Сетевое администрирование
Linux administrator
3 chain=dstnat action=dst-nat to-addresses=192.168.1.2 to-ports=80 protocol=tcp in-interface=pptp-out1 dst-port=8080

но кроме этого добавьте еще маскарад для пакетов, исходящих через pptp-out1
у вас должно быть два маскарада
chain=srcnat action=masquerade out-interface=lte1
chain=srcnat action=masquerade out-interface=pptp-out1

если на пальцах. Вот dstnat отработал, пакет ушел на внутренний адрес. А ответ? правильно, отнатится через лте. А вы его ждете на впн интерфейсе..
Ответ написан
Комментировать
LESHIY_ODESSA
@LESHIY_ODESSA
Еще можно сделать чуть проще, создать одно правило — chain=srcnat action=masquerade, без указания интерфейса. И тогда NAT будет на обоих.
Ответ написан
Комментировать
ifaustrue
@ifaustrue
Пишу интересное в теллеграмм канале @cooladmin
Объеденяя и влавствуя
Итого:

Вам нужно добавить два правила (или одно поменять, что не очень гуд) в NAT:
1. chain=dstnat action=dst-nat to-addresses=192.168.1.2 to-ports=80 protocol=tcp in-interface=pptp-out1 dst-port=8080
2. chain=srcnat action=masquerade out-interface=pptp-out1

Так же вам нужно (в вашем случае опционально) добавить разрешающее правило в фильтре:
chain=forward action=accept protocol=tcp dst-port=80

И последнее (но не по значимости), маршруты. В вашем случае нужно сделать так, что бы весь трафик пришедшый из VPN уходил в него же, сейчас маршруты отправят его lte (как говорится "маскируй не маскируй всё равно получишь..."), для исправления этого нужно в маршрутах видеть вот такую картину:
0 ADS 0.0.0.0/0 8.8.8.96 pptp-out1 0
1 ADS %ADDR_VPN_SERVER% 192.168.0.1 0

Т.е. трафик до VPN сервера идёт через LTE, а всё остальное уже через VPN туннель. Если у вас ситуация хитрее, и нужно чтобы через туннель работал только определённый вид трафика - то вам в маркировку коннекшинов, маркировку роутов и в таблицы маршрутов (хотя может быть я усложняю и коллеги знают способ лучше).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы