Пробрасываем локальный порт через SSH — доступ к закрытому сервису за одну команду!
Частый кейс: сервис крутится на удалённой машине, но слушает только localhost (например, база, админка, dev-сервер). Напрямую к нему не подключиться — но можно аккуратно протянуть порт к себе.
Команда:
Что происходит:
Теперь просто открываешь в браузере:
И видишь сервис с удалённой машины, даже если он не доступен извне.
Чтобы не держать терминал:
Остановить можно, например:
Практический пример: PostgreSQL на сервере слушает только localhost:
Теперь локально можно подключаться как будто база у тебя:
Если локальный порт уже занят — просто меняешь его:
Важно: трафик шифруется через SSH, не нужно открывать порты на сервере; работает для любых TCP-сервисов (HTTP, DB, Redis и т.д.).
🔥 Это базовый приём: быстро получить доступ к любому закрытому сервису без изменения конфигурации сервера.
🚪 Linux Ready | #практика
Частый кейс: сервис крутится на удалённой машине, но слушает только localhost (например, база, админка, dev-сервер). Напрямую к нему не подключиться — но можно аккуратно протянуть порт к себе.
Команда:
ssh -L 8080:localhost:3000 user@remote-server
Что происходит:
8080 — локальный порт на твоей машине; localhost:3000 — адрес сервиса на удалённой машине; всё, что ты открываешь на localhost:8080, идёт через SSH на localhost:3000 на удалённой машине.Теперь просто открываешь в браузере:
http://localhost:8080И видишь сервис с удалённой машины, даже если он не доступен извне.
Чтобы не держать терминал:
ssh -f -N -L 8080:localhost:3000 user@remote-server
Остановить можно, например:
pkill -f "ssh -L 8080"
Практический пример: PostgreSQL на сервере слушает только localhost:
ssh -L 5432:localhost:5432 user@remote-server
Теперь локально можно подключаться как будто база у тебя:
psql -h localhost -p 5432 -U user dbname
Если локальный порт уже занят — просто меняешь его:
ssh -L 9000:localhost:3000 user@remote-server
Важно: трафик шифруется через SSH, не нужно открывать порты на сервере; работает для любых TCP-сервисов (HTTP, DB, Redis и т.д.).
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12🔥8👍6
На схеме структурированы направления: обучающие YouTube-каналы, профильные блоги, специализированная литература, популярные дистрибутивы, сертификации.
Это удобная схема — можно быстро понять, куда двигаться дальше и какие ресурсы использовать.
Сохраните, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤8👍7
Современные приложения строятся на сотнях сторонних библиотек, в которых регулярно находят критические уязвимости (
CVE). Чтобы не превратить свой софт в решето для хакеров, нужно использовать встроенные сканеры зависимостей, которые сверяют версии ваших пакетов с базами данных известных угроз.Проверка всех установленных пакетов
Node.js на наличие дыр в безопасности:
npm audit
Автоматическое исправление мелких уязвимостей путем обновления версий пакетов:
npm audit fix
Глубокое сканирование
Python-зависимостей из файла requirements.txt:
pip install safety && safety check -r requirements.txt
Мини-совет: Включайте эти команды в ваш
CI/CD пайплайн (например, GitHub Actions), чтобы блокировать сборку проекта, если в нем обнаружены критические уязвимости.🔥 Пятисекундная проверка защитит вас от использования кода с бэкдором, о котором вы даже не подозревали.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍8🔥6
Например,
порт 22 используется для SSH-подключений, а 443 — для защищённого HTTPS-трафика. Порты — основа любого взаимодействия между клиентом и сервером.На картинке — 18 основных портов.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤10🔥7🤝3
Таблица охватывает packet-filtering, stateful inspection, proxy, circuit-level, software, hardware, cloud и next-gen firewalls, показывая, как каждый из них фильтрует трафик, проверяет соединения и защищает сеть. Идеально для быстрого понимания различий между базовой фильтрацией, глубокой инспекцией пакетов и современными NGFW.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤7👍7
Многие администраторы настраивают правила безопасности только для
IPv4, забывая, что современные ОС включают IPv6 по умолчанию. Это создает «черный ход»: сервис, закрытый снаружи по обычному IP, может быть полностью доступен через свой IPv6-адрес, чем активно пользуются сканеры уязвимостей.Проверка текущих правил фильтрации специально для протокола
IPv6:
sudo ip6tables -S
Быстрая команда для полной блокировки входящего трафика по
IPv6 (если он вам не нужен):
sudo ip6tables -P INPUT DROP
Если
IPv6 не используется, его можно полностью отключить на уровне ядра через sysctl:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
Мини-совет: При настройке
ufw или firewalld обязательно убедитесь в конфигах, что поддержка IPv6 включена (IPv6=yes), чтобы правила дублировались для обоих протоколов.🔥 Безопасность — это когда закрыты все двери, а не только та, в которую вы привыкли заходить.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍4🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Это структурированная коллекция заметок по Linux и смежным темам: процессы, файловые системы, shell и работа с ядром. Материал ориентирован на практическое понимание того, как устроена система на низком уровне. Информация подаётся в компактном формате без избыточной теории, с акцентом на реальные сценарии использования.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤8🔥7🤝2
В
Linux каждый процесс имеет лимит на количество открытых файлов (дескрипторов). Настройка мягких лимитов позволяет ограничить аппетиты потенциально уязвимого софта, предотвращая ситуацию, когда один процесс захватывает все системные ресурсы и вызывает отказ в обслуживании всей системы.Просмотр текущего мягкого лимита на количество одновременно открытых файлов:
ulimit -Sn
Установка временного ограничения на 2048 дескрипторов для текущей сессии:
ulimit -n 2048
Это не даст процессам в этой оболочке открыть файлов больше, чем разрешено, сохраняя стабильность
ОС.Для постоянной настройки лимитов конкретного пользователя отредактируйте конфиг:
sudo nano /etc/security/limits.conf
# Добавьте строку: username soft nofile 2048
Мини-совет: Проверить лимиты уже запущенного процесса можно через файловую систему
proc, выполнив cat /proc/[PID]/limits.🔥 Правильные лимиты — это страховка от того, что ошибка в коде или атака «положит» весь ваш сервер.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍5❤3
Например, при подключении по SSH сначала устанавливается TCP-соединение, затем происходит согласование версий и алгоритмов, после чего выполняется key exchange и аутентификация по ключам.
На картинке — полный процесс: от установления соединения до выполнения команд внутри зашифрованного канала.
Сохрани, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤6🔥5
Это базовый набор: команды для просмотра процессов и оценки нагрузки на CPU, проверки активных сетевых соединений и открытых портов, анализа логинов пользователей и поиска подозрительных SUID-файлов.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤3👍2😁1🤝1
Это наглядная шпаргалка по основным DNS-записям. Таблица охватывает A и AAAA для IPv4/IPv6, CNAME для алиасов, MX для почты, PTR для reverse DNS, NS для name servers, SOA для административных данных и TXT для произвольной информации. Идеально для быстрого понимания, как DNS связывает домены, IP-адреса и почтовую инфраструктуру.Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍6🔥6
Знали, что один флаг делает контейнер практически неуязвимым для вредоносного ПО?
Запуск контейнера с флагом
Пример запуска защищенного контейнера с запретом на любые изменения:
Добавление
Для специфических нужд можно разрешить запись только в конкретную папку:
Монтирование тома с правами на запись позволяет приложению функционировать, оставаясь в безопасности.
🔥 Если приложению нужны права на запись во временные файлы, всегда используйте
➡️ Hacking Ready | #совет
Запуск контейнера с флагом
--read-only делает файловую систему «только для чтения». Это надежный способ предотвратить установку хакером бэкдоров, изменение системных конфигов или скачивание вредоносных скриптов прямо в рантайме, так как процесс не сможет записать ни байта на диск.Пример запуска защищенного контейнера с запретом на любые изменения:
docker run --read-only --tmpfs /tmp --tmpfs /run alpine
Добавление
--tmpfs позволяет приложению записывать временные данные в оперативную память, не нарушая работу системы.Для специфических нужд можно разрешить запись только в конкретную папку:
docker run --read-only -v /data:/app/data alpine
Монтирование тома с правами на запись позволяет приложению функционировать, оставаясь в безопасности.
🔥 Если приложению нужны права на запись во временные файлы, всегда используйте
--tmpfs, а не монтирование хостовых папок, чтобы не оставлять следов на реальном диске.➡️ Hacking Ready | #совет
❤10👍5🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
От базовых понятий и структуры системы до понимания дистрибутивов и принципов работы ОС. Материал построен последовательно и помогает сформировать целостное представление о Linux. Уроки ориентированы на системное понимание: объясняется не только работа команд, но и логика самой системы.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11🤝7❤5👍4👎1
Как передавать файлы между машинами без scp, rsync и настройки SSH?
Когда нет доступа по SSH, сломан scp или нужно быстро скинуть файл между контейнерами, серверами или в изолированной сети — выручает
На принимающей стороне открываешь порт и пишешь всё в файл:
На отправляющей стороне отправляешь данные напрямую в сокет:
Если нужен прогресс передачи:
Важно: без шифрования и аутентификации (использовать в доверенной сети), синтаксис может отличаться (например, BusyBox: nc -l -p 9000).
🔥 Работает даже в минимальных окружениях, контейнерах и
🚪 Linux Ready | #совет
Когда нет доступа по SSH, сломан scp или нужно быстро скинуть файл между контейнерами, серверами или в изолированной сети — выручает
netcat.На принимающей стороне открываешь порт и пишешь всё в файл:
$ nc -l 9000 > output.bin
$ ls -lh output.bin
На отправляющей стороне отправляешь данные напрямую в сокет:
$ nc -N <host> 9000 < input.bin
$ echo done
Если нужен прогресс передачи:
$ pv input.bin | nc -N <host> 9000
или на приёме:
$ nc -l 9000 | pv > output.bin
Важно: без шифрования и аутентификации (использовать в доверенной сети), синтаксис может отличаться (например, BusyBox: nc -l -p 9000).
rescue-системах, где кроме nc почти ничего нет.Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤10🔥6
Например, brute-force — это перебор всех возможных комбинаций, credential stuffing использует уже утекшие логины и пароли, а phishing заставляет пользователя самому отдать свои данные через поддельные страницы.
На картинке — основные техники, которые используются для компрометации аккаунтов и обхода аутентификации.
Сохрани, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17👍11🔥7
Это наглядная шпаргалка по основным HTTP-статусам. Таблица охватывает группы 2xx (успешные запросы), 3xx (редиректы), 4xx (ошибки клиента) и 5xx (ошибки сервера).
Помогает быстро понять, как сервер обрабатывает запросы и какие ответы возвращает клиенту.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13🤝7❤6
А вы знали, что «щепотка соли» делает взлом базы паролей практически невозможным?
Обычные хеши одинаковых паролей всегда выглядят идентично, что позволяет хакерам использовать
Соль (
Пример генерации безопасного хеша с солью на языке Python:
Даже если два пользователя выберут одинаковый пароль, их хеши в базе будут абсолютно разными.
Использование утилиты
Всегда храните соль вместе с хешем в базе данных, так как она не является секретом, но обязательна для проверки пароля при входе.
➡️ Hacking Ready | #совет
Обычные хеши одинаковых паролей всегда выглядят идентично, что позволяет хакерам использовать
Rainbow Tables для мгновенной расшифровки. Соль (
Salt) — это случайная строка, которая добавляется к паролю перед хешированием, делая каждый результат уникальным и бесполезным для предварительно вычисленных баз.Пример генерации безопасного хеша с солью на языке Python:
import hashlib, os
salt = os.urandom(32)
key = hashlib.pbkdf2_hmac('sha256', b'password123', salt, 100000)
Даже если два пользователя выберут одинаковый пароль, их хеши в базе будут абсолютно разными.
Использование утилиты
openssl для быстрой генерации случайной соли в терминале:
openssl rand -base64 16
Всегда храните соль вместе с хешем в базе данных, так как она не является секретом, но обязательна для проверки пароля при входе.
➡️ Hacking Ready | #совет
❤14🔥6👍4👎1