Типичный Сисадмин
1.25K subscribers
364 photos
43 videos
201 links
⚙️Информация для системного администратора

По всем вопросам : @Sofiia_artamonova
Download Telegram
WebTTY: Доступ по SSH через браузер, даже там, где порт закрыт

Как мы с вами знаем, SSH — надежный и безопасный протокол для удаленного управления системами, который у многих является неотъемлемой частью работы. Однако, что делать, когда стандартные порты SSH заблокированы или закрыты, например, в строго защищенных корпоративных сетях или в облачных средах с жесткой политикой безопасности? Или что делать, если под рукой есть только браузер и нет возможности использовать обычный терминал? Или вам вживую нужно смотреть/управлять сессией?

Одним из таких решений является WebTTY — инструмент, который обеспечивает доступ к терминалу удаленного сервера через веб-браузер, используя технологию WebRTC и веб-технологии для создания безопасного и зашифрованного соединения. Это решение позволяет обойти ограничения, такие как заблокированные стандартные SSH-порты, и предоставляет простой и удобный способ взаимодействия с командной строкой сервера без необходимости открытия дополнительных портов, что особенно полезно в средах с жесткими сетевыми ограничениями или за фаерволами.

В этой статье мы рассмотрим, как WebTTY может быть использован для доступа к SSH-портам через браузер, даже если они закрыты, как его можно настроить и когда его можно использовать. Основана цель данного материала – познакомить вас с таким вариантом подключения и показать, как использовать данный инструмент. Надеюсь, что представленные примеры и объяснения помогут вам оценить его возможности и найти полезные применения в вашей практике.
Структура файловой системы в Linux

🔵/bin: Содержит исполняемые бинарные файлы различных служб, доступные для запуска всем пользователям сервера. Включает базовые команды, такие как echo, cat, cd, pwd, ls и другие.
🔵/boot: Содержит файлы загрузчика и ядра операционной системы. Без этих файлов система не сможет запуститься.
🔵/dev: Содержит файлы устройств, подключенных к серверу, такие как терминалы (tty*) и специальные устройства, такие как null, random, zero, а также диски и их разделы (vda*).
🔵/etc: Хранит конфигурационные файлы служб по умолчанию. Здесь можно настроить параметры работы различных служб.
🔵/home: Предназначена для домашних каталогов пользователей. Здесь создаются домашние директории для локальных пользователей.
🔵/lib и /lib64: Содержат библиотеки, необходимые для работы системных служб и файлы для загрузки системы и модуля ядра. /lib также является символьной ссылкой на /usr/lib.
🔵/media: Автоматически монтирует внешние устройства, такие как USB и CD-ROM.
🔵/mnt: Используется для временного монтирования внешних устройств, чаще всего вручную.
🔵/opt: Предназначена для установки пользовательского программного обеспечения.
🔵/proc: Хранит информацию о процессах и системную информацию в виде «виртуальной файловой системы».
🔵/root: Домашняя папка для корневого пользователя root.
🔵/run: Включает данные, обрабатываемые и хранимые в оперативной памяти, такие как PID процессов и информация о ходе их выполнения.
🔵/sbin: Содержит исполняемые бинарные файлы системных служб, запуск которых возможен только с правами администратора. Является символьной ссылкой на /usr/sbin.
🔵/srv: Предназначена для общедоступных данных службы, таких как веб-сервер или FTP-сервер. По умолчанию не содержит данных.
🔵/sys: Содержит виртуальную файловую систему, в которую экспортируются данные ядра операционной системы и его модулей.
🔵/tmp: Используется для хранения временных файлов операционной системой и службами.
🔵/usr: Хранит исполняемые файлы, библиотеки и файлы документации для внутренних служб, а также данные программ, установленных пользователями. /bin, /sbin, /lib и /lib64 являются символьными ссылками на соответствующие каталоги внутри /usr.
🔵/var: Содержит часто изменяемые данные, такие как кэши, логи, очереди. Тут хранятся данные сайтов, баз данных, почтового сервера и др.
Эта файловая структура помогает упорядочить данные и облегчает навигацию и управление операционной системой.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как работает интернет

Если вы полный ноль в интернет-технологиях, и хотите получить общее понимание Интернета, прочитав всего одну статью, то эта статья — для вас.

Здесь вы узнаете о 4 уровнях модели TCP/IP. О том, что такое MAC‑адрес и IP-адрес, и зачем нам 2 типа цифровых адресов. Как работает DNS. Зачем нужны коммутаторы и роутеры. Как работает NAT. Как устанавливается защищённое соединение. Что такое инфраструктура открытых ключей, и зачем нужны TLS-сертификаты. Чем отличаются три версии протокола HTTP. Как происходит HTTP-аутентификация. И в конце будет несколько слов о VPN.
📌Совет по Linux

Если вы хотите определить, сколько времени займет выполнение определенной команды или скрипта, используйте команду time.

Вот синтаксис:

$ time <команда>.

Пример:
$ time find / -perm -u=s -type f &>/dev/null

Он также показывает использование системных ресурсов процесса, что делает его полезным инструментом для оценки эффективности конкретной команды.
Bash-Oneliner

Несколько лет назад я занимался биоинформатикой и был поражен тем, как однокомандные bash-команды могут быть намного быстрее, чем мои скучные скрипты. Учеба командам командной строки и написание скриптов помогло мне сэкономить много времени. В последние годы я занимаюсь облачными вычислениями и продолжаю записывать полезные команды здесь. Не все из них однострочные, но я стараюсь делать их краткими и быстрыми. В основном я использую Ubuntu, Amazon Linux, RedHat, Linux Mint, Mac и CentOS, прошу прощения, если команды не работают на вашей системе.

Этот блог будет посвящен простым bash-командам для парсинга данных и обслуживания систем Linux, которые я приобрел на работе и при сдаче экзамена LPIC. Прошу прощения за отсутствие подробных источников для всех команд, но, вероятно, они взяты из любимого Google и Stack Overflow.

Примеры:

Случайная генерация пароля (например, сгенерировать 5 паролей длиной по 13 символов каждый)
sudo apt install pwgen
pwgen 13 5
#sahcahS9dah4a xieXaiJaey7xa UuMeo0ma7eic9 Ahpah9see3zai acerae7Huigh7


Случайный выбор 100 строк из файла
shuf -n 100 filename

Случайный порядок (лотерея)
for i in a b c d e; do echo $i; done | shuf

Вывести серию случайных чисел в диапазоне (например, перемешать числа от 0 до 100, затем случайным образом выбрать 15 из них)
shuf -i 0-100 -n 15

Случайное число от 1 до 10
echo $(((RANDOM %10)+1))
Bash-скрипт для выполнения дампа всех баз данных MySQL, используемых на сервере

1- Для запуска скрипта необходимо дать права на исполнение скрипту командой chmod +x dump_all_databases.sh.
2- Запустить скрипт выполнив одну из следующих команд:

./dump_all_databases.sh
sh dump_all_databases.sh
bash dump_all_databases.sh


3- Дождататься, когда выполниться процесс. Дампы будут сохранены в формате YYYYMMDD.name_db.sql.

#!/usr/bin/env bash

databases=`mysql -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`

for db in $databases; do
if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then
echo "Dumping database: $db"
mysqldump --databases $db > `date +%Y%m%d`.$db.sql
# gzip $OUTPUT/`date +%Y%m%d`.$db.sql
fi
done