Содержание
Резервное копирование — это одно из наиболее важных мероприятий в работе системного администратора, но по иронии судьбы о нем обычно вспоминают тогда, когда ничто иное помочь уже не способно. Роутеры Mikrotik не исключение. Широкие возможности RouterOS предполагают гораздо более сложные сетевые конфигурации, нежели у обычных, «бытовых», роутеров, поэтому восстановить все заново бывает весьма и весьма затруднительно, даже если вы точно помните все тонкости настройки. А чтобы до этого не дошло, стоит позаботиться о резервных копиях уже сейчас.
Продукция Mikrotik заслуженно славится своей надежностью, но это часто способно сыграть с администратором злую шутку. Ведь если все годами работает, то и резервную копию можно лишний раз не сделать… Согласитесь, такая мысль эпизодически посещала каждого из нас. Поэтому резервное копирование должны быть автоматическим, полностью исключая человеческий фактор. В критической ситуации вариант «есть какой-то бекап» гораздо веселее варианта «никаких бекапов нет». А регулярный автоматический бекап позволяет перестать беспокоиться и спокойно заниматься иными делами.
В каких случаях вам может понадобиться восстанавливать Mikrotik из резервной копии? Самое очевидное — физический выход устройства из строя или критический сбой, в результате которого прошивка будет повреждена. Затем идет неудачное обновление (хотя это случается довольно редко) и ошибки администрирования.
Например, не так давно один мой коллега случайно выключил внутренний мост, при том, что снаружи доступ к устройству был запрещен. Управление устройством было потеряно, сеть оказалась отрезана от внешнего мира. Но благодаря наличию резервных копий восстановление заняло считанные минуты: сбросить конфигурацию устройства и залить в него последний бекап. Большинство пользователей даже ничего не заметило.
Итак, нам нужно организовать резервное копирование конфигурации Mikrotik. На помощь нам придет скриптовый язык RouterOS, возможность создавать и выполнять собственный скрипты на всей линейке роутеров трудно переоценить. Но хранить бекапы нужно отдельно от самого устройства и здесь нам доступны два варианта: отправлять их на почту или FTP-сервер.
Вариант с почтой можно назвать условно приемлемым если у вас одно-два устройства. Если же счет им идет на десятки, то вы получите форменное захламление почтового ящика и очень сложный контроль за наличием актуальных копий.
В этом плане FTP выглядит гораздо более привлекательно. Не нужно гадать, выполнил ли роутер бекап, или это антиспам «балуется», если в директории нет свежих бекапов — значит есть какие-то проблемы и нужно действовать.
Еще один тонкий момент. Mikrotik предлагает нам два варианта резервного копирования :выгрузка резервной копии устройства, которую можно восстановить только на аналогичном устройстве, и экспорт настроек в текстовом формате, которые можно импортировать полностью или частично на любое устройство.
Полный бекап содержит в себе все ключи, сертификаты, админские пароли и т.д, поэтому его крайне нежелательно выгружать в незашифрованном виде. Экспортированный текстовый файл критически важных данных не содержит, но в нем открытым текстом содержатся пароли к Wi-Fi, коммутируемым соединениям и т.д. Поэтому при его хранении тоже следует соблюдать определенные меры безопасности.
Исходя из этих соображений мы будем выгружать и хранить оба варианта. Для этих целей мы написали небольшой и достаточно простой скрипт, несмотря на то что подобных скриптов доступно достаточно большое количество, мы постарались сделать его наиболее понятным и универсальным.
#Резервное копирование конфигурации Mikrotik#Получаем дату в формате дд-мм-гггг:local tmpdate [/system clock get date];:local months ("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");:local month [ :pick $tmpdate 0 3 ];:local mm ([ :find $months $month -1 ] + 1);:if ($mm < 10) do={ :set mm ("0" . $mm); }:local date ([:pick $tmpdate 4 6] ."-" . $mm ."-" . [:pick $tmpdate 7 11])
#Задаем переменные и параметры доступа к FTP:local myname "M2-hAP-ac-lite":local fname ($myname."_".$date);:local bname ($myname."_".$date.".backup");:local ename ($myname."_".$date.".rsc");:local ftpuser "mikrotik";:local ftppass "mYPa$$word";:local ftpaddr "203.0.113.21";
#Выгружаем настройки/system backup save name=$fname password=BackPa$$word;:delay 10;/export file=$fname:delay 10;
#Загружаем конфигурацию на FTP/tool fetch address=$ftpaddr src-path=$name user=$ftpuser password=$ftppass port=21 upload=yes mode=ftp dst-path=$bname:delay 15;/tool fetch address=$ftpaddr src-path=$ename user=$ftpuser password=$ftppass port=21 upload=yes mode=ftp dst-path=$ename:delay 15;
#Удаляем файлы с устройства/file remove $bname;/file remove $ename;
Первый блок может показаться избыточно сложным, но это связано с тем, что Mikrotik возвращает месяц в виде трехбуквенной аббревиатуры, а для хранения бекапов лучше использовать полностью цифровые значения даты.
Затем задаем переменные. Как можно заметить, мы задали несколько переменных с именами файлов. Этого можно было не делать и формировать нужные имена прямо в скрипте, но в этом случае сильно страдает его читабельность. Мы не советуем этим пренебрегать, потому что впоследствии, когда подробности уже забудутся, разобраться с сложном скрипте будет сложнее, нежели в простом.
Далее должно быть все понятно, во многом благодаря нашим немного избыточным переменным. Выгружаем полный бекап и экспортируем конфигурацию, отправляем на FTP, удаляем с устройства.
Теперь перейдем на целевое устройство: System — Scripts и создадим новый скрипт:
Прежде всего укажем имя скрипта, так как нам потребуется вызывать его в дальнейшем, пробелов в имени быть не должно. Выставляем политики как на скриншоте, хотя это не особо критично, и копируем в поле Source наш скрипт.
Для того, чтобы отличать конфигурации друг от друга задайте уникальную переменную myname. Лично мы используем следующий шаблон:
[идентификатор организации/места нахождения устройства] - [наименование устройства]
Это позволяет быстро определить чей это бекап и для какого устройства предназначен. Хотя вы можете использовать любую свою систему, либо указать любое имя, которое вам нравится.
После того, как вы создали скрипт его следует проверить, нажмите Run Script и убедитесь, что он делает все как вам надо. Обязательно проверьте со стороны FTP что файлы приходят и их можно восстановить.
Все работает? Отлично! Самое время добавить его в планировщик. Откроем System — Scheduler и добавим новое задание:
Имя задания может быть любым, а вот остальные опции нуждаются в пояснениях. Прежде всего определимся, с какой частотой мы хотим делать копии. Лично мы делаем резервное копирование раз в неделю, по воскресениям. Поэтому в Start Date указываем дату прошлого воскресения, в Start Time — время начала выполнения задания, в нашем случае — десять минут после полуночи. В поле Interval указываем периодичность повторения задания — ровно 7 дней.
Выставляем политики как на скриншоте, что снова некритично, и в поле On Event указываем команду запуска созданного нами скрипта:
/system script run backup_to_ftp
где backup_to_ftp — его имя.
Теперь каждое воскресение в указанное время ваше устройство будет делать две резервные копии конфигурации и отправлять их на FTP-сервер. Если устройств несколько, то мы советуем разнести их по времени, чтобы их задания не пересекались.
Октябрь, 31st 2018Рубрика:Советы 11308Подписаться накомментарии по RSS
Сегодняшний пост будет продолжением начатой темы о подключение USB накопителя к роутеру MikroTik и поднятии на нём файлового сервера SMB. Речь пойдёт о том, как получить доступ к данным, размещённым на флешке или жестком диске удалённо из сети Интернет. Сразу оговорюсь, что я не сторонник подобного решения из соображений безопасности, потому воспринимайте данный материал чисто в академических целях и пользуйтесь облачными хранилищами.
Мне так и не удалось открыть SMB-сервер на MikroTik наружу, хоть и ставил в настройках слушать на всех интерфейсах, пробовал открывать порты 137-139 и 445 в настройках файервола — всё бестолку (если знаете способ заставить микрот принимать SMB соединения снаружи, напишите к комментариях).
Настройка FTP сервера на MikroTik стала самым простым решением проблемы доступа к данными на флешке, подключенной к роутеру из Интернет. Делается это буквально в пару кликов, но понадобится ещё создать правило для файервола.
Активация FTP-сервера и настройка Firewall на MikroTik
Для начала активируем сам FTP сервер на роутере MikroTik, для чего переходим в меню IP -> Services и переводим сервис ftp в активное положение. Как обычно, я показываю все действия в web-интерфейсе.
Собственно, ftp-сервер у нас уже работает. Это можно легко проверить набрав в браузере или в проводнике внутренний адрес вашего роутера, например ftp://192.168.88.1 и входим с именем и паролем администратора. Но нам нужен доступ снаружи, а вот тут облом…
Чтобы разрешить подключение снаружи, нужно в файерволе разрешить доступ к 21 порту на интерфейсе ether1-gateway и переместить данное правило выше всех запрещающих правил.
Переходим в IP -> Firewall и на вкладке Filter Rules добавляем новое правило:
- Chain (Цепочка) -> Input
- Protocol -> tcp
- Dst. Port -> 21
- In. Interface -> ваше соединение с провайдером (pрpe, wan, ether1-gateway — в зависимости от версии прошивки или типа соединения с провайдером)
- Action -> Accept
Подробнее о значении полей при настройке файервола можно узнать из статьи «Проброс портов на MikroTik». То же самое можно сделать из командной строки:
/ip firewall filter add chain=input action=accept protocol=tcp in-interface=ether1-gateway dst-port=21
Не забываем переместить данное правило выше запрещающих. Теперь у нас есть доступ снаружи к нашей флешке по FTP. Остались небольшие штрихи…
Добавление пользователя FTP
Чтобы не лазить на наш ftp-сервер от имени администратора, можно создать другого пользователя с паролем, для чего открываем меню System -> Users и нажимаем Add New.
В поле Name вводим желаемое имя пользователя, например ftp_user, в списке Group выбираем read или write (если нужны права записи) и задаём пароль, желательно сложный из цифр букв в разных регистрах и символов.
И последний штрих, без которого наш пользователь не сможет авторизоваться. На вкладке Groups, откройте параметры выбранной группы write и проверьте, чтобы обязательно стояла галочка напротив ftp.
Если статья понравилась, ставь лайк и подписывайся на канал Дзен и паблик вконтакте.
—> Главная → Статьи → Подключаем и настраиваем оборудование → Как мы настраивали FTP сервер на MikroTik
Недавно для корпоративных нужд нам потребовалось поднять FTP-сервер, причем чтобы доступ к нему был как из интернета, так и из локальной сети. Мы воспользовались своими же рекомендациями из статей нашего блога и еще раз протестировали способы настройки MikroTik для этих целей.
Схема нашей сети:
- Роутер MikroTik RB951G-2HnD с внешним статическим IP, скажем, 1.1.1.28 и локальной сеткой за ним.
- Компьютер, на котором подняли FileZilla Server, с локальным адресом 192.168.88.10.
- В настройках FileZilla: управляющий порт FTP-сервера — 21, пассивный режим FTP (мы решили использовать его как более простой в настройке и безопасный) с диапазоном портов для передачи данных — 50000-50050.
Настройка сервера FileZilla Server
На установке программы FileZilla Server подробно останавливаться не будем — в сети довольно много пошаговых инструкций. Установка никаких проблем не вызвала.
1. Заходим в раздел настроек (Setting). В общих настройках (General Settings) нужно прописать основной (управляющий) порт FTP, мы оставили тот, что по умолчанию — 21. Увеличили таймаут соединения до 600 сек, остальные настройки не меняли.
2. На вкладке Passive Mode Settings (настройки пассивного режима FTP-сервера) указали диапазон портов для передачи данных. Он может быть произвольным, с учетом, конечно, тех портов, что вы уже используете в работе. В документации FileZilla Server не рекомендовалось использовать порты ниже 1024.
3. Переходим в меню Users. В разделе общих настроек (General) указали логин и пароль для будущих подключений.
4. В разделе Shared folders указали пути к папкам, которые будут расшариваться на FTP. Проставили галки разрешений для папок и файлов — можно ли удалять, добавлять, читать, изменять и т. д.
Сразу отметим, что разрешения действий с папками и файлами могут оказаться важными. К примеру, нам понадобилось сохранять данные на FTP-сервер из программы колл-трекинга ACR. Однако программа постоянно сбрасывала соединение, как оказалось впоследствии — по причине отсутствия разрешения на создание папки в каталоге сервера.
5. Добавили FileZilla Server в исключения брандмауера на компьютере, на котором он установлен.
6. Антивирус также может блокировать запросы на FTP-сервер, но у нас с этим все было в порядке.
Включили FTP в IP — Service
На роутере MikroTik заходим в IP — Service и включаем FTP.
Вообще, по идее, должно было работать и с отключенным FTP, даже более того — в некоторых случаях, по отзывам, этот параметр препятствует корректной работе сервера за MikroTik. Но у нас не работало, поэтому мы включили.
Настройка проброса портов для FTP сервера
Настройка проброса портов детально описана в этой статье, здесь мы на теоретической части подробно останавливаться не будем.
Напомним, что FTP-сервер для работы требует двух типов портов: управляющего, по которому передаются служебные данные, и отдельного диапазона портов для передачи файлов. Поэтому мы создали два правила NAT:
- для управляющего 21-го порта;
- для диапазона портов 50000-50050.
Мы изначально настроили и включили оба правила, но экспериментальным путем выяснили, что все работает и передается и с одним правилом для 21 порта. По крайней мере, в нашей конфигурации.
1-е правило — для управляющего портаНа первой вкладке General — прописываем признаки пакетов, которые должны обрабатываться правилом проброса порта.
- Chain = dstnat (т. е. для пакетов, направленных во внутреннюю сеть).
- Dst. Address = 1.1.1.28 (адрес назначения, который прописан в пакете, у нас пакеты будут адресованы на внешний адрес роутера, поэтому пишем здесь его).
- Protocol = 6 (tcp).
- Dst. Port = 21.
- In. Interface = ether1.
На вкладке Action — действие, которые выполняется, если пакет им соответствует. В данном случае мы прописываем замену адреса назначения в пакете (dst-nat) и указываем, на какой адрес и порт его заменить — на внутренний адрес компьютера с FTP-сервером (192.168.88.10), порт 21.
2-е правило — проброс диапазона портов для данных
Полностью аналогично прописываем правило переброса портов для диапазона портов данных:
Поднимаем эти правила выше дефолтного правила маскарадинга.Так как роутер обрабатывает пакеты, обращаясь к правилам по порядку их расположения на вкладке NAT роутера, нам нужно поднять наши правила выше тех, под которые могут попасть наши пакеты, в том числе выше правила маскарадинга, заданного по умолчанию. Просто перетаскиваем их мышью вверх.
Проверили: доступ к FTP серверу работает и с удаленного компьютера, расположенного в сети другого провайдера, и со смартфонов, использующих 3G.
Теперь нам нужно настроить, чтобы к FTP можно было подключиться и из нашей локальной сети, используя те же данные для подключения, то есть, внешний IP-адрес роутера.
Настройка Hairpin NAT MikroTik
По умолчанию зайти из локальной сети по внешнему адресу на роутер нельзя — вот в этой статье подробно объясняется, почему. Поэтому нам нужно настроить отдельные правила NAT, которые бы создавали исключения из общих правил и правильно обрабатывали такие пакеты.
Мы протестировали 3 способа настройки, все они отлично работали в нашей конфигурации.
1-й способВ общей сложности он содержит 3 правила, работающих в связке.
1.1 — уже созданное нами правило проброса портов, описанное выше. Мы его не изменяем.
1.2. — Правило, которое можно обозначить, как: «Во всех пакетах, у которых адресом источника стоит этот диапазон IP-адресов, а адресом назначения — внешний IP-адрес роутера, поменять адрес назначения на адрес компьютера с FTP-сервером».
- chain = dstnat;
- Src. Address = 192.168.88.0/24 — пул локальных IP-адресов, с которых могут поступать обращения на FTP-сервер;
- Dst. Address = 1.1.1.28;
- Protocol = 6 (tcp);
- Action = dst-nat;
- To Addresses = 192.168.88.10.
1.3. Далее нам нужно позаботиться об ответных пакетах, отправленных FTP-сервером с адреса 192.168.88.10. Ведь он будет адресовать их на то устройство локальной сети, чей адрес был вписан в пакете данных как адрес источника. А так как устройство отправляло пакет на 1.1.1.28, то и ответ оно ждет оттуда, а не с локального 192.168.88.10, соответственно, этот ответный пакет оно отбросит.
Поэтому мы «ловим» этот пакет и обрабатываем следующим правилом: «Для всех пакетов, у которых адресом источника стоит этот локальный диапазон адресов, а адресом назначения — локальный адрес компьютера с сервером, применяем маскарадинг». Маскарадинг — это замена локального IP-адреса устройства, отправившего пакет, на IP-адрес сервера. После применения этого правила в адресе источника в пакете будет вписан 1.1.1.28, а не 192.168.88.10.
2-й способЗдесь только 2 правила.
2.1 — созданное нами первое правило проброса портов, но немного измененное.
Из правила убираем In. Interface ether1: так как в этом случае пакеты будут «стучаться» не только через внешний интерфейс, но и через внутренние.
Соответственно, нам не понадобится правило 1.2 из 1-го способа, поскольку измененному правилу проброса портов и без него будут соответствовать пакеты и из внешней, и из локальной сети.
Правило проброса диапазона портов мы не меняли, но как мы уже написали выше — у нас доступ к FTP-серверу прекрасно функционировал и тогда, когда мы отключили это правило вообще.
2.2. А вот правило srcnat (1.3 из 1-го способа) нам понадобится, так как по-прежнему нужно заменить адрес источника:
3-й способПредложен в комментарии к статье про настройку доступа из локальной сети пользователем Stealth.
Также состоит из двух правил: измененного проброса портов и srcnat.
В первоначальном правиле проброса портов мы не указываем в качестве критерия обработки пакетов адрес назначения, а указываем на вкладке Extra его тип: local — принадлежащий одному из интерфейсов маршрутизатора. То есть под правило проброса портов будут попадать все пакеты, отправленные на адрес любого интерфейса маршрутизатора и на порт 21.
На вкладке Action в поле To Ports можно указать 21 порт. У нас работало и с указанием порта, и без него.
Второе правило — srcnat — точно такое же, как в остальных примерах.
Во всех случаях правила настройки NAT мы также поднимали выше общего правила маскарадинга.
Итоги
Повторим, что мы проверили все эти способы настройки на своей конфигурации и они рабочие. Файлы закачиваются и скачиваются:
- с компьютеров за NAT (из внешней сети),
- с локальных компьютеров внутри сети,
- с мобильных устройств, подключенных к FTP-серверу по Wi-Fi к роутерам в локальной сети,
- с мобильных устройств, подключенных к FTP-серверу по 3G.
Lantorg.comОцените, пожалуйста, полезность/интересность статьи. Нам важно ваше мнение! Дата публикации: 14.11.2016 —>
← UniFi Mesh и другие новинки Ubiquiti. Выпуск №6-2016 | Пост для хорошего новогоднего настроения — 2017 → |
Также советуем почитать:
Используемые источники:
- https://interface31.ru/tech_it/2019/05/avtomaticheskoe-rezervnoe-kopirovanie-nastroek-mikrotik-na-ftp.html
- https://mdex-nn.ru/page/nastraivaem-ftp-server-na-mikrotik.html
- https://lantorg.com/article/kak-my-nastraivali-ftp-server-na-mikrotik