Типичный Сисадмин
1.32K subscribers
386 photos
45 videos
210 links
⚙️Информация для системного администратора

По всем вопросам : @Sofiia_artamonova
Download Telegram
📌 Шпаргалка по SSH-туннелям

Локальное перенаправление порта (Local port forwarding): доступ к приватным конечным точкам (endpoints), возможно через bastion-хост, как будто это локально открытые порты.
Удалённое перенаправление порта (Remote port forwarding): публикация локальных портов или адресов в приватной сети наружу через exit-нод.

Оба варианта реализуются с помощью SSH 👆
👍21
Mikrotik и несколько провайдеров. Резервирование каналов

В данной статье мы не будем рассматривать базовую настройку роутера: выход в интернет, правила брандмауэра и т.п., будем считать, что читатель владеет этими вещами и уделим внимание только обеспечению резервирования внешних каналов.

https://telegra.ph/Mikrotik-i-neskolko-provajderov-Rezervirovanie-kanalov-05-27
1👍1
SSTP на MikroTik для удаленных сотрудников

В этой статье я опишу настройку роутера MikroTik в качестве SSTP сервера для подключения удаленных сотрудников.

Очень часто у сотрудников, которым нужно работать из дома, на домашнем компьютере стоит Windows. Эта система, начиная с версии Vista, поддерживает SSTP без установки дополнительных программ.

Дополнительные преимущества SSTP:

- Удалённый сотрудник может иметь динамический IP и работать за NAT-ом.
- SSTP по умолчанию использует 443 порт, а для установки соединения использует протокол HTTPS.
- SSTP может работать используя протоколы IPv4 и IPv6.
- Роутеры MikroTik поддерживают SSTP.

https://telegra.ph/SSTP-na-MikroTik-dlya-udalennyh-sotrudnikov-05-11
3
This media is not supported in your browser
VIEW IN TELEGRAM
📌 Объяснение протокола Kerberos
👍21
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
2
Шпаргалка: ncdu -удобный анализатор диска в консоли

ncdu (NCurses Disk Usage) — утилита для быстрого поиска, что съедает место на сервере. Удобнее и нагляднее, чем du.

📌 Установка


# Debian/Ubuntu
apt install ncdu

# CentOS/RHEL
yum install ncdu

# Arch Linux
pacman -S ncdu


📌 Основные команды

ncdu — запустить в текущем каталоге.
ncdu /var/log — просканировать конкретный путь.
ncdu -x / — анализ только внутри одного раздела.
ncdu -q — тихий режим (ускоренный скан).
ncdu --exclude '*.log' — исключить файлы по маске.

📌 Навигация

↑ / ↓ — перемещение по списку.
Enter — открыть каталог.
d — удалить файл/каталог прямо из интерфейса.
n — сортировка по имени.
s — сортировка по размеру.
q — выход.

📌 Лайфхаки

Запуск из / с -x помогает быстро найти, что забило корневой раздел.
Можно очищать мусор без выхода из ncdu — удобно для аварийного освобождения места.
Отлично работает в SSH, даже на слабых серверах.

https://timeweb.cloud/docs/unix-guides/troubleshooting-unix/disk-space-analysis-ncdu-du
👍21
Принцип работы HTTPS
2
This media is not supported in your browser
VIEW IN TELEGRAM
📌 Шпаргалка по сетевой безопасности
2👌2🔥1
Как отлаживать bash-scriptы по шагам

Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.

Волшебная строчка, которую нужно добавить после #!/bin/bash, чтоб скрипт можно было отлаживать по шагам

#!/bin/bash

trap 'echo "# $BASH_COMMAND";read' DEBUG

echo line1
echo line2

echo line3



Процесс отладки
Запускаем скрипт, перед выполнением каждой команды выводится то, что будет исполняться, затем интерпретатор начинает ожидать нажатия клавиши <ENTER>.

Если понимаем, что что-то пошло не так, нажимаем Ctrl+C и выходим из отладки.

Ингредиенты
команда trap, которая умеет перехватывать разные сигналы и в нашем случае она перехватывает сигнал DEBUG, посылаемый перед выполнением команды

команда read, которая умеет ожидать ввода чего-нибудь с клавиатуры (в данном случае нам нужно только либо ENTER либо Ctrl+C

переменная окружения $BASH_COMMAND, валидная внутри обработчика команды trap.

# Online Bash Shell.
# Code, Compile, Run and Debug Bash script online.
# Write your code in this editor and press "Run" button to execute it.

trap 'echo "# $BASH_COMMAND";read' DEBUG

echo line1
echo line2

echo line3

echo "Hello World";
3👍1
📌 Шпаргалка по работе с Tmux
👍1
📌 Шпаргалка по Vim
2
Caddy и 100к доменов: автоматический SSL при одностраничном конфиге

Я начал использовать Nginx более 20 лет назад, и как-то привык к тому что это решение по умолчанию при выборе веб сервера. В своем пути в IT я начинал с linux администрирования, потом был мелкий онлайн бизнес, работал бизнес аналитиком, продактом, временами что-то программировал для себя. Обстоятельства опять поменялись и год назад я устроился работать девопсом в маркетплейс доменов, по сути такой возврат к истокам. Первая задача которую мне выдали - перевести паркинг с 100к доменами с nginx на caddy. На тот момент я не слышал про Caddy, но был очень хорошего мнения о nginx.

https://habr.com/ru/articles/923150/
👍21
UEFI & GRUB

1. ESP (EFI System Partition)

🔺 Формат: FAT32, размер ~100–500 МБ.
🔺 Монтируется как /boot/efi.
🔺 Содержит файлы загрузчиков:

🔺 /EFI/BOOT/BOOTX64.EFI (резерв)
🔺 /EFI/дистрибутив/… (например, /EFI/ubuntu/grubx64.efi).

2. Разметка GPT и создание ESP


parted /dev/sda mklabel gpt
parted /dev/sda mkpart ESP fat32 1MiB 551MiB
parted /dev/sda set 1 boot on
mkfs.fat -F32 /dev/sda1


🔺 Монтирование:


mkdir -p /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi


3. Установка GRUB (UEFI)

1. Смонтировать корень и ESP, войти в chroot:


mount /dev/sdaX /mnt # X — раздел /
mount /dev/sda1 /mnt/boot/efi # ESP
for d in dev proc sys; do mount --bind /$d /mnt/$d; done
chroot /mnt /bin/bash


2. Установить пакет GRUB:

🔺 Debian/Ubuntu: apt install --reinstall grub-efi-amd64
🔺 Arch: pacman -Sy grub efibootmgr
🔺 RHEL/CentOS: yum install grub2-efi shim

3. Запустить:


grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB --recheck
grub-mkconfig -o /boot/grub/grub.cfg


🔺 В RHEL/CentOS:


grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub2 --recheck
grub2-mkconfig -o /boot/efi/EFI/grub2/grub.cfg


4. Файл /etc/default/grub (минимум)


GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_CMDLINE_LINUX="quiet splash"


🔺 После изменений: update-grub (Debian/Ubuntu) или grub2-mkconfig -o … в RHEL.

5. Управление записями UEFI (efibootmgr)

* Просмотр: efibootmgr -v
* Добавить запись:


efibootmgr --create --disk /dev/sda --part 1 \
--label "Linux" --loader "\\EFI\\GRUB\\grubx64.efi"

🔺 Изменить порядок: efibootmgr --bootorder 0002,0001,0003
🔺 Удалить: efibootmgr --bootnum 0004 --delete-bootnum

6. Восстановление GRUB

🔺 Загрузиться с Live-USB, смонтировать / и ESP, chroot как в пункте 3.
🔺 Переустановить GRUB (см. команды выше).
🔺 Убедиться, что в прошивке UEFI выбрана запись “GRUB” как первичная.

7. Советы

🔺 Проверить монтирование ESP: findmnt /boot/efi
🔺 Проверить содержимое ESP: ls /boot/efi/EFI
🔺 Secure Boot:

🔺 Установить shim-signed и grub-efi-amd64-signed (Ubuntu).
🔺 Проверить статус: mokutil --sb-state

8. Сборка простого grub.cfg


set default=0
set timeout=5

menuentry "Linux" {
insmod ext2
set root='hd0,gpt2'
linux /vmlinuz-linux root=/dev/sda2 rw quiet
initrd /initramfs-linux.img
}


🔺 hd0,gpt2 — диск 0, второй GPT-раздел (там /).
🔺 Пути /vmlinuz-linux и /initramfs-linux.img — в /boot.
2
📌 Как работают протоколы электронной почты?
2👍1🥰1
Vault-secrets-operator

Создавайте секреты Kubernetes из Vault для безопасного рабочего процесса на основе GitOps.

https://github.com/ricoberger/vault-secrets-operator
1👍1
Шпаргалка Mikrotik Config

Я документирую процесс подключения и настройки общих сценариев здесь для всех, кто интересуется Mikrotik

https://codingpackets.com/blog/mikrotik-config-cheatsheet/
1
📌 Архитектура Kubernetes
2👍1
Выводим список установленных пакетов в Linux по дате

Порой необходимо узнать когда тот или иной пакет был установлен в операционной системе (например, в целях аудита). В данной статье рассмотрим как вывести список установленных пакетов в Linux, отсортированный по дате установки - давайте разберемся!

https://telegra.ph/Vyvodim-spisok-ustanovlennyh-paketov-v-Linux-po-date-09-10
👍21
Kopia — кроссплатформенный инструмент резервного копирования для Windows, macOS и Linux с быстрым инкрементным резервным копированием, сквозным шифрованием на стороне клиента, сжатием и дедупликацией данных. Включены CLI и GUI.

Источник
👍21