Pull to refresh
3
0

Пользователь технологий

Send message

На какой диапазон эта антенна? Измеряем характеристики антенн с помощью OSA103 Mini

Reading time7 min
Views97K


— На какой диапазон эта антенна?
— Не знаю, проверь.
— КАААК?!?!

Как определить, что за антенна у вас в руках, если на ней нет маркировки? Как понять, какая антенна лучше или хуже? Эта проблема меня мучила давно.
В статье простым языком описывается методика измерения характеристик антенн, и способ определения частотного диапазона антенны.

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

TL;DR Мы будем измерять КСВ антенн на различных частотах с помощью прибора OSA 103 Mini и направленного ответвителя, строить график зависимости КСВ от частоты.
Читать дальше →

Fail2ban и nginx: блокируем нежелательный трафик к определенному URL

Reading time2 min
Views58K
Доброго времени суток!

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

Читать дальше →

Не купитесь на ERP

Reading time14 min
Views46K
image

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

Историческая справка

(если бы тогда я знал об этом — я бы не допустил столько ошибок в жизни)


Первые ERP системы были вовсе не для производственных нужд. Уже стоит насторожиться. ERP когда-то вышли из розничной торговли. Пока в мире не появились торговые сети и мега-молы, магазинчиками управляли сами хозяева или наемные управляющие. Они вкладывали в это свой опыт и душу. Информация о том, что есть, что надо докупить и когда, хранилась в их головах и тетрадях. С появлением больших универсальных магазинов и супермаркетов, управлять вручную становилось все труднее и труднее. Фактически рост предприятий торговли прекратился.

На помощь пришла кибернетика. Эта зарождающаяся индустрия стала мощным драйвером стремительного роста торговых сетей. Именно программное обеспечение стало следить за наличием товара и скоростью его продаж, прогнозировать его спрос и заблаговременно делать закупки без вмешательства человека. Да, закупки стали делаться автоматически. Когда остаток достигает определенного количества товара – система автоматически формирует заказ у заранее одобренного поставщика, по ранее согласованной цене. Если поставщиков по конкретному товару несколько и цены у них отличаются, то выбирается сначала объем у того, у кого цена меньше, потом чуть больше и т.д. и т.п. Человеку оставалось только находить и выбирать нужный товар, заключать хитрые договора с поставщиками, принимать товар и размещать его на полках.

Успех ERP-систем в ритейле породил желание двигаться дальше – в промышленность. Говорят, на западе это получилось. У нас иногда тоже получается. Только зачем и какой ценой?
Читать дальше →

Радиация: риски, безопасность, защита

Reading time19 min
Views45K

Слово «радиация» у большинства из сегодняшних читателей вызывает страх. Радиация ассоциируется со смертью. Невидимый, неслышимый, неощутимый убийца, медленно убивающий — может быть, и тебя, читатель? Нужно ли бояться? Ответ — в этой статье.
КДПВ — из книги «Физики шутят».
Читать дальше →

Как IPv6 помогает роутеры ломать

Reading time5 min
Views129K
image

Предисловие


Проснулся я сегодня с мыслью, что огромное количество инструкций по настройке NAT советуют использовать строку вида:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Многие понимают проблемы этой конструкции, и советуют добавлять:
iptables -A FORWARD -i ppp0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

Но, зачастую, забывают задать таблице FORWARD действие DROP по умолчанию, или добавить правило REJECT в конец таблицы.
На первый взгляд, вроде бы, все кажется нормальным. Однако, это далеко не так. Дело в том, что если не запретить маршрутизировать трафик из WAN-порта в WAN-порт, кто-нибудь из вашей WAN-сети (предположим, что провайдер садит весь подъезд в одну /24) может маршрутизировать трафик через вас, просто прописав ваш IP в качестве шлюза. Все современные SOHO роутеры это учитывают, а вот неопытный администратор, который делает роутер под обычным linux, может не знать или забыть об этом. В подсети моего провайдера таких роутеров не оказалось, и мой план по захвату мира провалился. Однако, статья совсем не об этом.

Магические двоеточия


Как вы, может быть, знаете, многие современные программы и сервисы биндятся на IP :: (два двоеточия), а не на 0.0.0.0, как было раньше. IPv6 адрес :: значит то же самое, что и IPv4 0.0.0.0, т.е. «слушаем все интерфейсы». Многие считают, что если программа слушает ::, то этот сокет может принимать только IPv6-соединения, однако это далеко не так.
В IPv6 есть так называемое отображение IPv4-адресов в IPv6 диапазон. Если программа слушает сокет ::, а к ней обращаются из IPv4-адреса 1.2.3.4, то программа получит соединение с адреса ::ffff:1.2.3.4. Этого можно избежать, сделав:
sysctl -w net.ipv6.bindv6only=1

Но это нужно далеко не всегда, т.к. обычно удобно, что программа слушает один сокет, а получать соединения может по двум протоколам сразу. Практически во всех дистрибутивах, IPv6-сокеты ведут себя именно так, т.е. bindv6only=0.
Читать дальше →

NetBIOS в руках хакера

Reading time6 min
Views33K
В данной статье пойдёт краткое повествование о том, что нам может рассказать такая привычная с виду вещь как NetBIOS. Какую он может предоставить информацию для потенциального злоумышленника/пентестера.
Читать дальше →

Создание отказоустойчивого IPSec VPN туннеля между Mikrotik RouterOS и Kerio Control

Reading time12 min
Views255K


Начиная с версии 8.1 Kerio Control для создания туннелей VPN можно использовать не только пропиетарный протокол Kerio VPN, но и вполне себе расово правильный IPSec. И конечно же мне сразу захотелось скрестить Mikrotik и Kerio Control.

Я попробовал разобраться

Уволен через автоматизацию

Reading time16 min
Views21K
Вспомним, что такое автоматизация. Возьмем, например, определение из Википедии.

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

Ключевую фразу я выделил жирным шрифтом. Проще говоря, автоматизация нужна для того, чтобы освободить человека от каких-то обязанностей. Что это такое – освобождение человека от обязанностей? Вы ведь слышали фразу «освобожден от исполнения обязанностей»? Это – увольнение.

Если вы занимаетесь автоматизацией, то скажите честно – много ли людей были освобождены от обязанностей благодаря вашей работе? Только здесь важны факты, а не домыслы.
Читать дальше →

Лаборатория хакера: Ч1. LibSSH auth bypass

Reading time4 min
Views12K
Я начинаю цикл статей, посвященных разбору задач сервиса pentesterlab. К сожалению, у меня нет Про-версии курса, поэтому я ограничен только списком свободных задач. Каждый кейс — система, содержащая уязвимость, которой необходимо воспользоваться для достижения определенной цели.

Читать дальше →

Профилирование и трейсинг с perf

Reading time1 min
Views31K
Учимся дебажить с perf — целых 18 страниц про основные подкоманды, фичи и устройство инструмента. Джулия рекомендует; “Я даже использовала его несколько раз для профилирования Ruby программ!”

Уровень сложности — для суперпродвинутого администратора.

Когда нужно отыскать причину сбоя, не имея доступа к исходным кодам. Все логи уже просмотрены, все debug и verbose-ключи включены, а причина проблем так и не обнаружена — используйте perf. Потребуется навык кодинга на языках типа Си.


Читать дальше →

Пол Грэм: Чему я научился у Hacker News

Reading time11 min
Views5.5K
Февраль 2009

Hacker News исполнилось два года на прошлой неделе. Изначально предполагалось, что это будет параллельный проект — приложение для оттачивания Arc и место обмена новостями между нынешними и будущими основателями Y Combinator. Он становился больше и требовал больше времени, чем я ожидал, но я не сожалею об этом, потому что я многому научился работая над этим проектом.

Рост


Когда мы запустили проект в феврале 2007 года, в будние дни трафик составлял около 1600 ежедневных уникальных посетителей. С тех пор он увеличился до 22000.

image

Этот темп роста немного выше, чем хотелось бы. Я бы хотел, чтобы сайт развивался, потому что если сайт не растет хотя бы медленно, то он, вероятно, уже мертв. Но я не хотел бы, чтобы он достиг роста Digg или Reddit — в основном потому что это ослабит характер сайта, но также потому что я не хочу тратить все свое время работая над масштабированием.

У меня уже достаточно проблем с этим. Помню, изначальной мотивацией для HN было испытание нового языка программирования и более того испытание того языка, который ориентирован на эксперименты с дизайном языка, а не его производительностью. Каждый раз, когда сайт становился медленным, я поддерживал себя, вспоминая знаменитую цитату Макилроя и Бентли

Ключ к эффективности в элегантности решений, а не в переборе всех возможных вариантов.

и искал проблемные места, которые я мог устранить минимумом кода. Я до сих пор в состоянии поддерживать сайт, в смысле сохранения прежней производительности, несмотря на 14-ти кратный рост. Не знаю, как буду справляться дальше, но вероятно, что-нибудь придумаю.
Читать дальше →

Реализация Single Sign On в Symfony2 приложении

Reading time7 min
Views30K

Что такое Single Sign On?


Single Sign On — это технология, с помощью которой пользователь, будучи аутентифицированным на удостоверяющем центре (далее Identity Provider, IdP), будет автоматически аутентифицирован на другом сервисе (далее Service Provider, SP или Consumer[1-N]) этой компании.

Механизм Single Sign On используют такие сайты, как ХабраХабр, Yandex, Google. Приемущества такого подхода к аутентификации пользователей очевидны:

  • Пользователь вводит пароль только 1 раз
  • Или вовсе не вводит пароль на IdP, если там был использован вход через социальную сеть или с использованием OpenID
  • Автоматически аутентифицируется на всех проектах компании
  • Данные пользователя могут плавать между сервисами от IdP до SP прозрачно для пользователя

Читать дальше →

Пробы и ошибки при выборе HTTP Reverse Proxy

Reading time6 min
Views32K
Всем привет!

Сегодня мы хотим рассказать о том, как команда сервиса бронирования отелей Ostrovok.ru решала проблему роста микросервиса, задачей которого является обмен информацией с нашими поставщиками. О своем опыте рассказывает undying, DevOps Team Lead в Ostrovok.ru.

Читать дальше →

I’m going deeper underground, или о чем стоит знать, оптимизируя работу сетевого приложения

Reading time5 min
Views7.2K
Приветствую, друзья!

В предыдущих двух статьях (раз, два) мы погружались в сложность выбора между технологиями и искали оптимальные настройки для нашего решения в Ostrovok.ru. Какую тему поднимем сегодня?

Каждый сервис должен работать на каком-то сервере, общаясь с железом посредством инструментов операционной системы. Этих инструментов великое множество, как и настроек для них. В большинстве случаев для их работы настроек по умолчанию будет более чем достаточно. В этой статье я хотел бы рассказать о тех случаях, когда стандартных настроек все-таки было недостаточно, и приходилось знакомиться с операционной системой чуть ближе – в нашем случае с Linux.


Читать дальше →

Обзор свободного ПО для Android

Reading time22 min
Views134K


Привет Хабр.

Не так давно у меня появилось желание написать целую серию статей о безопасности, приватности и анонимности в интернете. Я не хочу тратить время читателей, в очередной раз описывая весьма плачевную ситуацию со сбором персональных данных, все это и так уже было сделано до меня, поэтому давайте сразу перейдём к делу.

И так, можно ли пользоваться мобильным устройством без серьёзного ущерба для приватности?

Ответ — да, можно, но для этого необходимо избавиться от ПО и сервисов, бесконтрольно собирающих данные. Для этого понадобится желание что-то изменить и любое устройство на которое можно установить кастомную систему Android (iOS по понятным причинам не рассматривается, а из альтернатив только SailfishOS и GNU/Linux, но эти системы можно установить на очень ограниченное число моделей). Всех кто заинтересовался я приглашаю под кат.
Читать дальше →

Prometheus + Grafana + Node Exporter + Docker в Azure c уведомлениями в Telegram

Reading time5 min
Views31K

Для начала подготовим виртуальную машину, для этого напишем небольшой скрипт, который разворачивает и автоматизирует некоторые рутинные операции, скрипт использует Azure Cli:


project.sh
#!/bin/bash
echo "AZURE VM Create"
echo "Azure Account:"
echo "Azure name:"
read AZ_NAME
read -sp "Azure password: " AZ_PASS && echo && az login -u $AZ_NAME -p $AZ_PASS
echo "Name Group  VM"
read GROUP_NAME
az group create --name $GROUP_NAME --location eastus
echo "VM name"
read VM
echo "Admin user name"
read ADMIN
az vm create --resource-group $GROUP_NAME --name $VM --image UbuntuLTS --admin-username $ADMIN --generate-ssh-keys --custom-data cloud-init.txt
az vm open-port --resource-group $GROUP_NAME --name $VM --port 8080 --priority 1001
az vm open-port --resource-group $GROUP_NAME --name $VM --port 8081 --priority 1002
az vm open-port --resource-group $GROUP_NAME --name $VM --port 9090 --priority 1003
az vm open-port --resource-group $GROUP_NAME --name $VM --port 9093 --priority 1004
az vm open-port --resource-group $GROUP_NAME --name $VM --port 9100 --priority 1005
az vm open-port --resource-group $GROUP_NAME --name $VM --port 3000 --priority 1006
RESULT=$(az vm show --resource-group $GROUP_NAME --name $VM -d --query [publicIps] --o tsv)
echo $RESULT
echo "Whait 5 min"
sleep 300
ssh $ADMIN@$RESULT -y << EOF
sudo usermod -aG docker $ADMIN
EOF
sleep 10
echo "Connect to Azure..."

В скрипте мы используем файл cloud-init.txt который автоматически установит Docker и Docker-Compose на виртуальную машину.


cloud-init.txt
#cloud-config
package_upgrade: true
write_files:
  - path: /etc/systemd/system/docker.service.d/docker.conf
    content: |
      [Service]
        ExecStart=
        ExecStart=/usr/bin/dockerd
  - path: /etc/docker/daemon.json
    content: |
      {
        "hosts": ["fd://","tcp://127.0.0.1:2375"]
      }
runcmd:
- apt-get update && apt-get install mc -y
- curl -sSL https://get.docker.com/ | sh
- curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- chmod +x /usr/local/bin/docker-compose
Читать дальше →

Радиация: Будни радиохимической лаборатории

Reading time16 min
Views37K


В этой статье я вернусь к теме радиации, затронутой в своем посте о счетчике Гейгера.

… В конце восьмидесятых, начале девяностых годов люди часто ходили на рынок с дозиметром, выбирая с его помощью «чистые», как они думали, овощи и фрукты. Иногда и сейчас в тематических пабликах и форумах встречается вопрос: какой дозиметр купить, чтобы ходить на рынок за продуктами. И если в сообществе есть компетентные люди, они дадут правильный ответ: никакой. И объяснят, что дозиметром радиоактивность продуктов питания обнаруживается только при уровнях, многократно превышающих предельные, дозиметр не отличит безвредную активность калия-40 от эквивалентной по показаниям дозиметра, но убийственной при регулярном потреблении активности стронция-90, а альфа-активные и очень радиотоксичные плутоний с америцием и вовсе не увидит, а для оценки пригодности продукта к употреблению необходимо исследование в специальной лаборатории.
Читать дальше →

Пример Sphinx поиска на реальном проекте — магазин автозапчастей Tecdoc

Reading time9 min
Views98K
Вкратце: статья будет полезна тем программистам, кто уже заинтересовался релевантным поиском и прочитал статьи по стартовой установке сфинкс поиска, погонял на тестовых примерах и таких же синтетических задачах. Часто эти примеры не дают ответа на вопрос, а как же ощутить реальную пользу от поискового модуля Sphinx в сравнении с другими более простыми вариантами поиска. Примеры кода в статье — на php+smarty, Sphinx 2.0.1-beta, база данных — mysql, исходники и дамп структуры базы выложены отдельным архивом в подвале. В статье описан пример использования таких особенностей сфинкса, как:
  • Создание единого конфиг файла для windows development и linux production
  • SetMatchMode(SPH_MATCH_EXTENDED2) и почему SPH_MATCH_ANY и другие не подходят для реального поиска
  • SetSortMode(SPH_SORT_RELEVANCE), SetFieldWeights — сортировка по релевантности и установка весов для полей индекса
  • SetLimits(0,20) — ограничение вывода результатов
  • AddQuery, RunQueries — построение мультизапросов
  • SetFilter, ResetFilters — добавление фильтрации в мулльтизапросе для ограничения получаемых данных
  • Wordforms — использование синонимов и преодоление ограничений для нестандартных словоформ, как «C#»

Также хочется внести свой вклад в развитие проекта и откровенно недостаточной русской документации при том, что проект создан и поддерживается русскоязычным программистом. Поэтому решено: непрекращающийся поток блокер задач идет лесом, вместо него в качестве благодарности разработчикам сфинкса в общем и пользователю Андрей Аксёнов ака shodan я пишу эту статью.
Читать дальше →

Операционная система на Rust. Страничная память: продвинутый уровень

Reading time21 min
Views9K
В этой статье объясняется, как ядру операционной системы получить доступ к фреймам физической памяти. Изучим функцию для преобразования виртуальных адресов в физические. Также разберёмся, как создавать новые сопоставления в таблицах страниц.

Этот блог выложен на GitHub. Если у вас какие-то вопросы или проблемы, открывайте там соответствующий тикет. Все исходники для статьи здесь.

Введение


Из прошлой статьи мы узнали о принципах страничной организации памяти и о том, как работают четырёхуровневые страничные таблицы на x86_64. Мы также обнаружили, что загрузчик уже настроил иерархию таблиц страниц для нашего ядра, поэтому ядро работает на виртуальных адресах. Это повышает безопасность, но возникает проблема: как получить доступ к настоящим физическим адресам, которые хранятся в записях таблицы страниц или регистре CR3?
Читать дальше →

Лекции Технополиса. Проектирование высоконагруженных систем (осень 2017)

Reading time5 min
Views52K


Мы начинаем публиковать курсы лекций Технополиса — образовательного проекта команды Одноклассников в Санкт-Петербургском Политехническом университете Петра Великого. Создание высоконагруженных приложений — это не только проектирование и написание кода, но и огромное количество других аспектов на всём протяжении жизненного цикла продукта. Мы пройдём по всему процессу создания и использования высоконагруженной системы. Особое внимание будет уделено особенностям эксплуатации, сетям, балансировке нагрузки, иерархии памяти, повседневным инструментам. Также поговорим о мониторинге, аудите и многом другом. Лекции курса читает команда экспертов под руководством ведущего разработчика в Одноклассниках Вадима Цесько.

Список лекций:

  1. Введение (Вадим Цесько incubos)
  2. Типовые архитектуры (Александр Христофоров)
  3. Эксплуатация (Илья Щаников)
  4. Сетевой стек (Дмитрий Самсонов dmitrysamsonov)
  5. Балансировка (Андрей Домась)
  6. Процессоры и память (Алексей Горбов)
  7. Хранилища данных (Сергей Егоричев)
  8. JVM (Андрей Паньгин apangin)
  9. Мониторинг (Сергей Шарапов Sharapoff)
  10. Облака (Леонид Талалаев)

Information

Rating
Does not participate
Registered
Activity