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

Сотрудничество: @stein_media
Download Telegram
😊 Более подробное описание по часто встречающимся кодам статусов ответов

1. 1ХХ (информация)
101 Switching Protocols Запрос принят, сервер предлагает дальнейшее взаимодействие выполнять по другому протоколу (например, WebSocket).

2. 2ХХ (успешное выполнение)
200 OK Запрос выполнен успешно.
201 Created В результате выполнения запроса на сервере был успешно создан ресурс (например, в ответ на запрос PUT).

3. 3ХХ (перенаправление)
301 Moved Permanently Запрошенный ресурс был перемещен. Новый URL ресурса указывается в заголовке ответа Location. В дальнейшем клиенту рекомендуется использовать новый URL.
302 Found Запрошенный ресурс был временно перемещен в другое место. Новый URL ресурса указывается в заголовке ответа Location. В дальнейшем клиенту рекомендуется использовать старый URL, т.к. перемещение временное.
304 Not Modified Запрошенный ресурс не был изменен, поэтому можно взять ресурс из кэша, а не передавать его по сети.

4. 4ХХ (ошибка клиента)
400 Bad Request Запрос не может быть обработан из-за ошибки синтаксиса.
403 Forbidden Доступ к запрошенному клиентом ресурсу запрещен.
404 Not Found Запрошенный ресурс не найден на сервере.

5. 5ХХ (ошибка сервера)
500 Internal Server Error Запрос не может быть выполнен из-за внутренней ошибки в программном обеспечении сервера.
501 Not Implemented Сервер не поддерживает запрошенную функциональность, например, не может выполнить запрошенный метод HTTP для указанного ресурса.
505 HTTP Version Not Supported Версия HTTP, указанная в запросе, не поддерживается.

Полный список кодов ответов с описанием можно посмотреть в разделе «Status Codes» документа RFC 9110.

#HTTP #Status | 😏 @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
🥷 Джонни вещает: распространенные ошибки веб-сервера Nginx (1 ч.)

Начинаем объемную рубрику, которая посвящена ошибкам веб-сервера Nginx, с которыми вы сталкивались или столкнетесь (не дай бог конечно🚬)

Стартуем с самой тяжелой ошибки — Unable to connect/Refused to Connect 🪫

Если при попытке получить доступ к вашему сайту вы видите следующие ошибки — Firefox can’t establish a connection to the server at www.example.com, или www.example.com refused to connect, то причины следующие:

Nginx не запущен: проверьте состояние Nginx с помощью sudo systemctl status nginx.

Запустите Nginx с помощью sudo systemctl start nginx. Если Nginx не удается запустить, запустите sudo nginx -t, чтобы выяснить, нет ли ошибок в вашем конфигурационном файле, и проверьте логи (sudo journalctl -eu nginx), чтобы выяснить, почему он не запускается.

Брандмауэр блокирует порты 80 и 443: если вы используете брандмауэр UFW на Debian/Ubuntu, выполните sudo ufw allow 80,443/tcp, чтобы открыть TCP порты 80 и 443.

— Если вы используете Firewalld на RHEL/CentOS/Rocky Linux/AlmaLinux, выполните sudo firewall-cmd –permanent –add-service={http,https}, затем sudo systemctl reload firewalld, чтобы открыть TCP порты 80 и 443.

Fail2ban
: если ваш сервер использует его для блокировки вредоносных запросов — представим, fail2ban запретил ваш IP-адрес.

Решение: выполните команду sudo journalctl -eu fail2ban, чтобы проверить, не заблокирован ли ваш IP-адрес. Вы можете добавить свой IP-адрес в список fail2ban ignoreip, чтобы он получил разбан.

🌃 Ошибки 404 Not Found и 403 Forbidden я разберу во второй части, а сейчас поставьте реакций, чтобы ускорить ее выход 💵

#Nginx | 😏 @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥61
🥷 Джонни вещает: консольная утилита для визуализации результата любых shell команд

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

Наблюдение за изменением состояния в базе данных, мониторинг размера очередей, телеметрия с удаленных серверов, запуск деплой скриптов и получение нотификации по завершению — конфигурируется за минуту простым YAML файлом.

🕹 Код доступен на гитхабе. Инструкции по установке — для Linux, macOS и (экспериментально) Windows.

Но, зачем мне твоя бурда, когда у меня есть, допустим, полноценные системы мониторинга? - а я сразу оговорюсь, что это ни в коей мере не альтернатива полномасштабным дашбордам и мониторингу. Сравнивать Sampler c Prometheus+Grafana — то же что сравнивать tail и less с Elastic Stack или Splunk.

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

Каждый компонент на дашборде имеет init секцию, где можно произвести вход по ssh (или сделать любое другое действие для входа в interactive shell — установить соединение с БД, подключиться по JMX, авторизоваться в API, итп)

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

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

#DevOps #shell #prototyping | 😊 @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥4👎1
Media is too big
VIEW IN TELEGRAM
🥷 Джонни вещает: деление IP сети на подсети при помощи маски легко и быстро

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

🌃 youtube.com (руководство как поднять впн для комфортного просмотра YT)

#IP #Subnet #Summarization
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22
🥷 Джонни вещает: Осеннее обновление: релиз Proxmox VE 8.3

Проксмокс, он же прокс, он же Proxmox VE, или Proxmox Virtual Environment - в очередной раз обновился. Платформа виртуализации, плавно, в отличии от конкурентов развивающаяся уже 16 с половиной лет (!), вышла, в этот раз, с небольшим, но интересным списком обновлений.

— Эта версия построена на базе Debian 12.8 (Bookworm), но использует ядро Linux 6.8.12-4 по умолчанию, с возможностью выбора ядра 6.11. Программное обеспечение включает обновления таких технологий, как QEMU 9.0.2, LXC 6.0.0 и ZFS 2.2.6 (с совместимостью для ядра 6.11).

❗️ Улучшения в Proxmox Virtual Environment 8.3
1. Интеграция SDN и брандмауэра:
SDN позволяет создавать виртуальные сети (VNet-ы) и управлять ими через веб-интерфейс Proxmox VE. Теперь SDN интегрирован с брандмауэром, автоматически создавая IP-set-ы для VNet-ов и виртуальных гостей. Это упрощает создание и управление правилами брандмауэра. Новый брандмауэр на основе nftables может фильтровать сетевой трафик как на уровне хоста, так и на уровне VNet.

2. Webhook-и для системы уведомлений: Система уведомлений Proxmox позволяет настраивать HTTP-запросы для различных событий, таких как обновления системы или проблемы с узлами кластера. Это позволяет интегрироваться с сервисами, поддерживающими webhook-и.

3. Новая функция «Tag View» для дерева ресурсов: Позволяет пользователям быстро видеть виртуальных гостей, сгруппированных по тегам.

4. Поддержка Ceph Squid (technology preview): Добавлена поддержка Ceph Squid 19.2.0, а также продолжается поддержка Ceph Reef 18.2.4 и Ceph Quincy 17.2.7. Пользователи могут выбрать предпочтительную версию Ceph при установке.

5. Быстрее резервные копии контейнеров: При резервном копировании контейнеров на Proxmox Backup Server теперь можно пропускать файлы, которые не изменились с момента последнего бэкапа, что ускоряет процесс.

6. Миграция с других гипервизоров: Упрощен импорт виртуальных машин из форматов OVF и OVA через веб-интерфейс Proxmox VE. Также появился мастер импорта для миграции виртуальных машин с других гипервизоров, таких как VMware.

Proxmox VE 8.3 доступен для скачивания тут. ISO-образ содержит полный набор функций и может быть установлен на "голое железо". Обновления дистрибутива с более ранних версий Proxmox VE возможны через apt. Возможно установить Proxmox VE 8.3 в Debian.

#VE #Proxmox | 😊 @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Media is too big
VIEW IN TELEGRAM
наглядно изменения в видеоролике
👍11
🥷 Джонни вещает: как провести стресс-тестирование вашей системы Linux

Стресс-тестирование Linux — ключевой этап подготовки серверов к реальной работе.

Оно позволяет выявить слабые места системы, проверить её устойчивость под высокой нагрузкой и подготовиться к неожиданным пиковым ситуациям. Разберем простые методы и мощные инструменты, которые помогут нагрузить систему и оценить её поведение.

Методы стресс-тестирования Linux

1. Нагрузка через циклы

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

Запуск нагрузки:

for i in 1 2 3 4; do while : ; do : ; done & done

Каждый цикл запускается в фоновом режиме и увеличивает нагрузку на ЦП.

Мониторинг нагрузки:
Запускайте команду uptime каждые 30 секунд, чтобы наблюдать за изменением средней загрузки:

while true; do uptime; sleep 30; done

Остановка нагрузки:
Чтобы завершить циклы, используйте kill, указав номера заданий:

kill %1 %2 %3 %4

2. Использование утилиты stress

stress — мощный инструмент, который позволяет создавать нагрузку на различные ресурсы системы: ЦП; память; ввод/вывод

Примеры использования stress:
Нагрузка на процессор:
stress --cpu 4

Чем больше указано ядер (--cpu), тем выше нагрузка на систему.

Нагрузка на память:
stress --vm 2

Нагрузка на ввод/вывод (I/O):
stress --io 4

Для анализа работы ввода/вывода используйте iotop:
sudo iotop

3.
Написание скриптов для мониторинга

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

#!/bin/bash
while true
do
free
sleep 30
done


Скрипт отображает использование памяти каждые 30 секунд. Вы можете адаптировать его под свои задачи.

Проведение стресс-тестов помогает: подготовиться к реальным пиковым нагрузкам; улучшить производительность системы; найти и устранить возможные проблемы на этапе разработки.

#Stress | @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
🥷 Джонни вещает: распространенные ошибки веб-сервера Nginx (2 часть)

Продолжаем сложный разбор полетов ошибок веб-сервера Nginx. Не забудьте воткнуть реакции, чтобы порадовать Джонни ❤️

Ошибка 404 Not Found: ошибка означает, что Nginx не может найти ресурсы, которые запрашивает ваш веб-браузер 🔍

Причины могут быть следующие:
1. Корневой каталог web не существует на вашем сервере. В Nginx корневой веб-каталог настраивается с помощью директивы root, например, так: root /usr/share/nginx/linuxbabe.com/; Убедись, что файлы вашего сайта (HTML, CSS, JavaScript, PHP) хранятся в правильном каталоге.

2. PHP-FPM не запущен. Вы можете проверить статус PHP-FPM с помощью sudo systemctl status php7.4-fpm (Debian/Ubuntu) или sudo systemctl status php-fpm.

3. Вы забыли включить директиву try_files $uri /index.php$is_args$args в конфигурационный файл сервера Nginx. Эта директива необходима для обработки PHP-кода.

4. На вашем сервере нет свободного дискового пространства. Попробуйте освободить немного дискового пространства. Вы можете использовать утилиту ncdu (sudo apt install ncdu или sudo dnf install ncdu) чтобы узнать, какие каталоги занимают большое количество дискового пространства.

Ошибка 403 Forbidden: здесь все просто — вам запрещен доступ к ресурсам запроса, а причины такого исхода событий интересные до жути 🍒

1. Администратор сайта блокирует публичный доступ к запрашиваемым ресурсам с помощью Black списка IP-адресов или других методов.

2. На сайте может использоваться брандмауэр веб-приложения, например ModSecurity, который обнаружил атаку вторжения, поэтому заблокировал запрос.

3. Некоторые веб-приложения могут показывать другое сообщение об ошибке, когда происходит запрет 403. Оно может сказать вам, что “secure connection failed", хотя причина та же.

#Nginx | 😏 @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥1
🥷 Джонни вещает: проброс X-сервера

Теория: Графические приложения в юникс обычно используют X-сервер (wayland в пути, но всё ещё не готов). Это означает, что приложение запускается и подключается к X-серверу для рисования. Иными словами, если у вас есть голый сервер без гуя и есть локальный x-сервер (в котором вы работаете), то вы можете дать возможность приложениям с сервера рисовать у вас на рабочем столе.

❗️ Обычно подключение к удалённом X-серверу — не самая безопасная и тривиальная вещь.

SSH позволяет упростить этот процесс и сделать его совсем безопасным. А возможность жать трафик позволяет ещё и обойтись меньшим трафиком (т.е. уменьшить утилизацию канала, то есть уменьшить ping (точнее, latency), то есть уменьшить лаги).

🕹 Ключики: -X — проброс X-сервера. -Y проброс авторизации.

Достаточно просто запомнить комбинацию ssh -XYC user@SERVER. Безопасность microsoft при работе в сети мы все хорошо знаем, так что выставлять наружу голый RDP неуютно. Вместо этого мы подключаемся к серверу по ssh, а дальше запускаем там команду rdesktop:

ssh ric
rdesktop -k en-us 192.168.1.1 -g 1900x1200

👌 И чудо, окошко логина в Windows на нашем рабочем столе. Заметим, тщательно зашифрованное и неотличимое от обычного SSH-трафика.

#SSH | 😏 @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥4
🥷 Джонни вещает: памятка пользователям SSH

В посте описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт SSH:

управление ключами SSH
проброс портов
алиасы в SSH
ключ сервера SSH
вложенные туннели
динамический проброс портов
проброс авторизации
проброс X-сервера
реверс сокс-прокси

#SSH | 😏 @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍5
Сетевик Джонни // Network Admin
🥷 Джонни вещает: памятка пользователям SSH В посте описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей…
🥷 Джонни вещает: проброс stdin/out

Допустим, мы хотим сделать запрос к программе удалённо, а потом её вывод поместить в локальный файл

ssh user@8.8.8.8 command >my_file

Допустим, мы хотим локальный вывод положить удалённо

mycommand |scp — user@8.8.8.8:/path/remote_file

Усложним пример — мы можем прокидывать файлы с сервера на сервер: Делаем цепочку, чтобы положить stdin на 10.1.1.2, который нам не доступен снаружи:

mycommand | ssh user@8.8.8.8 «scp — user@10.1.1.2:/path/to/file»

Есть и вот такой головоломный приём использования pipe'а (любезно подсказали в комментариях в жж):

tar -c * | ssh user@server "cd && tar -x"

Tar запаковывает файлы по маске локально, пишет их в stdout, откуда их читает ssh, передаёт в stdin на удалённом сервере, где их cd игнорирует (не читает stdin), а tar — читает и распаковывает. Так сказать, scp для бедных.

#SSH | 😏 @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4
Сетевик Джонни // Network Admin
🥷 Джонни вещает: проброс stdin/out Допустим, мы хотим сделать запрос к программе удалённо, а потом её вывод поместить в локальный файл ssh user@8.8.8.8 command >my_file Допустим, мы хотим локальный вывод положить удалённо mycommand |scp — user@8.8.8.…
🥷 Джонни вещает: туннелирование

Если к этому моменту попа отдела безопасности не сияет лысиной, а SSH всё ещё не внесён в список врагов безопасности номер один, вот вам окончательный убийца всего и вся: туннелирование IP или даже ethernet. В самых радикальных случаях это позволяет туннелировать DHCP, заниматься удалённым arp-спуфингом, делать wake up on lan и прочие безобразия второго уровня.

Подробнее описано тут: https://la11111.wordpress.com/2012/09/24/layer-2-vpns-using-ssh/

(сам я увы, таким не пользовался).

— Легко понять, что в таких условиях невозможно никаким DPI (deep packet inspection) отловить подобные туннели — либо ssh разрешён (читай — делай что хочешь), либо ssh запрещён (и можно смело из такой компании идиотов увольняться не ощущая ни малейшего сожаления).

#SSH | 😏 @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤯2
🥷 Джонни вещает: руководство по настройке и использованию rsync

rsync — это мощный инструмент для копирования и синхронизации данных на Linux, который особенно полезен для резервного копирования. Его отличительная черта — передача только изменённых частей файлов, что делает процесс очень быстрым.

🕹 Основные команды rsync:

1. Базовая синхронизация:
rsync -av /источник/ /назначение/
-a (archive): сохраняет структуру каталогов, атрибуты файлов и символьные ссылки.
-v (verbose): выводит информацию о копируемых файлах.

2. Сжатие передаваемых данных:
rsync -az /источник/ /назначение/
-z (compress): сжимает данные, уменьшая объём передачи.

3. Копирование через SSH:
rsync -avz -e ssh /источник/ user@server:/назначение/
-e ssh: указывает использование SSH для безопасной передачи данных.

4. Удаление файлов в папке назначения, которые отсутствуют в источнике:
rsync -av --delete /источник/ /назначение/

Примеры сценариев использования
1. Резервное копирование локального каталога:
rsync -av --progress /home/user/documents/ /backup/documents/
--progress: отображает прогресс копирования.

2. Синхронизация с удалённым сервером:
rsync -avz /data/ user@remote:/backup/data/

3. Исключение определённых файлов или папок:
rsync -av --exclude='*.tmp' --exclude='cache/' /источник/ /назначение/
--exclude: исключает файлы или каталоги, соответствующие шаблону.

Автоматизация с помощью Cron
Для регулярного выполнения резервного копирования используйте планировщик заданий cron.

1. Откройте файл cron:
crontab -e

2. Добавьте задание (например, ежедневное копирование в 2:00 ночи):
0 2 * * * rsync -avz /data/ user@server:/backup/data/

Полезные флаги и опции
--progress отображает статус копирования.
--dry-run симулирует выполнение команды без фактического копирования.
--exclude исключает определённые файлы или папки.
--delete удаляет файлы в папке назначения, которые отсутствуют в источнике.
--bwlimit=KBytes ограничивает скорость передачи данных.

❗️ Каковы преимущества rsync: эффективное использование сетевых и дисковых ресурсов, гибкость благодаря множеству настроек, cовместимость с SSH для безопасной передачи данных.

#rsync | 😏 @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🥷 Джонни вещает: portknocking на mikrotik

В этом видео мы познакомим вас с порткнокингом микротика, этот метод может помочь безопаснее использовать ваш Mikrotik. Легко и просто, всего в несколько шагов, вы увидите как настроить port knocking и создать скрипт для его использования.

#mikrotik | 😏 @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3
Сетевик Джонни // Network Admin
🥷 Джонни вещает: portknocking на mikrotik В этом видео мы познакомим вас с порткнокингом микротика, этот метод может помочь безопаснее использовать ваш Mikrotik. Легко и просто, всего в несколько шагов, вы увидите как настроить port knocking и создать скрипт…
This media is not supported in your browser
VIEW IN TELEGRAM
🥷 Джонни вещает: Mikrotik на VPS

Превращаем недорогой виртуальный сервер в производительный роутер, который можно будет использовать для VPN, собственного выделенного IP или объединения удаленных пользователей без применения дорогостоящих решений

Тайм-коды:
00:00 Введение, для чего все это
00:48 Настраиваем VPS
01:31 Подключаемся по ssh
01:45 Скачивание дистрибутива CHR
02:06 Распаковка и установка имиджа
02:16 Начальная настройка виртуального Mikrotik
03:13 Подключение по winbox
03:52 Настройка DNS
04:06 Изменение Identity
04:24 Настраиваем безопасность
04:50 Отключаем ненужное
05:41 Изменение порта winbox
06:08 Настройка firewall
07:10 Лицензирование RouterOS
07:44 Роутер готов к работе
07:52 Возвращаем все в исходное состояние

#mikrotik #VPS | 😏 @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍6
Media is too big
VIEW IN TELEGRAM
🥷 Джонни вещает: установка и настройка Sysmon

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

Установка системы занимает считанные секунды и может быть полностью автоматизирована.

EDR (Endpoint Detection & Response) - система обнаружения вредоносной активности на конечных точках
SIEM (Security information and event management) - система анализа в реальном времени событий безопасности


#sysmon #EDR #SIEM | 😏 @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
This media is not supported in your browser
VIEW IN TELEGRAM
🥷 Джонни вещает: Изменение Windows 10 из Proffesional в Enterprise 2021 LTSC

В этом видео продемонстрируют, как просто и быстро превратить вашу версию Windows 10 Professional в Windows 10 Enterprise. Пошаговая инструкция, как изменить версию системы, чтобы увеличить возможности вашей ОС.

Это позволит получить доступ к расширенным инструментам и функциям, которые будут полезны для профессиональной работы с вашим компьютером.

#Windows | 😏 @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🤣2
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥40👍17🤨2
🥷 Джонни вещает: сказ о том, как два сервера изменили судьбу сетевой команды

Жили были два сервера. Да и не сервера вовсе, а виртуальные машины. Жили не тужили, добро наживали, скриптами разными обрастали. Три года они трудились на славу облака да во имя автоматизации. Пока не наступили чёрные дни для RAID-массива на гипервизоре.

habr.com

#Network #CICD #Automotization | 😏 @iscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8