Последние сообщения

Страницы: [1] 2 3 ... 10
1
Knockin' On Heaven's Door ...

Knocking - динамическое oткрытие порта ssh на заданное время в iptables


Речь пойдет о борьбе с надоедливыми брутфорсами и сканерами портов, которые всячески норовят получить доступ к серверу.
В статье будет рассказано о технологии Port Knocking, позволяющей обезопасить доступ на сервер посредством скрытия портов.

Немного о самой технологии

В технологии Port Knocking есть интересная особенность. Она применяет несколько попыток подключения к закрытым портам. Вы спросите: «А зачем это нужно?» Давайте представим себе, что вы пришли на собеседование в какую-то организацию с пропускным режимом. Сначала вы попадаете на (1)пост охраны, где на вас выписывают пропуск, затем (2)вы попадаете в отдел кадров, где заполняете анкету и с вами беседуют, и в конечном итоге (3)вы попадаете в кабинет управляющего, который проводит завершающую беседу и принимает решение. А теперь давайте представим, что бы случилось, если бы все желающие напрямую шли к управляющему?

Технология Port Knocking осуществляет последовательность попыток подключения к закрытым портам. Даже не смотря на то, что все порты закрыты, вы можете отследить все попытки подключения в лог-файлах файрвола. Сервер, чаще всего, никак не отвечает на эти подключения, но он считывает и обрабатывает их. Но если же серия подключений была заранее обозначена пользователем, то выполнится определенное действие. Как пример, подключение к SSH-сервису на порту 22. Port Knocking позволяет осуществлять не только данное действие. триггер позволяет выполнять и другие действия (скажем, отключение питания, перезагрузку системы и т.д.).

Динамическое  открытие порта ssh на заданное время при помощи iptables :

Небольшое правило для iptables помогающее лишний раз не держать порты открытыми.
Пример для доступа к SSH, хотя как сами понимаете можно использовать как угодно.

Код: *** ссылки только после регистрации или входа
## Open SSH Port 22 by Knocking ports 6531-->7482-->8273-->9634
## создаем дополнительные цепочки
-N STAGE1
-N STAGE2
-N STAGE3

# Разрешить подключение, если ip есть в списке и последнее подключение осуществлялось не позднее часа (3600 секунд)
#-A INPUT -p tcp --syn -m conntrack --ctstate NEW --dport 22 -m recent --update --seconds 3600 --name ACCES -j ACCEPT

# Разрешить новое подключение, если ip есть в списке и только в течение 10 секунд и не секундой больше! :-)
-A INPUT -p tcp --syn -m conntrack --ctstate NEW --dport 22 -m recent --rcheck --seconds 10 --name ACCES -j ACCEPT

## Открытие SSH
-A INPUT -p tcp --syn -m conntrack --ctstate NEW -m recent --name ACCES --remove -j DROP
-A INPUT -p tcp --syn -m conntrack --ctstate NEW --dport 9634 -m recent --rcheck --name 3HIT -j STAGE3
-A INPUT -p tcp --syn -m conntrack --ctstate NEW -m recent --name 3HIT --remove -j DROP
-A INPUT -p tcp --syn -m conntrack --ctstate NEW --dport 8273 -m recent --rcheck --name 2HIT -j STAGE2
-A INPUT -p tcp --syn -m conntrack --ctstate NEW -m recent --name 2HIT --remove -j DROP
-A INPUT -p tcp --syn -m conntrack --ctstate NEW --dport 7482 -m recent --rcheck --name 1HIT -j STAGE1
-A INPUT -p tcp --syn -m conntrack --ctstate NEW -m recent --name 1HIT --remove -j DROP
-A INPUT -p tcp --syn -m conntrack --ctstate NEW --dport 6531 -m recent --name 1HIT --set -j DROP
-A STAGE1 -m recent --name 2HIT --set -j DROP
-A STAGE2 -m recent --name 3HIT --set -j DROP
-A STAGE3 -m recent --name ACCES --set -j DROP

Так же можно сделать и с любым портом любого сервиса, например, PPTP VPN ...
Извините, вам запрещён просмотр содержимого спойлеров.
Извините, вам запрещён просмотр содержимого спойлеров.
Извините, вам запрещён просмотр содержимого спойлеров.


Для микротиков в их RouterOS все просто. Делаем в Firewall записи цепочки:
Код: *** ссылки только после регистрации или входа
add chain=input connection-state=new protocol=tcp dst-port=9634 in-interface-list=WAN action=add-src-to-address-list address-list=Knock_stage1 address-list-timeout=3s comment="Knock for SSH ACCESS"
add chain=input connection-state=new protocol=tcp dst-port=8273 in-interface-list=WAN action=add-src-to-address-list address-list=Knock_stage2 address-list-timeout=3s src-address-list=Knock_stage1
add chain=input connection-state=new protocol=tcp dst-port=7482 in-interface-list=WAN action=add-src-to-address-list address-list=Knock_stage3 address-list-timeout=3s src-address-list=Knock_stage2
add chain=input connection-state=new protocol=tcp dst-port=6531 in-interface-list=WAN action=add-src-to-address-list address-list=Knock_SSH address-list-timeout=1d src-address-list=Knock_stage3 log=yes log-prefix="By knocking added SSH"
и дальше делаем проброс порта SSH из списка Knock_SSH и за ним ниже сразу запрещаем его:
Код: *** ссылки только после регистрации или входа
add chain=forward connection-state=new dst-port=22 protocol=tcp src-address-list=Knock_SSH action=accept comment="Accept Knocked to SSH"
add chain=forward connection-state=new dst-port=22 in-interface-list=WAN protocol=tcp action=drop


Суть правила проста, для того чтобы открыть доступ к ssh нужно сначала постучать на избранные порты
в определенной последовательности  6531-->7482-->8273-->9634 

например, специальной программой knock (клиентской ее версией)
Код: *** ссылки только после регистрации или входа
knock -v archlinux.sytes.net -d 500 6531 7482 8273 9634
где -d 500 это интервалы между стуками, чтобы заходило не через раз ;)

Для автоматизации в ssh можно настроить файл config в скрытой папе ./ssh 

Код: *** ссылки только после регистрации или входа
   Host archlinux
   HostName archlinux.sytes.net
   Port 22
   User admin
   Match host archlinux.sytes.net exec "knock -v archlinux.sytes.net -d 500 6531 7482 8273 9634"

Ну и напоследок, что бы закрыть вопрос, сделаем вход на ssh только по ключу
и поменять настройку на вашем сервере: PasswordAuthentication no


правильно генерируем ключ:
Код: *** ссылки только после регистрации или входа
ssh-keygen -o -a 100 -t rsa -b 4096 -C " admin@archlinux.sytes.net "
Менять пароль доспупа к приватному ключу так:
Код: *** ссылки только после регистрации или входа
ssh-keygen -f ~/.ssh/id_rsa -p -o -a 100
Добавить на сайт, куда хотите ходить:
Код: *** ссылки только после регистрации или входа
ssh-copy-id -i ~/.ssh/id_rsa.pub admin@archlinux.sytes.net -p 2200
Новый тип шифрования ed25519:
Код: *** ссылки только после регистрации или входа
ssh-keygen -a 100 -t ed25519 -b 4096 -C " admin@archlinux.sytes.net "
Добавить пароль ключа в память навсегда:
Код: *** ссылки только после регистрации или входа
ssh-add ~/.ssh/id_ed25519
ssh-add ~/.ssh/id_rsa

Так же есть способ автоматизации в файле config  в ./ssh

Код: *** ссылки только после регистрации или входа
Host archlinux archlinux.sytes.net
HostName archlinux.sytes.net
User admin
Port 2200
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
# или другой тип
#IdentityFile ~/.ssh/id_ed2551
Match host archlinux.sytes.net exec "knock -v archlinux.sytes.net -d 500 6531 7482 8273 9634"

Для людей с правильной осью вспоминаем, что есть серверная *** ссылки только после регистрации или входа
При помощи ее мы так же делаем вход по стуку на FreeBSD, как описано *** ссылки только после регистрации или входа :)


Еще один способ - это стук не по портам, а контентом на уже используемый другим сервисом, тем самым скрывая сервис вообще.
И тут всё зависит от вашей фантазии. Но, на мой взгляд, идеальным вариантом было бы стучаться на всё тот же 443 порт. Это сведёт к минимуму «подозрительность» данной активности.

RouterOS позволяет это сделать чрезвычайно простым путём (как всегда ;)). Забегаем в ip > firewall > Mangle и создаём правило:

Код: *** ссылки только после регистрации или входа
/ip firewall mangle add chain=prerouting protocol=tcp dst-port=443 content="40324-gw.ourserver" action=add-src-to-address-list address-list="SSTP_Client" address-list-timeout="00:01:00"
Идея тут заключается в том, что так или иначе, из https запроса вполне легко вытаскивается sni заголовок. А вот то самое «кодовое слово» будет передаваться в качестве доменного имени (например 40324-gw.ourserver.net.ua). Как только наш тик получит GET запрос на это доменное имя, он создаст запись в src листе фаерволла. Её мы будем использовать в правиле netmap:

Код: *** ссылки только после регистрации или входа
/ip firewall nat add chain=dstnat action=netmap dst-port=443 dst-address-list=WAN protocol=tcp src-address-list=!SSTP_Client to-addresses=192.168.1.80
Таким образом, мы натим все соединения на 443 порт на вебсервер 192.168.1.80, кроме тех, которые пришли от адресов из списка SSTP_Client. Для последних это правило не работает и пойдут прямиком на sstp сервер микротика.

Теперь на стороне клиента нужно добавить задачу в расписание, которая будет периодически стучаться, обновляя свой динамический адрес в src листе сервера. Кстати, записи туда добавляются с таймаутом в 1 минуту.

Самый простой вариант, это зайти в system > Sheduler и добавить задачу с интервалом в 1 минуту и командной строкой:
Код: *** ссылки только после регистрации или входа
/tool fetch url=https://40324-gw.ourserver.net.ua/ mode=https keep-result=no
Важно знать, что указанное доменное имя должно либо быть реально существующим, либо хотя-бы локально прописанным в DNS клиента.

если вы не хотите отправлять лишние запросы, скрипт шедалера можно сделать таким: Knocking_T0_SSTP_VPN

Код: *** ссылки только после регистрации или входа
{
:if ([/interface get sstp-vpn running]=true) do={
# Uncomment if u wanna read msg in log
#:log info "SSTP interface running... don't need knocking!"
} else={[/tool fetch url=https://40324-gw.ourserver.net.ua/ mode=https keep-result=no]}
}


И напоследок еще много интересных идей в *** ссылки только после регистрации или входа  ;)


Нашел, что еще в далеком 2013 разработали дополнения XTABLES-ADDONS и там есть уже готовый модуль knocking :)
(дальше будет выдержка из статьи Хакер от 07 2013 года)

XTABLES-ADDONS

Наиболее известный набор дополнений к iptables, пожалуй, xtables-addons. Этот набор является своего рода «наследни- ком» patch-o-matic — главное отличие от последнего заключа- ется в том, что для установки xtables-addons не требуется пат- чить ядро и iptables. Перечислю наиболее интересные модули и возможности, которые он добавляет (описывается Ubuntu 12.04, поскольку в 12.10 на ядрах 3.5.* из-за добавления новых флагов в функцию ipv6_find_hdr() один из модулей не компили- руется):

• xt_geoip — позволяет определять страну данного IP-адреса. Разумеется, это не панацея от различных ботнетов и базу адресов время от времени надо обновлять, но модуль тем не менее полезен;
• xt_ipp2p — позволяет производить действия над некоторым P2P-трафиком;
• xt_pknock — позволяет использовать port knocking. Этот ме- ханизм позволяет держать порты закрытыми и открывать их только после определенной последовательности подключе- ний на (также закрытые) порты;
• xt_lscan — отслеживает попытки сканирования.

XT_PKNOCK

Модуль xt_pknock используется для port knocking’а. Что это такое? Допустим, у тебя на интерфейсе, который смотрит в ин- тернет, есть только порт SSH. Но твоей паранойе и этого не- достаточно. С другой стороны, тебе этим компьютером надо управлять, так что просто отключить SSH — не вариант. На по- мощь приходит port knocking. Ты закрываешь порт, но есть возможность его открыть с помощью последовательных со- единений на определенные порты или используя SPA (Single Packet Authentication — метод криптографической аутентифи- кации, в случае с xt_pknock берется HMAC от текущего времени и адреса аутентифицируемого). Xt_pknock поддерживает оба режима, однако второй мы рассматривать не будем — его при- менение довольно специфично.

Приведу пример для открытия порта SSH:

Код: *** ссылки только после регистрации или входа
iptables -A INPUT -p tcp -m pknock --knockports 4002,31337,2195 --strict --name SSH --time 30 --autoclose 5 --dport 22 -j ACCEPT
азберем, что эти опции значат. Опция '--knockports' перечис- ляет порты, на которые необходимо «стучаться»; '--strict' означает, что на порты необходимо «стучаться» строго в определенной по- следовательности; '--name' присваивает имя данному правилу, через которое в /proc/net/xt_pknock/ можно получить информа- цию о попытках knocking’а; '--time 30' ограничивает максималь- ное время между «постукиваниями» в данной последовательно- сти (в секундах); '--autoclose 5' закрывает порт через пять минут.
Но как же именно «стучаться»? Для этого имеется, напри- мер, утилита hping3, входящая (в случае Ubuntu) в одноимен- ный пакет.

Для того чтобы открыть порт из указанного выше примера, выполни данные команды на клиенте:

Код: *** ссылки только после регистрации или входа
$ sudo hping3 -c 1 -S 192.168.1.5 -p 4002
$ sudo hping3 -c 1 -S 192.168.1.5 -p 31337
$ sudo hping3 -c 1 -S 192.168.1.5 -p 2195

Эти команды посылают один пакет с битом SYN на адрес 192.168.1.5 (в твоем случае, понятно, он будет другим) на порты 4002, 31337, 2195. Все! Теперь в течение пяти минут SSH открыт.

2
Midnight Commander умеет массово переименовывать директории и файлы

Midnight Commander (часто называют просто mc) умеет массово переименовывать директории и файлы (в том числе и с пробелами). Выделяем нужные файлы и директории жмем F5 или F6 (F1 выведет подробную информацию по использованию) в источнике пишешь нужную маску (в большинстве случаев достаточно оставить *), в приемнике дописываешь, например *.bak. Ко всем файлам и директориям будет добавлено расширение bak.

Ключи запуска программы для GNU Midnight Commander

Параметры справки:

   -h, --help               Показать параметры справки
  --help-all                Показать все параметры справки
  --help-terminal           Настройки терминала
  --help-color              Цветовые настройки


Параметры приложения:

  -V, --version            Показать текущую версию
  -f, --datadir             Распечатать имя каталога для данных.

Выводит на экран определенный в процессе компиляции программы путь к файлам программы Midnight Commander:
                                $ mc -f
                                /etc/mc/ (/usr/share/mc/)

  --configure-options     Распечатать параметры конфигурации
  -F, --datadir-info        Показ расширенной информации об используемых каталогов пользовательских данных
  -P, --printwd=<file>   Записать последний рабочий каталог в указанный файл
  -U, --subshell             Включить поддержку встроенной командной оболочки (по умолчанию)
  -u, --nosubshell          Отключить поддержку встроенной командной оболочки
  -l, --ftplog=<file>       Записывать диалог с FTP в заданный файл
  -v, --view=<file>        Просматривать файл
  -e, --edit=<file>         Редактировать файл. Запустить встроенный редактор mcedit. Если параметр файл задан, этот файл будет открыт при старте.

-k Восстанавливает значения команд, назначенных функциональным клавишам в предусмотренные по умолчанию значения, используя базу данных termcap/terminfo.
Этот ключ используется только на терминалах HP, где функциональные клавиши не работают.

-l файл Сохранить диалог с ftp-сервером, а также отладочную информацию smbfs в файл file.

-P файл По окончании работы Midnight Commander запишет последний текущий каталог в указанный файл. Эту опцию не следует использовать напрямую.
Она используется специальной функцией оболочки, которая меняет текущий каталог оболочки на последний каталог, использованный Midnight Commander.
Для того чтобы эта функция была определена, используйте файл /usr/share/mc/bin/mc.sh для оболочек bash и zsh,
а для оболочки tcsh соответственно файл /usr/share/mc/bin/mc.csh

-s Включает медленный режим терминала, в котором программа выводит меньше псевдографических символов (в том числе в меню и экранах помощи)
и отключается вывод дополнительных (избыточных) сообщений.

-t Используется только в том случае, когда код был скомпилирован со Slang и terminfo: в этом случае Midnight Commander
использует значение переменной TERMCAP для получения информации о терминале вместо использования системной базы терминалов.

-u Отключает использование альтернативных оболочек shell (имеет смысл только в том случае, когда Midnight Commander был
скомпилирован с поддержкой альтернативной оболочки).

-U Делает возможным использование subshell (имеет смысл только в том случае, когда Midnight Commander был скомпилирован с поддержкой subshell как опции).

-v file Запустить встроенную программу просмотра Midnight Commander-а для просмотра указанного файла. После выхода из
режима просмотра вы выходите из Midnight Commander и оказываетесь в shell.

Сайт-генератор скинов:
*** ссылки только после регистрации или входа
3
Записки администратора / MikroTik поддерживает DNS over HTTPS (DoH)
« Последний ответ от Дмитрий Января 21, 2021, 12:56:57 pm »
MikroTik поддерживает DNS over HTTPS (DoH)

Начиная со стабильной версии 6.47 MikroTik поддерживает DNS over HTTPS (DoH).
Далее краткая инструкция по настройке с проверкой сертификата сервера на примере Cloudflare.

1) Импортируем сертификат DigiCert Global Root CA в хранилище сертификатов роутера:

Код: *** ссылки только после регистрации или входа
/tool fetch url=https://cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
Код: *** ссылки только после регистрации или входа
/certificate import file-name=DigiCertGlobalRootCA.crt.pem passphrase=""
2) В поле Use DoH Server пишем *** ссылки только после регистрации или входа и ставим галку Verify DoH Certificate:

Код: *** ссылки только после регистрации или входа
/ip dns set use-doh-server=https://1.1.1.1/dns-query verify-doh-cert=yes
3) Убираем все существующие DNS-сервера, чтобы поля Servers и Dynamic Servers (из DHCP Client) были пустыми
и все запросы шли через DNS over HTTPS   (не обязательно для 6.47.1+).

Код: *** ссылки только после регистрации или входа
./ip dns set servers=""
Можете использовать других поставщиков DoH,  например, Google: 
Код: *** ссылки только после регистрации или входа
https://dns.google/dns-queryУ вас уже есть они все корневом сертификате ;)

Подробнее смотрим все на сайте *** ссылки только после регистрации или входа
4
Записки администратора / Mikrotik на страже температуры
« Последний ответ от Дмитрий Января 19, 2021, 11:12:29 am »
Mikrotik на страже температуры

Теперь заставим микротик отправлять на почту если температура превышает норму !
Или если отключили отопление зимой и перевалило за точку замерзания :)

делаем скрипт с именем temperature:
Код: *** ссылки только после регистрации или входа
:global temphigh
:global templow
:set temphigh 50
:set templow 0
:global temptmp [/system health get temperature]

:if ($temptmp > $temphigh) do= {/tool e-mail send to=EMAIL@gmail.com subject=Warning_Temperature body="Warning!!! Router temperature  - $temptmp High Degrees"}
:if ($temptmp < $templow) do= {/tool e-mail send to=EMAIL@gmail.com subject=Warning_Temperature body="Warning!!! Router temperature  - $temptmp low now"}

и делаем график выполнение его каждые 30 мин.

Код: *** ссылки только после регистрации или входа
/system script run temperature
5


Оригинальные Японские Иридиевые свечи Denso Iridium Tough VK16


Центральный электрод тонкий, из Иридия.
Боковой электрод с Платиной.


Смысл таких свечей в том, что они ходят 4-5 срока обычных, 100 000 км, тем самым экономят вам время и бензин, когда у обычных свечей уже доходит срок и в этот период растут эксплуатационные расходы.

Еще одно преимущество: тонкий электрод !!
Искра выходит из него мощная и не распадается на мелкие
Это дает прирост в мощности примерно на 5% ..!
Убирает провалы, на контактном зажигании работает мягче и стабильнее..

Продается комплектом 4 шт.

В Днепре забирать возле Мечникова
В Обуховке/Кировке лежит еще комплект!
Высылаю только ОЛХ доставкой!
Звоните!

Цена 650 грн

Тел. O63 125 O2 O2


6
Отправка почтой системных логов и бекапа Микротика
(To send email Mikrotik's system logs and backups)

Системные отчеты логов получать на почту можно легко не насилую при этом флеш накопитель ;)

создадим простой скрипт в планировщике (sheduler) :

Код: *** ссылки только после регистрации или входа
### Mikrotik's logs send to e-mail
:global logMessages;
:set logMessages ""
:foreach i in=[/log find ] do={
:set logMessages ($logMessages. [/log get $i time ]. " ");
:set logMessages ($logMessages. [/log get $i message ]);
:set logMessages ($logMessages. "\n")
}
/tool e-mail send subject="$[/system identity get name] MikroTik system logs" to="admin@ix-ua.net" body="$logMessages"

Можно настроить планировщик высылать тревожные сообщения при входе в систему, добавив запись под именем LoginALERT :

Код: *** ссылки только после регистрации или входа
# BEGIN SETUP
:local scheduleName "LoginALERT"
:local emailAddress "admin@ix-ua.net"
:local startBuf [:toarray [/log find message~"logged in" || message~"login failure"]]
:local removeThese {"telnet";"whatever string you want"}
# END SETUP

# warn if schedule does not exist
:if ([:len [/system scheduler find name="$scheduleName"]] = 0) do={
  /log warning "[LOGMON] ERROR: Schedule does not exist. Create schedule and edit script to match name"
}

# get last time
:local lastTime [/system scheduler get [find name="$scheduleName"] comment]
# for checking time of each log entry
:local currentTime
# log message
:local message
 
# final output
:local output

:local keepOutput false
# if lastTime is empty, set keepOutput to true
:if ([:len $lastTime] = 0) do={
  :set keepOutput true
}


:local counter 0
# loop through all log entries that have been found
:foreach i in=$startBuf do={
 
# loop through all removeThese array items
  :local keepLog true
  :foreach j in=$removeThese do={
#   if this log entry contains any of them, it will be ignored
    :if ([/log get $i message] ~ "$j") do={
      :set keepLog false
    }
  }
  :if ($keepLog = true) do={
   
   :set message [/log get $i message]

#   LOG DATE
#   depending on log date/time, the format may be different. 3 known formats
#   format of jan/01/2002 00:00:00 which shows up at unknown date/time. Using as default
    :set currentTime [ /log get $i time ]
#   format of 00:00:00 which shows up on current day's logs
   :if ([:len $currentTime] = 8 ) do={
     :set currentTime ([:pick [/system clock get date] 0 11]." ".$currentTime)
    } else={
#     format of jan/01 00:00:00 which shows up on previous day's logs
     :if ([:len $currentTime] = 15 ) do={
        :set currentTime ([:pick $currentTime 0 6]."/".[:pick [/system clock get date] 7 11]." ".[:pick $currentTime 7 15])
      }
   }
   
#   if keepOutput is true, add this log entry to output
   :if ($keepOutput = true) do={
     :set output ($output.$currentTime." ".$message."\r\n")
   }
#   if currentTime = lastTime, set keepOutput so any further logs found will be added to output
#   reset output in the case we have multiple identical date/time entries in a row as the last matching logs
#   otherwise, it would stop at the first found matching log, thus all following logs would be output
    :if ($currentTime = $lastTime) do={
     :set keepOutput true
     :set output ""
   }
  }

#   if this is last log entry
  :if ($counter = ([:len $startBuf]-1)) do={
#   If keepOutput is still false after loop, this means lastTime has a value, but a matching currentTime was never found.
#   This can happen if 1) The router was rebooted and matching logs stored in memory were wiped, or 2) An item is added
#   to the removeThese array that then ignores the last log that determined the lastTime variable.
#   This resets the comment to nothing. The next run will be like the first time, and you will get all matching logs
   :if ($keepOutput = false) do={
#     if previous log was found, this will be our new lastTime entry     
     :if ([:len $message] > 0) do={
        :set output ($output.$currentTime." ".$message."\r\n")
      }
    }
  }
  :set counter ($counter + 1)
}

# If we have output, save new date/time, and send email
if ([:len $output] > 0) do={
  /system scheduler set [find name="$scheduleName"] comment=$currentTime
  /tool e-mail send to="$emailAddress" subject="MikroTik alert $currentTime" body="$output"
  /log info "[LOGMON] New logs found, send email"
}

To send EMail Beckup - сливаем бекапы на почту

тока укажите пароль вместо YOURPASS или удалите вообще "password=YOURPASS" будет без пароля, но это нехорошо ;)

Код: *** ссылки только после регистрации или входа
{
:log info "Starting Backup Script...";
:local sysname [/system identity get name];
:local sysver [/system package get system version];
:local model [/system routerboard get model];
:delay 2;
:log info "Deleting last Backups...";
:foreach i in=[/file find] do={:if ([:typeof [:find [/file get $i name] "$sysname.backup"]]!="nil") do={/file remove $i}};
:delay 2;
:local EMail "admin@ix-ua.net";
:local backupfile ("(" . [:pick [/system clock get date] 0 3 ] . "." . [:pick [/system clock get date] 4 6] . "." . [:pick [/system clock get date] 7 11] . ")$model-v$sysver.$sysname.backup");
:log info "Creating new Full Backup file...";

/system backup save password=YOURPASS name=$backupfile;  ### <---- set YOURPASS or delete all "password=YOURPASS"
:delay 2;

:log info "Sending Full Backup file via E-mail...";
/tool e-mail send to=$EMail file=$backupfile \
subject=("$sysname Full Backup (" . [/system clock get date] . ")") \
body=("$sysname full Backup file see in attachment.\nRouterOS version: \
$sysver\nTime and Date stamp: " . [/system clock get time] . " " . \
[/system clock get date]);
:delay 5;
:local exportfile ("$sysname-backup-" . \
[:pick [/system clock get date] 7 11] . [:pick [/system \
clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".rsc");
:log info "Creating new Setup Script file...";
/export verbose file=$exportfile;
:delay 2;
:log info "Sending Setup Script file via E-mail...";
/tool e-mail send to=$EMail file=$exportfile \
subject=("$sysname Setup Script Backup (" . [/system clock get date] . \
")") body=("$sysname Setup Script file see in attachment.\nRouterOS \
version: $sysver\nTime and Date stamp: " . [/system clock get time] . " \
" . [/system clock get date]);
:delay 5;
:log info "All System Backups emailed successfully.\nBackuping completed.";
}

Бекапы Микротика в текстовом виде
Так же можно делать и универсальные бекапы в текстовом виде, командами терминала:

Экспортируем сначала так:
Код: *** ссылки только после регистрации или входа
ip firewall  export file=ip-firewall.rsc
ip pool export file=ip-pool.rsc
ip route export file=ip-route.rsc

Потом на другом роутере импортируем:
Код: *** ссылки только после регистрации или входа
import file=ip-firewall.rsc
import file=ip-pool.rsc
import file=ip-route.rsc

Сливаем наши бекапы на FTP сервера
Делаем бекап конфигов микрота и отправляем на удаленный FTP сервер скриптом BackupsToFTP:
Код: *** ссылки только после регистрации или входа
{
local username "никнейм"
#ftp account
local ftphost "имя сервера"
local ftpuser "логин"
local ftppassword "пароль"
local ftppath "/uploads/Administrators/mikrotik-backups"

#create full system backup files
/system backup save name="$username.backup"
:delay 30s;

#create config export files
/export compact file="$username.rsc"
:delay 30s;

# upload the system backup
:log info message="Uploading system backup"
/tool fetch address="$ftphost" src-path="$username.backup" user="$ftpuser" mode=ftp password="$ftppassword" dst-path="$ftppath/$username.backup" upload=yes
:delay 30s;

# upload the config export
:log info message="Uploading config export"
/tool fetch address="$ftphost" src-path="$username.rsc" user="$ftpuser" mode=ftp password="$ftppassword" dst-path="$ftppath/$username.rsc" upload=yes
:delay 30s;

# find file name $username- then remove
:foreach i in=[/file find] do={ :if ([:typeof [:find [/file get $i name] "$username"]]!="nil") do={/file remove $i}; }
:log info message="Configuration backup finished.";
}

И добавляем его в расписание на каждый день :
Код: *** ссылки только после регистрации или входа
/system script run BackupsToFTP
Страницы: [1] 2 3 ... 10