Как стать автором
Обновить
10
0

Networking

Отправить сообщение

Мониторим события PortSecurity коммутаторов Cisco в Zabbix

Время на прочтение8 мин
Количество просмотров14K

Здравствуй уважаемое хабросообщество!


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


В этой статье речь пойдет о мониторинге событий стандартного (для многих вендоров) механизма защиты от несанкционированного подключения устройств к сети, — механизма PortSecurity.


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


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

Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии13

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

Время на прочтение31 мин
Количество просмотров70K
Дисклеймер: исследование началось в 2013 году, так что если считаете некоторые методы глупыми и опасными — вы правы, так и было. Тем не менее, я многому научился в процессе.

Вступление
Всё началось за несколько месяцев до рождения моего первого ребёнка. Мы с женой всегда хотели купить крутой фотоаппарат Leica и вдруг поняли, что если не купим сейчас, то уже долго не сможем это сделать. Поэтому мы заказали камеру M240 и… бум, нас поставили в очередь на полгода. Вскоре мне надоело ждать, и я начал изучать их сайт. Моё внимание сразу привлёк раздел с файлами. Ну, вы можете догадаться, почему… Прошивки!

Я увидел незашифрованный и несжатый файл (m8-2_005.upd), который начинается с магии PWAD. Узнаёте? Да, всё правильно, это формат Doom Patch WAD. Кажется, ребята любят классику. Формат очень хорошо документирован, так что распарсить его оказалось совсем несложно.
Читать дальше →
Всего голосов 225: ↑222 и ↓3+219
Комментарии135

Книга «Как устроен Python. Гид для разработчиков, программистов и интересующихся»

Время на прочтение5 мин
Количество просмотров16K
image Привет Хаброжители! У нас недавно вышла новая книга про «Python». Предлагаем сразу ознакомится с ознакомительным материалом.

Отрывок. 7.4. Использование IDLE


Так как IDLE включает REPL, вы можете ввести приведенный код и проанализировать его прямо в REPL. Однако вы также можете написать код, запустить его и проанализировать из REPL. Чтобы опробовать эту возможность, откройте новый файл и включите в него следующий код:
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии7

Основы электробезопасности при проектировании электронных устройств

Время на прочтение12 мин
Количество просмотров69K
Привет, Хабр!

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


Тема это большая и сложная, но я постараюсь выделить основные моменты — не в последнюю очередь на основании ошибок, которые я видел во всевозможных реальных устройствах и проектах, в том числе публиковавшихся на Хабре. Я не буду долго и нудно перечислять ГОСТы, но перечислю совсем базовые вещи, которые необходимо понимать и соблюдать, чтобы не убить хотя бы себя (если вы планируете не убивать также и окружающих, то после завершения этой статьи не поленитесь пролистать и релевантные ГОСТы).

Итак, вы собрались делать устройство, которое как минимум одним своим концом включается в розетку.
Читать дальше →
Всего голосов 172: ↑167 и ↓5+162
Комментарии281

Как работает yield

Время на прочтение6 мин
Количество просмотров683K
На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.

Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?

Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist):
    if self._leftchild and distance - max_dist < self._median:
        yield self._leftchild
    if self._rightchild and distance + max_dist >= self._median:
        yield self._rightchild

Вызывается он так:
result, candidates = list(), [self]
while candidates:
    node = candidates.pop()
    distance = node._get_dist(obj)
    if distance <= max_dist and distance >= min_dist:
        result.extend(node._values)
        candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
        return result


Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?

** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/

Подробный и обстоятельный ответ
Всего голосов 141: ↑136 и ↓5+131
Комментарии41

Работаем в консоли быстро и эффективно

Время на прочтение9 мин
Количество просмотров124K

В сети можно встретить много советов по эффективной работе в консоли. В большинстве таких статей авторы рассказывают про банальности типа "выучите горячие клавиши" или "sudo !! запустит последнюю команду под sudo". Я же расскажу о том, что делать, когда вы уже выучили горячие клавиши и знаете про sudo !!.

Читать дальше →
Всего голосов 88: ↑85 и ↓3+82
Комментарии117

Установка, настройка системы и управления для камер

Время на прочтение7 мин
Количество просмотров62K
Итак, приступим, будем использовать:

  • Систему: Ubuntu Server 12.04;
  • Видеорегистратор: Zoneminder;
  • Камеры: аналоговые и айпишные dlink;
  • Плата видеозахвата: PCI bridge: Hint Corp HiNT HB4 PCI-PCI Bridge (PCI6150)
  • Основное требование: поднять сервер видеонаблюдения для производства

Айпишники, которые будут использоваться в нашем how-to:
192.168.110.151 – адрес нашего самого видеорегистратора;
192.168.107.103 – адрес айпишной камеры.
Читать дальше →
Всего голосов 20: ↑15 и ↓5+10
Комментарии5

Правильная коммуникация на примере волейбола

Время на прочтение3 мин
Количество просмотров14K
Хорошие навыки коммуникации нужны всем. Жизнь была бы намного проще и лучше, если бы все умели правильно общаться. Удалось бы избежать многих проблем и успеть сделать Великие Дела. Сегодня я расскажу про коммуникацию для дизайнеров, но подозреваю, что правила одинаковы для всех. Итак, вам пришло письмо или комментарий по работе…

image

Всё очень просто. Это похоже на волейбол. На чьей стороне мяч — тот проиграл. Вы получили письмо — мяч на вашей стороне, вы отправили ответ или макеты, или вопросы — мяч на стороне “клиента”. В любой момент может прозвучать “свисток”. На чьей стороне мяч — тот проиграл. Старайтесь не держать мяч на своей стороне, передавайте его “противнику” при первой возможности.

12 простых правил:

1. Вас просят что-то сделать. Условия задачи понятны. Если вы не можете выполнить задачу за 1 час и сразу прислать решение или макет, то вы пишете письмо: “Привет! Я получил запрос. Решение будет в среду. Вопросов нет.” В среду присылаете дизайн.
Читать дальше →
Всего голосов 45: ↑42 и ↓3+39
Комментарии28

Математика игры 2048

Время на прочтение22 мин
Количество просмотров34K

Часть 1. Расчёт минимального количества ходов для победы с помощью цепей Маркова


Screenshot of 2048

После недавнего обновления экран «You win!» игры 2048 начал показывать количество ходов, потребовавшихся для победы, и я задался вопросом: сколько же нужно ходов, чтобы выиграть?

В первой части статьи мы ответим на этот вопрос, смоделировав игру 2048 в виде цепи Маркова и проанализировав её, чтобы показать, что вне зависимости от мастерства игрока для победы в среднем нужно не менее 938,8 ходов. Это даёт нам неплохое мерило отсчёта — если вы можете выигрывать примерно за такое количество ходов, то неплохо играете.

Количество ходов, необходимых для победы, зависит от случайности, потому что игра добавляет тайлы 2 и 4 случайным образом. Анализ также покажет, что распределение минимального количества ходов до победы имеет стандартное отклонение в 8,3 хода, и что его общая форма хорошо аппроксимируется смесью биномиальных распределений.
Читать дальше →
Всего голосов 49: ↑48 и ↓1+47
Комментарии24

Создаем уязвимые виртуальные машины в два счета с SecGen

Время на прочтение7 мин
Количество просмотров14K


Сегодня я хочу обратить ваше внимание на интересный проект SecGen при помощи которого становится возможным иметь каждый день новый Metasploitable или другую виртуальную машину для изучения основ этичного хакинга.

Все происходит в автоматическом режиме, нужно лишь установить фреймворк. Начинаем!
Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии6

Тюнинг сетевого стека Linux для ленивых

Время на прочтение5 мин
Количество просмотров92K

Сетевой стек Linux по умолчанию замечательно работает на десктопах. На серверах с нагрузкой чуть выше средней уже приходится разбираться как всё нужно правильно настраивать. На моей текущей работе этим приходится заниматься едва ли не в промышленных масштабах, так что без автоматизации никуда – объяснять каждому коллеге что и как устроено долго, а заставлять людей читать ≈300 страниц английского текста, перемешанного с кодом на C… Можно и нужно, но результаты будут не через час и не через день. Поэтому я попробовал накидать набор утилит для тюнинга сетевого стека и руководство по их использованию, не уходящее в специфические детали определённых задач, которое при этом остаётся достаточно компактным для того, чтобы его можно было прочитать меньше чем за час и вынести из него хоть какую-то пользу.

Читать дальше →
Всего голосов 94: ↑94 и ↓0+94
Комментарии45

Исходный код Quake III

Время на прочтение13 мин
Количество просмотров42K
image

[Примечание переводчика: перевод первой части этой статьи уже есть на Хабре, но её автор почему-то не завершил работу.]

Рендерер Quake III


Рендерер Quake III стал эволюционным развитием рендерера Quake II с аппаратным ускорением: классическая часть построена на архитектуре «двоичного разбиения»/«потенциально видимых наборов», но добавлены два новых заметных ключевых аспекта:

  • Система шейдеров, построенная поверх фиксированного конвейера OpenGL 1.X. Это было большим достижением для 1999 года. Она обеспечивала большое пространство для инноваций в эру до повсеместно распространённых сегодня вершинных, геометрических и фрагментных шейдеров.
  • Поддержка многоядерной архитектуры: клиент-серверная модель OpenGL блокирует некоторые методы и система потоков частично решает эту проблему.
Читать дальше →
Всего голосов 99: ↑97 и ↓2+95
Комментарии13

Типичные распределения вероятности: шпаргалка data scientist-а

Время на прочтение11 мин
Количество просмотров129K

У data scientist-ов сотни распределений вероятности на любой вкус. С чего начать?


Data science, чем бы она там не была – та ещё штука. От какого-нибудь гуру на ваших сходках или хакатонах можно услышать:«Data scientist разбирается в статистике лучше, чем любой программист». Прикладные математики так мстят за то, что статистика уже не так на слуху, как в золотые 20е. У них даже по этому поводу есть своя несмешная диаграмма Венна. И вот, значит, внезапно вы, программист, оказываетесь совершенно не у дел в беседе о доверительных интервалах, вместо того, чтобы привычно ворчать на аналитиков, которые никогда не слышали о проекте Apache Bikeshed, чтобы распределённо форматировать комментарии. Для такой ситуации, чтобы быть в струе и снова стать душой компании – вам нужен экспресс-курс по статистике. Может, не достаточно глубокий, чтобы вы всё понимали, но вполне достаточный, чтобы так могло показаться на первый взгляд.
Читать дальше →
Всего голосов 86: ↑85 и ↓1+84
Комментарии28

Обзор материалов для 3D-печати ESUN

Время на прочтение5 мин
Количество просмотров8.9K
Технологии 3D печати не стоят на месте. Производители пластиков то же не стоят на месте – появляются новые виды пластика, улучшаются старые. Новичку бывает сложно разобраться в многообразии материалов. Для них мы решили написать небольшой обзор по пластикам фирмы ESUN, крупнейшего производителя пластика для 3D-принтеров в мире.

  • Основанная в 2002 году, и расположенная в особой экономической зоне Шенжень компания ESUN – это высокотехнологичное предприятие специализирующееся в исследовании, разработке и производстве разлагаемых полимерных материалов таких, как PLA, а также другие виды пластика. Компания ESUN владеет тремя R&D центрами, которые специализируются на синтезе материалов их модификации и применении.

  • Начиная с 2007 года компания ESUN начала разработку материалов для 3D печати. За это время компании удалось разработать такие материалы, как PLA, ABS, PVA (водорастворимый материал поддержки) и другие. Использую эксклюзивные формулы, и профессиональные производственные линии компания производит пластиковую нить абсолютной круглой формы, с соблюдением заданного диаметра нити, высокой прочностью, большой палитрой цветов и стабильной температурой плавления.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии2

Атаки на сетевое оборудование с Kali Linux

Время на прочтение4 мин
Количество просмотров68K
image

 
В данной статье мы рассмотрим актуальные атаки на сетевое оборудование и инструменты, доступные в популярном дистрибутиве Kali Linux для их проведения.

Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии10

Укрощаем USB/IP

Время на прочтение5 мин
Количество просмотров137K
Регулярно возникает задача подключения USB-устройства к удаленному ПК через локальную сеть. Под катом изложена история моих поисков в этом направлении, и путь к готовому решению на базе open-source проекта USB/IP с описанием заботливо установленных различными людьми на этом пути препятствий, а также способов их обхода.
Читать дальше →
Всего голосов 48: ↑46 и ↓2+44
Комментарии51

Arduino & Modbus

Время на прочтение6 мин
Количество просмотров210K
В предыдущей статье мы соединили открытую платформу домашней автоматизации OpenHAB с контроллером Arduino использовав очень простой, текстовый протокол. Но это решение поставит нас в тупик, если мы захотим подключить наш контроллер к другой системе, что же делать?

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

Что нам необходимо знать об этом стандарте?
Протокол Modbus использует последовательные линии связи (например, RS232, RS485), а протокол Modbus TCP рассчитан на передачу данных по сетям TCP/IP.
Протокол Modbus имеет два режима передачи RTU и ASCII, в режиме ASCII каждый байт передается как два ASCII символа его шестнадцатеричного представления.
В сети Modbus есть только один ведущий, который с заданным интервалом опрашивает несколько ведомых устройств, каждое из которых имеет свой уникальный адрес от 1 до 254, адрес 0 широковещательный и на него отвечают все устройства, так как ведущий в сети один у него нет своего адреса.
В спецификации Modbus определено два типа данных, один бит и 16 битное слово. Данные организованны в четыре таблицы с 16 битной адресацией ячеек, адресация в таблицах начинается с 0. Для доступа к данным из разных таблиц предназначены отдельные команды.
Discrete Inputs 1 бит только чтение
Coils 1 бит чтение и запись
Input Registers 16 бит только чтение
Holding Registers 16 бит чтение и запись

Как нам подключить Modbus устройство к OpenHAB?
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии49

Arduino & OpenHAB

Время на прочтение8 мин
Количество просмотров53K
В предыдущей статье мы познакомились с промышленным стандартом Modbus и встроили его поддержку в Arduino, осталось состыковать устройство с платформой OpenHAB.

В этот раз мы узнаем, как настроить плагин и интерфейс OpenHAB для работы с устройством, основы адресации и отладки протокола Modbus. В работе представлен эксперимент с исходным кодом плагина, а на страничке vk.com/myremoter можно обсудить открытый контроллер умного дома, который мы будем использовать в следующих экспериментах.

Но, давайте ещё раз посмотрим, какие преимущества даст нам применение стандарта Modbus?
Современный дом — сложное инженерное сооружение, где управление освещением не самая главная функция. Кроме датчиков в доме устанавливают системы кондиционирования и вентиляции, управления отоплением, дренажными насосами и скважинами. Такие задачи можно поручить специальному или промышленному контроллеру, в этом случае протокол Modbus поможет объединить все инженерные системы в единую сеть, а простой и недорогой контроллер, работающий на одной с ними шине, добавит дополнительный контроль и функционал, сэкономив немало средств. В пользу этого низкие требования к оборудованию, открытость стандарта, массовость его применения, хотя, быть может, основной секрет популярности Modbus его гибкость при стыковке программ и оборудования.

Ну что же, пора приступать к работе.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии4

RobotDyn наносит двойной удар: Mega + ESP8266

Время на прочтение14 мин
Количество просмотров81K
RobotDyn Mega + ESP8266
Что делает разработчик в редкие часы досуга? Правильно, просматривает прайсы железячных магазинов. Выдалась свободная минутка и я решил полистать странички популярных интернет-магазинов — скукота, ничего интересного, всё это мы уже видели… и тут неожиданно мой взгляд падает на очередную Mega. Ба! да это не простая Мега, а совмещённая со всеми любимым ESP8266, да ещё заботливо снабжённая переключателями для совместной работы двух контроллеров — проводного (при помощи Ethernet Shield) со множеством GPIO и Wi-Fi для беспроводной связи.

Неплохо! Подумал я и вспомнил про AMS — туда же можно установить два сервера — проводной и беспроводной и связать их в одну систему — ESP8266 получит 54 цифровых и 16 аналоговых пинов, а Mega получит беспроводное управление по Wi-Fi и все плюшки ESP8266. Давненько мне не попадалась такая интересная плата.

— Здравствуйте! У вас есть плата Mega + ESP8266?
— Есть, но у нас только одна осталась.
— Почему только одна?
— Остальные разобрали.
— Зарезервируйте её, пожалуйста, для меня.
Читать дальше →
Всего голосов 36: ↑33 и ↓3+30
Комментарии45

Проброс видеокарты в KVM из под ubuntu

Время на прочтение4 мин
Количество просмотров77K

Предистория


Года два назад я решил перейти полностью на линукс, но необходимость в венде не упала, поэтому всегда держал у себя 2 операционные системы. Около месяца назад попробовал поставить VirtualBox и на нее установить Windows, в общем то работать с 2мя операционными системами мне понравилось, но была одна проблема, я программирую исключительно компьютерную графику и мне нужна была поддержка OpenGL 3.3 и выше, к сожалению VirtualBox не предоставлял мне такой возможности. Погуглив наткнулся на такую штуку как Xen, долго пытался что-то сделать на ней, в итоге ничего не вышло, скорее всего из-за основной видеокарты — nVidia GeForce 580 GTX, гипервизор попросту не хотел запускать даже убунту, не говоря уже об виндовсе. Начал искать другие гипервизоры, и наткнулся на KVM, с ним пришлось повозиться, но в конце концов все заработало.

Конфигурация


Итак, нам понадобится:
  • Процессор с поддержкой виртуализации (в Intel — это VT-d, в AMD — AMD-Vi). Важно: чипсет тоже дожен поддерживать эту технологию
  • Материнская плата с блоком управления памятью ввода/вывода(IOMMU)
  • Две видеокарты, для гостевой ОС желательно использовать AMD видеокарту, т.к. с ней проблем не должно быть. Видеокарты NVidia не работают.

Моя конфигурация:
  • Процессор AMD Phenom II x4
  • Материнская плата ASUS M5A99X EVO R2.0
  • Видеокарта для Ubuntu: NVidia GeForce 580 GTX
  • Видеокарта для гостевой ОС: AMD Radeon HD 5800

Читать дальше →
Всего голосов 47: ↑40 и ↓7+33
Комментарии20

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность