Архив рубрики ‘Networks’

Притащили тут древний девайс — циско 6504E. При старте эта зверь-машина выпадала в rommon и не грузилась.
Если вам интересны подобные железяки — велкам.
(далее…)

Довелось тут немного поремонтировать телефон 📱, и после сброса настроек обнаружил такое неприятное поведение — раз в примерно минуту издавался звук уведомления. При этом он не соответствовал звуку из настроек и гасился только уменьшением громкости звука типа «мультимедиа».
(далее…)

Всем привет. Сегодня я немного поделюсь впечатлениями от мощных точек доступа WiFi отечественного производителя — компании Eltex.
У них много всякого железа, и первый раз я познакомился с их продукцией на примере Voip-шлюзов и свитчей доступа MES, оставшись ими более чем доволен.
Если вам интересно про их беспроводные железяки — лезем под кат.
(далее…)

Есть в линуксе такой очень тёплый и очень ламповый файервол — iptables.
Присутствует он там уже 20 с лишним лет, и чаще всего используется либо в настройках по умолчанию, либо для классической раздачи инета через шлюзовой сервер посредством NAT/MASQUERADE. Иногда про него вспоминают, если поднятый сервис после старта оказался не доступен из инета =)

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

IPSET.

Офигенная штука, когда надо работать с крупными списками адресов или список адресов должен быть использован более одного раза.
Пример — есть у нас список IP адресов (ркн, телеметрия майкрософт, копирасты, спамеры и прочие злыдни), с которыми соединяться не нужно даже случайно ни на вход, ни на выход. Список при этом может часто меняться. Размещать всю эту муру в основном конфиге файервола — сложно, неудобно и чревато поломкой сети в случае ошибки.
Что мы делаем ? Ставим пакет ipset, и пишем простейший скрипт типа такого:

#!/bin/sh

ipset -N banlist iphash
ipset -F banlist

# Spam bots
ipset -A banlist 92.127.233.224
ipset -A banlist 208.103.122.165
...
ipset -A banlist 95.101.95.129/25

А в начало конфига файервола пишем вот такое:
-A INPUT -m set --set banlist src -j DROP
-A OUTPUT -m set --set banlist dst -j DROP

Всё, любой входящий траффик с этих адресов и исходящий на них же будет дропаться с регистрацией в соответствующих счётчиках (iptables —list -vn). Важных замечаний ровно два. Первое — ипсеты использует такая лютая надстройка, как firewalld. Мне не очень нравится его развесистая лапша из таблиц, пытающаяся описать все распространённые случаи. Надо внимательно смотреть, что ипсеты правильно применились. Зато он полностью сам рулит ипсетами, правилами, последовательностью запуска и прочим. Но конфиг на выходе — в три экрана. Впрочем, ничто не мешает снести надстройку и написать свой конфиг файервола со скриптами, сетами и логгерами.
Второе — сеты должны быть созданы ДО запуска файервола. Как именно вы это сделаете — через юниты systemd, скриптами из rc.local или ещё как — не суть. Главное — конфиг с -m set сработает только тогда, когда используемый ipset будет создан (вполне может быть и пустым).

Очень полезная особенность — правка ipset-ов не рестартит файервол, не сбрасывает его счётчики, не трогает никакие другие правила, к ipset-у не относящиеся. В простых конфигах ipset может показаться лишней сущностью. Но для систем типа fail2ban или случая развесистых списков адресов для правил — вещь незаменимая.

-m owner

Ещё одна редко используемая, но тоже в ряде случаев полезная опция.
Идея в том, что ядро системы знает, какой исходящий траффик процессом какого пользователя порожден, и может на основании этого применить специфичную обработку траффика.
Вспомнил я про это, когда один из моих знакомых спросил, можно ли запустить некое виндовс-приложение в WINE так, чтобы он не могло вылезти в сеть.

В этом случае самое очевидное, и при этом весьма надёжное — отдельная виртуальная машина. Но это а) куда менее удобно б) требует ещё один инстанс ОС.
Однако есть и готовое решение, изумительно простое в своей изящности. Оно не столь надёжно, как изолированная ВМ без сетевой карты, но поставленную задачу тоже решает.
Идея в том, что iptables для исходящего траффика может различать траффик не только по пользователю, но и по его группе и даже по SELinux-контексту. Возня с отдельными пользователями под каждую софтину — неудобна и проблемна из-за прав доступа и вопросов доступа к X-серверу, SELinux сам по себе та ещё черная магия, а вот доступ на основе группы — это то, что доктор прописал.

Базовый ман для убунты на английскои тут: https://askubuntu.com/questions/249826/how-to-disable-internet-connection-for-a-single-process/393013#393013

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

groupadd no-internet

Дальше делаем нашего пользователя членом этой группы:
usermod -G no-internet UserVasya
ВАЖНО !! Опция -G — заглавной буквой ! То есть мы добавляем пользователя UserVasya в группу no-internet, но ОСНОВНУЮ группу пользователя не меняем ! Если перепутать — пользователь останется с отломанным инетом.

В файлах это будет выглядеть вот так:

# cat /etc/group | grep UserVasya
UserVasya:x:1000:
no-internet:x:1011:UserVasya

# cat /etc/passwd | grep UserVasya
UserVasya:x:1000:1000:UserVasya:/home/UserVasya:/bin/bash

Тут у нас есть пользователь UserVasya c UID = 1000, его основная группа — тоже UserVasya, с GID = 1000. Но он также входит в группу no-internet c GID = 1011. Именно это членство позволит пользователю менять группу без ухищрений с судо и запросов паролей.

Теперь напишем сетевое правило для этой группы где-нибудь в начале фильтров для OUTPUT:

-A OUTPUT -m owner --gid-owner no-internet -j DROP

Тут мы говорим файерволу, что траффик, порожденный процессами c группой no-internet, надо тихо дропнуть.

А дальше мы просто воспользуемся утилитой sg (substitute group).

Примеры волшебных команд:

sg no-internet quake2
sg no-internet konsole
sg no-internet ~/.wine_radmin/radmin.sh
env WINEPREFIX=/home/user/.wine_ut2004 sg no-internet 'wine "C:\UT2004\System\UT2004.exe"'

При их выполнении приложения запустятся, но попытка зайти на игровые сервера, соединиться с серверами radmin или пропинговать что-то в запущенной таким способом консоли — завершится неудачей.

Однако это не является 100% способом !
Например, запущенный таким образом firefox группу не меняет, и остается с сетевым доступом !

Так что реально критичным сервисам — своя ВМ, со своим файерволом.

В следующий раз попрактикуемся в ч0рной магии.

в сети штормило …

Posted: 2019-02-13 in IT, Networks
Метки:,

Иногда некоторые сервисы, использующие мультикаст, могут порождать массовую генерацию мультикаст-траффика.

мультикастовый шторм 2gbps

Вот эти два пика — случившийся в одном из сегментов сети мультикаст-шторм мощностью примерно в 1,5 — 2 гбит/сек, предположительно порожденный сглючившими процессами corosync. От такой херни весь сегмент сети начинает очень сурово колбасить, потери пакетов достигают 80%, любое сетевое взаимодействие становится крайне медленным и нестабильным, всё становится очень нехорошо.
Чтобы такой херни не происходило, необходимо включать такую вещь, как Storm Control.

На джунипере оно для мультикаста по умолчанию _выключено_.
Конфигурим:

Amin@EX3300> show configuration ethernet-switching-options storm-control
interface xe-0/1/0.0 {
bandwidth 65536;
multicast;
}
interface all {
bandwidth 16384;
multicast;
}

Можно задать максимально допустимое количество принимаемого в порт широковещательного траффика как в процентах от толщины канала (level), так и в абсолютных значениях (bandwidth), в килобитах/сек. Задаваемые значения зависят от используемых приложений, в штатном режиме в логах не должно быть ругани на срабатывание storm control.

Пара подводных камней:
1). Есть ELS и не-ELS версии. Для els версий настройка немного иная (forwarding-options storm-control-profiles):
https://www.juniper.net/documentation/en_US/junos/topics/example/rate-limiting-storm-control-configuring-els.html

2). Для broadcast и unknown-unicast траффика ограничения storm control могут применяться по умолчанию, но им может быть разрешено съедать до 80% полосы.

Такая простая настройка дополнительно убережёт вашу сеть от опасно сглючивших девайсов.

1Gbps WAN UP !!

Posted: 2018-12-08 in IT, Networks
Метки:

Апгрейд может затрагивать не только железо и софт, но и каналы связи. Мой домашний инет был подключен более 10 лет назад, и протянут был 4-х жильным кабелем. Но прогресс не стоит на месте, буквально сегодня кабель заменили и я узрел новые горизонты радости :

(далее…)

Надо быстро слить крупный дамп неприватных данных.
В текущем каталоге запускаем такое:

python -m SimpleHTTPServer

И на 8000-м порту видим веб-сервер с индексом каталога. По завершении стопаем этот «фемтосервер :D» по Ctrl-C.
Это изумительно и прекрасно. Само собой, ценные базы и чувствительные данные так перекидывать не надо, для ценных данных есть SSH.

Всем привет !
Я очень давно хотел поразбираться с двойным тегированием на домашнем роутере Juniper MX-серий, и вот этот момент настал. В отличие от EX, где настройки QinQ относительно немногочисленны, МХ-серия обладает просто огромным количеством настроек свитчинга, а поддержка виртуализованных инстансов и целой пачки технологий позволяет городить очень сложные конфигурации.
Задача этой заметки — разобрать средствами самого МХ-80 дважды тегированный траффик, пришедший в общем аплинке вместе с другими одиночно тегированными вланами и нетегированным траффиком, и после снятия верхнего тега сбриджить эти вланы с уже существующими вланами на МХ. Не забыть про native само собой. Если интересно — просим под кат.
(далее…)

Всем привет. Сегодня мы попробуем прикрутить оплату криптовалютой к какому-нибудь сервису, а точнее — обозначить основные пути, как это можно сделать.
(далее…)

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

К сожалению, из-за действий всяких упоротых политиков аббревиатура DPI стала часто ассоциироваться с сетевой цензурой, а вовсе не с умной приоретизацией траффика и детектом опасной сетевой активности.

Если вам интересно — вэлкам, постараюсь рассказать о том, как появились такие системы, какие бывают и что вообще там интересного.
(далее…)

Если у вас так или иначе реализован мониторинг, то в какой-то момент возникнет разделение событий и сведений мониторинга по степени важности. И почти наверняка вам потребуется отобразить данные из одной системы в другой системе. Суть данной статьи — как вытащить интересующие графики нагрузки, созданные системой Grafana, во внешнюю самописную систему максимально простым способом, например, для отображения на публичном сайте или в любой другой системе.
(далее…)

В прошлой статье про PXE я описал массу способов сетевой загрузки самых разнообразных осей с USB-флешки домашнего роутера.
С тех пор вышел новый кноппикс — 7.7.1, и помимо обновления (с выхода версии 7.6 прошёл год), мне хотелось иметь возможность грузить полноценное рабочее место с x64-ядром, поскольку объёмы памяти и аппетиты приложений только растут.
Что из этого вышло — читаем ниже.
(далее…)

Столкнулся тут с такой странной фигней — не поднялись линки по оптике. Оказалось, что из целого мешка патчкордов три оказались битые. Хотя на этикетке и были отмечены величины затухания, похоже, их то ли как-то странно померяли, то ли что-то треснуло/лопнуло/отслоилось в процессе транспортировки.

На один конец патчкорда вешаем специальную светилку:
http://laserbeam.ru/power/fiber/ft650

А второй конец направляем на любую ровную поверхность.

В случае исправного патчкорда на выходном разъёме будет слабо светится только точка выходного среза, вся световая мощность вылетит наружу:

cable_ok

Если направить его на стенку, что даже в полуметре от коннектора на стене будет наблюдаться яркое красное пятно.

Если у разъёма есть даже небольшой дефект, то свет из волокна конечно выйдет, пятно будет на освещенной поверхности, но ощутимая часть света рассеится в белой керамической вставке коннектора:

cable_half-ok-1
Линк через такой провод может быть нестабилен или вообще не подняться, если оптического бюджета не хватит на длинную линию.

А в совсем запущенном случае свет из среза вообще не может выйти, целиком рассеиваясь в белой вставке коннектора:
cable_bad
В этом случае светового пятна на выходе нет даже в двух сантиметра от коннектора, линка через такую фигню не получить.

Если вы читали мой блог, то возможно, видели статейку про бэкапы и их копирование по SSH. Там был пример, как с помощью одной строчки вытащить конфиг джунипера себе на комп.

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

Juniper MX-960

может быть несколько (чаще всего два) так называемых routing-engine (RE, вертикальные модули в середине железки), представляющих из себя полностью независимые управляющие компьютеры со своими процами / памятью / дисками. В каждый момент времени работает только один такой комп, второй находится в горячем резерве и готов взять на себя все функции при отказе первого. Особенность в том, что заходя на такой джун по SSH, вы всегда будете попадать на Master-RE, и команда show config будет показывать именно текущий рабочий конфиг с мастера.

И хотя в штатных случаях конфиги и версии прошивок должны быть одинаковы (первое задается через set system commit synchronize в конфиге или ручками при commit synchronize, второе вопрос организационный), могут возникнуть ситуации, когда конфиги не совпадают. В этом случае лучше в бэкап записать конфиги с обоих устройств. Однако просто так по SSH зайти на Backup-RE нельзя — он не управляет никакими интерфейсами, и на нём даже не запущен роутинг. Также мы не можем заранее 100% знать, какой из RE сейчас мастер — это может менять в процессе использования / ребутов / обновлений прошивок и прочего.

Решение есть в самой джунос и оно прекрасно:

#!/bin/sh

# My backup script on backup-storage server; login over read-only class user to junipers

# Бэкапим текущий мастер-RE как обычно:
ssh {IP} "show configuration | display xml" > mx960-Master-RE.xml 2>/dev/null

# Бэкапим текущий резервный-RE более хитрой командой:
ssh {IP} "request routing-engine execute routing-engine other command \"cli show configuration | display xml\"" > mx960-Backup-RE.conf 2>/dev/null

# Бэкапим конфиг именно первого RE, независимо от его роли
ssh {IP} "request routing-engine execute routing-engine re0 command \"cli show configuration | display xml\"" > mx960-RE0.conf 2>/dev/null

То есть мы заходим таки сперва на текущий мастер, и говорим ему выполнить заданную команду (важный момент — под командой тут понимается команда FreeBSD-шелла, а не команда JunOS-консоли cli !), в данном случае — вызвать консоль JunOS, а ей уже передать команду отображения конфига на соседнем ядре. Вывод ловит уже наш SSH. Действо простое, понятное и безопасное. Не забываем заэкранировать кавычки для JunOS-команды.

Обнаружил тут, что после обновления битрикса появилась эта рекламная кнопка. Я немного охренел от того, что при апдейте КОММЕРЧЕСКОЙ цмс с очередным обновлением что-то вообще поменялось в макете сайта, и сперва подумал, а не хаканули проект случаем. Как оказалось нет, ничего не хакнули, просто один-цэ решила немного порулить чужими сайтами в выгодном для себя ключе за ваши деньги. Ведь не все же могут влезть в настройки.

(далее…)

Секурим Апач.

Posted: 2016-07-12 in IT, Networks, Security
Метки:

Цель заметки — свести воедино куски конфигов, которые необходимо поправить, чтобы получить топовые оценки на SSL Labs и High-Tect Bridge.

Важная заметка: всё это имеет смысл, только если стоят все секурити-фиксы, апач и пых топовые, лишние модули отключены, и прочее. Если у вас апач 2.2 с пыхом 5.3 на древней центоси — то вы ССЗБ или жертва грустных обстоятельств (говно-битрикс и прочее). Погнали.
(далее…)

Сегодня я ещё немного расскажу об анонимной сети TOR, а точнее, о некоторых аспектах настройки Hidden Service-ов.
(далее…)

Всем привет. Сегодня я расскажу об особенностях настройки Q-in-Q на джунипере, а конкретно — на Juniper EX-4200. Ну и про замеченные багофичи тоже не забуду упомянуть.
(далее…)

Перепостить это древнейший боянЪ меня сподвигла длительная изматывающая борьба с глюками мультикастового IPTV.
(далее…)

D-Link DVG-5402SP nano-howto

Posted: 2016-02-25 in Hardware, IT, Networks
Метки:,

Заметки для себя про этот гибрид говно-роутера и воип-шлюза начального уровня.

* Для сброса настроек ресет надо нажать при ВКЛЮЧЕННОМ девайсе и держать 5-8 секунд подряд, НЕ СБРАСЫВАЯ ПИТАНИЕ, пока не начнёт часто мигать индикатор [Prov./Alm.]
* default-IP :: WAN: DHCP, LAN: 192.168.8.254/24
* Фирмварь обновлять обязательно.
* Не забыть включить приоритет кодеков и прописать SIP-прокси строки, включение реги и Display Name (в статусе светится как Extension Number!!) в обе линии.

+ дешёвый
+ 4 порта LAN, для операторского места (инет на 1-3 компа + два теплых ламповых телефона) вполне ОК.
+ быстро грузится (секунд 10 с воип-регистрациями)
+ резервный FXO для переключения на аналоговую телефонию при отказе VoIP
+ даже IPTV/Multicast немного умеет
+ QoS для VoIP

— нет WiFi, совсем
— доступ из WAN по HTTP закрывается указанием порта 0 в настройках
— настройки файервола полное гуано
— Full-HD поток из IPTV ставит девайс раком, 40-60% потерь пингов через forward/nat, не-HD каналы ОК
— iperf по TCP показывает всего 9-12 Мбит, по UDP 70-82 Mbit
— Пароли длиннее 10 символов не умеет. Поставить можно, но потом будет на зайти веб-мордой
— телнет светит всему миру
— про SSH, L7-DPI и прочие страшные слова сей девайс даже не слышал.

F*cking firmware

Posted: 2016-01-13 in IT, Networks

После работ электриков-диверсантов и последовавшего скачка электропитания на одном свитче сдохла прошивка. Симптомы — на этапе загрузки прошивки свитч уходит в циклический ребут.

Втыкаем COM-порт (9600 8N1), включаем питание и сразу же жмём [Shift]+[3].
Через консольный интерфейс начинаем залив фирмвари по протоколу zmodem:

DGS3627G_Upd_Fw_ZModem

Я забыл поставить скорость повыше, а прерывать такой процесс стремновато =)
На 9600 бод заливка 5-метровой прошивки — это часика полтора, так что без чая решительно никак:

IMG_20160113_150349

Кстати, не избежал слёта прошивки и более крутой свитч. На одном из Juniper EX-4200 запланированный на ночь ребут закончился крешнутой партицией на флеше и последующей перешивкой фирмвари с восстановлением конфига из бэкапа. В отличие от д-линка, где фирмвари лежат прямо на сайте, у джуна и прочего труъ-ынтерпрайза (ExtremeNetworks, вам за это тоже надо вогнать кол в задницу) нельзя просто так скачать фирмварь с сайта.

Так что локальные копии прошивок лучше тоже держать у себя.

Отсюда же следует необходимость бэкапа конфигов оборудования даже с самых, казалось бы, надёжных и стабильных железок.

Всем привет.
В прошлой заметке я немного описал базовые настройки своего нового домашнего роутера, рассказал, чем он хорош, чем полезен домашний DPI и что мне вообще надо от такой девайсины. Как выяснилось, я использую значительную часть возможностей прошивки, значительная часть возможностей в планах на использование в будущем (прежде всего возможности VPN и модуля DPI), но потребовались и расширенные возможности, которые ставятся и настраиваются вне веб-морды.
Если вам интересно — ssh admin@192.168.1.1 -p 22 и поехали.
(далее…)

Всем привет.
Решил написать немного про домашние роутеры и те особенности, с которыми я столкнулся, выбирая себе домой железку такого класса. Статья будет длинная, и возможно, даже в нескольких частях. А может и в одну впишусь.
Если интересно — читаем дальше. ifup eth0 && service bwdpi start, поехали…
(далее…)

Lineage 2 Client DDoS

Posted: 2015-11-24 in IT, Networks
Метки:,

Сегодня было весело — к нам прилетело ~4 Гбит DDoS. Стали смотреть — ддосили одного из игроков Lineage 2. Ситуация такая: клиент гамает на сервере Lineage2. Его недоброжелатели как-то узнали его IP (то ли у админов игрового сервера, то ли вирусами, то ли ещё как) и заказали на него лёгкий DDoS. В мониторинге это выглядит как-то так:
Lineage2_Client_DDoS
Итог: у клиента интерфейс ложится нахуй, свитч доступа начинает скрипеть и дико тупить, теряя пакеты пачками, на одном из интерфейсов в агрегации — резкий рост дропнутых пакетов.

Погуглил — да, даже на обычных игроков в таких играх могут заказать DDoS.
И гарантированной защиты от этого пока не предвидится.

Мысли о телефонии.

Posted: 2015-10-21 in IT, Networks
Метки:

Сегодня я наконец-то дошёл до рассуждений о телефонии. Хотя эта тема мне не особо близка, я всё-таки немного тут растекусь мыслью по древу. Под катом очень много букв, берегите моск.
(далее…)