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

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

Nezha - Легкий и элегантный аналог Zabbix
Plow - Этот инструмент был разработан для проведения нагрузочного тестирования HTTP
Hunt - Утилита для поиска файлов на локальном компьютере
AutoRegex - Регулярные выражения — это мощный инструмент для преобразования текстовых данных.
ContainerSSH - Утилита, которая позволяет вам незаметно направлять SSH-клиентов в изолированные контейнеры
Krunvm - Это инструмент, который позволяет создавать простые виртуальные машины на основе образов OCI.
Zellij - Это интересный мультиплексор, который может быть использован в качестве альтернативы tmux

https://bookflow.ru/podborka-linux-utilit-dlya-sistemnogo-administratora/
2
https://quickref.me - шпаргалка по разным утилитам для Linux и языкам программирования.
3
WebTTY: Доступ по SSH через браузер, даже там, где порт закрыт

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

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

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

https://habr.com/ru/articles/840352/
1👍1
Как изменить дату установки пароля пользователя в Active Directory

У учетной записи пользователя в ActiveDirectory есть два атрибута, в которых хранится последнее время смены пароля учетной записи. Это атрибуты pwdLastSet и PasswordLastSet.

Различаются они форматом записи. PasswordLastSet хранит данные в нормальном читабельном виде, а вот в pwdLastSet дата хранится в виде большого целого числа, которое представляет собой количество 100-наносекундных интервалов, прошедших с 12:00 полуночи, 1 января 1601 года нашей эры в формате UTC (Coordinated Universal Time).

https://telegra.ph/Kak-izmenit-datu-ustanovki-parolya-polzovatelya-v-Active-Directory-08-08
2
Совет по Linux 💡

Найдите все нерабочие символьные ссылки в вашей системе с помощью:


find . -xtype l
👍32
Краткое руководство по Load Balancing
1
Linux: делаем скриншот и отправляем его на электронную почту

Для успешной работы скрипта необходимо сначала установить: ssmtp(обязательно настроить), mpack и scrot


#!/usr/bin/env bash
# Важно! Для работы скрипта необходимо установить и настроить ssmtp, mpack и scrot
# путь к директории со скриншотами
dirpath=/home/$USER/screenshots
# проверяем наличие директории (если нет, то создаем). Делаем скриншот с названием по маске: ДД-ММ-ГГ_ЧЧ-ММ-СС.jpg
if [[ -d $dirpath ]]; then
scrot '%d-%m-%Y_%H-%M-%S.jpg' -e "mv \$f $dirpath"
screenshot=$(find "$dirpath" -name "*.jpg")
else
mkdir -p "$dirpath"
scrot '%d-%m-%Y_%H-%M-%S.jpg' -e "mv \$f $dirpath"
screenshot=$(find "$dirpath" -name "*.jpg")
fi
# отправляем письмо на почту
echo "Скриншот с сервера: $HOSTNAME" > $dirpath/message_body.txt
mpack -s "Скриншот" -d $dirpath/message_body.txt $screenshot [email protected]
# удаляем скриншот
rm -f $screenshot
2
Контроль оплаты домена через Zabbix

Позвонил клиент, говорит почта не работает. Стал смотреть – домен отключен за не оплату, бухгалтерия забыла оплатить счет. Подумалось, что неплохо бы видеть какие домены в ближайшее время тоже потребуют продления. Будем для этого использовать Zabbix.

На сервере с Zabbix’ом установим Zabbix-агент. Он и будет у нас заниматься проверкой наших доменов.

https://telegra.ph/Kontrol-oplaty-domena-cherez-Zabbix-09-26
1
Работа с архивами

Создать .tar.gz:
tar -czvf file.tar.gz /full/path — создать .tar.gz (архив)
tar -cjvf file.tar.bz2 /full/path — создать .tar.bz2 (архив)


Распаковать .tar:
tar -xvf file.tar.gz

Распаковать gz:
gunzip yourfile.gz

Распаковать многотомный архив:
7za x arch.7z.001

Получить листинг файлов в архиве:
tar -tf <path_to_tarfile>

Извлечь конкретный файл из архива:
tar -xf <path_to_tarfile> [<file_1_in_archive> <file_2_in_archive> ..]

Скопировать файл на сервер:
scp -P 12322 file.tar [email protected]:/home/user
4👍2
This media is not supported in your browser
VIEW IN TELEGRAM
DUF (Disk Usage/Free) — это современная утилита для отображения информации о дисковом пространстве на Linux, BSD, macOS и Windows. Она предоставляет удобный интерфейс для мониторинга использования дисков с цветовой индикацией и выводом полезной информации, такой как объем свободного и занятого места, проценты использования и точки монтирования.

Основные особенности DUF:

- Понятный и цветной интерфейс.
- Кроссплатформенность (Linux, BSD, macOS и Windows).
- Поддержка различных файловых систем.
- Возможность фильтрации и настройки отображаемых данных.

Эта утилита — полезный инструмент для системных администраторов и пользователей, которым требуется быстрая и удобная проверка состояния дисков в системе.

https://www.cyberciti.biz/open-source/command-line-hacks/duf-disk-usage-free-utility-for-linux-bsd-macos-windows/
1
This media is not supported in your browser
VIEW IN TELEGRAM
Netdata - это высокоточный мониторинг инфраструктуры и производительности в режиме реального времени.

200+ предварительно созданных интеграций
Интеграция со все большим количеством операционных систем, коллекторов, платформ уведомлений и цепочек инструментов мониторинга/наблюдения.

Если метрика может быть собрана, она будет собрана: с 2 000+ автоопределяемых метрик и 100+ предварительно настроенных предупреждений на каждый узел.

https://github.com/netdata/netdata
2
Оптимизация логов с помощью logrotate в Linux

Если у вас сервер генерирует тонны логов, важно правильно их управлять, чтобы они не раздували диск до отказа. Используем logrotate – мощный инструмент для автоматического управления логами!

Пример конфигурации /etc/logrotate.d/custom_logs:


/var/log/myapp/*.log {
daily # Ротация каждый день
rotate 7 # Хранить 7 старых логов
compress # Сжимать старые логи
delaycompress # Откладывать сжатие на один цикл ротации
missingok # Игнорировать ошибку, если лог отсутствует
notifempty # Не ротировать, если лог пуст
create 0640 root root # Создавать новые файлы с нужными правами
postrotate
systemctl reload myapp.service > /dev/null 2>&1 || true
endscript
}


Как применить изменения?
Проверяем конфиг перед запуском:

logrotate -d /etc/logrotate.d/custom_logs

Применяем вручную (если нужно):

logrotate -f /etc/logrotate.d/custom_logs


Так логи не будут разрастаться, а сервер останется в порядке!
2
Краткий совет по Linux💡

Если у вас возникли проблемы с чтением каталогов в переменной $PATH , используйте команду tr для преобразования символов двоеточия (":") в символы новой строки ("n"), чтобы их можно было отобразить в строках:

$ echo $PATH | tr ":" "\n"
👍42
Как работает bind mount в Linux: руководство для начинающих

В Linux есть несколько способов монтирования файловых систем, но одним из самых гибких и незаметных является bind mount. Эта статья расскажет, как использовать bind mount для создания псевдонимов директорий, доступа к файлам, скрытым точками монтирования и даже для расширения возможностей chroot-окружений.

https://habr.com/ru/companies/flant/articles/884628/

original https://www.baeldung.com/linux/bind-mounts
2
This media is not supported in your browser
VIEW IN TELEGRAM
RustScan – Инструмент для быстрого сканирования портов

Данный проект может похвастаться высокой скоростью работы(Сканирует все 65 тыс. портов за 3 секунды), гибкой расширяемостью и адаптивным методом работы.

https://github.com/RustScan/RustScan
2
📌 Fail2Ban — это утилита для защиты серверов от брутфорс-атак и других видов несанкционированного доступа путем временной блокировки IP-адресов.

1. Установка Fail2Ban
Debian/Ubuntu:

sudo apt update && sudo apt install fail2ban -y

CentOS/RHEL:

sudo yum install epel-release -y
sudo yum install fail2ban -y

Arch Linux:

sudo pacman -S fail2ban




2. Управление сервисом
Запуск и включение Fail2Ban

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

Перезапуск и проверка статуса

sudo systemctl restart fail2ban
sudo systemctl status fail2ban




3. Конфигурация Fail2Ban
Файл конфигурации по умолчанию:

/etc/fail2ban/jail.conf

Рекомендуется создать локальную копию:

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

Редактировать:

sudo nano /etc/fail2ban/jail.local


Основные параметры

[DEFAULT]
bantime = 10m # Время бана (10 минут)
findtime = 10m # Временной промежуток для поиска нарушений
maxretry = 5 # Количество неудачных попыток до блокировки
ignoreip = 127.0.0.1/8 # IP-адреса, которые не будут заблокированы




4. Настройка фильтров
Фильтры хранятся в /etc/fail2ban/filter.d/.
Пример фильтра sshd.conf (`/etc/fail2ban/filter.d/sshd.conf`):

[Definition]
failregex = ^%(__prefix_line)sFailed password for .* from <HOST> port \d+ ssh2
ignoreregex =




5. Настройка jail для SSH
Файл /etc/fail2ban/jail.local:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log # Для Debian/Ubuntu
# logpath = /var/log/secure # Для CentOS/RHEL
maxretry = 3
bantime = 1h




6. Перезапуск и проверка работы

sudo systemctl restart fail2ban
sudo fail2ban-client status


Проверить конкретный jail:

sudo fail2ban-client status sshd




7. Разблокировка IP
Список заблокированных IP:

sudo fail2ban-client status sshd

Разблокировать IP:

sudo fail2ban-client set sshd unbanip 192.168.1.100




8. Логирование и отладка
Просмотр журнала Fail2Ban:

sudo journalctl -u fail2ban --no-pager

Лог-файл:

sudo tail -f /var/log/fail2ban.log




9. Полезные команды
Блокировка IP вручную

sudo fail2ban-client set sshd banip 192.168.1.200

Добавление в белый список (whitelist)
Добавьте IP в ignoreip в /etc/fail2ban/jail.local:

ignoreip = 127.0.0.1/8 192.168.1.100

Удаление бана с IP

sudo fail2ban-client set sshd unbanip 192.168.1.100

Удаление всех банов

sudo fail2ban-client set sshd unban --all




10. Автозапуск после перезагрузки

sudo systemctl enable fail2ban




11. Интеграция с UFW (Ubuntu)
Если используется UFW:

sudo nano /etc/fail2ban/jail.local

Добавьте:

[sshd]
enabled = true
backend = auto
port = ssh
filter = sshd
banaction = ufw

Перезапустите Fail2Ban:

sudo systemctl restart fail2ban


Эта шпаргалка содержит основные команды и конфигурации для защиты сервера от атак с помощью Fail2Ban
👍43
Наглядное руководство по туннелированию SSH и переадресации портов

Если говорить коротко, то я жалею, что не знал о пробросе портов и туннелировании раньше. В этой статье я пытаюсь лучше понять это и поделиться с вами некоторым опытом и советами.
Темы: сценарии использования, конфигурация, SSH jumphosts, локальная/удаленная/динамическая переадресация портов и ограничения

https://ittavern.com/visual-guide-to-ssh-tunneling-and-port-forwarding/
3
Утилиты на PowerShell для системных администраторов

Работая на первой линии тех.поддержки, я часто сталкивался с рутиной, особенно очень хотелось минимизировать подключение к рабочему столу пользователей для сбора информации и как-то автоматизировать этот процесс, что привело меня к осваиванию языка PowerShell и написанию скриптов, которые в последствии оформились в самостоятельные программы. Некоторые из них я решил выложить на GitHub, возможно для кого-то они будут полезны.

https://habr.com/ru/articles/799463/

https://github.com/Sync1er/ChernigovEugeniyUtilities
7