Типичный Сисадмин
1.21K subscribers
336 photos
42 videos
190 links
⚙️Информация для системного администратора
Download Telegram
Программа проверки истечения срока действия SSL-сертификатов

ssl-cert-check - это скрипт оболочки Bourne, который можно использовать для оповещения об истечении срока действия SSL-сертификатов. Сценарий был разработан для запуска из cron и может рассылать уведомления по электронной почте или регистрировать предупреждения через nagios.

https://github.com/Matty9191/ssl-cert-check
1
Команда nslookup, получение информации от DNS

Команда nslookup — инструмент сетевого администрирования для запросов в доменной системе имен (DNS) с целью получения доменного имени, IP-адреса или другой информации из записей DNS.

Кроме того, эта команда используется для поиска и устранения проблем с DNS. В данном руководстве мы рассмотрим наиболее типичные примеры ее применения.

Команда nslookup может работать в интерактивном и неинтерактивном режимах. Интерактивный режим позволяет пользователю в режиме диалога отправлять DNS-серверу запросы о различных узлах и доменах. Неинтерактивный режим позволяет отправить один запрос об одном узле или домене.

https://telegra.ph/Komanda-nslookup-poluchenie-informacii-ot-DNS-09-26
2👍2
Хорошая статья, описывающая различные методы усиления защиты машины с Linux. (Eng ver)

Linux не является безопасной операционной системой. Однако есть шаги, которые можно предпринять для ее улучшения. Цель этого руководства - объяснить, как максимально усилить Linux для обеспечения безопасности и конфиденциальности. Руководство не зависит от дистрибутива и не привязано к какому-либо конкретному.

https://madaidans-insecurities.github.io/guides/linux-hardening.html
1
Media is too big
VIEW IN TELEGRAM
Принцип работы коммутатора Ethernet

Режим "обучения".
Режим "затопления".

Таблица коммутации (таблица МАС-адресов).
2
📌 15 супер полезных примеров команды find в Linux

Практические примеры, которые приведены в этой статье, помогут вам освоить очень эффективную и крайне полезную команду find.

Она используется для поиска файлов и папок через командную строку Linux.

Команда find — одна из самых мощных и широко применимых команд. При этом она крайне объёмная и насчитывает более 50 опций, в которых легко запутаться, особенно в сочетании с командами exec или xargs.

Если вы сисадмин или разработчик, избежать команды find при работе с командной строкой не получится. Так что давайте научимся её не бояться и пользоваться её возможностями в полной мере.

Для этого разберём самые распространённые случаи практического применения команды find. Но для начала покажу вам синтаксис и принцип работы с командой.

Поиск файлов и папок по имени
find . -name SEARCH_NAME

Поиск только файлов или только папок
find . -type f -name SEARCH_NAME

Поиск без учёта регистра
find . -type f -iname SEARCH_NAME

Поиск файлов по расширению
find . -type f -name "*.cpp"

Поиск файлов в заданной папке
abhishek@LHB:~/Examples$ find ./new -name mystuff
./new/mystuff


Поиск файлов в нескольких папках
find ./location1 /second/location -type f -name "pattern"

Поиск пустых файлов и папок
find . -empty

Поиск крупных и мелких файлов (поиск по размеру файла)
find . -size +1G

https://habr.com/ru/companies/first/articles/593669/
2👍1
Пример Bash-скрипта, который выполняет следующие задачи

1. Проверяет доступность важного веб-сервера.
2. Проверяет использование дискового пространства.
3. Делает бэкап указанных директорий.
4. Отправляет отчет на электронную почту администратора.

Пример скрипта:

#!/bin/bash

# Установки
WEB_SERVER="https://example.com"
BACKUP_DIR="/backup"
TARGET_DIRS="/var/www /etc"
DISK_USAGE_THRESHOLD=90
ADMIN_EMAIL="admin@example.com"
DATE=$(date +"%Y-%m-%d")
BACKUP_FILE="$BACKUP_DIR/backup-$DATE.tar.gz"

# Проверка доступности веб-сервера
echo "Проверка доступности веб-сервера..."
if curl -s --head $WEB_SERVER | grep "200 OK" > /dev/null; then
echo "Веб-сервер доступен."
else
echo "Внимание: Веб-сервер недоступен!" | mail -s "Проблема с веб-сервером" $ADMIN_EMAIL
fi

# Проверка дискового пространства
echo "Проверка дискового пространства..."
DISK_USAGE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
if [ $DISK_USAGE -gt $DISK_USAGE_THRESHOLD ]; then
echo "Внимание: Использование дискового пространства превысило $DISK_USAGE_THRESHOLD%!" | mail -s "Проблема с дисковым пространством" $ADMIN_EMAIL
else
echo "Дискового пространства достаточно."
fi

# Создание бэкапа
echo "Создание бэкапа..."
tar -czf $BACKUP_FILE $TARGET_DIRS

if [ $? -eq 0 ]; then
echo "Бэкап успешно создан: $BACKUP_FILE"
else
echo "Ошибка создания бэкапа!" | mail -s "Ошибка создания бэкапа" $ADMIN_EMAIL
fi

# Отправка отчета
echo "Отправка отчета на $ADMIN_EMAIL..."
REPORT="Отчет за $DATE\n\n"
REPORT+="Статус веб-сервера: $(curl -s --head $WEB_SERVER | head -n 1)\n"
REPORT+="Использование дискового пространства: $DISK_USAGE%\n"
REPORT+="Расположение бэкапа: $BACKUP_FILE\n"

echo -e $REPORT | mail -s "Ежедневный отчет системы" $ADMIN_EMAIL

echo "Готово."


Описание:
1. Проверка веб-сервера: Используется команда curl, чтобы проверить, доступен ли сайт.
2. Проверка дискового пространства: С помощью df и awk проверяется использование диска. Если превышен порог (90%), отправляется уведомление.
3. Создание бэкапа: Команда tar архивирует и сжимает директории, которые указаны в переменной TARGET_DIRS.
4. Отправка отчета: Отчет по всем операциям отправляется на почту администратора с помощью mail.

Как использовать:
1. Задайте нужные параметры, такие как адрес веб-сервера, директории для бэкапа, порог использования диска и email.
2. Сделайте скрипт исполняемым:

   chmod +x /path/to/your/script.sh

3. Добавьте скрипт в cron для выполнения на регулярной основе:

   crontab -e

Пример для выполнения каждый день в 00:00:


0 0 * * * /path/to/your/script.sh
3
Как работает Docker
1
Наглядное руководство по туннелированию SSH и переадресации портов

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

https://ittavern.com/visual-guide-to-ssh-tunneling-and-port-forwarding/
2
Понимание системных журналов Linux

Системные журналы, которые обычно находятся в каталоге /var/log на Linux-системах, крайне важны для мониторинга и устранения неполадок. Краткое описание основных журналов:

syslog: Основной универсальный журнал системы, куда попадают сообщения от различных сервисов и приложений. Многие другие логи направляют сообщения именно сюда.

auth.log: Содержит сообщения, связанные с аутентификацией: успешные и неудачные попытки входа, смена пароля, события проверки пользователей.

kern.log: Фиксирует сообщения ядра: ошибки оборудования, загрузку модулей ядра и другие активности, связанные с ядром системы.

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

dmesg: Отображает кольцевой буфер сообщений ядра — в реальном времени показывает события, связанные с ядром и обнаружением оборудования при запуске системы.

cron: Журналирует работу заданий cron и запланированных задач: время выполнения, а также ошибки, возникшие при выполнении.

secure: Записывает сообщения, связанные с безопасностью: попытки аутентификации, эскалация привилегий и другие важные для безопасности события.

apache/access.log и apache/error.log: Журналы веб-сервера Apache. access.log хранит логи HTTP-доступа, а error.log — ошибки и предупреждения Apache.

nginx/access.log и nginx/error.log: Аналогичные журналы для веб-сервера Nginx, фиксируют события доступа и ошибки.

mysql/error.log: Содержит ошибки и предупреждения MySQL-сервера, включая ошибки запуска, сбои запросов и аварийные завершения работы базы данных.

Эти журналы предоставляют ценную информацию о производительности системы, событиях безопасности и помогают при поиске и устранении неполадок. Регулярный мониторинг и анализ этих логов позволяют поддерживать стабильность системы и выявлять потенциальные проблемы до их возникновения.
2
Работа с архивами

Создать .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 login@111.111.111.111:/home/user
1
Контроль оплаты домена через Zabbix

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

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

https://telegra.ph/Kontrol-oplaty-domena-cherez-Zabbix-09-26
1
📌 Bash-совет дня: Быстрый мониторинг TCP/UDP портов

Иногда нужно оперативно узнать, какие порты слушает сервер и какие подключения активны. Вот простой однострочник, который поможет:


sudo ss -tunlp


Пояснение ключей:
- -t — TCP
- -u — UDP
- -n — не разрешать имена хостов и портов (быстрее)
- -l — только слушающие сокеты
- -p — показать PID и имя процесса

Хочешь отсортировать по порту или найти конкретный? Добавь grep:

sudo ss -tunlp | grep 8080


Альтернатива на случай, если нет ss:

sudo netstat -tunlp


Полезно для отладки фаервола, проверки работы сервисов или просто для уверенности, что сервер не слушает ничего лишнего
2
Iptables - Официальная документация

Iptables — утилита командной строки, является стандартным интерфейсом управления работой межсетевого экрана (брандмауэра) Netfilter для ядер Linux, начиная с версии 2.4. С её помощью администраторы создают и изменяют правила, управляющие фильтрацией и перенаправлением пакетов. Для работы с семейством протоколов IPv6 существует отдельная версия утилиты — Ip6tables. Для использования утилиты Iptables требуются привилегии суперпользователя (root).

https://help.ubuntu.ru/wiki/iptables
1
Команды мониторинга и отладки

top отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных)

ps -eafw отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)

ps -e -o pid,args --forest вывести PID’ы и процессы в виде дерева

pstree отобразить дерево процессов

kill -9 98989
kill -KILL 98989
«убить» процесс с PID 98989 «на смерть» (без соблюдения целостности данных)

kill -TERM 98989 Корректно завершить процесс с PID 98989

kill -1 98989
kill -HUP 98989
заставить процесс с PID 98989 перепрочитать файл конфигурации

lsof -p 98989 отобразить список файлов, открытых процессом с PID 98989

lsof /home/user1 отобразить список открытых файлов из директории /home/user1

strace -c ls > /dev/null вывести список системных вызовов, созданных и полученных процессом ls

strace -f -e open ls > /dev/null вывести вызовы бибилотек

watch -n1 ‘cat /proc/interrupts’ отображать прерывания в режиме реального времени

last reboot отобразить историю перезагрузок системы

last user1 отобразить историю регистрации пользователя user1 в системе и время его нахождения в ней

lsmod вывести загруженные модули ядра

free -m показать состояние оперативной памяти в мегабайтах

smartctl -A /dev/hda контроль состояния жёсткого диска /dev/hda через SMART

smartctl -i /dev/hda проверить доступность SMART на жёстком диске /dev/hda

tail /var/log/dmesg вывести десять последних записей из журнала загрузки ядра

tail /var/log/messages вывести десять последних записей из системного журнала
2
Настройка NVMe over TCP — для тех, кому надо подключить больше 1 диска единственной конфигурации из всех примеров в Сети

Технология NVMe через различные фабрики (далее NVMeOF) оформлена в качестве стандарта летом 2016 года, она была встроена в пятую ветку ядра Linux.

Поэтому, когда было решено мигрировать объемные базы данных с легаси-решений на общедоступные платформы, возник вопрос — можно ли применить эту технологию увеличения дискового пространства для создания зеркал локальных дисков?

Чтобы все зеркала не вышли из строя сразу, принимать такие диски надо бы небольшими группами с нескольких машин из разных стоек. Идея показалась достойной рассмотрения, поэтому создали небольшой стенд.

https://habr.com/ru/companies/beeline_tech/articles/770174/
2👍1
Краткое руководство по Load Balancing
👍2
Список полезных команд для работы с telnet, которые могут помочь при подключении и отладке сетевых служб:

Основные команды telnet:
1. Подключение к удаленному хосту:

telnet <hostname> <port>

Пример:

telnet example.com 80

Подключается к хосту example.com на порту 80 (HTTP).

2. Закрытие соединения:
Чтобы завершить сессию, используйте сочетание клавиш:

Ctrl + ] (переход в режим команд)

Затем введите:

quit


3. Отправка текстового запроса после подключения:
Если подключились к порту, например, HTTP-сервера, можно отправить запрос вручную:

GET / HTTP/1.1
Host: example.com

Это выполняет запрос к домашней странице на порту 80.

Встроенные команды telnet (используйте в режиме команд после нажатия `Ctrl + ]`):

1. help
Показывает список доступных команд telnet:

telnet> help


2. open
Открывает новое соединение с указанным хостом:

telnet> open <hostname> <port>


3. close
Закрывает текущее соединение:

telnet> close


4. display
Показывает текущие параметры подключения:

telnet> display


5. mode
Переключает режим работы telnet (например, line или `character`):

telnet> mode line


6. send
Отправляет управляющие символы (например, send escape для отправки escape-секвенции):

telnet> send escape


7. status
Показывает статус текущего соединения:

telnet> status


8. set и unset
Настраивают параметры подключения (например, установка режима эхо):

telnet> set echo
telnet> unset echo


Примеры использования telnet:

1. Проверка доступности порта:
Чтобы проверить, открыт ли порт на удаленном сервере:

telnet <hostname> <port>


2. Проверка почтового сервера (SMTP):
Подключение к серверу SMTP:

telnet smtp.example.com 25

Затем можно вручную ввести SMTP-команды, такие как:

EHLO example.com


3. Проверка DNS сервера:
Можно подключиться к DNS-серверу и проверить его ответы:

telnet <dns-server> 53


Эти команды помогут вам для отладки, диагностики и проверки сетевых служб.
1
Памятка по Debian
2
mRemoteNG

Это форк mRemote: мультипротокольный менеджер удаленных соединений с открытым исходным кодом для Windows. mRemoteNG добавляет исправления ошибок и новые функции в mRemote и позволяет просматривать все ваши удаленные соединения в простом, но мощном интерфейсе с вкладками.

Поддерживаемые протоколы:

RDP (Remote Desktop Protocol)
VNC (Virtual Network Computing)
SSH (Secure Shell)
Telnet (TELecommunication NETwork)
HTTP/HTTPS (Hypertext Transfer Protocol)
rlogin (Remote Login)
Raw Socket Connections
Powershell remoting

https://mremoteng.org/

https://github.com/mRemoteNG/mRemoteNG
2
Более чем 80 средств мониторинга системы Linux

По ссылке будет приведен список инструментов мониторинга. Есть как минимум 80 способов, с помощью которых ваша машинка будет под контролем.

https://habr.com/ru/companies/ua-hosting/articles/281519/
1