vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
Используйте новую статью!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Статья ниже устарела!
Для камер и других вещей, требующих белую статику.
Если оператор не дает белый IP, то можно сделать его самим.
Способ подойдет для любых 3G/4G/LTE операторов и вообще любых интернет-провайдеров, хоть билайн, мтс, мегафон или теле2.
Как бонус — собственный VPN сервер 😉
Ценозатраты: от 60руб/мес в зависимости от хостинга.
Стадия 1. Регистрация и покупка VDS
Регистрируемся в хостинге. Я использую 2 VDS хостинга:
Буду благодарен, если зарегистрируетесь по моей ссылке 🙂
Я использую самый дешевый вариант:
Выбираем Debian 10 и самый дешевый вариант.
Для скорости можно выбрать Москву, просто для VPN можно выбрать нужную страну.
На почту приходит письмо вида:
Далее скачиваем и устанавливаем PuTTY x86-bit или 64-bit
Стадия 2. Подготовка VDS
И подключаемся через него:
Первым делом обновляем систему:
#apt-get update && apt-get upgrade -y #apt-get dist-upgrade
Локализуем
#dpkg-reconfigure locales en_US ISO-8859-1 en_US.UTF-8 UTF-8 ru_RU.CP1251 CP1251 ru_RU.UTF-8 UTF-8
И по-умолчанию выбираем ru_RU.UTF-8 UTF-8
Установим часовой пояс. Выберем свой город
#dpkg-reconfigure tzdata
Установим пакет для обновления системы без перезапуска сервера
#apt-get install needrestart -y
И перезагрузим
#reboot
Стадия 3. Установка L2TP IPsec сервера
Скачиваем скрипт установки сервера
#cd /tmp #wget https://git.io/vpnsetup -O vpnsetup.sh
Узнаем как называется интерфейс, смотрящий в Интернет
cat /etc/network/interfaces
Нас интересует название интерфейса, в данном случае ens3,
Правим скрипт под себя
Если на вашем сервере интерфейс так же отличается от eth0, то выполняем еще команду
#sed -i 's/eth0/ens3/g' vpnsetup.sh
Обращаю внимание, что скрипт создает ppp интерфейсы и пулы адресов со своей адресацией. Если адресация по-умолчанию не устраивает, ее нужно изменить заранее:
nano vpnsetup.sh
L2TP_NET=${VPN_L2TP_NET:-'192.168.42.0/24'} L2TP_LOCAL=${VPN_L2TP_LOCAL:-'192.168.42.1'} L2TP_POOL=${VPN_L2TP_POOL:-'192.168.42.10-192.168.42.250'} XAUTH_NET=${VPN_XAUTH_NET:-'192.168.43.0/24'} XAUTH_POOL=${VPN_XAUTH_POOL:-'192.168.43.10-192.168.43.250'} DNS_SRV1=${VPN_DNS_SRV1:-'8.8.8.8'} DNS_SRV2=${VPN_DNS_SRV2:-'8.8.4.4'}
Я обычно использую рандомайз. Меняю первые 2 октета например на 10.250:
L2TP_NET=${VPN_L2TP_NET:-'10.250.250.0/24'} L2TP_LOCAL=${VPN_L2TP_LOCAL:-'10.250.250.1'} L2TP_POOL=${VPN_L2TP_POOL:-'10.250.250.10-10.250.250.250'} XAUTH_NET=${VPN_XAUTH_NET:-'10.250.251.0/24'} XAUTH_POOL=${VPN_XAUTH_POOL:-'10.250.251.10-10.250.251.250'} DNS_SRV1=${VPN_DNS_SRV1:-'8.8.8.8'} DNS_SRV2=${VPN_DNS_SRV2:-'8.8.4.4'}
Запускаем скрипт
sh vpnsetup.sh
В конце будут данные для подключения
Стадия 4. Настройка L2TP IPsec
Общий IPsec ключ живет в файле /etc/ipsec.secrets
nano /etc/ipsec.secrets
%any %any : PSK "Этот_Ключ_Меняем_На_Свой"
Список пользователей в файле /etc/ppp/chap-secrets
nano /etc/ppp/chap-secrets
"user1" l2tpd "Ln9RCu4DWJ0AcPsM" 10.250.250.101 "user2" l2tpd "rKQzQecCiEifMWQ4" 10.250.250.102
Стадия 5. Настройка MASQUERADE
Чтобы на ppp интерфейсы пустить Интернет
nano /etc/iptables.rules
Перед последним COMMIT, после всех правим MASQUERADE добавляем
-A POSTROUTING -o ppp+ -j MASQUERADE
Перезагружаем сервер
#reboot
Стадия 6. Проброс портов или VPN?
Проброс порта не самый безопасный метод. Вы будете светить и так не совсем безопасными сервисами во внешний мир.
Лучше создать себе отдельную запись VPN и подключаться сначала к VPN, а потом уже по внутреннему IP адресу внутри VPN открывать камеры.
Но есть малая категория людей, которые могут запомнить все эти действия. По этому на свой страх и риск можно открыть порт в Интернет:
#iptables -t nat -A PREROUTING --dst _IP_АДРЕС_VDS_СЕРВЕРА_ -p tcp --dport _ВНЕШНИЙ_ПОРТ_ -j DNAT --to-destination _ВНУТРЕННИЙ_IP_VPN_КЛИЕНТА_:_НУЖНЫЙ_ПОРТ_ #iptables -I FORWARD 1 -i ens3 -o ppp+ -d _ВНУТРЕННИЙ_IP_VPN_КЛИЕНТА_ -p tcp -m tcp --dport _НУЖНЫЙ_ПОРТ_ -j ACCEPT (для порта) #iptables -I FORWARD 1 -i ens3 -o ppp+ -d _ВНУТРЕННИЙ_IP_VPN_КЛИЕНТА_ -p tcp -m tcp -j ACCEPT (все tcp) #iptables-save > /etc/iptables.rules
В моем примере я прокидываю на 34567 порт роутера, который является L2TP IPsec клиентом user1
#iptables -t nat -A PREROUTING --dst _IP_АДРЕС_VDS_СЕРВЕРА_ -p tcp --dport 34567 -j DNAT --to-destination 10.250.250.100:34567 #iptables -I FORWARD 1 -i ens3 -o ppp+ -d _ВНУТРЕННИЙ_IP_VPN_КЛИЕНТА_ -p tcp -m tcp --dport 34567 -j ACCEPT #Если мне нужно разрешить конкретный порт #iptables -I FORWARD 1 -i ens3 -o ppp+ -d _ВНУТРЕННИЙ_IP_VPN_КЛИЕНТА_ -p tcp -m tcp -j ACCEPT #Если мне нужно разрешить все tcp порты #iptables-save > /etc/iptables.rules
Далее на самом роутере в зависимости от модели нужно настраивать дальнейшее прокидывание порта на нужное оборудование c l2tp интерфейса
Стадия 7. Настройка маршрутизатора
Настройка MikroTik
Создаем L2TP Client:
Interfaces->+L2TP Client
Задаем название интерфейса в Name
Connect To: IP VPN нашего сервера
Выбираем цепочку dstnat, нужный протокол (для камер может использоваться как tcp, так и udp, можете создать сколько угодно правил), Dst. Port на который обращаются из вне, In Interface, куда приходит обращение
Выбираем событие dst-nat и указываем на какой IP в поле To Addresses и на какой порт отправлять подключение.
Пробуем подключиться по белому IP с указанием порта. Всё получится.
Если остались вопросы, либо нет понимания что да как делать — я занимаюсь удаленной помощью.
Подводные камни L2TP IPsec
Если устройства за одним NAT подключаются к одному серверу, то работает сценарий «кто первый подключился».
Для таких моментов, а так же если ваше оборудование не может тянуть шифрование — поставим PPTP сервер:
#apt-get install pptpd
nano /etc/pptpd.conf
В конце указываем адресацию нашего L2TP сервера
localip 10.250.250.1 remoteip 10.250.250.101-200
nano /etc/ppp/pptpd-options
Укажем DNS
ms-dns 8.8.8.8 ms-dns 8.8.4.4
nano /etc/ppp/chap-secrets
Исправим список пользователей, указав * вместо l2tpd. Но можно жестко разграничить l2tpd и pptpd.
"user1" * "Ln9RCu4DWJ0AcPsM" 10.250.250.101 "user2" * "rKQzQecCiEifMWQ4" 10.250.250.102
nano /etc/rc.local
Добавим перед echo 1
service pptpd restart
В итоге получится:
#!/bin/bash (sleep 15 service ipsec restart service xl2tpd restart service pptpd restart echo 1 > /proc/sys/net/ipv4/ip_forward)& exit 0
И перезагружаемся 🙂
reboot
Настройка PPTP ничем не отличается от L2TP, нужно только выбрать PPTP Client и указать все тоже самое, за исключением IPSec Secret
18.01.2020 в 14:26
Подскажите как сделать полное перенаправление всего трафика приходящего на внешний ip на роутер микротик, и уже на нем рулить
09.03.2020 в 12:31
Евгений полностью у меня не получалось, но можно перебрать все нужны протоколы
09.02.2021 в 13:12
vlan между дебиан и микротой и будет вам счастье
21.01.2020 в 11:39
начало:
Способ подойдет для любых 3G/4G/LTE операторов
в конце:
Настройка маршрутизатора
и ведь ничего не щелкнуло — откуда у владельцев lte-свистков вдруг появится маршрутизатор?
09.03.2020 в 12:30
Появится после прочтения статьи
17.03.2020 в 00:10
Подскажите, как после такой настройки объединить LAN сети клиентов?
29.06.2021 в 13:49
Маленький нюанс, скрипт vpnsetup.sh может не исполняться, за недостатком прав, нужно задать в атрибутах что он может исполняться)))
например через MC
18.08.2022 в 12:52
чтоб заработал инет через pptp добавил правило
-A POSTROUTING -o eth0 -j MASQUERADE