Архив рубрики: Networks

📜 Скрипты Bash для сканирования и мониторинга сети

В этой статье представлены несколько простых скриптов сканирования и мониторинга сети с использованием комбинации команд bash и ping.

Очевидно, что эти скрипты не подходят в сравнении со специализированным программным обеспечением для полного мониторинга, такого как например nagios: Читать

MikroTik – Firewall защита доступа

К каким результатам мы пришли:

У нас встает вопрос безопасности нашей локальной сети, ведь китайские боты не спят и постоянно сканируют доступное сетевое пространство на наличие дыр и уязвимостей.
Имея статический IP мы подвержены риску быть взломанными. Т.к. наш статический IP доступен в интернете, он может подвергаться различного рода «атакам из вне».

Поэтому нам нужно сделать так, чтобы только мы могли подключаться к нашим роутерам и другим сервисам в локальной сети. Читать

MikroTik RouterOS – Списки интерфейсов “Interface List”

Данная статья будет небольшой и она будет посвящена Спискам интерфейсов в MikroTik RouterOS. В ней я постараюсь рассказать, что такое “Списки интерфейсов” и для чего они нужны.

Все действия производились на прошивке 6.42.9 (Long-Term)
Описание на MikroTik WIki: Manual:Interface/List [ENG]

Сами списки интерфейсов в RouterOS V6 (на 10.10.2018) присутствуют довольно давно, тогда они еще были очень простыми. Читать

Атака на WiFi ломаем хеш WPA2

Пред­по­ло­жим, есть сеть myWifiNet с паро­лем p@$$w0rd.

Пароль доста­точ­но не ред­кий и он точ­но будет в любой мало-маль­ски пол­ной сло­вар­ной базе зло­умыш­лен­ни­ков. При­ки­нем­ся, что мы не зна­ем этот пароль и попро­бу­ем его узнать!

Счи­та­ем, что в ком­пью­те­ре есть WiFi кар­точ­ка, сов­ме­сти­мая с нашей зада­чей (а это может быть даже про­стей­шая USB-сете­вая кар­та TP-Link, напри­мер, у меня спра­ви­лась с зада­чей ста­рень­кая TL-WN727N), запу­щен Kali Linux (вир­ту­ал­ка, Live CD, уста­нов­лен­ная на диск — не важ­но). Начали! Читать

Балансировка двух WAN на Mikrotik используя PCC

Начальные условия




  • 2 канала WAN от разных провайдеров, с разными скоростями
  • Провайдер1 WAN1 (192.168.1.1) — 10 Мбит
  • Провайдер2 WAN2 (192.168.2.1) — 20 Мбит




Необходимо реализовать




  • Основной канал WAN2 и он должен использоваться интенсивнее (2/3 всего объема трафика)
  • Балансировку нагрузки между каналами
  • Роутер должен отвечать на запросы (пришедшие с любого провайдера) именно с того интерфейса, откуда пришел запрос




/ip address
add address=192.168.0.1/24 network=192.168.0.0 broadcast=192.168.0.255 interface=Local
add address=192.168.1.2/24 network=192.168.1.0 broadcast=192.168.1.255 interface=WAN1
add address=192.168.2.2/24 network=192.168.2.0 broadcast=192.168.2.255 interface=WAN2
 
/ip firewall mangle
add chain=input in-interface=WAN1 action=mark-connection new-connection-mark=WAN1_conn
add chain=input in-interface=WAN2 action=mark-connection new-connection-mark=WAN2_conn
 
add chain=output connection-mark=WAN1_conn action=mark-routing new-routing-mark=to_WAN1
add chain=output connection-mark=WAN2_conn action=mark-routing new-routing-mark=to_WAN2
 
add chain=prerouting dst-address=192.168.1.0/24 action=accept in-interface=Local
add chain=prerouting dst-address=192.168.2.0/24 action=accept in-interface=Local
 
add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:2/0 action=mark-connection new-connection-mark=WAN1_conn passthrough=yes
add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:2/1 action=mark-connection new-connection-mark=WAN2_conn passthrough=yes
 
add chain=prerouting connection-mark=WAN1_conn in-interface=Local action=mark-routing new-routing-mark=to_WAN1
add chain=prerouting connection-mark=WAN2_conn in-interface=Local action=mark-routing new-routing-mark=to_WAN2
 
/ip route
add dst-address=0.0.0.0/0 gateway=192.168.1.1 routing-mark=to_WAN1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=192.168.2.1 routing-mark=to_WAN2 check-gateway=ping
 
add dst-address=0.0.0.0/0 gateway=192.168.1.1 distance=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=192.168.2.1 distance=2 check-gateway=ping
 
/ip firewall nat
add chain=srcnat out-interface=WAN1 action=masquerade
add chain=srcnat out-interface=WAN2 action=masquerade




Если каналы неравны (как у меня), то нужно изменить




add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:2/0 action=mark-connection new-connection-mark=WAN1_conn passthrough=yes

add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:2/1 action=mark-connection new-connection-mark=WAN2_conn passthrough=yes




на




add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:3/0 action=mark-connection new-connection-mark=WAN1_conn passthrough=yes

add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:3/1 action=mark-connection new-connection-mark=WAN2_conn passthrough=yes

add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:3/2 action=mark-connection new-connection-mark=WAN2_conn passthrough=yes




Определенный порт через определенного провайдера




Спасибо за подсказку maxim.naidenov:




;;; Winbox
chain=prerouting action=mark-routing new-routing-mark=to_WAN1 passthrough=no protocol=tcp dst-address-type=!local in-interface=bridge-local dst-port=8291 connection-mark=no-mark

;;; Wargaming, RU9
chain=prerouting action=mark-routing new-routing-mark=to_WAN2 passthrough=no dst-address=xxx.xxx.xxx.0/24 dst-address-type=!local in-interface=bridge-local connection-mark=no-mark




Балансировка каналов и IPSEC




При эксплуатации IPSEC и балансировке каналов выяснился интересный факт: при установке IPSEC не получается обменяться всеми ключами. IPSEC вроде бы как и поднимается, но работать не работает. Если посмотреть IP → IPsec → Installed SAs — можно увидеть что счетчик «Current Bytes» для одного из ключей равен 0, т.е. обмен ключами все-таки не прошел. Для правильной работы необходимо добавить еще два правила:




> /ip firewall mangle

> add chain=output action=mark-routing new-routing-mark=ISP1_conn passthrough=no connection-mark=ISP1_conn

> add chain=output action=mark-routing new-routing-mark=ISP2_conn passthrough=no connection-mark=ISP2_conn




При этом в таблице маршрутизации должны быть маршруты с соответствующими Routing Mark




Было (неверно):




> add chain=output action=mark-connection new-connection-mark=ISP1_conn passthrough=no out-interface=WAN1

> add chain=output action=mark-connection new-connection-mark=ISP2_conn passthrough=no out-interface=WAN2




Еще полезная статейка: https://habr.com/post/313342/




Взято отсюда: https://wiki.rtzra.ru/software/mikrotik/mikrotik-dual-wan-pcc



2021-03-07T18:12:26
Network

Настройка резервного канала в MikroTik с уведомлением в Telegram

К подключению резервного интернет канала дома каждый приходит по своим причинам, но некоторые устройства в умном доме требуют постоянного подключения к сети интернет, оперативность получения важных уведомлений напрямую зависит от стабильности подключения к тому же, как же мы узнаем, что интернет пропал, не имея резервного канала 🙂




Какой тип подключения выбрать в качестве резервного зависит только от желания, финансовой и технической возможности. Требования к скорости не большие и зависит от того, каким устройствам необходим постоянный доступ к сети. Если не использовать постоянный доступ для торрент обмена, то в качестве резервного канала можно использовать USB LTE модем с лимитированным трафиком.




Входные данные




Имеется MikroTik RB4011 с настройками:




  • Основной интернет канал 100МБит, внешний IP, интерфейс ether1
  • Резервный интернет канал 10МБит, интерфейс ether2
  • OpenVPN подключение к внешней VPS, интерфейс vpn-ovpn
  • Туннель 6to4 для IPv6 трафика, v6to4-tunnel




Необходимо при разрыве основного канала пустить весь трафик по резервному, переподключить VPN, погасить туннель 6to4 и прислать уведомление в телеграмм.




Настройка




Для удобства переименовываем названия портов ether1 и ether2 в ether1-wan-main и ether2-wan-reserv




/interface ethernet set ether1 name="ether1-wan-main"
/interface ethernet set ether2 name="ether2-wan-reserv"




Если IP адреса для основного и/или резервного канала прилетают по DHCP, то в настройках DHCP Сlient’а необходимо для каждого интерфейса выставить параметр Add Default Route — no.







Добавляем маршруты по умолчанию, маршрут основного канала будет иметь дистанцию (distance) 1, резервного 2:




/ip route add dst-address=0.0.0.0/0 gateway=100.99.88.1 distance=1 comment="MAIN_CHAN"

/ip route add dst-address=0.0.0.0/0 gateway=10.9.8.1 distance=2 comment="RESERV_CHAN"




где: gateway=100.99.88.1 — шлюз для основного канала, gateway=10.9.8.1 — шлюз для резервного канала. Неактивный маршрут резервного канала будет выделен синим цветом.







Для мониторинга состояния каналов будет задействована утилита Netwatch (Tools -> Netwatch), в качестве хостов наблюдения будут использованы DNS сервера Яндекс, адрес 77.88.8.8 будет использоваться для проверки работоспособности основного канала, 77.88.8.1 — для резервного.




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




/ip route add dst-address=77.88.8.8 gateway=100.99.88.1 distance=1 comment="Yandex  DNS  -  Check  main  internet  channel"

/ip route add dst-address=77.88.8.1 gateway=10.9.8.1 distance=1 comment="Yandex  DNS  -  Check reserv internet channel"







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




/ip firewall filter add chain=output dst-address=77.88.8.1 out-interface=ether1-wan-main action=reject

/ip firewall filter add chain=output dst-address=77.88.8.8 out-interface=ether2-wan-reserv action=reject







Мониторинг и переключение каналов




Как говорилось выше, в качестве мониторинга будет использоваться утилита Netwatch. Настройка этой утилиты крайне проста, задается хост наблюдения и интервал через какое время необходимо выполнять проверку, при переходе наблюдаемого хоста из состояния Down в состояние Up выполняются скрипты с вкладки UP, при переходе из состояния Up в состояние Down выполняются скрипты с вкладки DOWN.




Для отправки уведомлений в Telegram ботом будет задействована утилита fetch. Как известно боту может быть отправлено сообщение через URL вида https://api.telegram.org/bot[API_KEY]/sendMessage?chat_id=[CHAT_ID]&text=[TEXT]. Подробнее как настроить бота в Telegram описано здесь.




  • [API_KEY] — токен для доступа к HTTP API
  • [CHAT_ID] — ID вашего с ботом чата
  • [TEXT] — отправляемое сообщение




Для проверки основного канала в Netwatch добавляем (Tools -> Netwatch -> +).




Вкладка Host:




  • Host: 77.88.8.8
  • Interval: 00:01:00
  • Timeout: 1000




Вкладка UP:




/ip route enable [find comment="MAIN_CHAN"]
/interface enable v6to4-tunnel
/ip dns cache flush
/interface disable vpn-ovpn
:delay 3s
/interface enable vpn-ovpn
:delay 5s
/tool fetch url="https://api.telegram.org/bot123456789:ABCDEFGHIJKLMNOPQRabcdefghijklmnopq/sendMessage?chat_id=12345678&text=RB4011_Main_channel_is_UP!"
/file remove "sendMessage?chat_id=12345678&text=RB4011_Main_channel_is_UP!";




Вкладка DOWN:




/ip route disable [find comment="MAIN_CHAN"]
/interface disable v6to4-tunnel
/ip dns cache flush
/interface disable vpn-ovpn
:delay 3s
/interface enable vpn-ovpn
:delay 5s
/tool fetch url="https://api.telegram.org/bot123456789:ABCDEFGHIJKLMNOPQRabcdefghijklmnopq/sendMessage?chat_id=12345678&text=RB4011_Main_channel_is_DOWN!"
/file remove "sendMessage?chat_id=12345678&text=RB4011_Main_channel_is_DOWN!";




Каждую минуту происходит проверка хоста с IP адресом 77.88.8.8, как только происходит смена состояния из доступен в недоступен, то начинается обработка скрипта, описанного на вкладке DOWN. Комментарии:




  1. В таблице маршрутизации отключается маршрут с комментарием MAIN_CHAN, это наш основной маршрут с distance=1. Т.к. основной маршрут отключен, то активным становится маршрут с distance=2, у нас он отмечен комментарием RESERV_CHAN, весь трафик пойдет в резервный канал.
  2. Отключается туннель 6to4 т.к. он завязан на внешний IP адрес основного канала.
  3. Сбрасывается DNS cache, т.к. помимо IPv4 трафика используется IPv6 канал и на какие-то ресурсы в кэше будут записи на IPv6 адреса.
  4. Отключается и через 3 секунды включается OpenVPN соединение, перезагрузка сделана на случай более быстрого переключения и избежания подвисаний.
  5. Отправка сообщения в Telegram
  6. После отправки в папке Files создается файл, удаляем его




Аналогичная ситуация происходит на вкладке UP при переходе хоста с IP адресом 77.88.8.8 из состояния Down в состояние Up.




Для проверки резервного канала в Netwatch добавляем (Tools -> Netwatch -> +).




Вкладка Host:




  • Host: 77.88.8.1
  • Interval: 00:01:00
  • Timeout: 1000




Вкладка UP:




/ip route enable [find comment="RESERV_CHAN"]
/ip dns cache flush
/interface disable vpn-ovpn
:delay 3s
/interface enable vpn-ovpn
:delay 5s
/tool fetch url="https://api.telegram.org/bot123456789:ABCDEFGHIJKLMNOPQRabcdefghijklmnopq/sendMessage?chat_id=12345678&text=RB4011_Reserv_channel_is_UP!"
/file remove "sendMessage?chat_id=12345678&text=RB4011_Reserv_channel_is_UP!";




Вкладка DOWN:




/ip route disable [find comment="RESERV_CHAN"]
/ip dns cache flush
/interface disable vpn-ovpn
:delay 3s
/interface enable vpn-ovpn
:delay 5s
/tool fetch url="https://api.telegram.org/botbot123456789:ABCDEFGHIJKLMNOPQRabcdefghijklmnopq/sendMessage?chat_id=12345678&text=RB4011_Reserv_channel_is_DOWN!"
/file remove "sendMessage?chat_id=12345678&text=RB4011_Reserv_channel_is_DOWN!";




Действия в случае неполадок с резервным каналом аналогичные, как и для основного, не затрагивается только 6to4 туннель.




Источник: https://stupidhouse.info/node/18/



2021-03-07T12:46:36
Network