Статья устарела!
Настройка MikroTik — https://Настройка-Микротик.РФ/
Используйте новые статьи по настройке:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Во избежании полемики в комментариях в сторону не надежности PPTP — предупреждаю:
я осведомлен о уязвимостях PPTP, что есть более надежные L2TP/IPSec и даже практически идеальные OpenVPN с 4096 — OverМного битным ключом.
О них я расскажу в следующих двух статьях.
Статья собрана мной по крупицам из разных источников, все написанные шаги я произвел лично при написании данной инструкции.
Возможно статья не претендует на уникальность, она написана ради себя и таких же, как я.
Не у всех есть белый IP адрес, не говоря уж о белом статическом IP. В основном оборудование MikroTik находится за NAT’ом, а то и за целой цепочки из NAT’ов. Особенно это касается интернета через 3/4G/LTE модемы и пионерские сети.
Подразумевается, что объединяемые сети имеют разные диапазоны IP адресов.
Конкретно в моем случае, офис M имеет 192.168.0.0/24
, а офис T — 10.0.0.0/24
Офис B как концепт — 10.10.0.0/24
Для начала нам нужно выбрать и подготовить VDS
Установка PPTP сервера
За что я люблю линукс? Консоль и репозитории.
(ц) Я
Все операции проводятся под root пользователем.
Установим PPTP сервер командой apt-get install pptpd
После установки отредактируем файл конфигурации командой nano /etc/pptpd.conf
И добавим в конце диапазон выдаваемых IP адресов. Я использую 10.255.0.150-200
Указываем:
localip 10.255.0.1
remoteip 10.255.0.100-200
Сохраняем командой Ctrl+O, закрываем Ctrl+X
Заносим клиентов командой nano /etc/ppp/chap-secrets
M pptpd Lyuhnsdf7i 10.255.0.10
T pptpd Kghndsfy7iyhnlkH 10.255.0.20
B pptpd K<hjghndsgghi 10.255.0.30
Moron pptpd khjJyghbfdhyuI 10.255.0.51
Максимальная длина пароля 63 символа, желательно без спец символов.
Сохраняем командой Ctrl+O, закрываем Ctrl+X
Перезапускаем pptp сервер командой service pptpd restart
Настраиваем форвардинг (пересылка между интерфейсами)
nano /etc/sysctl.conf
Ищем и раскомментируем строчку net.ipv4.ip_forward = 1
, если ее нет, то добавляем.
Применяем изменения командой sysctl -p
Подключаем клиент MikroTik
Не важно какой интернет, сгодится любой. Не важно какой микротик, главное — свежая прошивка.
Я использую пользователя из первой строчки /etc/ppp/chap-secrets
Открываем в настройках микротика Interface -> + PPTP Client
Вводим название соединения (Name)
Указываем адрес соединения (Connected To)
Вводим User и Password
Жмем Apply
Через несколько секунд поднимется соединение с IP адресом 10.255.0.10
По этому адресу мы сможем сделать маршрут к данной сети.
Подключение клиента Windows ничем не отличается от создания обычного VPN соединения.
Второй микротик подключаем аналогично по второму логину и паролю и он соединяется с IP адресом 10.255.0.20
iptables
И так мы подключили микротик и сами подключились в Windows по VPN, но все равно не можем попасть на микротик по выдаваемому ему IP по VPN
Для исправления этой ситуации добавим правила:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -m tcp -p tcp --dport 1723 -j ACCEPT
iptables -I INPUT -s 10.255.0.0/24 -i ppp0 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp1 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp1 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp2 -j MASQUERADE
Обратите внимание на интерфейс, мы разрешили маскарад и входящие для ppp0 и ppp1 интерфейсов. Но если у нас много клиентов — надо разрешить много интерфейсов!
Добавим еще 18 штук:
iptables -I INPUT -s 10.255.0.0/24 -i ppp2 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp3 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp3 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp4 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp4 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp5 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp5 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp6 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp6 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp7 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp7 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp8 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp8 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp9 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp09 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp10 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp10 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp11 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp11 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp12 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp12 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp13 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp13 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp14 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp14 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp15 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp15 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp16 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp16 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp17 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp17 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp18 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp18 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp19 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp19 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface ppp20 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp20 -j ACCEPT
И
iptables --append FORWARD --in-interface eth0 -j ACCEPT
Перезапустим service pptpd restart
Чтобы правила не слетали, сохраним их командой:
iptables-save > /etc/iptables_rules
Добавим их в автозагрузку:
nano /etc/rc.local
Перед exit
добавим строчку:
/sbin/iptables-restore < /etc/iptables_rules
Так как наш pptpd сервер не запускается сам, перед exit
добавляем:
service pptpd start
Проверяем все ли работает.
Перезагружаем сервер командой reboot
и пробуем подключить VPN и подключиться к нашему микротику по адресу 10.255.0.10
и второму микротику по адресу 10.255.0.20
, у меня все получилось.
Подправим mtu. Опытным путем я высчитал, что mtu равен 1372
Его и пропишем:
nano /etc/ppp/pptpd-options
Добавляем строки:
mtu 1400
mru 1400
И перезагружаем сервер.
Это позволит избежать «зависания» при использовании https и работе по RDP
Чтобы видеть внутренние ресурсы сетей, нужно указать серверу где какая сеть находится.
Напомню:
M внутренняя сеть 192.168.0.0/24, VPN IP 10.255.0.10
T внутренняя сеть 10.0.0.0/24, VPN IP 10.255.0.20
B внутренняя 10.10.0.0/24, VPN IP 10.255.0.30
Для этого надо прописать маршруты:
ip route add 192.168.0.0/24 via 10.255.0.10
ip route add 10.0.0.0/24 via 10.255.0.20
ip route add 10.10.0.0/24 via 10.255.0.30
Но после перезагрузки, обрыва соединения они пропадают.
По этому мы будем их добавлять при каждом подключении клиента.
Редактируем:
nano /etc/ppp/ip-up
Дописываем:
#!/bin/bash
case "$5" in
10.255.0.10)
/sbin/route add -net 192.168.0.0/24 gw 10.255.0.10
;;
10.255.0.20)
/sbin/route add -net 10.0.0.0/24 gw 10.255.0.20
;;
10.255.0.30)
/sbin/route add -net 10.10.0.0/24 gw 10.255.0.30
;;
*)
esac
Перезагружаемся. Теперь при каждом соединении — под конкретного клиента будет добавляться свой маршрут.
Но Windows иногда не знает куда идти, если нужно попасть на 192.168.0.200
Мы укажем это маршрутом через 10.255.0.1
Через CMD добавляем маршрут:
route add -p 192.168.0.0 mask 255.255.255.0 10.255.0.1 METRIC 1
route add -p 10.0.0.0 mask 255.255.255.0 10.255.0.1 METRIC 1
При этом желательно указывать маршруты до конкретных IP, а не всей подсети, чтобы не давать лишнего доступа. Так же часто бывает 192.168.0.0/24
используется в домашней сети. Но лучше это предвидеть заранее, и сделать в сетях 10.*.*.*/24
VDS с белым IP
Давайте выжмем максимум из нашего VDS!
В сети M MikroTik живет на IP адресе 192.168.0.10
В сети T MikroTik живет на IP адресе 10.0.0.1
И мы можем на них попасть по IP адресу нашего VPS сервера. Просто добавим правила:
iptables -t nat -A PREROUTING -p tcp -d IP_АДРЕС_VDS --dport 81 -j DNAT --to-destination 192.168.0.10:80
Указываем IP нашего VDS, указываем какой порт перенаправляем, в нашем случае 81, указываем на какой IP адрес и порт внутренней сети направляем трафик — 192.168.0.10:80
iptables -t nat -A PREROUTING -p tcp -d IP_АДРЕС_VDS --dport 82 -j DNAT --to-destination 10.0.0.1:80
Теперь если открыть IP_АДРЕС_VDS:81
— мы попадаем на микротик сети M, а IP_АДРЕС_VDS:82
— микротик сети T
Таким образом можно завернуть трафик любого порта в любую сеть на любой IP адрес на любой порт.
Можно пускать весь трафик через VDS, просто добавив PPTP соединение в маскарад и указав дистанцию меньшую, чем основной интернет, не забыв указать DNS в /etc/ppp/pptpd-options
ms-dns 8.8.8.8
ms-dns 8.8.4.4
После перезагрузки правило слетает, как сего сохранять — я описал в разделе iptables
MikroTik Routes
Осталось сети филиалов сделать видимыми друг другу.
Открываем настройки микротика IP -> Routes
Жмем + и указываем через что идти на конкретный IP адрес.
Я рекомендую указывать только нужные IP адреса, но в этом примере укажу всю подсеть:
На микротике в сети T (напомню у него VPN IP 10.255.0.20
, внутренняя сеть 10.0.0.0/24
)
Указываем:
Dst. Adress: 192.168.0.0/24
Gateway: Наше PPTP соединение
Distance: я указал 30, единица меня смущает.
На микротике в сети M (напомню у него VPN IP 10.255.0.10
, внутренняя сеть 192.168.0.0/24
)
Указываем:
Dst. Adress: 10.0.0.0/24
Gateway: Наше PPTP соединение
Distance: 30
Теперь два офиса связаны. Можно провести тест скорости соединения. В моем случае с плохим интернетом (3G билайна в деревне Тульской области) на одном конце и (3G мегафона в деревне Московской области) на другом конце — максимальная скорость была 2.2Мбит.
IP адреса двух сетей доступны друг другу без проблем.
Результаты пингов:
Подмосковный мегафон 3G <-> VDS: 56мсек
Тульский билайн 3G <-> VDS: 80мсек
Тульский билайн <-> Подмосковный мегафон: 140мсек
Хороший интернет <-> VDS: 5мсек.
Хороший интернет <-> Тульский билайн 3G: 104мсек
Хороший интернет <-> Подмосковный мегафон 3G: 71мсек
Можно комфортно работать по RDP
В заключении
Это не самый безопасный способ объединения сетей, по этому лучше смотреть в сторону OpenVPN
Если вам нужна помощь в настройке микротика — оставьте комментарий на странице
Добавить комментарий