Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Основные типы:
• CFQ (Completely Fair Queuing): Равномерное распределение ресурсов для процессов.
• Deadline: Обеспечивает выполнение операций в установленные сроки.
• Noop: Минимальные операции, подходит для систем с кэшированием.
Чтобы проверить текущий scheduler:
cat /sys/block/sda/queue/scheduler
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍6
Команда strings в Linux: просмотр текста в двоичных файлах (Часть 1)
Нужно извлечь текст из бинарного файла? Команда strings найдёт и выведет печатаемые символы, игнорируя всё остальное.
Зачем нужна команда strings?
Двоичные файлы, такие как исполняемые программы, содержат фрагменты читаемого текста. Но если открыть их через cat или less, терминал может зависнуть из-за непечатаемых символов. strings решает проблему, отображая только текстовые строки, которые можно использовать в других командах.
Как пользоваться strings?
Простейший способ — передать команде имя файла:
Это выведет все строки длиной от 4 символов из файла jibber.
Изменение минимальной длины строки
Если вам нужны строки короче 4 символов, укажите это с помощью -n:
Но будьте осторожны: чем короче строки, тем больше случайного «мусора» в выводе.
Ограничение вывода с помощью less
Если файл слишком большой, лучше просматривать результат постранично:
Поиск в определённых частях файла
Чтобы искать текст только в загруженных данных, используйте флаг -d:
Во второй части расскажем, как узнать смещение строк в файле, как использовать strings для просмотра памяти и как искать сразу в нескольких файлах.
Нужно извлечь текст из бинарного файла? Команда strings найдёт и выведет печатаемые символы, игнорируя всё остальное.
Зачем нужна команда strings?
Двоичные файлы, такие как исполняемые программы, содержат фрагменты читаемого текста. Но если открыть их через cat или less, терминал может зависнуть из-за непечатаемых символов. strings решает проблему, отображая только текстовые строки, которые можно использовать в других командах.
Как пользоваться strings?
Простейший способ — передать команде имя файла:
strings jibber
Это выведет все строки длиной от 4 символов из файла jibber.
Изменение минимальной длины строки
Если вам нужны строки короче 4 символов, укажите это с помощью -n:
strings -n 2 jibber
Но будьте осторожны: чем короче строки, тем больше случайного «мусора» в выводе.
Ограничение вывода с помощью less
Если файл слишком большой, лучше просматривать результат постранично:
strings jibber | less
Поиск в определённых частях файла
Чтобы искать текст только в загруженных данных, используйте флаг -d:
strings -d jibber | less
Во второй части расскажем, как узнать смещение строк в файле, как использовать strings для просмотра памяти и как искать сразу в нескольких файлах.
👍14❤1
Какой системный вызов используется для смены идентификатора пользователя в процессе?
Anonymous Quiz
59%
setuid()
6%
execve()
10%
fork()
25%
chroot()
👍10
В США запустили самый мощный суперкомпьютер El Capitan
В Национальной лаборатории Ливермора заработал самый мощный суперкомпьютер в мире — El Capitan.
Проект стоимостью 600 млн долларов создан для моделирования ядерного арсенала США и научных исследований.
Система оснащена 11 млн ядер AMD EPYC с ускорителями MI300X, работает на HPE Cray OS и имеет пиковую мощность 2,746 экзафлопса.
El Capitan заменил суперкомпьютер Sierra, который теперь занимает 14-е место в мире.
В Национальной лаборатории Ливермора заработал самый мощный суперкомпьютер в мире — El Capitan.
Он возглавил рейтинг Top500 2024 года с производительностью 1,742 экзафлопса.
Проект стоимостью 600 млн долларов создан для моделирования ядерного арсенала США и научных исследований.
Система оснащена 11 млн ядер AMD EPYC с ускорителями MI300X, работает на HPE Cray OS и имеет пиковую мощность 2,746 экзафлопса.
El Capitan заменил суперкомпьютер Sierra, который теперь занимает 14-е место в мире.
👍15👎1
Настройка скорости и дуплекса сетевого адаптера в Linux с помощью ethtool
В этом посте разберёмся, как управлять параметрами скорости, дуплекса и автосогласования с помощью утилиты ethtool, а также разберём возможные ошибки при настройке сети.
Полудуплекс, полный дуплекс и автосогласование
• Полудуплекс (Half-duplex) – устройство может либо отправлять, либо получать данные, но не одновременно.
• Полнодуплекс (Full-duplex) – передача и приём происходят одновременно, что значительно повышает эффективность соединения.
• Автосогласование (Auto-Negotiation) – автоматический выбор наилучшего режима связи. Рекомендуется оставлять его включённым.
Дуплексное несоответствие и его последствия
Дуплексное несоответствие возникает, когда одно устройство использует автосогласование, а другое – фиксированные настройки. В этом случае первое устройство, скорее всего, выберет полудуплекс, тогда как второе останется в полнодуплексном режиме. Это приводит к потере пакетов и резкому падению скорости передачи данных.
Установка ethtool
Если утилита ethtool отсутствует, установите её с помощью:
• Fedora, CentOS, RHEL:
• Ubuntu, Debian:
Проверка текущих параметров сетевой карты
Сначала нужно узнать имя сетевого интерфейса. Для этого выполните команду:
Вывод может выглядеть так:
Теперь проверим текущие настройки адаптера:
Вывод покажет, какая скорость, дуплекс и автосогласование установлены в данный момент.
Изменение параметров сети
Чтобы изменить настройки сетевой карты, используйте команду:
Пример установки скорости 1000 Мбит/с, полнодуплексного режима и включённого автосогласования:
Проверьте, что изменения применились:
Сохранение настроек
После перезагрузки системы изменения ethtool сбрасываются. Чтобы сделать их постоянными, добавьте строку в конфигурационный файл интерфейса:
Добавьте:
Теперь параметры будут сохраняться после каждой перезагрузки.
Во второй части разберём диагностику сети, поиск неисправностей и тестирование адаптера с помощью ethtool.
Конфигурация сетевой карты влияет на стабильность и скорость работы сервера.
В этом посте разберёмся, как управлять параметрами скорости, дуплекса и автосогласования с помощью утилиты ethtool, а также разберём возможные ошибки при настройке сети.
Полудуплекс, полный дуплекс и автосогласование
• Полудуплекс (Half-duplex) – устройство может либо отправлять, либо получать данные, но не одновременно.
• Полнодуплекс (Full-duplex) – передача и приём происходят одновременно, что значительно повышает эффективность соединения.
• Автосогласование (Auto-Negotiation) – автоматический выбор наилучшего режима связи. Рекомендуется оставлять его включённым.
Дуплексное несоответствие и его последствия
Дуплексное несоответствие возникает, когда одно устройство использует автосогласование, а другое – фиксированные настройки. В этом случае первое устройство, скорее всего, выберет полудуплекс, тогда как второе останется в полнодуплексном режиме. Это приводит к потере пакетов и резкому падению скорости передачи данных.
Установка ethtool
Если утилита ethtool отсутствует, установите её с помощью:
• Fedora, CentOS, RHEL:
yum install ethtool
• Ubuntu, Debian:
sudo apt-get install ethtool
Проверка текущих параметров сетевой карты
Сначала нужно узнать имя сетевого интерфейса. Для этого выполните команду:
ifconfig
Вывод может выглядеть так:
enp0s3 Link encap:Ethernet HWaddr 00:1A:2B:3C:4D:5E
Теперь проверим текущие настройки адаптера:
ethtool enp0s3
Вывод покажет, какая скорость, дуплекс и автосогласование установлены в данный момент.
Изменение параметров сети
Чтобы изменить настройки сетевой карты, используйте команду:
sudo ethtool -s [device_name] speed [10/100/1000] duplex [half/full] autoneg [on/off]
Пример установки скорости 1000 Мбит/с, полнодуплексного режима и включённого автосогласования:
sudo ethtool -s enp0s3 speed 1000 duplex full autoneg on
Проверьте, что изменения применились:
ethtool enp0s3
Сохранение настроек
После перезагрузки системы изменения ethtool сбрасываются. Чтобы сделать их постоянными, добавьте строку в конфигурационный файл интерфейса:
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
Добавьте:
ETHTOOL_OPTS="speed 1000 duplex full autoneg on"
Теперь параметры будут сохраняться после каждой перезагрузки.
Во второй части разберём диагностику сети, поиск неисправностей и тестирование адаптера с помощью ethtool.
👍13🔥4❤1
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Применение eBPF:
— Сетевой фильтр: ускоряет обработку пакетов, применяется в XDP и Cilium.
— Мониторинг и трассировка: инструменты вроде BCC и bpftrace используют eBPF для анализа работы ядра в реальном времени.
— Безопасность: используется в системе защиты, такой как Falco, для обнаружения аномалий.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Диагностика и тестирование с ethtool
ethtool не только позволяет настраивать параметры сетевой карты, но и предоставляет полезные инструменты для диагностики и тестирования устройства.
Просмотр статистики интерфейса
Чтобы получить подробную информацию о состоянии сетевого адаптера, используйте команду:
Вывод этой команды даст вам статистику, такую как количество переданных и полученных пакетов, ошибки, количество коллизий и другие параметры, которые могут помочь в диагностике проблем с сетью. Пример вывода:
Это позволяет точно отслеживать проблемы, такие как ошибки передачи или переполнение буфера.
Физическое расположение сетевого адаптера
Если у вас несколько сетевых карт, и вы хотите определить, какая из них вызывает проблемы, ethtool может помочь. Он позволяет заставить мигать индикатор на сетевой карте, чтобы вы могли физически найти нужный адаптер.
Для этого выполните команду:
Где enp0s3 – это имя устройства, а 15 – количество секунд, в течение которых будет мигать светодиод.
Тестирование сетевого адаптера
ethtool предоставляет два типа тестов:
1. Online тест – тестирует, например, память и связь.
2. Offline тест – проверяет регистры, память и выполняет loopback-тесты.
Для запуска онлайн-теста используйте команду:
Результат покажет, прошёл ли тест или были обнаружены ошибки. Учтите, что не все устройства поддерживают оффлайн тесты.
Информация о драйверах
Чтобы узнать, какой драйвер используется вашей сетевой картой, выполните команду:
Вывод покажет имя драйвера, версию прошивки и другие технические данные, например:
ethtool не только позволяет настраивать параметры сетевой карты, но и предоставляет полезные инструменты для диагностики и тестирования устройства.
Просмотр статистики интерфейса
Чтобы получить подробную информацию о состоянии сетевого адаптера, используйте команду:
sudo ethtool -S имя_устройства
Вывод этой команды даст вам статистику, такую как количество переданных и полученных пакетов, ошибки, количество коллизий и другие параметры, которые могут помочь в диагностике проблем с сетью. Пример вывода:
NIC statistics:
rx_packets: 108048475
tx_packets: 125002612
rx_bytes: 17446338197
tx_bytes: 113281003056
rx_errors: 0
tx_errors: 0
collisions: 0
Это позволяет точно отслеживать проблемы, такие как ошибки передачи или переполнение буфера.
Физическое расположение сетевого адаптера
Если у вас несколько сетевых карт, и вы хотите определить, какая из них вызывает проблемы, ethtool может помочь. Он позволяет заставить мигать индикатор на сетевой карте, чтобы вы могли физически найти нужный адаптер.
Для этого выполните команду:
sudo ethtool -p enp0s3 15
Где enp0s3 – это имя устройства, а 15 – количество секунд, в течение которых будет мигать светодиод.
Тестирование сетевого адаптера
ethtool предоставляет два типа тестов:
1. Online тест – тестирует, например, память и связь.
2. Offline тест – проверяет регистры, память и выполняет loopback-тесты.
Для запуска онлайн-теста используйте команду:
sudo ethtool -t enp0s3 online
Результат покажет, прошёл ли тест или были обнаружены ошибки. Учтите, что не все устройства поддерживают оффлайн тесты.
Информация о драйверах
Чтобы узнать, какой драйвер используется вашей сетевой картой, выполните команду:
ethtool -i eth0
Вывод покажет имя драйвера, версию прошивки и другие технические данные, например:
driver: via-rhine
version: 1.5.0
firmware-version:
bus-info: 0000:00:06.0
👍15🔥6
Какой параметр в /etc/fstab отвечает за автоматическую проверку файловой системы при загрузке?
Anonymous Quiz
29%
defaults
16%
nofail
12%
pass
43%
auto
👻7🔥5👍3
Ookla опубликовала новый отчёт о скорости интернета в разных странах
Аналитическая компания
Ookla представила свежий рейтинг скорости интернета за январь 2025 года. Лидером по фиксированному широкополосному интернету стал Сингапур, а самый быстрый мобильный интернет оказался в ОАЭ.
Широкополосный интернет
Глобальная медианная скорость загрузки составила 97,61 Мбит/с, выгрузки — 52,84 Мбит/с, а средняя задержка — 9 мс.
Лидеры рейтинга:
⏺ Сингапур — 336,45 Мбит/с (загрузка) и 275,30 Мбит/с (выгрузка)
⏺ ОАЭ — 310,05 Мбит/с
⏺ Гонконг — 305,71 Мбит/с
⏺ Франция — 287,44 Мбит/с
⏺ Исландия — 281,95 Мбит/с
США заняли 7-е место (274,16 Мбит/с), а Россия расположилась на 67-й строчке (90,06 Мбит/с), потеряв одну позицию. Самые низкие скорости зафиксированы в Сирии и Кубе — около 3 Мбит/с.
По сравнению с январём 2024 года глобальная скорость загрузки выросла на 5,7 Мбит/с, а в Сингапуре — сразу на 60 Мбит/с.
Мобильный интернет
Средняя глобальная скорость мобильного интернета достигла 91,24 Мбит/с, что вдвое выше прошлогоднего показателя в 50 Мбит/с.
Топ-5 стран по скорости загрузки:
• ОАЭ — 545,94 Мбит/с (рост с 302,38 Мбит/с в 2024 году)
• Катар — 521,51 Мбит/с
• Кувейт — 314,39 Мбит/с
• Болгария — 252,05 Мбит/с
• Бахрейн — 213,09 Мбит/с
Россия заняла 87-е место (36,05 Мбит/с), поднявшись на 2 позиции. Самый медленный интернет зафиксирован в Боливии (13,20 Мбит/с) и Эритрее (1,88 Мбит/с).
Аналитическая компания
Ookla представила свежий рейтинг скорости интернета за январь 2025 года. Лидером по фиксированному широкополосному интернету стал Сингапур, а самый быстрый мобильный интернет оказался в ОАЭ.
Широкополосный интернет
Глобальная медианная скорость загрузки составила 97,61 Мбит/с, выгрузки — 52,84 Мбит/с, а средняя задержка — 9 мс.
Лидеры рейтинга:
США заняли 7-е место (274,16 Мбит/с), а Россия расположилась на 67-й строчке (90,06 Мбит/с), потеряв одну позицию. Самые низкие скорости зафиксированы в Сирии и Кубе — около 3 Мбит/с.
По сравнению с январём 2024 года глобальная скорость загрузки выросла на 5,7 Мбит/с, а в Сингапуре — сразу на 60 Мбит/с.
Мобильный интернет
Средняя глобальная скорость мобильного интернета достигла 91,24 Мбит/с, что вдвое выше прошлогоднего показателя в 50 Мбит/с.
Топ-5 стран по скорости загрузки:
• ОАЭ — 545,94 Мбит/с (рост с 302,38 Мбит/с в 2024 году)
• Катар — 521,51 Мбит/с
• Кувейт — 314,39 Мбит/с
• Болгария — 252,05 Мбит/с
• Бахрейн — 213,09 Мбит/с
Россия заняла 87-е место (36,05 Мбит/с), поднявшись на 2 позиции. Самый медленный интернет зафиксирован в Боливии (13,20 Мбит/с) и Эритрее (1,88 Мбит/с).
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👎2
Установка локального сервера кеширования DNS на Linux. Часть 1
Чаще всего DNS-запросы работают в фоновом режиме, и мы не замечаем их.
Как это работает?
Кэширующий DNS-сервер сохраняет результаты запросов в памяти. Если система повторно запрашивает тот же адрес, ответ выдаётся мгновенно, без обращения к внешним серверам. Это особенно полезно, если:
⏺ Провайдерские DNS-серверы медленные — сайты загружаются с задержками.
⏺ В сети выполняется много DNS-запросов — например, на сервере с антиспам-фильтрами или активной почтовой службой.
⏺ Нужна дополнительная безопасность — поддержка DNSSEC и DNS-over-TLS (DoT) помогает защититься от атак на DNS.
Например, новостной сайт может делать 100+ DNS-запросов при загрузке страницы. Даже если каждый занимает 0,1 секунды, это 10 секунд ожидания. С локальным DNS-сервером эти задержки исчезают.
Как проверить текущие DNS-запросы?
Перед настройкой можно посмотреть, какие DNS-серверы сейчас используются:
А также проверить, сколько времени занимает выполнение DNS-запроса:
или
Если задержка слишком большая, настройка локального кэша поможет ускорить работу.
Какой сервер выбрать?
Один из простых вариантов — systemd-resolved. Это встроенная утилита в systemd, которая уже есть в большинстве современных дистрибутивов Linux, но часто отключена.
В следующем посте расскажем, как её настроить.
Чаще всего DNS-запросы работают в фоновом режиме, и мы не замечаем их.
Однако в некоторых случаях настройка локального кэширующего DNS-сервера может значительно ускорить интернет-серфинг и повысить стабильность соединения.
Как это работает?
Кэширующий DNS-сервер сохраняет результаты запросов в памяти. Если система повторно запрашивает тот же адрес, ответ выдаётся мгновенно, без обращения к внешним серверам. Это особенно полезно, если:
Например, новостной сайт может делать 100+ DNS-запросов при загрузке страницы. Даже если каждый занимает 0,1 секунды, это 10 секунд ожидания. С локальным DNS-сервером эти задержки исчезают.
Как проверить текущие DNS-запросы?
Перед настройкой можно посмотреть, какие DNS-серверы сейчас используются:
cat /etc/resolv.conf
А также проверить, сколько времени занимает выполнение DNS-запроса:
time dig example.com
или
time nslookup example.com
Если задержка слишком большая, настройка локального кэша поможет ускорить работу.
Какой сервер выбрать?
Один из простых вариантов — systemd-resolved. Это встроенная утилита в systemd, которая уже есть в большинстве современных дистрибутивов Linux, но часто отключена.
В следующем посте расскажем, как её настроить.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥6
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣23😭9👍3🥱1🤨1
Настройка локального кэширующего DNS на Linux с systemd-resolved
Если у вас установлен Linux с systemd, скорее всего, в системе уже есть systemd-resolved, но он не активирован. Давайте его настроим.
1️⃣ Проверяем, работает ли systemd-resolved
Откройте терминал и выполните команду:
Если в ответе указаны DNS-серверы и их параметры, значит, systemd-resolved уже запущен.
Если появляется ошибка Unit dbus-org.freedesktop.resolve1.service not found., значит, сервис отключён.
Дополнительно можно проверить статус службы:
2️⃣ Включаем и добавляем в автозапуск
Проверяем, что служба успешно запустилась:
Если вывод active, значит, всё работает.
3️⃣ Настраиваем серверы для DNS-запросов
Открываем конфигурационный файл:
Находим строку #DNS= и добавляем быстрые публичные DNS, например Cloudflare:
Можно также использовать Google Public DNS:
Сохраняем изменения (Ctrl + X → Y → Enter) и перезапускаем службу:
Проверяем, что новые DNS применились:
4️⃣ Подключаем systemd-resolved к системе
Удаляем старый /etc/resolv.conf и создаём символьную ссылку:
Перезапускаем сервис:
5️⃣ Проверяем работу локального DNS-кэша
Проверяем, какие DNS-серверы теперь используются:
Ожидаемый вывод должен содержать строку:
Это значит, что система использует локальный DNS-кэш.
Проверяем, работает ли кэширование:
Запускаем несколько раз и сравниваем время выполнения. Первый запрос должен занять немного больше времени, а последующие выполняться мгновенно.
Теперь ваш Linux использует локальный DNS-кэш, что ускоряет соединение и снижает нагрузку на сеть.
Если у вас установлен Linux с systemd, скорее всего, в системе уже есть systemd-resolved, но он не активирован. Давайте его настроим.
Откройте терминал и выполните команду:
resolvectl status
Если в ответе указаны DNS-серверы и их параметры, значит, systemd-resolved уже запущен.
Если появляется ошибка Unit dbus-org.freedesktop.resolve1.service not found., значит, сервис отключён.
Дополнительно можно проверить статус службы:
sudo systemctl status systemd-resolved.service
sudo systemctl start systemd-resolved.service
sudo systemctl enable systemd-resolved.service
Проверяем, что служба успешно запустилась:
sudo systemctl is-active systemd-resolved.service
Если вывод active, значит, всё работает.
Открываем конфигурационный файл:
sudo nano /etc/systemd/resolved.conf
Находим строку #DNS= и добавляем быстрые публичные DNS, например Cloudflare:
DNS=1.1.1.1 1.0.0.1 # Cloudflare Public DNS
Можно также использовать Google Public DNS:
DNS=8.8.8.8 8.8.4.4
Сохраняем изменения (Ctrl + X → Y → Enter) и перезапускаем службу:
sudo systemctl restart systemd-resolved.service
Проверяем, что новые DNS применились:
resolvectl status
Удаляем старый /etc/resolv.conf и создаём символьную ссылку:
sudo mv /etc/resolv.conf /etc/resolv.conf.backup
sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
Перезапускаем сервис:
sudo systemctl restart systemd-resolved.service
Проверяем, какие DNS-серверы теперь используются:
cat /etc/resolv.conf
Ожидаемый вывод должен содержать строку:
nameserver 127.0.0.53
Это значит, что система использует локальный DNS-кэш.
Проверяем, работает ли кэширование:
resolvectl query example.com
Запускаем несколько раз и сравниваем время выполнения. Первый запрос должен занять немного больше времени, а последующие выполняться мгновенно.
Теперь ваш Linux использует локальный DNS-кэш, что ускоряет соединение и снижает нагрузку на сеть.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥5❤2
SSH Port Forwarding в Linux – основные виды туннелей
SSH-туннели – это один из самых мощных инструментов, который используют системные и сетевые администраторы.
Что такое переброс порта SSH?
SSH позволяет создавать туннель между несколькими системами и направлять через него сетевой трафик.
Этот механизм лежит в основе VPN и SOCKS Proxy. Существует три типа SSH-туннелей:
• Локальный порт forwarding (Local Port Forwarding) – позволяет получать доступ к удалённым ресурсам через локальную систему. Работает по принципу Remote Access VPN.
• Удалённый port forwarding (Remote Port Forwarding) – даёт удалённой системе доступ к локальным сервисам.
• Динамический port forwarding (Dynamic Port Forwarding) – создаёт SOCKS-прокси для передачи трафика приложений через зашифрованный туннель. Это помогает обходить блокировки сайтов.
Пример использования SSH-туннеля
Допустим, у вас есть сервис, который передаёт данные в открытом виде или использует нешифрованный протокол.
Ещё одно распространённое применение – доступ к внутренним ресурсам компании извне. Это похоже на Site-to-Site VPN, где указывается, какой трафик заворачивается в туннель.
Сколько туннелей можно создать?
Теоретически – до 65 535 (по количеству портов в сети). Однако важно учитывать, что:
⏺ Некоторые порты зарезервированы (например, 80 – HTTP, 443 – HTTPS).
⏺ Локальный порт не обязательно должен совпадать с удалённым. Например, можно перенаправить 8080 → 80.
Лучше использовать порты в диапазоне
SSH-туннели – это один из самых мощных инструментов, который используют системные и сетевые администраторы.
Они позволяют перенаправлять трафик через защищённое SSH-соединение, обеспечивая безопасную передачу данных между системами.
Что такое переброс порта SSH?
SSH позволяет создавать туннель между несколькими системами и направлять через него сетевой трафик.
Этот механизм лежит в основе VPN и SOCKS Proxy. Существует три типа SSH-туннелей:
• Локальный порт forwarding (Local Port Forwarding) – позволяет получать доступ к удалённым ресурсам через локальную систему. Работает по принципу Remote Access VPN.
• Удалённый port forwarding (Remote Port Forwarding) – даёт удалённой системе доступ к локальным сервисам.
• Динамический port forwarding (Dynamic Port Forwarding) – создаёт SOCKS-прокси для передачи трафика приложений через зашифрованный туннель. Это помогает обходить блокировки сайтов.
Пример использования SSH-туннеля
Допустим, у вас есть сервис, который передаёт данные в открытом виде или использует нешифрованный протокол.
Чтобы обезопасить соединение, можно направить его трафик через SSH-туннель.
Ещё одно распространённое применение – доступ к внутренним ресурсам компании извне. Это похоже на Site-to-Site VPN, где указывается, какой трафик заворачивается в туннель.
Сколько туннелей можно создать?
Теоретически – до 65 535 (по количеству портов в сети). Однако важно учитывать, что:
Лучше использовать порты в диапазоне
2000–10000
, так как порты ниже 2000 зарезервированы.Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤2🔥1
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Основные принципы:
— Lowerdir: неизменяемый базовый слой (образ контейнера).
— Upperdir: изменяемый слой, в который записываются изменения.
— Merged: конечный результат, который видит пользователь.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤1
В чём отличие soft и hard лимитов в /etc/security/limits.conf?
Anonymous Quiz
56%
soft может быть превышен временно, hard – нет
10%
soft применяется только к root, hard – ко всем
31%
soft задаёт минимальный лимит, hard – максимальный
3%
Нет отличий
👍11🔥2
Настройка и тестирование SSH-туннелей
Локальный порт forwarding
Позволяет перенаправить трафик с локального компьютера на удалённую систему.
Синтаксис:
Пример:
Этот туннель направляет все запросы на 8080 порт через example2.com к example1.com:80.
Тестирование туннеля с netcat
Чтобы проверить работу переадресации:
Если соединение успешно, утилита выдаст “Успех!”.
Автоматизация (Autossh)
Для постоянного SSH-туннеля без разрывов можно использовать autossh.
Установка:
Запуск:
Этот туннель будет автоматически восстанавливаться при обрывах связи.
Удалённый port forwarding
Позволяет удалённой системе получить доступ к сервисам локальной сети.
Синтаксис:
Пример:
Теперь пользователь на [email protected] сможет обратиться к вашему локальному веб-серверу (порт 80) через 8080.
Динамическое перенаправление портов (SOCKS-прокси)
Если нужно обходить блокировки, можно создать SOCKS-прокси через SSH.
Синтаксис:
Пример:
Теперь в браузере можно настроить SOCKS-прокси на локальный порт 1234, и весь трафик пойдёт через SSH-туннель.
Просмотр активных SSH-туннелей
Чтобы увидеть все текущие туннели, выполните:
Если нужно отображение IP-адресов, используйте:
Ограничение port forwarding в SSH
Чтобы запретить или ограничить переадресацию портов, нужно отредактировать /etc/ssh/sshd_config:
Добавляем:
После этого перезапускаем SSH:
Уменьшение задержки в SSH-туннелях
SSH-туннели работают по TCP поверх TCP, что иногда создаёт задержки. Если трафика много, лучше использовать VPN.
Альтернатива – sshuttle, который уменьшает задержки при пересылке трафика.
Установка:
Запуск туннеля:
Чтобы убедиться, что IP-адрес изменился:
Теперь SSH-туннель будет работать без значительных задержек и обеспечивать безопасную передачу данных.
Локальный порт forwarding
Позволяет перенаправить трафик с локального компьютера на удалённую систему.
Синтаксис:
ssh -L local_port:remote_ip:remote_port [email protected]
Пример:
ssh -L 8080:www.example1.com:80 example2.com
Этот туннель направляет все запросы на 8080 порт через example2.com к example1.com:80.
Тестирование туннеля с netcat
Чтобы проверить работу переадресации:
nc -v remote_ip port_number
Если соединение успешно, утилита выдаст “Успех!”.
Автоматизация (Autossh)
Для постоянного SSH-туннеля без разрывов можно использовать autossh.
Установка:
sudo apt-get install autossh
Запуск:
autossh -L 80:example1.com:80 example2.com
Этот туннель будет автоматически восстанавливаться при обрывах связи.
Удалённый port forwarding
Позволяет удалённой системе получить доступ к сервисам локальной сети.
Синтаксис:
ssh -R remote_port:local_ip:local_port [email protected]
Пример:
ssh -R 8080:localhost:80 [email protected]
Теперь пользователь на [email protected] сможет обратиться к вашему локальному веб-серверу (порт 80) через 8080.
Динамическое перенаправление портов (SOCKS-прокси)
Если нужно обходить блокировки, можно создать SOCKS-прокси через SSH.
Синтаксис:
ssh -D local_port [email protected]
Пример:
ssh -D 1234 [email protected]
Теперь в браузере можно настроить SOCKS-прокси на локальный порт 1234, и весь трафик пойдёт через SSH-туннель.
Просмотр активных SSH-туннелей
Чтобы увидеть все текущие туннели, выполните:
lsof -i | grep ssh
Если нужно отображение IP-адресов, используйте:
lsof -i -n | grep ssh
Ограничение port forwarding в SSH
Чтобы запретить или ограничить переадресацию портов, нужно отредактировать /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
Добавляем:
AllowTCPForwarding no # Отключить SSH-туннели
AllowTCPForwarding local # Разрешить только локальный forwarding
AllowTCPForwarding remote # Разрешить только удалённый forwarding
После этого перезапускаем SSH:
sudo systemctl restart sshd
Уменьшение задержки в SSH-туннелях
SSH-туннели работают по TCP поверх TCP, что иногда создаёт задержки. Если трафика много, лучше использовать VPN.
Альтернатива – sshuttle, который уменьшает задержки при пересылке трафика.
Установка:
sudo apt-get install sshuttle
Запуск туннеля:
sudo sshuttle -r user@remote_ip -x remote_ip 0/0 vv
Чтобы убедиться, что IP-адрес изменился:
curl ipinfo.io
Теперь SSH-туннель будет работать без значительных задержек и обеспечивать безопасную передачу данных.
👍17
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥2