Pull to refresh
1
0
Denis Verbin @rez0n

sysadmin

Send message

Решето Сундарама

Reading time4 min
Views12K
Решето Сундарама в сети представлено большим количеством источников краткой справочной информации. Тем не менее, я решил изложить то, что хотел бы прочитать сам в начале изучения теоретико-числовых алгоритмов.

Решето Сундарама входит в тройку известнейших методов генерации простых чисел. Сейчас к нему принято относиться как к некоторой экзотике по причине плохой вычислительной сложности: O(N(logN)). Однако асимптотика – асимптотикой, а на практике в 32-битном диапазоне просеивания Аткин, например, перегоняет Сундарама только при тщательной оптимизации.

Реализации решета Аткина, имеющие хождение в интернете, не превосходят решето Сундарама ни по временным характеристикам, ни по эффективности использования памяти. Так что метод Сундарама вполне можно использовать как вспомогательный инструмент при экспериментах с более продвинутыми алгоритмами.
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments7

Скрипт настройки Windows 10

Reading time2 min
Views171K

image
Давно хотел поделиться своим скриптом по автоматизации настройки Windows 10 (на данный момент актуальная версия 19041), да все руки не доходили. Возможно, он будет кому-то полезен целиком или только его части. Конечно, будет проблематично описать все пункты настройки, но постараюсь выделить самое важное.

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

Читать дальше →
Total votes 88: ↑77 and ↓11+66
Comments297

Изучаем данные, собранные Xiaomi Mi Band за год

Reading time3 min
Views84K

Введение


Люди носят фитнес-браслеты по разным причинам, я могу предположить некоторые из них:


  1. Для того, чтобы поддерживать себя в форме и выполнять цели по активности;
  2. Потому что это некая модная штучка;
  3. Чтобы ставить над собой эксперименты или узнать себя лучше.

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


Методы для извлечения этих данных работают для Mi Band 1, 1S и, возможно, 2 (приложение для 2, кажется, такое же).

Читать дальше →
Total votes 53: ↑49 and ↓4+45
Comments74

Двухфакторная аутентификация на сайте с использованием USB-токена. Теперь и для Linux

Reading time6 min
Views9.8K

В одной из наших предыдущих статей мы рассказывали про важность двухфакторной аутентификации на корпоративных порталах компаний. В прошлый раз мы продемонстрировали, как настроить безопасную аутентификацию в web-сервере IIS.

В комментариях нас просили написать инструкцию для самых распространенных web-серверов под Linux — nginx и Apache.

Вы просили — мы написали.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments27

Настройка кластера Nomad с помощью Consul и интеграция с Gitlab

Reading time10 min
Views33K

Введение



В последнее время стремительно растет популярность Kubernetes — все больше и больше проектов внедряют его у себя. Я же хотел коснуться такого оркестратора, как Nomad: он отлично подойдет проектам, где уже используются другие решения от компании HashiCorp, например, Vault и Consul, а сами проекты не являются сложными в плане инфраструктуры. В данном материале будет инструкция по установке Nomad, объединения двух нод в кластер, а также интеграции Nomad с Gitlab.



Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments12

Вебинар — Двухфакторная аутентификация и ЭП в инфраструктуре VMware Horizon View с использованием продуктов Аладдин Р.Д

Reading time1 min
Views1.6K
Аладдин Р.Д и VMware приглашают на технический вебинар «Аутентификация и электронная подпись в инфраструктуре VMware Horizon View с использованием продуктов Аладдин Р.Д.». Вебинар состоится 25 апреля, в 11:00 по московскому времени.



В рамках вебинара Алексей Рыбалко, эксперт компании VMware по виртуализации рабочих мест пользователей проведёт обзор платформы Horizon, расскажет о новинках версии 7.8 и особенностях работы инфраструктуры VDI. В частности, будут разобраны
Total votes 8: ↑7 and ↓1+6
Comments0

Мониторинг мёртв? — Да здравствует мониторинг

Reading time15 min
Views35K


Наша компания с 2008 года занимается преимущественно управлением инфраструктурами и круглосуточной технической поддержкой веб-проектов: у нас более 400 клиентов, это порядка 15% электронной коммерции России. Соответственно, на поддержке очень разнообразная архитектура. Если что-то падает, мы обязаны в течение 15 минут это починить. Но чтобы понять, что авария произошла, нужно мониторить проект и реагировать на инциденты. А как это делать?

Я считаю, что в организации правильной системы мониторинга происходит беда. Если бы беды не было, то мой спич состоял из одного тезиса: «Установите, пожалуйста, Prometheus + Grafana и плагины 1, 2, 3». К сожалению, теперь так не работает. И главная проблема заключается в том, что все продолжают верить во что-то такое, что существовало в 2008 году, с точки зрения программных компонентов.

В отношении организации системы мониторинга я рискну сказать, что… проектов с грамотным мониторингом не существует. И ситуация настолько плохая, если что-то упадёт, есть риск, что это останется незамеченным — все ведь уверены, что «всё мониторится».
Возможно, всё мониторится. Но как?

Все мы сталкивались с историей наподобие следующей: работает некий девопс, некий админ, к ним приходит команда разработчиков и говорит — «мы зарелизились, теперь замониторь». Что замониторь? Как это работает?

Ок. Мониторим по старинке. А оно уже изменяется, и выясняется, что ты мониторил сервис А, который стал сервисом B, который взаимодействует с сервисом C. Но команда разработчиков тебе говорит: «Поставь софт, он же должен все замониторить!»

Так что изменилось? — Всё изменилось!
Читать дальше →
Total votes 62: ↑56 and ↓6+50
Comments24

Делаем современное веб-приложение с нуля

Reading time31 min
Views153K
Итак, вы решили сделать новый проект. И проект этот — веб-приложение. Сколько времени уйдёт на создание базового прототипа? Насколько это сложно? Что должен уже со старта уметь современный веб-сайт?

В этой статье мы попробуем набросать boilerplate простейшего веб-приложения со следующей архитектурой:


Что мы покроем:

  • настройка dev-окружения в docker-compose.
  • создание бэкенда на Flask.
  • создание фронтенда на Express.
  • сборка JS с помощью Webpack.
  • React, Redux и server side rendering.
  • очереди задач с RQ.
Читать дальше →
Total votes 64: ↑56 and ↓8+48
Comments125

Интерфейс статистики Asterisk. Новая версия, новый функционал

Reading time4 min
Views10K
Как я и предполагал, завершая предыдущую публикацию, мое путешествие только начиналось и впереди еще масса свершений.

На протяжении этой, почти двухмесячной, одиссеи произошло много интересного и значимого для проекта статистики звонков IP-АТС Asterisk.

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

О чем и спешу вам сообщить. Вот некоторые из них:

  • Добавлена возможность загрузки и отображения логотипа
  • Создание групп, добавление в них пользователей и просмотр отчетов в разрезе этих групп
  • Добавлены супервизоры. Теперь вы можете назначить каждому супервизору группы/очереди, отчеты которых он может просматривать
  • Просмотр статистики входящих звонков в разрезе каждого «внешнего» номера, т.е. сколько входящих за период было по каждому номеру
  • Общий журнал звонков (как локальных так и внешних)
  • Исправлен баг с неверным подсчетом входящих в Asterisk 12+ для всех отчетов
  • Добавлен экспорт отчетов в Excel

Для начала один скриншот:



А под катом я опишу, а так же продемонстрирую, основные нововведения подробно. Ну и конечно, там же вас ждет небольшой презент.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments32

YML (Yandex Market Language) — Генерация файла товаров для Яндекс Вебмастер

Reading time2 min
Views41K
Недавно я заметил что в Yandex Webmaster появился новый есть раздел, он называется «Товары и цены». Там я увидел как можно бесплатно улучшить в выдаче яндекса, страницы товаров магазина.

yandex

Так как я разрабатываю сейчас интернет магазин, такая возможность показалось очень заманчивой.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments11

Панда среди пингвинов. x86_64 микрокомпьютер LattePanda

Reading time6 min
Views37K
Добрый день, дорогие читатели сайта Geektimes! Волею судеб так случилось, что мне в руки попала очень интересная плата — LattePanda.


Что в ней интересного?


Как минимум то, что это x86_64, Windows, совмещенный с Arduino набор (прямо на одной плате) и выходы на массу сенсоров. Чрезвычайно необычное сочетание для современного засилья ARM SoC/Linux/GPIO решений, которые в итоге похожи на клубок проводов, если собрать на них тот же комплект.

Если Windows для вас — дом родной, то вот он, настоящий самородок в мире микрокомпьютеров. Я постараюсь написать то, что мне показалось интересным в этой платформе.

Читать дальше →
Total votes 29: ↑25 and ↓4+21
Comments76

Бесплатные утилиты для бэкапа с бесплатного ESXI

Reading time7 min
Views102K
Как-то появилось у меня несколько персональных проектов, которые требовали относительно много дискового места — около 2TB. Подходящих VPS не нашлось (мало кто предлагает много HDD места), поэтому я взял выделенный сервер у OVH, поставил там ESXI 5.5 с бесплатной лицензией и всё работало.

Через некоторое время, с развитем проектов, я стал настраивать админские фишки — мониторинг, бэкап, и выяснил, что оказывается сервер, в котором мне обещали Soft RAID, и на который хостер (OVH) накатил свой образ ESXI — без RAID! То есть просто 2 диска. Ну да, теперь вот я знаю, что ESXI не поддерживает Soft RAID, только Hard. Стало неуютно. Да и 2TB стало не хватать. В общем взял я себе сервер побольше, с аппаратным RAID и поставил туда ESXI 6.0.

И возникло две задачи, решение которых я тут опишу:

  1. Перенести виртуальные машины (некоторые из которых около 1TB) с одного сервера на другой с минимальным оффлайном
  2. Делать регулярные бэкапы

Скажу сразу, что обе эти задачи легко решаются, если есть хотя бы минимальная платная лицензия ESXI. Дело в том, что «родной» Backup API в бесплатной версии ESXI выключен. Поэтому приходится находить другие пути.

С платной лицензией есть вариант миграции через vCenter. Ещё есть бесплатная версия Veeam Backup, которая позволяет делать бэкапы и переносить виртуальные машины с одной системы на другую и при этом не требуется их останавливать. Но с бесплатной лицензией ESXI, текущая версия — Veeam 9 — не работает вообще.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments38

Google Диск в качестве резервного хранилища для VPS сервера на базе Linux

Reading time2 min
Views30K
Пришла идея делать backup сервера VPS на CentOS 7 в Google drive, не пропадать же зря 15 гигам халявного места. Немного поискал и нашел пару статей на эту тему, тема оказалась не нова, и сначала поставил утилиту от самой корпорации добра, вот статья на эту тему Backing up a Directory to Google Drive on CentOS 7.

Но мне это не подходит, так как есть скрипт, который выполняется по расписанию, и в нем я решил проверять файлы по дате создания и не плодить миллион архивов, а для этого нужно смонтировать Google Drive в папку.

Утилита от Google умеет только закачивать и скачивать файлы, проверить по дате и удалить все старше 3х дней не получилось.

Спасение нашлось в google-drive-ocamlfuse, статей на эту тему не мало, но есть одно, но, утилита требует GUI интерфейс, а в частности любой браузер. В браузер передается с генерированная ссылка.

Google как известно авторизует пользователей по OAuth. В моем VPS естественно не о каком GUI речь не идет, только консоль.

На помощь пришла статья с github Headless Usage & Authorization. Предлагаю вам мой вольный перевод.
Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments8

Блокирование DNS DDoS при помощи пакета fail2ban

Reading time3 min
Views36K
Вы уже устали от кучи сообщений от logcheck'а об откаpе в обслуживании запросов к named? Ниже будет написано как ограничить себя от DDoS к named'у при помощи пакета fail2ban.

События о которых идёт речь выглядят так:
System Events
=-=-=-=-=-=-=
Jan 21 06:02:13 www named[32410]: client 66.230.128.15#15333: query (cache)
+'./NS/IN' denied

Однако следует отметить, что в большинстве случаев ip-адрес источника может быть сфальсифицирован. Каждый узел в бот-сети может послать один или несколько пакетов в секунду к DNS-серверу. Сервер в свою очередь отвечает сообщением об ошибке в запросе сфальсифицированному адресу, вызывая отказ в обслуживании у источника.

Устали от того, что ваш DNS сервер используется в качестве оружия в чужих DDoS-атаках? Попробуйте установить себе пакет fail2ban (Debian GNU/Linux). Оригинальный сайт проекта www.fail2ban.org.
Читать дальше →
Total votes 9: ↑7 and ↓2+5
Comments10

Nginx и https. Получаем класс А+

Reading time4 min
Views163K
image

Недавно вспомнилось мне, что есть такой сервис — StartSsl, который совершенно бесплатно раздаёт trusted сертификаты владельцам доменов для личного использования. Да и выходные попались свободные. В общем сейчас напишу, как в nginx настроить HTTPS, чтобы при проверке в SSL Labs получить рейтинг А+ и обезопасить себя от последних багов с помощью выпиливания SSL.

Итак, приступим. Будем считать, что у вы уже зарегистрировались на StartSsl, прошли персональную проверку и получили вожделенный сертификат. Для начала опубликую итоговый конфиг, а после этого разберу его.
Читать дальше →
Total votes 61: ↑52 and ↓9+43
Comments85

Резервное копирование виртуальных машин ESXi с помощью скриптов ghettoVCB

Reading time11 min
Views92K
В этой статье я пошагово опишу настройку автоматического резервного копирования и пример восстановления виртуальных машин, работающих на платформе ESX(i) с помощью свободных скриптов ghettoVCB. Акцентироваться буду на версии ESXi 5.x, но эти же средства работают и на версиях 3.5-6.x, правда для ранних версий настройки несколько отличаются. Бэкап будет производиться на NFS сервер. Отчёт о работе будет направлен в почту. Во время бэкапа делается снимок (snapshot) виртуальной машины (в том числе и работающей), сохраняются VMDK диски машины и снимок удаляется.
Проект ghettoVCB отлично документирован, но в процессе внедрения появились нюансы, которые и вылились в эту инструкцию. Надеюсь, статья будет полезна начинающим администраторам.

Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments26

Сокеты в Python для начинающих

Reading time4 min
Views578K

Предисловие


В далеком для меня 2010 году я писал статью для начинающих про сокеты в Python. Сейчас этот блог канул в небытие, но статья мне показалась довольно полезной. Статью нашел на флешке в либровском документе, так что это не кросспост, не копипаст — в интернете ее нигде нет.



Что это


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

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

Читать дальше →
Total votes 75: ↑50 and ↓25+25
Comments28

Простой Ethernet-туннель на Linux в четыре-шесть команд

Reading time2 min
Views92K
Краткая шпаргалка:
HOST1: ip link add grelan type gretap  local <IP1> remote <IP2>
HOST1: ip link set grelan up
HOST1: iptables -I INPUT -p gre -s <IP2> -j ACCEPT
HOST2: ip link add grelan type gretap local <IP2> remote <IP1>
HOST2: ip link set grelan up
HOST2: iptables -I INPUT -p gre -s <IP1> -j ACCEPT


Четыре команды на туннель и две на firewall (не нужны если трафик между своими серверми уже разрешен)
Это всё что нужно, дальше длинное объяснение с подробностями.
Читать дальше →
Total votes 52: ↑44 and ↓8+36
Comments35

Создание point-to-multipoint тоннелей на базе инкапсуляции GRE в Linux 2.6

Reading time4 min
Views17K
В ОС Linux встроена поддержка двух типов тоннелей: ipip и gre. В том виде, в котором тоннели традиционно используются в системе, без разницы, какой из них использовать: они оба дают в точности одинаковые накладные расходы к пакетам, посылаемым в тоннель IPv4-in-IPv4 (специально проверял), одинаково защищаются средствами IPsec и занимают одинаковое процессорное время для обработки. Однако, это разные типы тоннелей, и возможности gre значительно более широкие.
К сожалению, нигде в интернете не описывается очень удобная и замечательная особенность gre-тоннелей, и большинство (если не все) администраторов Linux не знают о такой возможности, как mGRE-тоннели. К счастью, мы намереваемся восполнить этот недостаток :-)

Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments6

Отправка Nginx-логов в Google Analytics

Reading time5 min
Views20K
image

С наших Download-серверов каждый день скачивается несколько миллионов драйверов (статичных .exe и .zip файлов). Для анализа поведения пользователей перед нами встала задача посчитать следующие параметры: когда, сколько, как часто и даже кто именно скачивает драйверы.

Самым очевидным решением было бы использовать инструменты типа AWstat, GoAccess, ELK stack или Splunk, а в крайнем случае собирать логи Nginx.

Но у каждого варианта есть свои минусы: неудобный интерфейс, скудность данных, сложность настройки и, самое главное, отсутствие возможности строить сегменты в пользовательских отчётах.

И тогда мы решили заставить Nginx самостоятельно отправлять события в Google Analytics сразу же после скачивания файла. Мы также смогли передать в GA уникальный идентификатор пользователя ClientID.
В результате мы получили аналитику по статичным файлам, к которым раньше невозможно было привязать счетчик GA.

Под катом готовый конфиг и примеры работы нашей системы.
Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments14

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Registered
Activity