23
Июн

Mikrotik + 4G модем Киевстар + проброс порта на виртуальный VPS с белым ip

Задача следующая.
Есть камера ip-камера Hikvision DS-2CD2043G0-I, роутер Mikrotik hAP ac lite (RB952UI-5AC2ND) и 4G USB модем Huawei E8372
Так как оператор Киевстар больше не выдаёт белые ip адреса при подключении к интернет, а нам необходимо получить доступ к камере и роутеру, мы вынуждены строить l2tp туннель в виртуалке с белым ip.

Купить виртуалку под VPN можно тут

Будем считать что у вас уже настроен Mikrotik хотя бы базовыми настройками.
Подключаем 4G UDB модем. В Interface List должен появиться интерфейс lte1. Если у вас другой UDB модем, то возможно устройство будет называться по другому.
Никаких дополнительных настроек мы не делали.

Для начала, необходимо «поднять» туннель между VPS и нашим роутером.

Ставим l2tp сервер и другие необходимые пакеты

yum install -y ppp xl2tpd bind-utils

Конфигурируем

nano /etc/ppp/options.xl2tpd
ms-dns 8.8.8.8
ms-dns 8.8.4.4
noccp
auth
crtscts
idle 1800
mtu 1280
mru 1280
lock
lcp-echo-failure 10
lcp-echo-interval 60
connect-delay 5000
logfile /var/log/ppp/ppp.log
nano /etc/xl2tpd/xl2tpd.conf
[global]
port = 1701
[lns default]
ip range = 10.0.0.200-10.0.0.255
local ip = 10.0.0.1
refuse chap = yes
refuse pap = yes
require authentication = yes
name=vpn-server
ppp debug = no
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
nano /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
reg1 vpn-server пароль 10.0.0.10
reg2 vpn-server пароль 10.0.0.11

В этом файле мы назначаем локальные ip нашим регистраторам или камера при подключении с разных мест. Чтобы при ребуте сервера не переназначались локальные Ip
Запускаем l2tp сервер

service xl2tpd start

Не забываем про автозапуск.

chkconfig xl2tpd on

Мы можем завести на одну виртуалку сразу несколько туннелей. В данном случае мы будем использовать логин reg1, которому будет присвоен локальный ip 10.0.0.10 при подключении.

На Mikrotik добавляем l2tp Client в PPP или из Interface List.
Вкладка Dial Out
Connect To: наш Ip или доменное имя виртуалки
User reg1 и наш пароль.
Мы не используем шифрование IPsec, поэтому больше ничего не меняем.

Можем поставить галочку на Allow Fast Path

Добавляем наши интерфейсы в Interface List в качестве WAN и маскарадим в IP — Firewall — NAT

/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/interface list member
add interface=bridge_lan list=LAN
add interface=ISP1 list=WAN
add interface=lte1 list=WAN
add interface=l2tp-out list=WAN
chain=srcnat action=masquerade out-interface-list=WAN log=no log-prefix="" ipsec-policy=out,none

Пробрасываем порты на Mikrotik.

/ip firewall nat add chain=dstnat action=dst-nat to-addresses=192.168.0.50 to-ports=554 protocol=tcp dst-address=10.0.0.10 dst-port=554 log=no log-prefix=""
/ip firewall nat add chain=dstnat action=dst-nat to-addresses=192.168.0.50 to-ports=8000 protocol=tcp dst-address=10.0.0.10 dst-port=8000 log=no log-prefix=""
/ip firewall nat add chain=dstnat action=dst-nat to-addresses=192.168.0.50 to-ports=8888 protocol=tcp dst-address=10.0.0.10 dst-port=80 log=no log-prefix=""

Где 192.168.0.50 локальный адрес ip-камеры, внутренней сети Mikrotik
to-ports=554 — rtsp порт ip-камеры
dst-address=10.0.0.10 — локальный адрес l2tp клиента Mikrotik

/ip firewall mangle add chain=input action=mark-connection new-connection-mark=reg-conn passthrough=yes in-interface=l2tp-out_cam1 log=no log-prefix="" 
/ip firewall mangle add chain=output action=mark-routing new-routing-mark=reg-route passthrough=no connection-mark=reg-conn log=no log-prefix="" 
/ip firewall mangle add chain=forward action=mark-connection new-connection-mark=reg-conn-f passthrough=no in-interface=l2tp-out_cam1 log=no log-prefix="" 
/ip firewall mangle add chain=prerouting action=mark-routing new-routing-mark=reg-route passthrough=yes connection-mark=reg-conn-f in-interface=bridge log=no log-prefix=""

И в конце создаём route
dst-address=0.0.0.0/0
Gateway = 10.0.0.1 — это Remote address нашего l2tp соединения (т.е. адрес l2tp Centos сервера)
Routing Mark = reg-route

В итоге порт прокинут. Пакеты побежали по всем правилам которые мы создали.

На виртуалке (вашем серверве с белым ip):

Для того чтобы наш CentOs 6 или CentOs 7 почувствовал себя не просто хостом в сети а полноценным роутером, нужно указать ему что он может пробрасывать трафик через себя.
Сделаем это, изменим строчку в файле /etc/sysctl.conf, а именно:

net.ipv4.ip_forward = 0
на
net.ipv4.ip_forward = 1

nano /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p

Если вы используете iptables, то необходимо открыть порты и настроить маршрутизацию.

iptables -A FORWARD -p udp --sport 1701 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 554 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8291 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 554  -j DNAT --to 10.0.0.10:554
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8000  -j DNAT --to 10.0.0.10:8000
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8291  -j DNAT --to 10.0.0.10:8291
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8888  -j DNAT --to 10.0.0.10:8888

Если всё сделали правильно, вы сможете подключатся к вашему Mikrotik через Winbox, а также получите доступ к камере Hikvision DS-2CD2043G0-I через белый ip вашего VPS.

Комментариев нет

Leave a Comment