Сетевик Джонни // Network Admin
5.95K subscribers
517 photos
61 videos
390 links
Я Сетевик Джонни, моя цель в телеграме рассказать все о сетях в доступной форме!

Сотрудничество: @stein_media
Download Telegram
🥷 Разработка Nginx перешла с Mercurial на Git и GitHub

Разработчики Nginx перенесли официальный репозиторий проекта на GitHub и задействовали платформы GitHub Issues и GitHub Discussions вместо системы отслеживания ошибок trac.nginx.org и обсуждений в почтовых рассылках.

Для приёма изменений от других участников проекта и разработчиков реализована возможность использования pull-запросов. Система отслеживания ошибок trac.nginx. org переведена в режим только для чтения. Для того, чтобы дать разработчикам и пользователям время на адаптацию к новому укладу, кроме использования GitHub, до 31 декабря будет сохранена возможность отправки патчей и получения консультаций через списки рассылки.

#nginx
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Вся машина в кинетиках..
🔥123
This media is not supported in your browser
VIEW IN TELEGRAM
🥷 Джонни вещает: проброс портов

Мы переходим к крайне сложной для понимания части функционала SSH, позволяющей осуществлять головоломные операции по туннелированию TCP «из сервера» и «на сервер».

🆘 Для понимания ситуации пример ниже будет ссылаться на вот эту схему (click)

Комментарии: Две серые сети. Первая сеть напоминает типичную офисную сеть (NAT), вторая — «гейтвей», то есть сервер с белым интерфейсом и серым, смотрящим в свою собственную приватную сеть. В дальнейших рассуждениях мы полагаем, что «наш» ноутбук — А, а «сервер» — Б.

Задача: у нас локально запущено приложение, нам нужно дать возможность другому пользователю (за пределами нашей сети) посмотреть на него.

Решение: проброс локального порта (127.0.0.1:80) на публично доступный адрес. Допустим, наш «публично доступный» Б занял 80ый порт чем-то полезным, так что пробрасывать мы будем на нестандартный порт (8080).

ssh -R 127.1:80:8.8.8.8:8080 user@8.8.8.8

🖥 Итоговая конфигурация: запросы на 8.8.8.8:8080 будут попадать на localhost ноутбука А. Опция -R позволяет перенаправлять с удалённого (Remote) сервера порт на свой (локальный).
Важно: если мы хотим использовать адрес 8.8.8.8, то нам нужно разрешить GatewayPorts в настройках сервера Б.

#SSH #NAT | 😊 @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Вызываем демона отслеживания пакетов 👹
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣16👍4🔥4
⌨️ Большая подборка вопросов с собеседований: Системного администратора Linux/Devops

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

1. Вопросы для интервью системного администратора Linux/DevOps
2.
Вопросы системного администратора
3.
100 важных вопросов на собеседовании по Linux с ответами
4.
Подборка вопросов для собеса с системным администратором Linux/DevOps
5.
Дополнительные вопросы для собеседования с системным администратором
6.
Полезный материал для подготовки к собеседованию на должность инженера DevOps: Исчерпывающее руководство

#Linux #DevOps #SysAdmin #Interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Как данные передаются через Интернет? Какое это имеет отношение к модели OSI? Как TCP/IP вписывается в это?

🚠 Семь уровней модели OSI:

1. Физический уровень
2. Канальный уровень
3. Сетевой уровень
4. Транспортный уровень
5. Сеансовый уровень
6. Уровень представления
7. Прикладной уровень

#Network #OSI | 🏃‍♂️ @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
🥷 Джонни вещает: откуда этот конфиг? [Debian/Ubuntu]

Цель этого поста: показать технику отладки в debian/ubuntu, связанную с "поиском первоисточника" в системном конфигурационном файле.

🖥 Тестовый пример: после долгих издевательств над tar.gz копией установленной ОС и после её восстановления и установки апдейтов мы получаем сообщение:

update-initramfs: Generating /boot/initrd.img-4.15.0-54-generic
W: initramfs-tools configuration sets RESUME=/dev/mapper/U1563304817I0-swap
W: but no matching swap device is available.
I: The initramfs will attempt to resume from /dev/dm-1
I: (/dev/mapper/foobar-swap)
I: Set the RESUME variable to override this.

🕹 Цель: понять, откуда это значение (U1563304817I0) пришло и как его правильно поменять. Это первый попавшийся пример, не особо интересный сам по себе, но удобный, чтобы показать практические методы работы с Linux.

Шаг номер 1: Откуда пришёл RESUME?

# cd /etc
# grep -r RESUME
initramfs-tools/conf.d/resume:RESUME=/dev/mapper/U1563304817I0-swap

Мы рекурсивно (-r) ищем упоминание этой переменной в каталоге /etc (там, где большинство конфигов). Мы находим conf.d сниппет, который явно используется пакетом initramfs-tools.

Теперь новый вопрос, а откуда этот сниппет? - есть три варианты:
1. Магический артефакт(кто-то положил и забыл )
2. Конфиг из пакета
3. Конфиг, сгенерированный каким-то скриптом из системных пакетов

Теперь проверяем c помощью dpkg -S он позволяет нам поискать по базе установленных файлов и найти к какому пакету файл относится.

dpkg -S initramfs-tools/conf.d/resume
dpkg-query: no path found matching pattern *initramfs-tools/conf.d/resume*

Вот пример удачного поиска:

dpkg -S resolv.conf
manpages: /usr/share/man/man5/resolv.conf.5.gz
systemd: /lib/systemd/resolv.conf

Возвращаемся к нашей задаче: файл initramfs-tools/conf.d/resume не устанавливается в систему из пакета. Может быть он генерируется в postinst/preinst скрипте пакета? Проверяем третью версию 😡

# cd /var/lib/dpkg/info/
# grep -r initramfs-tools/conf.d/resume *
initramfs-tools-core.postrm: rm -f /etc/initramfs-tools/conf.d/resume

В каталоге /var/lib/dpkg/info/ лежат распакованные версии всех "метафайлов" пакетов (скрипты установки/удаления, описания пакетов и т.д.). Удивительно, но этот файл удаляется в postrm (при удалении) пакета initramfs-tools-core. Посмотрим содержимое его postinst… Ничего, касающегося conf.d директории.

Давайте взглянем на файлы из состава пакета initramfs-tools-core.

# dpkg -L initramfs-tools-core
...
/usr/share/initramfs-tools/hooks/resume
...

Команда dpkg -L позволяет посмотреть все файлы, которые есть в системе от указанного пакета. Я выделил интересный для изучения файл. Изучение файла показывает как эта переменная используется, но не отвечает откуда он появляется.

💳 Если пост понравился, жду от вас реакций и выпускаю на ту же тему, но уже о базе ответов debconf

#Debian #Ubuntu #dpkg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥1
Сетевик Джонни // Network Admin
🥷 Джонни вещает: откуда этот конфиг? [Debian/Ubuntu] Цель этого поста: показать технику отладки в debian/ubuntu, связанную с "поиском первоисточника" в системном конфигурационном файле. 🖥 Тестовый пример: после долгих издевательств над tar.gz копией установленной…
🥷 Джонни вещает: debconf

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

Мы можем посмотреть на базу ответов (и даже выставить их до установки самого пакета — debconf-set-selections), для этого нам потребуется утилита debconf-get-selections из состава debconf-utils. К сожалению, ничего интересного не нашлось: (debconf-get-selections |grep -i resume вернул пусто).

debian-installer

У установщика есть своя база ответов на вопросы: /var/log/installer/cdebconf/questions.dat. К сожалению, там тоже нет ни слова про наш resume.
Зато рядом есть логи, в т.ч. syslog, куда пишется весь лог инсталляции. Там упоминается пакет base-installer, и на его странице мы можем видеть ссылку на сырцы.

🖥 Внутри них мы с лёгкостью находим ответ на наш вопрос:

resume="$(mapdevfs "$resume_devfs")"; then
...
if [ "$do_initrd" = yes ]; then
...
resumeconf=$IT_CONFDIR/resume
....
echo "RESUME=$resume" >> $resumeconf

mapdevfs — это утилита с понятным назначением, а интересная нам функция это get_resume_partition, которая читает /proc/swaps и выбирает там самую большую. Swap же у нас приходит от partman'а.

Ответ на наше тестовое задание: файл создаётся инсталлятором в /target'е в момент установки, т.е. мы говорим про well-known, но артефакт. В существующих в системе пакетах нет никого и ничего, чтобы меняло этот файл.

❗️ Подводя итог: dpkg и debconf — основные методы для поиска поставщиков файлов; поиск в /var/lib/dpkg/info позволяет увидеть операции над файлами на этапе установки; установщик может создавать файлы-артефакты, которые потом никем никогда не меняются (кроме пользователя), и это можно увидеть в коде установщика.

#Linux #DevOps #debconf | 🏃‍♂️ @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥2