Pull to refresh
20
0
Андрей @andrew72ru

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

Send message

Российские госсайты: иллюзия безопасности

Reading time 2 min
Views 22K
image

В 2016 году мы задались вопросом: сколько сайтов федеральных органов власти поддерживают HTTPS? Мы узнали, вы готовы? Фактически – 2 (прописью: два, Карл!) сайта из 85. Формально – 32 поддерживали, т.е. на серверах был включен HTTPS, но дальше все упиралось в традиционное российское разгильдяйство: SSL-сертификат просрочен, самоподписан или вообще от другого сайта, соединение по HTTPS автоматически переключается на HTTP или переадресуется в админку сайта, веб-сервер уязвим к ROBOT, POODLE и прочим излишествам нехорошим, HTTPS-подключение только по SSL и прочий чад кутежа.

Поэтому, даже согласно нашим скромным критериям – действительный SSL-сертификат, поддержка TLS 1.2 и отказ от использования уязвимых или ненадежных криптоалгоритмов типа DH и RC4 – фактически HTTPS поддерживали только 2 сайта (напоминаю, из 85 обследованных).

Сегодня мы снова задались тем же вопросом, хотя и несколько ужесточив критерии, но даже при этом ситуация оказалась существенно лучше: 27 сайтов из 82 могут считаться реально поддерживающими HTTPS и еще 23 – условно поддерживают его. Условно в том смысле, что при определенных условиях, зависящих в большей степени от клиентской стороны: актуальная версия браузера, сконфигурирована по уму, ручками указали HTTPS – соединение защищено, не обеспечили чего-то из перечисленного – depends on.
Читать дальше →
Total votes 39: ↑38 and ↓1 +37
Comments 64

Шпаргалки по безопасности: Docker

Reading time 7 min
Views 40K


Docker контейнеры — самая популярная технология для контейнеризации. Изначально она использовалась в основном для dev и test окружений, со временем перешла и в production. Docker контейнеры начали плодиться в production среде, как грибы после дождя, однако мало из тех, кто использует данную технологию, задумывался о том, как же безопасно публиковать Docker контейнеры.

Основываясь на OWASP, мы подготовили список правил, выполнение которых позволит значительно обезопасить ваше окружение, построенное на Docker контейнерах.
Читать дальше →
Total votes 33: ↑31 and ↓2 +29
Comments 5

Agile: крупнейшая идеологическая проблема в IT

Reading time 6 min
Views 23K
image

В 2001 году группа технологов и программистов, разделявших небанальные теории о том, как следует управлять разработкой ПО, встретились на горнолыжном курорте Сноубёрд, чтобы письменно изложить некоторые из этих концепций. Так родился «манифест Agile» — обманчиво простой документ, призванный пересмотреть догмы разработки ПО. Разработка ПО в стиле Agile превратилась в новый стандарт организации труда программистов в организации. Такие компании как Facebook, Amazon, Apple, Google и Netflix выстроили свои внутренние процессы разработки в соответствии с базовыми положениями этого манифеста. Учитывая абсолютные масштабы Agile и его общественный резонанс среди сторонников, легко убедиться, что Agile — самая влиятельная из всех когда-либо формализованных трактовок разработки ПО. Однако, Agile — это идеология. Нормативная система ценностей и убеждений, практически до основания впитавшихся в дело разработки ПО. Таким образом, софтверная индустрия сегодня дает интересную возможность оценить, как номинальные цели некоторой идеологии согласуются с ее воплощением на практике.
Читать дальше →
Total votes 25: ↑23 and ↓2 +21
Comments 27

Mikrotik. Failover. Load Balancing

Reading time 12 min
Views 283K
Когда у меня встала необходимость разобраться, как сделать failover или load balancing, имея два и более каналов в мир, я нашел множество статей и инструкций, в которых описывались рабочие конфигурации. Но почти нигде не нашел разъяснения, как все работает, и описания отличий разных вариантов. Хочу исправить эту несправедливость и собрать простейшие варианты построения failover и load balancing конфигураций в одной статье.

Итак, у нас есть роутер, который соединяет нашу локальную сеть и два канала в интернет (основной ISP1 и резервный ISP2).

Давайте рассмотрим что же мы можем сделать:

Сразу предупрежу: несмотря на то, что в этой статье буду все описывать для mikrotik, не буду касаться темы скриптов
Читать дальше →
Total votes 30: ↑28 and ↓2 +26
Comments 45

Kubernetes кластер за $20 в месяц

Reading time 25 min
Views 13K

TL; DR


Поднимаем кластер для обслуживания веб-приложений без записи состояния (stateless web applications) вместе с ingress, letsencrypt, не используя средства автоматизации вроде kubespray, kubeadm и любых других.
Время на чтение: ~45-60 минут, на воспроизведение действий: от 3-х часов.


Преамбула


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


Компоненты


В статье будут фигурировать следующие компоненты:


Ваш любимый Linux — я использовал Gentoo (node-1: systemd / node-2: openrc), Ubuntu 18.04.1.
Kubernetes Server — kube-apiserver, kube-controller-manager, kube-scheduler, kubelet, kube-proxy.
Containerd + CNI Plugins (0.7.4) — для организации контейнеризации возьмем containerd + CNI вместо docker (хотя изначально вся конфигурация была поднята на docker, так что ничего не помешает использовать его в случае необходимости).
CoreDNS — для организации service discovery компонентов, работающих внутри kubernetes кластера. Рекомендована версия не ниже 1.2.5, так как с этой версии появляется вменяемая поддержка работы coredns в качестве процесса, запущенного вне кластера.
Flannel — для организации сетевого стека, общения подов и контейнеров между собой.
Ваша любимая db.


Для всех

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

Беспроводной машрутизатор своими руками

Reading time 13 min
Views 54K

  1. Выбор комплектующих
  2. Запуск сетевых интерфейсов
  3. Установка точки доступа 802.11ac (5 ГГц)
  4. Настройка виртуального SSID с помощью hostapd

Последние десять лет я покупал дешёвое сетевое оборудование и ставил на него DD-WRT, чтобы вернуть «функции» ценой более $500, удалённые из ядра Linux, на котором основаны стоковые прошивки.

Несмотря на нестабильные сборки, неисправленные ошибки и споры, DD-WRT всё равно предпочтительнее стоковых прошивок. Но сейчас достойные комплектующие дешевле, чем когда-либо, а DIY-сообщество поголовно перешло на Linux (я смотрю на вас, м-р Raspberry), так почему бы не собрать собственный беспроводной маршрутизатор раз и навсегда?
Читать дальше →
Total votes 58: ↑54 and ↓4 +50
Comments 114

Как и зачем красть деревья в git

Reading time 15 min
Views 26K

trees


В этой статье я расскажу об одном полезном, но малоизвестном приеме работы с git — как можно легко создать коммит, используя дерево из другого коммита. Проще говоря, как получить нужное состояние проекта на какой-либо ветке, если это состояние уже когда-то и где-то было в репозитории раньше. Будет приведено несколько примеров того, как это позволяет элегантно решать некоторые практические задачи. И в частности я расскажу о найденном мной методе, который позволяет значительно упростить исправление множественных конфликтов при rebase. Кроме того, эта статья — отличный способ понять на практике, что из себя представляет коммит в git-е.

Читать дальше →
Total votes 35: ↑35 and ↓0 +35
Comments 20

Kubernetes: поразительно доступное решение для персональных проектов

Reading time 15 min
Views 18K
Здравствуйте, коллеги!

В январе у нас наконец-то выходит долгожданная книга по Kubernetes. Речь о «Mastering Kubernetes 2nd edition» Джиджи Сайфана:


Мы не решились издавать книгу по Kubernetes около года назад, так как на тот момент технология определенно напоминала дредноут для суперкорпораций. Однако, ситуация меняется, в подтверждение чего мы предлагаем почитать большую статью Калеба Докси (Caleb Doxsey), написавшего, кстати, книгу о языке Go. Аргументы господина Докси очень интересны, и мы надеемся, что после ознакомления с ними вам действительно захочется попробовать Kubernetes на практике.
Читать дальше →
Total votes 21: ↑20 and ↓1 +19
Comments 16

Так что же такое pod в Kubernetes?

Reading time 6 min
Views 68K
Прим. перев.: Эта статья продолжает цикл материалов от технического писателя из Google, работающего над документацией для Kubernetes (Andrew Chen), и директора по software engineering из SAP (Dominik Tornow). Их цель — доступно и наглядно объяснить основы организации Kubernetes. В прошлый раз мы переводили статью про high availability, а теперь речь пойдет про такое базовое понятие в Kubernetes, как pod.



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

Pods (Поды) — базовые строительные блоки Kubernetes, однако даже опытные пользователи Kubernetes не всегда могут объяснить, что же это такое.

Данная публикация предлагает лаконичную мысленную модель, которая проливает свет на определяющие характеристики pod'ов Kubernetes. Ради этой краткости пришлось опустить некоторые другие особенности Pod'ов, такие как liveness и readiness probes, разделение ресурсов (включая появившееся недавно namespace sharingприм. перев.), работу с сетью.
Читать дальше →
Total votes 33: ↑30 and ↓3 +27
Comments 9

BEM'a не должно существовать

Reading time 4 min
Views 62K

Здравствуйте.

BEM'а не должно существовать. Есть огромное количество причин не использовать эту методологию, но из-за её простоты использования и непонимания работы CSS и HTML, методология широко распространилась среди фронтендеров всего мира, в большинстве случаев среди разработчиков СНГ. Используется BEM сейчас как на больших русскоязычных проектах (Yandex, Habr), так и в некоторых фреймворках (react-md). В этой статье пойдёт подробный разбор плюсов и минусов этого подхода к разработке. Все примеры вёрстки будут взяты с официального сайта BEM.
Читать дальше →
Total votes 203: ↑155 and ↓48 +107
Comments 681

Как айтишнику найти работу в США и ЕС: 9 лучших ресурсов

Reading time 5 min
Views 163K
Мировой рынок IT стремительно развивается. С каждым годом профессия разработчика софта становится все более востребованной — уже в 2017 году в мире насчитывался примерно 21 миллион программистов различных направлений.

К сожалению, русскоговорящий рынок IT находится еще на начальной стадии развития — уже есть крупные и успешные проекты, но рынок еще долго не сможет сравняться с европейским и американским, которые производят до 85% всех IT-продуктов мира.
Читать дальше →
Total votes 53: ↑52 and ↓1 +51
Comments 25

Компьютерное зрение и машинное обучение в PHP используя библиотеку opencv

Reading time 9 min
Views 33K
Всем привет. Это моя юбилейная статья на Хабре. За почти 7 лет я написал 10 статей (включая эту), 8 из них — технические. Общее количество просмотров всех статей — около полумиллиона.
Основной вклад я внёс в два хаба: PHP и Серверное администрирование. Мне нравится работать на стыке этих двух областей, но сфера моих интересов гораздо шире.

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

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


Читать дальше →
Total votes 41: ↑41 and ↓0 +41
Comments 21

Настройка BGP для обхода блокировок, версия 3, без VPS

Reading time 3 min
Views 76K

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


Зачем всё это делается в принципе и как оно устроено логически — описано в первой и второй статьях.


После их публикации я получил несколько вопросов от людей, которые пользуются VPN с не принадлежащих им ресурсов (например, приобретающих коммерческую услугу VPN). Этим людям раньше я советовал завести VPS для развертывания BGP-сервиса или каким-то еще образом получить доступ к серверу на Linux.


Но с сегодняшнего дня для них (и для всех остальных) есть более удобный вариант — на бесплатном сервисе antifilter.download появилась возможность автоматически настраивать BGP-сессию с вашим маршрутизатором.

Читать дальше →
Total votes 27: ↑27 and ↓0 +27
Comments 98

Настройка BGP для обхода блокировок, версия 2, «не думать»

Reading time 3 min
Views 57K

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


Поэтому здесь я приведу сжатую пошаговую инструкцию, как обходить блокировки, если у вас есть:


  • линукс-машина (ubuntu) вне поля блокировок;
  • роутер Mikrotik, на который вы уже подняли VPN-туннель до этой линукс-машины;
  • настроенный NAT на этом туннеле, позволяющий вам работать через него;
  • желание.

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


Те, кто уже всё сделал по мотивам предыдущего поста, в этом полезной информации не почерпнут.

Читать дальше →
Total votes 25: ↑24 and ↓1 +23
Comments 112

Найден третий препарат для лечения андрогенетической алопеции (облысения)

Reading time 3 min
Views 78K

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

Химики и биологи много лет работают над поиском эффективных средств для регенерации волосяного покрова. Возможно, на эти цели в мире тратится больше денег, чем на космическую программу. В настоящее время создано два препарата для лечения облысения (андрогенетической алопеции) — это миноксидил и финастерид. К сожалению, у обоих препаратов есть побочные эффекты, и они не гарантируют положительный результат.
Читать дальше →
Total votes 40: ↑40 and ↓0 +40
Comments 114

Как выпустить самоподписанный SSL сертификат и заставить ваш браузер доверять ему

Reading time 3 min
Views 253K


Все крупные сайты давно перешли на протокол https. Тенденция продолжается, и многие наши клиенты хотят, чтобы их сайт работал по защищенному протоколу. А если разрабатывается backend для мобильного приложения, то https обязателен. Например, Apple требует, чтобы обмен данными сервера с приложением велся по безопасному протоколу. Это требование введено с конца 2016 года.

На production нет проблем с сертификатами. Обычно хостинг провайдер предоставляет удобный интерфейс для подключения сертификата. Выпуск сертификата тоже дело не сложное. Но во время работы над проектом каждый разработчик должен позаботиться о сертификате сам.
В этой статье я расскажу, как выпустить самоподписанный SSL сертификат и заставить браузер доверять ему.
Читать дальше →
Total votes 52: ↑41 and ↓11 +30
Comments 51

Linux в одном файле для Macbook

Reading time 4 min
Views 35K


TL;DR Можно уместить полноценный Linux Live дистрибутив в один файл, если вкомпилировать в ядро initramfs с корневой файловой системой. Компьютеры с UEFI умеют загружать такой файл напрямую, без помощи загрузчика типа GRUB. У меня получилось уместить дистрибутив с программами aircrack-ng, reaver и драйверами для карт Wi-Fi в файл размером 12 мегабайт (наверняка можно еще меньше).

Основные преимущества


  • Работает на любых компьютерах с UEFI — один и тот же файл будет работать на PC и Mac.
  • Не требует установки — достаточно скопировать один файл на EFI-раздел диска и указать в переменных NVRAM путь к этому файлу.
  • Не нужно устанавливать загрузчики GRUB, rEFInd — ядро Linux собранное с поддержкой EFI Stub можно грузить напрямую без промежуточного загрузчика.
  • Не нужны USB-флешки — скопированный на раздел EFI дистрибутив остается там навсегда, и его можно будет загрузить в любой момент. Он не занимает места на разделе основной системы, так как раздел EFI не используется в ОС.
  • Не изменяет процесс загрузки — систему можно загрузить один раз, без изменения порядка загрузки в настройках UEFI. Следующая перезагрузка компьютера загрузит обычную операционную систему. Никаких следов Linux в очередности загрузки не останется.
  • Совместимо с шифрованием диска FileVault и т.д. — файл копируется на EFI System Partition, специальный зарезервированный раздел диска. В компьютерах Mac его размер около 200 мегабайт. Он выделен под Boot Camp и обычно не используется
Читать дальше →
Total votes 78: ↑77 and ↓1 +76
Comments 48

Сравнение: Docker swarm, Kubernetes, Rancher и D2C

Reading time 4 min
Views 33K

С того момента как мы начали вести корп. блог на Хабре, на демо и при обращениях в поддержку нас стали чаще сравнивать с оркестраторами. И если раньше были вопросы о том, в чем отличия D2C от Heroku, Clou66 и тому подобных сервисов, то теперь, видимо, нас стали рассматривать как альтернативное решение для оркестрации.


Чтож, попробую поправить ситуацию и провести сравнение с несколькими популярными решениями, о которых слышно чаще: Docker swarm, Kubernetes и Rancher. А чтобы зайти не «с конца», кратко дам по маленькому обзору на каждую из них.

Читать дальше →
Total votes 21: ↑15 and ↓6 +9
Comments 7

О личном опыте работы с «бодишопами» или предупрежден — значит вооружен

Reading time 6 min
Views 55K
image
Обманутые программисты пишут жалобу в Departament of Labor

Сегодня хотел бы поделиться своим опытом и опытом работы знакомых с такой штукой, как консалтинговая компания АКА «бодишоп». Думаю, всем желающим поехать за границу работать будет полезен сей опыт.
TLDR: опыт негативный, название фирмы указывать не буду, дабы не нарушать правила.
Читать дальше →
Total votes 29: ↑29 and ↓0 +29
Comments 14

Докеризация nginx и php на сокетах с ротацией логов

Reading time 5 min
Views 22K
В статье на Хабре обсуждался «docker way»(TM), который гласит: один контейнер — один процесс.
one process per container
Each container should have only one concern

Decoupling applications into multiple containers makes it much easier to scale horizontally and reuse containers. For instance, a web application stack might consist of three separate containers, each with its own unique image, to manage the web application, database, and an in-memory cache in a decoupled manner.

You may have heard that there should be “one process per container”. While this mantra has good intentions, it is not necessarily true that there should be only one operating system process per container. In addition to the fact that containers can now be spawned with an init process, some programs might spawn additional processes of their own accord. For instance, Celery can spawn multiple worker processes, or Apache might create a process per request. While “one process per container” is frequently a good rule of thumb, it is not a hard and fast rule. Use your best judgment to keep containers as clean and modular as possible.

If containers depend on each other, you can use Docker container networks to ensure that these containers can communicate.
Следование этому принципу при докеризации nginx чревато двумя последствиями. Настроить взаимодействие nginx и php-fpm в разных процессах через unix сокет немного сложнее, чем может показаться. И ротация логов, которая при обычной установке идет «из коробки», не может осуществляться в принципе, т.к. требует отправки сигнала USR1 nginx, для чего нужен ещё один процесс.
Читать дальше →
Total votes 17: ↑11 and ↓6 +5
Comments 25

Information

Rating
Does not participate
Location
Тюмень, Тюменская обл. и Ханты-Мансийский АО, Россия
Date of birth
Registered
Activity