Pull to refresh
17
0
Петр Быстров @Bergtagen

Системный администратор

Send message

7 решений для установки и управления WireGuard на своём сервере

Level of difficulty Medium
Reading time 17 min
Views 81K

Предполагается, что для настройки WireGuard сервера, нужно вручную сгенерировать ключи, выбрать подсеть и задать ещё несколько параметров. Потом для каждого клиента также генерировать ключи, присваивать IP адрес и компоновать это всё в конфиг, чтобы было удобно импортировать на клиенте.

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

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

Читать далее
Total votes 7: ↑7 and ↓0 +7
Comments 25

Оптимизация данных в MS SQL

Reading time 5 min
Views 4.1K

Основная статья Взаимодействие DWH Oracle и MS SQL

Одним из методов для оптимизации обработки, хранения и администрирования данных в базе данных и кубах MS SQL — это процесс создании партицирования данных.

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

Со стороны администрирования для процесса переноса (например архивирования) данных в другую таблицу без физического перемещения данных, а перемещения только логической секций, подлежащих этой операции, выполнение этого действия происходит мгновенно, что экономит время и ресурсы машины. Для этого необходимо подготовить таблицу «архив» — копию по структуре с таблицей источника, она может быть не партицированна.

Пример кода для переноса в таблицу:

Читать далее
Total votes 6: ↑6 and ↓0 +6
Comments 8

Оптимизация Dockerfile для уменьшения размера и быстрой сборки образов

Reading time 6 min
Views 14K

У каждого образа Docker есть свой размер, который он занимает на жёстком диске. Порой бывает так, что контейнер с запущенным приложением на языке программирования Go, который содержит в себе всего лишь одну строчку с выводом фразы «Hello, world!» может занимать сотни Мб, в то время как существуют образы содержащие легковесные ОС весом всего лишь 5 Мб (alpine).

В этой статье будут подробно рассмотрены способы оптимизации файла Dockerfile с целью уменьшения размера готового образа и ускорения его сборки.

Читать далее
Total votes 31: ↑27 and ↓4 +23
Comments 27

Полное руководство по модулю asyncio в Python. Часть 2

Reading time 20 min
Views 27K

Публикуем вторую часть руководства по модулю asyncio в Python, в которой представлены разделы оригинала №3 и 4. Читать головокружительную первую часть.

Читать далее
Total votes 17: ↑17 and ↓0 +17
Comments 1

10 итераторов, о которых вы могли не знать

Reading time 13 min
Views 32K

Одним из главных достоинств Python является выразительность кода. Не последнюю роль в этом играет возможность удобной работы с коллекциями и последовательностями различного вида: перебор элементов списка по одному, чтение файла по строкам, обработка всех ключей и значений в словаре. Эти и многие другие подобные задачи в Python помогает решить так называемый протокол итераторов (Iterator protocol). Именно этот протокол обеспечивает работу цикла for, устанавливает по каким объектам можно итерироваться, а по каким нет. Как мы увидим далее, сам язык и стандартная библиотека очень широко используют возможности протокола. В этой статье попробуем отыскать не самые известные, но от этого не менее интересные примеры итераторов и итерируемых объектов, которые предлагает Python.

Читать далее
Total votes 49: ↑46 and ↓3 +43
Comments 18

Приручение черного дракона. Этичный хакинг с Kali Linux. Часть 5. Методы получения доступа к системе

Reading time 16 min
Views 34K

Приветствую тебя, дорогой читатель, в пятой части серии статей «Приручение черного дракона. Этичный хакинг с Kali Linux».

В прошлый раз мы поговорили о приемах активного футпринтинга, а именно, о методах сканирования целевых ресурсов, и познакомились с таким замечательным инструментом, как сетевой сканер nmap. Сегодня мы разберем следующую важную фазу — получение доступа к системе и поговорим о таких вещах, как эксплоиты (exploits), полезная нагрузка (payload), а так же познакомимся с инструментом, который нам поможет автоматизировать рутинные задачи связанные с поиском и эксплуатацией уязвимостей под названием Metasploit Framework.

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

Metasploit Framework – представляет из себя комплексный инструмент автоматизации процесса эксплуатации уязвимостей ПО и операционных систем различной архитектуры.

Модули входящие в состав Metasploit можно разделить на следующие несколько категорий:

Эксплоиты (Exploits) - компьютерная программа, фрагмент программного кода или последовательность команд, использующие уязвимости в программном обеспечении и применяемые для проведения атаки на вычислительную систему. Целью атаки может быть как захват контроля над системой (повышение привилегий), так и нарушение её функционирования (DoS-атака).

По типу исполнения можно выделить два вида эксплоитов:

Удалённый эксплойт – работает через сеть и использует уязвимость в защите без какого-либо предварительного доступа к атакуемой системе;

Локальный эксплойт – запускается непосредственно в уязвимой системе, требуя предварительного доступа к ней.

Пэйлоады (Payloads) – это некий код, который выполняется после эксплоита. В основном используется для настройки связи между жертвой и атакующим.

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

Самый полный стартовый гайд по ботам Telegram (python)

Reading time 5 min
Views 222K

QQ Хабр! В этом гайде мы пройдемся по каждому шагу создания ботов в Telegram - от регистрации бота до публикации репозитория на GitHub. Некоторым может показаться, что все разжевано и слишком много элементарной информации, но этот гайд создан для новичков, хотя будет интересен и для тех, кто уже занимался разработкой в Telegram. Сегодня мы будем делать бота, который отвечает на заданные вопросы.

Читать далее
Total votes 34: ↑21 and ↓13 +8
Comments 23

Golang-дайджест № 22 (1 – 31 октября  2022)

Reading time 4 min
Views 5.2K

Свежая подборка новостей и материалов

Интересное в этом выпуске

Выпущены Go 1.19.3 и Go 1.18.8, twilio выпускает официальную библиотеку Go Helper, autostrada генератор кодовой базы, LearnGo большая коллекция примеров, упражнений

Читать далее
Total votes 21: ↑19 and ↓2 +17
Comments 2

Начать путь в разработке — что почитать «молодому» программисту

Reading time 4 min
Views 19K

В прошлый раз мы подготовили компактные подборки с настольными справочниками для сисадминов и ресурсами для DevSecOps. Сегодня говорим о книгах для разработчиков, начинающих погружение в мир программного обеспечения. В списке «классика», которую рекомендуют резиденты Hacker News, Reddit и других профильных площадок.

В блоге T1 Cloud мы регулярно делимся полезными ресурсами для ИТ-специалистов — подписывайтесь, чтобы не пропустить будущие публикации.

Читать далее
Total votes 16: ↑12 and ↓4 +8
Comments 16

Краткий справочник по «всем-всем» командам Linux

Level of difficulty Medium
Reading time 74 min
Views 149K

Периодически меня на начальном курсе просят дать "список всех-всех команд с кратким описанием что делает"... Ну прям "всех-всех". И ведь если искать в интернете "такие" справочники существуют - либо про "20-30 команд, но самых важных", либо с неточностями и устаревшей информацией. Так что предлагаю вашему вниманию свою версию такого "краткого" справочника (на 300, 515, 612, 716, 842, 1005, 1110 команд) с ссылками на wiki-описание и на cheat.sh-примеры наиболее важных команд.

Справочник по всем-всем командам LINUX
Total votes 126: ↑123 and ↓3 +120
Comments 114

#2 Нейронные сети для начинающих. NumPy. MatplotLib. Операции с изображениями в OpenCV

Reading time 16 min
Views 21K

Это вторая статья из серии введения в «Нейронные сети для начинающих». Здесь и далее мы постараемся разобраться с таким понятием — как обработка графических данных, визуализация данных, а также на практике решим пару простых задач. Предыдущая статья — #1 Нейронные сети для начинающих. Решение задачи классификации Ирисов Фишера
Маленький совет из будущего: «В данной статье будут затронуты некоторые понятия, о которых я писал раньше, так что для полного понимания темы, советую прочитать и предыдущую статью»
На самом деле, на хабре было множество публикаций по этой теме, но все они говорят о разных вещах. Давайте разберёмся и соберём всё в одну кучку, для полноценного понимания картины мира.
Читать дальше →
Total votes 43: ↑41 and ↓2 +39
Comments 8

Мониторинг дисков и программных RAID-массивов с помощью Zabbix

Reading time 14 min
Views 22K

Ранее в статьях, посвященных Zabbix, мы рассказали про особенности мониторинга SAAS-сервиса интернет-магазинов, а также про установку сервера и агента Zabbix.

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

Если не контролировать постоянно состояние дисков и массивов, рано или поздно сервер прекратит свою работу. А если вдобавок еще и не делать резервное копирование данных, то в худшем случае при аварии с дисками можно потерять бизнес.

Читать далее
Total votes 9: ↑8 and ↓1 +7
Comments 13

Устаревшие Python-библиотеки, с которыми пора попрощаться

Reading time 11 min
Views 32K

В Python, с каждым релизом, добавляют новые модули, появляются новые и улучшенные способы решения различных задач. Все мы привыкли пользоваться старыми добрыми Python-библиотеками, привыкли к определённым способам работы. Но пришло время обновиться, время воспользоваться новыми и улучшенными модулями и их возможностями.

Читать далее
Total votes 37: ↑35 and ↓2 +33
Comments 29

Веб-комиксы про жизнь айтишников: от зарождения и до наших дней

Reading time 7 min
Views 12K

Интернет-комиксы как явление даже старше, чем сама Всемирная сеть. Первые из них увидели свет ещё в середине 1980-х годов. Пионером жанра стал легендарный и таинственный Witches and Stitches от детройтского художника Эрика Милликина. Пародия на «Волшебника из страны Оз» распространялась по электронной почте и через другие ранние способы обмена информацией: WWW появится только в начале 90-х, а возможность размещать изображения во Всемирной паутине — в 1992-м.

Ведьминская тематика была неожиданной для сети тех времён, когда кроме профессиональных технарей в ней никого толком и не было — но Милликин, один из основателей и пионеров виртуального искусства как такового — считает себя потомком одной из салемских ведьм XVII века. А в уже тогда любившей приколы и гэги ранней интернет-среде мрачно-ироничные стрипы про ведьм разлетались не хуже конфет на Хеллоуин.
Читать дальше →
Total votes 45: ↑45 and ↓0 +45
Comments 11

Мозг придумает отмазки почему вам не надо заниматься спортом

Reading time 8 min
Views 22K

В предыдущих статьях мы все разбирали пользу физической активности и ее влияние на организм на разных уровнях. Все и так понятно, мы созданы как двигательные механизмы, без движения организм «ржавеет».  Но что ж все мы так до сих пор придумываем отмазки, чтобы не идти на тренировку или пробежку, а полежать на диване?

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

Мы все те же первобытные люди с теми же инстинктами и тягой к углеводам, управляемые гормонами, живущие в стрессе, а дешевая и доступная доставка еды с быстрыми углеводами и жирами хорошо успокаивает. Мозг призван защитить нас в неблагоприятных условиях окружающей среды, а миллионы лет эволюции проходили только в условиях недостатка пищевых ресурсов. Наш мозг все еще по-древнему пытается экономить силы и энергию и стремится при первой возможности запасти жировые запасы на случай голодных времен. Он не понимает, что их нет, так как не сталкивался с такими условиями за все миллионы лет эволюции, поэтому у нас и нет ограничения по верхней планке запасов жира, некоторые люди весят 500–600 кг.

Читать далее
Total votes 39: ↑29 and ↓10 +19
Comments 156

Другая Латинская Америка и как туда уехать удаленщиком

Reading time 5 min
Views 18K

Мы привыкли представлять себе Латинскую Америку как такой тропический рай, в котором красивые люди играют в волейбол под пальмами где-то на белоснежном пляже... это правда, но есть и совсем другая Латинская Америка, которая больше похожа на Швейцарию, чем на тропическую сказку. Добро пожаловать в город Барилоче в Аргентине - это новая популярная локация для удалeнщиков со всего мира!

Vamos!
Total votes 22: ↑18 and ↓4 +14
Comments 35

19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 5. Асинхронное программирование

Reading time 12 min
Views 13K

Выше мы рассмотрели, как появились генераторы, как они работают и как их можно использовать в роли сопрограмм. Еще раньше было разобрано, как реализовать асинхронность на колбеках с помощью модуля selectors. Теперь соединим оба материала и реализуем настоящую асинхронность — на сопрограммах (coroutines).

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

Читать далее
Total votes 8: ↑7 and ↓1 +6
Comments 0

19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 4. Сопрограммы в Python

Reading time 8 min
Views 7.7K

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

Поскольку асинхронность в Python реализована через сопрограммы, или корутины (coroutines), сопрограммы произошли из генераторов, генераторы появились из итераторов, а итераторы были созданы для перебора последовательности, то начнем с перебора последовательности и пройдем всю приведенную цепочку в обратном направлении.

Читать далее
Total votes 11: ↑11 and ↓0 +11
Comments 1

19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 3. Первый подход к асинхронности

Reading time 11 min
Views 11K

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

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

Но, к счастью, существует и третий вариант — кооперативная многозадачность с помощью системного вызова select и его аналогов (poll, epoll и других). Он позволяет мультеплексировать несколько задач в одном потоке выполнения и в сущности является обычной синхронной программой. А потому никаких дополнительных трат процессорного времени и времени разработчиков не требуется.

Читать далее
Total votes 15: ↑13 and ↓2 +11
Comments 4

19 способов сделать сокет-сервер на Python. Эволюционный подход. Часть 2. Блокирующие сокеты и многозадачность

Reading time 13 min
Views 15K

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

Читать далее
Total votes 10: ↑9 and ↓1 +8
Comments 1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity