Pull to refresh
55
0
Andrey Sorokin @shadowalone

Пользователь

Send message

Adminer — веб-интерфейс для баз данных размером в один .php файл

Reading time1 min
Views85K


В свете недавнего поста про сравнение PostgreSQL и MySQL, в комментариях возникла проблема выбора удобного интерфейса для работы с постгресом. Я сам столкнулся с такой проблемой, решив поискать альтернативы всем известному phpMyAdmin / php*Admin, который считается стандартом у веб-мастеров.
Читать дальше →

Модуль nginx для борьбы с DDoS

Reading time6 min
Views67K
Многие сталкивались с таким явлением как DDoS атака методом HTTP флуда. Нет, это не очередной туториал по настройке nginx, хочу представить свой модуль, работающий как быстрый фильтр между ботами и бэкэндом во время L7 DDoS атаки и позволяющий отсеивать мусорные запросы.
Читать дальше →

Сети для Самых Маленьких. Микровыпуск №5. FAQ по сетевым технологиям

Reading time12 min
Views109K
Пока весь мир с замиранием ждёт 11-го выпуска СДСМ, посвящённого MPLS BGP L3VPN, я решил сделать вольный перевод неплохой статьи Джереми Стреча с Packetlife.net.

Это подборка небольших FAQ для новичков.

#На каком уровне OSI работает протокол Ч?
#Какая разница между маршрутизатором и многоуровневым коммутатором?
#Какая разница между forwarding и control planes?
#Какая разница между MTU и MSS?
#Какая разница между интерфейсами VLAN и BVI?
#Как работает туннельный интерфейс?
#Что означают четыре типа адресов в NAT?
#Могу ли я использовать адрес сети и широковещательный адрес в NAT-пуле?
#Почему нам нужны IP-адреса? Разве нам не хватит MAC-адресации для всего?
#Позволяет ли QoS расширить пропускную способность?
Читать дальше →

Iproute2 policy-routing и балансировка трафика между аплинками — проблема сброса соединений

Reading time3 min
Views13K
Наткнулся на неприятный подводный камень. Имеем систему с несколькими аплинками, и policy-routing, реализующий балансировку соединений между аплинками с помощью:

ip route replace default scope global
nexthop via 11.22.33.1 dev eth0 weight 1
nexthop via 55.66.77.1 dev eth1 weight 1


(Примерная инструкция здесь)

Проблема заключается в следующем — соединения периодически падают, причём никакой системы нет. Может простоять несколько часов, может упасть через 5-10 минут. Всяким http и torrent'ам это не мешает. В первом случае сессии обычно достаточно короткие, во втором реконнект проходит незаметно и без последствий. Но если мы работаем с ssh?
Читать дальше →

Mikrotik. Построение VPN туннелей ipsec с динамическими ip клиентов

Reading time3 min
Views36K
Занимался переводом сети их VPN туннелей с оборудования D link DV 804 HV на Mikrotik. При переводе возникли проблемы решением которых поделюсь с Вами.
Читать дальше →

Интегрируем оплату через Paypal в web-приложение

Reading time21 min
Views75K
В данной статье рассмотрена интеграция разовых платежей, а также оплаты по подписке с помощью Paypal в веб-приложение. Примеры реализованы на PHP, но, в принципе, без особых проблем то же самое можно сделать с помощью других технологий. Данный метод выбран как компромисс между простотой и гибкостью. Это попытка написать руководство, которое поможет быстро разобраться в теме и интегрировать оплату через Paypal в свой проект.

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

Заметка по ansible. Server reboot

Reading time2 min
Views18K
image

Столкнулись с задачей: полностью пустой сервер, настраивать полностью через ansible, «так что бы даже обезьяна» справилась", — дословная цитата клиента.
Исходные данные: есть сервер, с ОС СentOS 7, внешним IP и паролем root.
Задача: установить на него все обновления, ПО по списку и ни разу к нему не подключиться консолью. Весь процесс описывать нет смысла, но есть два интересных момента о которых я и расскажу. А именно, как с помощью ansible настроить ansible и как перезагрузить сервер, а потом продолжить выполнять palybook.

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

mhddfs — Монтирование нескольких разделов в одну директорию

Reading time3 min
Views48K
Хочу рассказать о том, как смонтироват в одну директорию два раздела.
Честно говоря, никогда не задумывался о такой возможности, пока не попался клиент с подобным пожеланием. Поначалу мне показалось что это невозможно, но покопавшись в интернете нашел пару интересных статей. За основу в работе была взята статья с сайта hotbits.ru. Но в статье монтировали разделы одного и того же диска, мне же предстояло смонтировать разделы с разных дисков. Как оказалось, нет никакой разницы.
Читать дальше →

Mikrotik VRF+NAT — Управляем с одного хоста устройствами с одинаковыми IP-адресами

Reading time4 min
Views60K
Недавно знакомый попросил помощи с настройкой микротика. Просьба была не совсем простая. Идея в том, что нужно было одновременно управлять с одного хоста четырьмя устройствами с неуправляемым TCP/IP стеком. На всех этих устройствах были одинаковые настройки IP, причем просто IP-адрес и маска, ни шлюз, ни DNS не указаны. Странная, но, как оказалось, весьма реальная ситуация. Не будем вдаваться в подробности причин невозможности перенастройки адресации на этих устройствах, а просто примем этот факт за аксиому. Задача поставлена так, как есть, и ее нужно решить.
Читать дальше →

Отлаживаем правила RewriteRule, или немного об интимной жизни mod_rewrite

Reading time13 min
Views94K
У меня RewriteEngine всегда был довольно стрессовой темой. Только вот недавно я вдруг обнаружил, что все как-то улеглось и стало более или менее понятно. Поскольку я совершенно обычный человек, я уверен, что ситуация ошибки конфигурации веб-сервера «доставала» не одного лишь меня, и я спешу поделиться своим опытом.

Получилось нечто среднее между руководством по использованию модуля mod_rewrite и своеобразным справочником по конфигурированию веб-сервера с помощью файла .htaccess. Попутно хотелось бы заострить внимание на особо сложных или неочевидных моментах.

Предполагается, что читатель использует урл-рерайтинг в своей работе, знает, в общих чертах, что такое RewriteEngine и уже провел несколько часов за его настройкой. Эта статья не совсем для начинающих, но и не для супер-профи, конечно.

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

Мониторинг транков Asterisk с помощью низкоуровнего обнаружения Zabbix

Reading time4 min
Views37K

Предисловие


В прошлом году компания, в которой я работаю, стала активно переходить на IP-телефонию. Для этих целей был использован дистрибутив FreePBX. Опыта работы с телефонией практически не было, поэтому проблем было много. Всего у нас используется 2 сервера FreePBX, примерно по 30 транков на каждом. Некоторые транки ведут себя не очень хорошо и порой теряют регистрацию. Поэтому возникла необходимость мониторить состояние регистрации, чтобы узнавать о неработающей телефонии раньше пользователей.
Для мониторинга IT-инфраструктуры мы уже давно используем Zabbix. Заводить элементы данных на каждый транк (т.е. около 60) — задача нудная, утомительная и неинтересная. Кроме того, надо постоянно следить за списком транков в мониторинге и актуализировать его. Поэтому, решено было использовать одну из самых интересных особенностей этой системы мониторинга — низкоуровневое обнаружение. Итак, что было сделано.
Читать дальше →

Настройка репликации в Mysql 5.6

Reading time2 min
Views47K
После выхода mysql 5.6 с его GTID (global transaction identifier) репликация в mysql перестала быть кошмарным сном сисадмина и стала вполне рабочим инструментом. В инете есть некоторое количество информации по этому поводу, но вся она довольно разрозненная и не всегда доступна для понимания. По этому я решил сделать небольшую инструкцию-выжимку, больше для себя, но может и еще кому пригодится.

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

36 млн запросов в час, 10000+ постоянно работающих клиентов, на одном сервере, nginx+mysql

Reading time5 min
Views116K
Сложилась ситуация, что участвую в проекте, который работает с достаточно большой нагрузкой. Как уже написал — 36 млн запросов в час. Я много чего прочитал и перепробовал за последний месяц, настраивая сервер; хотелось бы просто сжато и компактно выдать тезисно то, что работает хорошо в такой конфигурации.

Первое, что я заметил — множество советов как все настроить под большую нагрузку. Читайте их внимательно, обычно в тексте найдете, что речь про «высокую нагрузку» в 15-20 тысяч клиентов в сутки. У нас клиентов примерно миллион, активных, ежедневных.

У нас нет денег и мы все делаем за свой счет, поэтому экономим. Итог — весь миллион клиентов обслуживается на одном сервере, вот на таком — EX-60 на hetzner.
Читать дальше →

Увеличение LVM диска в виртуальной машине на лету

Reading time3 min
Views51K
Продолжая тему, описанную здесь habrahabr.ru/post/252973, опять пишу про увеличение дисков виртуальных машин.
Конфигурация следующая:
Гипервизор сервер Supermicro с KVM и libvirt на Ubuntu.
Гости — Ubuntu с LVM2.
Задача:
Увеличить размер системного дисков без выключения/перезагрузки гостевой ОС.

В комментариях к предыдущей статье habrahabr.ru/post/252973/#comment_8330673 farcaller написал:
Системный тоже можно на лету отресайзить. Для этого в libvirt есть команда:
virsh qemu-monitor-command resized-virtual-machine --hmp «block_resize $DRIVENAME $NEWSIZE»

Для HA проектов это очень важный момент, необходимо непрерывное функционирование сервиса.
Я решил попробовать изменить размер диска при помощи virsh.
Ниже результаты этого успешного эксперимента.
Читать дальше →

Анализ SSL/TLS трафика в Wireshark

Reading time7 min
Views230K


Как скрыть от посторонних конфиденциальную информацию?
Самое простое – зашифровать.
В Интернет и Интранет-сетях шифрацией данных управляет протокол SSL/TLS.
Солдат спит, служба идет.
Однако иногда возникает необходимость выполнить обратное – расшифровать перехваченный трафик.
Это может потребоваться как для отладки работы приложений, так и для проверки подозрительной сетевой активности.
Или в целях изучения работы SSL/TLS (очевидные, вредоносные цели не обсуждаются).

Как и при каких условиях можно расшифровать дамп SSL/TLS трафика в Wireshark?
Попробуем разобраться.

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

Коммерческий VPN сервис в opensource

Reading time1 min
Views41K
Всем доброго времени суток!

Позвольте представиться.
Я CEO/CTO/CIO/итд VPN сервиса SmartVPN.biz.
Можно называть меня Виктор Иванов, так как таков был мой псевдоним в службе поддержки клиентов SmartVPN.biz.

Пару лет назад я решил создать свой первый стартап — VPN сервис.
Идея нагрянула после того как около 5 друзей попросили у меня VPN на моем личном сервачке.
Естественно, никакого анализа рынка, конкурентов и написания бизнес плана не было. Я просто сел и начал кодить.
Спустя какое-то время проектом стало можно пользоваться — и он увидел свет.
Читать дальше →

Фильтры захвата для сетевых анализаторов (tcpdump, Wireshark, Paketyzer)

Reading time18 min
Views210K

1. Фильтры захвата


Анализаторы трафика являются полезным и эффективным инструментом в жизни администратора сети, они позволяют «увидеть» то что на самом деле передается в сети, чем упрощают диагностику разнообразных проблем или же изучение принципов работы тех или иных протоколов и технологий.
Однако в сети зачастую передается достаточно много разнообразных блоков данных, и если заставить вывести на экран все, что проходит через сетевой интерфейс, выделить то, что действительно необходимо, бывает проблематично.
Для решения этой проблемы в анализаторах трафика реализованы фильтры, которые разделены на два типа: фильтры захвата и фильтры отображения. Сегодня пойдет речь о первом типе фильтров – о фильтрах захвата.
Фильтры захвата, это разновидность фильтров, позволяющая ограничить захват кадров только теми, которые необходимы для анализа, уменьшив, таким образом, нагрузку на вычислительные ресурсы компьютера, а также упростив процесс анализа трафика.
Читать дальше →

Wireshark — приручение акулы

Reading time10 min
Views1.1M


Wireshark — это достаточно известный инструмент для захвата и анализа сетевого трафика, фактически стандарт как для образования, так и для траблшутинга.
Wireshark работает с подавляющим большинством известных протоколов, имеет понятный и логичный графический интерфейс на основе GTK+ и мощнейшую систему фильтров.
Кроссплатформенный, работает в таких ОС как Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X, и, естественно, Windows. Распространяется под лицензией GNU GPL v2. Доступен бесплатно на сайте wireshark.org.
Установка в системе Windows тривиальна — next, next, next.
Самая свежая на момент написания статьи версия – 1.10.3, она и будет участвовать в обзоре.

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

Начинаем плаванье


Для начала захвата достаточно выбрать свой сетевой интерфейс и нажать Start.
Читать дальше →

MikroTik в роли тестера сети

Reading time13 min
Views45K


Приобрели MikroTik RouterBoard mAP 2n. Отличная модель. Поиграв с ним вдоволь, решили задействовать в качестве тестера малой провайдерской сети. Очень часто, чтобы проверить состояние сети, необходимо расчехлять ноутбук, что порой крайне неудобно в виду расположения оборудования в подвалах, чердаках. Заменить ноутбук полностью, конечно, невозможно, но стандартные тесты можно переложить на плечи нашего «маленького друга». Об этом и будет идти речь в моем посте.
Прошу под кат

Пулы потоков: ускоряем NGINX в 9 и более раз

Reading time15 min
Views90K
Как известно, для обработки соединений NGINX использует асинхронный событийный подход. Вместо того, чтобы выделять на каждый запрос отдельный поток или процесс (как это делают серверы с традиционной архитектурой), NGINX мультиплексирует обработку множества соединений и запросов в одном рабочем процессе. Для этого применяются сокеты в неблокирующем режиме и такие эффективные методы работы с событиями, как epoll и kqueue.

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

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

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

Но даже в текущей реализации NGINX не всегда возможно избежать блокировок. И для решения данной проблемы в NGINX версии 1.7.11 был представлен новый механизм «пулов потоков». Что это такое и как его применять разберем далее, а для начала познакомимся с нашим врагом в лицо.
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity