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

Страницы: [1] 2 3 ... 9
1
UP! еще в наличии
Цена снижена :)
2
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, хотя как сами понимаете можно использовать как угодно.

Код: You are not allowed to view links. Register or Login
## 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 записи цепочки:
Код: You are not allowed to view links. Register or Login
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 и за ним ниже сразу запрещаем его:
Код: You are not allowed to view links. Register or Login
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 (клиентской ее версией)
Код: You are not allowed to view links. Register or Login
knock -v archlinux.sytes.net -d 500 6531 7482 8273 9634
где -d 500 это интервалы между стуками, чтобы заходило не через раз ;)

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

Код: You are not allowed to view links. Register or Login
   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


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

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

Код: You are not allowed to view links. Register or Login
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"

Для людей с правильной осью вспоминаем, что есть серверная You are not allowed to view links. Register or Login
При помощи ее мы так же делаем вход по стуку на FreeBSD, как описано You are not allowed to view links. Register or Login :)


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

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

Код: You are not allowed to view links. Register or Login
/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:

Код: You are not allowed to view links. Register or Login
/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 минуту и командной строкой:
Код: You are not allowed to view links. Register or Login
/tool fetch url=https://40324-gw.ourserver.net.ua/ mode=https keep-result=no
Важно знать, что указанное доменное имя должно либо быть реально существующим, либо хотя-бы локально прописанным в DNS клиента.

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

Код: You are not allowed to view links. Register or Login
{
: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:

Код: You are not allowed to view links. Register or Login
iptables -A INPUT -p tcp -m pknock --knockports 4002,31337,2195,34344 --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) в одноименный пакет.

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

Код: You are not allowed to view links. Register or Login
$ 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
$ sudo hping3 -c 1 -S 192.168.1.5 -p 34344

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

3
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.

Сайт-генератор скинов:
You are not allowed to view links. Register or Login
4
Записки администратора / 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 в хранилище сертификатов роутера:

Код: You are not allowed to view links. Register or Login
/tool fetch url=https://cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
Код: You are not allowed to view links. Register or Login
/certificate import file-name=DigiCertGlobalRootCA.crt.pem passphrase=""
2) В поле Use DoH Server пишем You are not allowed to view links. Register or Login и ставим галку Verify DoH Certificate:

Код: You are not allowed to view links. Register or Login
/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+).

Код: You are not allowed to view links. Register or Login
/ip dns set servers=""

Можете использовать других поставщиков DoH,  например, 9.9.9.9  8)  You are not allowed to view links. Register or Login

У вас уже есть они все в корневом сертификате ;)

Код: You are not allowed to view links. Register or Login
/ip dns set use-doh-server=https://dns.quad9.net/dns-query verify-doh-cert=yes
/ip dns set servers=""

Подробнее смотрим все на сайте You are not allowed to view links. Register or Login


И еще немного DoH от NextDNS

Quick command line setup for NextDNS:

/tool fetch url=https://curl.se/ca/cacert.pem
/certificate import file-name=cacert.pem
/ip dns set servers=
/ip dns static add name=dns.nextdns.io address=45.90.28.0 type=A
/ip dns static add name=dns.nextdns.io address=45.90.30.0 type=A
/ip dns static add name=dns.nextdns.io address=2a07:a8c0:: type=AAAA
/ip dns static add name=dns.nextdns.io address=2a07:a8c1:: type=AAAA
/ip dns set use-doh-server=“https://dns.nextdns.io/ID” verify-doh-cert=yes

1) get your ID on my.nextdns.io
2) enter your ID to use-doh-server=“https://dns.nextdns.io/ID”

Redirect DNS queries to router:

/ip firewall nat add chain=dstnat action=redirect protocol=tcp dst-port=53
/ip firewall nat add chain=dstnat action=redirect protocol=udp dst-port=53

Детальнее на You are not allowed to view links. Register or Login от самих MikroTik ;)

You are not allowed to view links. Register or Login

You are not allowed to view links. Register or Login

You are not allowed to view links. Register or Login

DoH OpenDNS

если у кого-то вдруг совсем недавно отвалился DoH OpenDNS:
они сменили издателя сертификатов DigiCertGlobalRootCA → IdenTrust Commercial Root CA 1
Решение: импорт всех корневых (Mozilla CCADB)

Код: You are not allowed to view links. Register or Login
{
/tool fetch "https://ccadb-public.secure.force.com/mozilla/IncludedRootsPEMTxt?TrustBitsInclude=Websites" output=file check-certificate=no dst-path=/Common-CA-DB-IncludedRoots.pem

/certificate import file-name=Common-CA-DB-IncludedRoots.pem name=CCADBRoots passphrase=""
}

DoH OpenDNS update:

Код: You are not allowed to view links. Register or Login
# Import Mozilla CCADB Roots
:do {
    :do {/tool fetch "https://ccadb-public.secure.force.com/mozilla/IncludedRootsPEMTxt?TrustBitsInclude=Websites" output=file check-certificate=no dst-path=/Common-CA-DB-IncludedRoots.pem} \
        while=([/file print count-only where name="Common-CA-DB-IncludedRoots.pem"]=0);
    :do {/certificate import file-name=Common-CA-DB-IncludedRoots.pem name=CCADBRoots passphrase=""} \
        if=([/certificate print count-only where name="Common-CA-DB-IncludedRoots.pem"]=0);
}
5
Записки администратора / Mikrotik на страже температуры
« Последний ответ от Дмитрий Января 19, 2021, 11:12:29 am »
Mikrotik на страже температуры

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

делаем скрипт с именем temperature:
Код: You are not allowed to view links. Register or Login
: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 мин.

Код: You are not allowed to view links. Register or Login
/system script run temperature
6


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


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


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

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

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

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

Цена 850 грн

Тел. O63 125 O2 O2


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

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

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

Код: You are not allowed to view links. Register or Login
### 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 :

Код: You are not allowed to view links. Register or Login
# 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" будет без пароля, но это нехорошо ;)

Код: You are not allowed to view links. Register or Login
{
: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.";
}

для v7.10 и выше немного по-другому, тут date имеет вид YYYY-MM-DD

Код: You are not allowed to view links. Register or Login
{
: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] 8 10 ] . "." . [:pick [/system clock get date] 5 7] . "." . [:pick [/system clock get date] 0 4] . ")$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.";
}

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

Экспортируем сначала так:
Код: You are not allowed to view links. Register or Login
ip firewall  export file=ip-firewall.rsc
ip pool export file=ip-pool.rsc
ip route export file=ip-route.rsc

Потом на другом роутере импортируем:
Код: You are not allowed to view links. Register or Login
import file=ip-firewall.rsc
import file=ip-pool.rsc
import file=ip-route.rsc

Сливаем наши бекапы на FTP сервера
Делаем бекап конфигов микрота и отправляем на удаленный FTP сервер скриптом BackupsToFTP:
Код: You are not allowed to view links. Register or Login
{
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.";
}

И добавляем его в расписание на каждый день :
Код: You are not allowed to view links. Register or Login
/system script run BackupsToFTP
8
Ubuntu - африканский Debian или маленькие чернокожие хитрости ~ You are not allowed to view links. Register or Login ~

Статья для тех кто не знает.

Разработчики Ubuntu решили что системе пользователь root не нужен.
Вместо этого нужно использовать sudo с паролем к текущему аккаунту.
Из-за этого решения, чтобы использовать команду su, в консоли необходимо набрать:
sudo passwd
и задать пароль для пользователя root, тогда этот пароль можно использовать и для su

Но у ребят c жаркого континента не все так просто и обновления командой apt-get dist-upgrade заклинит систему и введет обновления в сбойный режим :)
Вам потом подскажут в консоли как исправить потом после ребута жесткого) но это не дело, согласитесь!

поэтому не обновляйте, как нормальные другие системы с root этого монстра под рутом !!
об этом они кстати не зря You are not allowed to view links. Register or Login жирными словами)

Верните обратно ему свой долбаный рут без пароля командой  sudo passwd -dl root и обновляйтесь только  через sudo

sudo apt update  & sudo apt-get dist-upgrade

ну и если уж приспичило вам рут в этой долбаной системе то есть два еще способа)

sudo su и получить терминал рута, с паролем текущего пользователя.

sudo -i и стать суперюзером без su.
9
Ubuntu - африканский Debian или маленькие чернокожие хитрости ~ You are not allowed to view links. Register or Login ~

Статья для тех кто не знает.

Разработчики Ubuntu решили что системе пользователь root не нужен.
Вместо этого нужно использовать sudo с паролем к текущему аккаунту.
Из-за этого решения, чтобы использовать команду su, в консоли необходимо набрать:
sudo passwd
и задать пароль для пользователя root, тогда этот пароль можно использовать и для su

Но у ребят c жаркого континента не все так просто и обновления командой apt-get dist-upgrade заклинит систему и введет обновления в сбойный режим :)
Вам потом подскажут в консоли как исправить потом после ребута жесткого) но это не дело, согласитесь!

поэтому не обновляйте, как нормальные другие системы с root этого монстра под рутом !!
об этом они кстати не зря You are not allowed to view links. Register or Login жирными словами)

Верните обратно ему свой долбаный рут без пароля командой  sudo passwd -dl root и обновляйтесь только  через sudo

sudo apt update  & sudo apt-get dist-upgrade

ну и если уж приспичило вам рут в этой долбаной системе то есть два еще способа)

sudo su и получить терминал рута, с паролем текущего пользователя.

sudo -i и стать суперюзером без su.
10
Ubuntu - африканский Debian или маленькие чернокожие хитрости ~ You are not allowed to view links. Register or Login ~

Статья для тех кто не знает.

Разработчики Ubuntu решили что системе пользователь root не нужен.
Вместо этого нужно использовать sudo с паролем к текущему аккаунту.
Из-за этого решения, чтобы использовать команду su, в консоли необходимо набрать:
sudo passwd
и задать пароль для пользователя root, тогда этот пароль можно использовать и для su

Но у ребят c жаркого континента не все так просто и обновления командой apt-get dist-upgrade заклинит систему и введет обновления в сбойный режим :)
Вам потом подскажут в консоли как исправить потом после ребута жесткого) но это не дело, согласитесь!

поэтому не обновляйте, как нормальные другие системы с root этого монстра под рутом !!
об этом они кстати не зря You are not allowed to view links. Register or Login жирными словами)

Верните обратно ему свой долбаный рут без пароля командой  sudo passwd -dl root и обновляйтесь только  через sudo

sudo apt update  & sudo apt-get dist-upgrade

ну и если уж приспичило вам рут в этой долбаной системе то есть два еще способа)

sudo su и получить терминал рута, с паролем текущего пользователя.

sudo -i и стать суперюзером без su.
Страницы: [1] 2 3 ... 9