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

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

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

Укрепление Nginx с помощью Fail2ban: тестируем и оцениваем «профит»

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

«Только запустил Nginx-приложение, а в access.log уже десятки записей с непонятными запросами, переборами паролей и другого» — типичная ситуация для незащищенного сервера. Это следствие работы «ботов» для сканирования белых сетей, поиска открытых портов, сбора информации о версиях запущенных служб и подбора паролей к сервисам.

В статье расскажу, как с помощью open source-инструмента Fail2ban укрепить Nginx и защитить сервисы от взлома. А также продемонстрирую способы блокирования DDoS-атак. Подробности под катом.
Читать дальше →
Всего голосов 45: ↑43 и ↓2+49
Комментарии47

Динамический контроль доступа: как работать с утверждениями

Время на прочтение19 мин
Количество просмотров7.9K
В предыдущей статье данного цикла я немного вас ввел в курс дела и рассказал, что собой представляет динамический контроль доступа, чем он отличается от предоставления доступа на основе списков ACL, о его преимуществах, а также – буквально в двух словах – o наиболее частых сценариях, когда целесообразно применять данную функциональную возможность. Статья была немного громоздкой, наполненной исключительно теоретическим материалом, да и, вообще сложной для восприятия, так как в ней отсутствовали описания каких-либо пошаговых процедур.
Начиная с этой статьи, я постараюсь исправиться и рассказать вам о том, с чего же необходимо начинать знакомство с этой технологией. А начинать, как видно из самого заголовка статьи, следует ни с чего иного, как с утверждений (они же, как я уже писал в предыдущей статье, еще называются заявками, клаймами и прочими словами, которыми можно заменить claim), которые смело можно отнести к одной из основных составляющих динамического контроля доступа. Сейчас же я постараюсь дать как можно меньше теоретического материала и практически сразу перейти к пошаговой процедуре. Итак, что же вы для себя сможете почерпнуть из этой относительно небольшой статьи?
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии3

Динамические инвентории Ansible

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

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

Это побудило меня написать такой маленький туториал по реализации динамического инвентория практически для любой версии Ansible. В качестве языка я выбрал Python, только потому, что его будет проще всего прочитать и адаптировать под любой другой язык.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии4

Окей, Джанго, у меня к тебе несколько вопросов

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

Недавно я проходил очередное интервью, и меня спросили, пишу ли я на flask, на что я ответил, что я себя люблю, и поэтому пишу на django. Меня не взяли, потому что, кхм, у них, оказывается, много чего было на фласке, и вышло неловко. Да-да, я знаю, фласк крут, потому что он простой, всё что надо ставишь сам, а чего не надо там и так нет, но как по мне, всё равно потом получается django.

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

Читать далее
Всего голосов 78: ↑74 и ↓4+85
Комментарии23

Релизный цикл ПО для самых маленьких

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

В продолжение нашей серии для начинающих ИТ-шников о базовых идеях современной коммерческой разработки, поговорим о моделях релизов. Это очень обширная тема, но мы пройдемся по верхам и исключительно с позиции разработчика. Мы не будем брать экзотические случаи, когда релизы относят на флешке, закрытой в специальном контейнере, или когда релиз ровно один - в конце разработки - и на нем все заканчивается. Поговорим о популярном CI/CD, какую роль тут играет Kubernetes и почему фичи не сразу оказываются в проде.

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

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

Делаем физическую лабораторию из смартфона своими руками

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

Всем привет! Продолжаем наш курс Galaxy Upcycling - Новая жизнь старого смартфона, где обсуждаем, как можно повторно использовать устаревший смартфон, иногда - в неожиданном качестве, как физическую лабораторию. Этому, например, посвящен небольшой курс “Лаборатория в кармане” педагога Анатолия Шперха. В самом деле, современный смартфон оснащен большим количеством сенсоров, способных измерять параметры окружающей среды.

Я рассмотрю сегодня три урока из приложения для проведения учебных физических экспериментов PhyPhox. Эти уроки относятся к разделу «механика» и задействуют разные сенсоры смартфона:

1. Скорость лифта (барометр и акселерометр)

2. Центрифуга (гироскоп и акселерометр)

3. Свободное падение (микрофон)

Читать далее
Всего голосов 36: ↑36 и ↓0+36
Комментарии12

Безопасность и шифрование. Element/Matrix — достойная альтернатива Slack и Mattermost

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

Сегодня многие ищут более удобный, дешёвый и безопасный вариант для корпоративных коммуникаций. К сожалению, Slack, Microsoft Teams и другие проприетарные решения не удовлетворяют требованиям по безопасности, а за коммерческие лицензии нужно платить. В качестве альтернативы часто смотрят в сторону бесплатного опенсорсного Mattermost. Но есть вариант получше.
Читать дальше →
Всего голосов 79: ↑75 и ↓4+93
Комментарии32

Олдскульные HTML-шаблоны снова в моде! htmx и другие средства борьбы с javascript fatigue

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

Отрисовка страничек на сервере, похоже, снова начинает приобретать популярность (нет, я не имею в виду React SSR).

Сторонники оппозиции растущему влиянию javascript, наконец, смогли направить усилия в нужное русло - и в результате родился фреймворк htmx! Поговорим о том, как он работает, а также, какие ещё фреймворки используют серверные шаблоны в 2022.

Также поговорим о divkit - аналоге html для мобилок, недавно выпущенный Яндексом в опен-сорс - Вы, наверно, догадались, какое отношение может иметь одно к другому.

Читать
Всего голосов 20: ↑15 и ↓5+12
Комментарии25

К каким вопросам готовиться перед собеседованием на Python-разработчика

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

Безусловно, от программирования нужно получать свой кайф. Если вам не интересно заниматься тем, что вы делаете, наверное, это дело лучше бросить. Однако, было бы неплохо конвертировать ваш кайф в какую-нибудь валюту. Даже желательно бы не в православный рубль, а басурманский доллар. Поэтому сегодня обсудим вопросы, которые задают на собеседованиях Python-разработчику и как в целом подготовиться к любому такому собеседованию. Текст написал автор YouTube-канала PyLounge Макс. Поехали!

Читать далее
Всего голосов 6: ↑4 и ↓2+3
Комментарии8

Руководство по программированию сокетов на Python. Протокол и сообщения

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



К концу руководства вы освоите основные функции и методы модуля Python socket, научитесь применять пользовательский класс для отправки сообщений и данных между конечными точками и работать со всем этим в собственных клиент-серверных приложениях. Материалом делимся к старту курса по Fullstack-разработке на Python.

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

Пайтон Джуньор Плюс, или путеводитель начинающего Python-программиста

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

image


Добрый день! Меня зовут Михаил Емельянов, по профессии я программист программ, а этот небольшой путеводитель по возможностям языка Python меня сподвиг написать довольно существенный, на мой взгляд, разрыв между декларируемыми объемами всевозможных курсов программирования и требованиями реальных, даже достаточно скромнооплачиваеых вакансий, а также некоторая обобщенность существующих Python-путеводителей, найденных на просторах Сети.


Особенно выбивают из равновесия советы изучить, скажем, «Алгоритмы и структуры данных» или «SQL». Да зубы можно сточить, изучая эти темы, и даже будучи седовласым старцем, постоянно открывать для себя что-то новое, не выходя за рамки тематики «Алгоритмов»!


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

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

Установка Redis и мониторинг с помощью Zabbix

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

Если вам нужна быстродействующая нереляционная СУБД типа «ключ-значение», то, возможно, подойдет Redis (Remote Dictionary Server). На базе Redis можно создать не только хранилище данных, но и кэш, брокер сообщений, а также очередь. Для увеличения отказоустойчивости можно настроить репликацию данных между серверами Redis.

В этой статье мы расскажем о том, как установить Redis в ОС Debian 11, а также как контролировать этот сервис вручную и с помощью Zabbix. 

Читать далее
Всего голосов 8: ↑4 и ↓40
Комментарии4

Гайд по межсетевому экранированию (nftables)

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


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

В качестве межсетевого экрана будем использовать nftables, функционирующий под управлением ОС Debian GNU Linux.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+28
Комментарии15

Как справиться с устареванием apt-key и add-apt-repository с помощью gpg в Ubuntu 22.04

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

apt-key - это утилита, используемая для управления ключами, которые APT использует для аутентификации пакетов. Это тесно связано с утилитой add-apt-repository, которая добавляет внешние репозитории с использованием серверов ключей в список надежных источников установки APT. Однако ключам, добавленным с помощью apt-key и add-apt-repository, apt доверяет глобально. Эти ключи не ограничиваются авторизацией единственного хранилища, для которого они были предназначены. Любой ключ, добавленный таким образом, может быть использован для авторизации добавления любого другого внешнего хранилища, что представляет собой важную проблему безопасности.

Начиная с Ubuntu 20.10, использование apt-key выдает предупреждение о том, что инструмент устареет в ближайшем будущем; аналогичным образом, add-apt-repository также скоро устареет. Хотя эти предупреждения об устаревании строго не запрещают использовать apt-key и add-apt-repository с Ubuntu 22.04, но игнорировать их не рекомендуется.

В настоящее время рекомендуется использовать gpg вместо apt-key и add-apt-repository, и в будущих версиях Ubuntu это будет единственным вариантом. apt-key и add-apt-repository сами по себе всегда действовали как оболочки, вызывая gpg в фоновом режиме. Использование gpg напрямую отсекает посредника. По этой причине метод gpg обратно совместим со старыми версиями Ubuntu и может использоваться в качестве замены apt-key.

В этом руководстве будут описаны две процедуры, использующие альтернативы apt-key и add-apt-repository соответственно. Сначала будет добавлено внешнее хранилище с использованием открытого ключа с помощью gpg вместо использования apt-key. Во-вторых, в качестве дополнения в этом руководстве будет рассмотрено добавление внешнего репозитория с использованием сервера ключей с gpg в качестве альтернативы использованию add-apt-repository.

Читать далее
Всего голосов 7: ↑5 и ↓2+3
Комментарии11

Документация бывает разная — черная, белая, красная. Как обеспечить единое место хранения корпоративной документации

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

Приветствую.

Данная статья является продолжением вот этой Как готовить корпоративную систему управления документацией: рецепт, основные ингредиенты и приправы. Рекомендую к прочтению сначала ее. Здесь же мы раскроем карты относительно построения именно единой базы документации.

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

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

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии1

showcert: проверяем сертификаты (без боли)

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

Этот пост не про какой-то большой и сложный проект, а про очень маленькую, простую утилитку showcert, мой маленький самодельный велосипед, который экономит время и нервы. Она не для тех, кто не знает, про утилиту openssl, а для тех, кто все знает, но когда хочет проверить дату истечения почтового сертификата яндекса, немного гуглит, потом сноровисто пишет:

$echo | openssl s_client -connect mx.yandex.ru:25 -starttls smtp 2>&1 | openssl x509 -noout -dates
notBefore=Jul 25 11:16:45 2022 GMT
notAfter=Jan 22 20:59:59 2023 GMT

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

А теперь сравните с:

$ showcert mx.yandex.ru:25
Names: mx.yandex.ru mx.yandex.net
notBefore: 2022-07-25 11:16:45 (15 days old)
notAfter: 2023-01-22 20:59:59 (165 days left)
Issuer: C=BE O=GlobalSign nv-sa CN=GlobalSign RSA OV SSL CA 2018

Ну разве не проще? showcertсам, по номеру порта догадывается, как начать STARTTLS (но конечно же, это можно переопределить через опцию -t / --starttls, например -t no или -t imap)

Предупредить о том, что сертификат скоро протухнет? Окей!

$ showcert mx.yandex.ru:25 -qw 200 || echo PROBLEM
mx.yandex.ru:25 expires in 165 days
PROBLEM

-q - тихий режим, не печатать лишнего, только предупреждения, -w 200 - завершаться с кодом 1, если до протухания меньше 200 дней. (-w без значения, проверка на 20 дней, без -w проверка валидности сегодня).

Проверки файлов:

Читать далее
Всего голосов 23: ↑23 и ↓0+23
Комментарии29

Установка MongoDB в условиях санкций через прокси

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

В нынешней ситуации многие сервисы блокируют доступ из РФ, я покажу как можно обойти этот запрет с помощью ProxyChains и Tor на примере MongoDB.

Читать далее
Всего голосов 22: ↑10 и ↓12-2
Комментарии15

Настройка LEMP-сервера с помощью Ansible для простых проектов. Часть первая: знакомство с Ansible

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

Мы продолжаем цикл обучающих статей для начинающих системных администраторов. В этом материале мы разберем Ansible, Ansible-Playbook, и как поднять полноценный веб-сервер с помощью системы автоматизации. Отметим, что если вы являетесь опытным администратором, можете смело пропускать данный материал.

Читать далее
Всего голосов 6: ↑4 и ↓2+2
Комментарии7

Развертывание Standalone центра сертификации на базе Windows Server 2019 и настройка сетевого автоответчика OCSP

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

Всем привет, с вами Искандер Рустамов, младший системный администратор Cloud4Y. Сегодня мы будем покорять развертывание центра сертификации (ЦС). 

Необходимость в выстраивании инфраструктуры на базе государственных требований к решениям в области информационной безопасности заставляет искать новые решения. Одним из них является организация доступа клиентов к веб-ресурсам через портал nGate по защищённому TLS соединению с использованием шифрования по ГОСТ криптопровайдера «КриптоПро». Для этого необходим собственный центр сертификации. 

В данной статье мы рассмотрим установку Standalone Center Authority на базе Windows Server 2019.

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

Использование событий MySQL на практике

Время на прочтение3 мин
Количество просмотров66K
how does events workДля тех, кто активно пользуется MySQL, не секрет, что начиная с версии 5.1, MySQL поддерживает события (events). Если вам нужно выполнять запросы или отдельные процедуры по расписанию, а перейти с запуска консоли на встроенный функционал MySQL было лень не было времени,
добро пожаловать под кат
Всего голосов 84: ↑82 и ↓2+80
Комментарии27
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность