Админские угодья
1.46K subscribers
457 photos
40 videos
220 links
Всё для системного администратора

По всем вопросам : @Sofiia_artamonova
Download Telegram
Шпаргалка по безопасности сетей
3🔥2
Продвинутая работа с логами в Linux

journalctl - Работа со структурированными логами

Журнал событий, это компонент systemd, который захватывает сообщения Syslog, логи ядра, все события при инициализации системы (RAM, диск, boot, STDOUT/STDERR для всех сервисов), индексирует их и затем предоставляет удобной пользовательский интерфейс для поиска и фильтрации логов. Журнал (systemd journal) можно использовать вместе или вместо syslog или syslog-ng.

Утилита командной строки journalctl, если сравнивать ее с традиционным инструментами для работы с логами в UNIX (tail, grep, sed, awk) более широкие возможности.

Давайте рассмотрим основные возможности которые предоставляет журнал systemd и способы их применения.

https://habr.com/ru/articles/749714/
2
Запуск Windows-контейнеров под Linux и MacOS

Если на компьютере под Linux нужно быстренько запустить Windows или MacOS, самый простой и быстрый способ сделать это — ввести команду для скачивания и загрузки докер-контейнера с этой ОС.

В маркетплейсе RuVDS много готовых образов с установленными операционными системами. Там разные дистрибутивы Linux, Windows Server и CentOS. Но нет контейнеров с операционными системами.

Операционная система в докер-контейнере (в QEMU) не требует ручной инсталляции ОС. Всего одна команда в консоли — и контейнер Windows скачивается и запускается.

https://habr.com/ru/companies/ruvds/articles/901004/
👍2
Шпаргалка по RAID

mdadm — утилита для работы с программными RAID-массивами различных уровней. В данной инструкции рассмотрим примеры ее использования.

Информация о RAID
cat /proc/mdstat - состояние всех RAID
mdadm -D /dev/md0 - подробная инфа о конкретном RAID
lsblk - список дисков с разделами, местом, типом
df -hT - свободное место, тип файловой системы, точки монтирования

Сборка RAID
mdadm —zero-superblock —force /dev/sd{b,c} - обнуление суперблоков на дисках sdb sdc (для удаления инфы о других RAID)
при получении ответа mdadm: Unrecognised md component device - /dev/sdb значит, что диск не использовался для RAID, продолжаем
mdadm —create —verbose /dev/md0 -l 1 -n 2 /dev/sd{b,c}
* где /dev/md0 — устройство RAID, которое появится после сборки; -l 1 — уровень RAID; -n 2 — количество дисков, из которых собирается массив; /dev/sd{b,c} — сборка выполняется из дисков sdb и sdc.

Создание файловой системы и монтирование массива
mkfs.ext4 /dev/md0 - создание файловой системы ext4 на md0
mount /dev/md0 /mnt - разово примонтировать md0 к /mnt
nano /etc/fstab, прописать /dev/md0 /mnt ext4 defaults 1 2 - постоянное монтирование, работает после перезагрузки

Восстановление RAID
Замена жесткого диска
При выходе из строя, команда mdadm -D /dev/md0 выдаст: State : clean, degraded
mdadm /dev/md0 —remove /dev/sdc - удалить сбойный диск
mdadm /dev/md0 —add /dev/sde - добавить новый диск в массив
Статус должен стать Rebuild Status : 40% complete и так до полного восстановления

Пересборка массива
Если нам нужно вернуть ранее разобранный или развалившийся массив из дисков, которые уже входили в состав RAID, вводим:
mdadm —assemble —scan - команда сама найдет необходимую конфигурацию и восстановит RAID.
mdadm —assemble /dev/md0 /dev/sdb /dev/sdc - с указанием из каких дисков пересобрать

Запасной диск (Hot Spare)
Если в массиве будет запасной диск для горячей замены, при выходе из строя одного из основных дисков, его место займет запасной.
mdadm /dev/md0 —add /dev/sdd - Диском Hot Spare станет тот, который просто будет добавлен к массиву

Добавить диск к массиву, расширить массив
Добавление активного диска к RAID, который будет использоваться для работы, а не в качестве запасного.
mdadm /dev/md0 —add /dev/sde

mdadm -G /dev/md0 —raid-devices=3 - расширяем RAID
* в данном примере подразумевается, что у нас RAID 1 и мы добавили к нему 3-й диск.

Установка mdadm
Если каким-то образом в дистрибутиве нет этого пакета
apt-get install mdadm

Удаление массива
Если нам нужно полностью разобрать RAID, сначала размонтируем и остановим его:

umount /mnt
* где /mnt — каталог монтирования нашего RAID.

mdadm -S /dev/md0

Затем очищаем суперблоки на всех дисках, из которых он был собран:
mdadm —zero-superblock /dev/sdb
mdadm —zero-superblock /dev/sdc
mdadm —zero-superblock /dev/sdd
👍41
Работа Kerberos в картинках
👍1🔥1
Fail2Ban: Шпаргалка по настройке


Fail2Ban — инструмент для защиты сервера от перебора паролей (brute-force) и других атак, блокируя IP-адреса через iptables, firewalld, nftables и др.


Установка

Debian/Ubuntu:

sudo apt update && sudo apt install fail2ban


RHEL/CentOS:

sudo dnf install fail2ban



Базовая настройка

1. Создаём локальную копию конфига:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local


2. Открываем для редактирования:

sudo nano /etc/fail2ban/jail.local


3. Ключевые параметры:


[DEFAULT]
bantime = 3600 # Время бана (в секундах)
findtime = 600 # Интервал поиска неудачных попыток
maxretry = 5 # Сколько раз можно ошибиться

ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 # IP без блокировки



Пример: защита SSH


[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
maxretry = 3
bantime = 1h



Проверка и управление

- Запуск/остановка:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban


- Статус:

sudo fail2ban-client status


- Статус конкретного jail:

sudo fail2ban-client status sshd


- Разбанить IP:

sudo fail2ban-client set sshd unbanip 1.2.3.4



Полезные логи

- Fail2Ban логи:

/var/log/fail2ban.log


- Проверка правил iptables:

sudo iptables -L -n



Советы :

Создавайте .local -файлы вместо правки .conf
Добавляйте свои фильтры в /etc/fail2ban/filter.d
Используйте fail2ban-regex для теста фильтров
👍41
Руководство по обеспечению безопасности Linux-сервера

https://github.com/imthenachoman/How-To-Secure-A-Linux-Server
3
📌 Шпаргалка по командам linux
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Что происходит, когда вы вводите в браузер URL-адрес?

Давайте рассмотрим этот процесс пошагово.

Шаг 1. Пользователь вводит в браузер URL и нажимает Enter. Первое, что нам нужно сделать, это преобразовать URL в IP-адрес. Сопоставление обычно хранится в кэше, поэтому браузер ищет IP-адрес в нескольких уровнях кэша: кэше браузера, кэше ОС, локальном кэше и кэше провайдера. Если браузер не смог найти сопоставление в кэше, он обращается к DNS (Domain Name System) resolver для его разрешения.

Шаг 2. Если IP-адрес не удается найти ни в одном из кэшей, браузер обращается к DNS-серверам для выполнения рекурсивного DNS-поиска, пока IP-адрес не будет найден.

Шаг 3. Теперь, когда у нас есть IP-адрес сервера, браузер посылает на него HTTP-запрос. Для безопасного доступа к ресурсам сервера всегда следует использовать протокол HTTPS. Сначала браузер устанавливает TCP-соединение с сервером с помощью трехстороннего рукопожатия TCP. Затем он посылает открытый ключ клиенту. Клиент использует открытый ключ для шифрования сеансового ключа и отправляет его серверу. Сервер использует закрытый ключ для расшифровки сеансового ключа. Теперь клиент и сервер могут обмениваться зашифрованными данными с использованием сеансового ключа.

Шаг 4. Сервер обрабатывает запрос и отправляет ответ. Для успешного ответа код состояния равен 200. Ответ состоит из трех частей: HTML, CSS и Javascript. Браузер анализирует HTML и формирует дерево DOM. Он также анализирует CSS и генерирует дерево CSSOM. Затем он объединяет дерево DOM и дерево CSSOM в дерево рендеринга. Браузер отображает содержимое и показывает его пользователю.
👍21
Сборник Bash скриптов

Скрипт оповещения по email об остатке дискового пространства менее 10%

#!/bin/bash
used=`df -hl / | awk {'print $4'} | grep "%"`
used=${used/\%/}
if [ $used -gt 90 ];
then
echo "Attention! Available space less than 10%. Used space = $used"% | mail -s "DISK ALERT" <a href="mailto:[email protected]">[email protected]</a>
fi



Сканирование сети на наличие хостов

#scannet.sh
#Сканируем сеть на наличие хостов
#!/bin/sh

NET=${1}

if [ -z ${NET} ]; then

echo 'Usage:'
echo ' scan.sh first_3_octets'
echo ''
echo 'Example:'
echo ' scan.sh 192.168.0'
echo ''

else

echo "Finding hosts in net ${NET}.0/24"
echo ''
echo 'Found hosts:'
for host in `seq 1 254`; do
if (ping -c 3 ${NET}.${host} > /dev/null 2> /dev/null) then
echo ${NET}.${host}
fi
done

fi


Удалить временные файлы из домашнего каталога

#deltmp.sh
#Удаляет временные файлы из домашнего каталога
#!/bin/bash
echo "******************* start **********"
find -name .*~. -exec rm -i {} \;
echo "****************** finish **********"
1👍1
📌 Шпаргалка по оконным функциям в SQL
🥰21