Системный администратор - Сетевые технологии - Компьютерная помощь
6.91K subscribers
3.15K photos
4.49K videos
1.07K files
688 links
Канал для системных администраторов или те кто работает в ИТ сфере.
📚КНИГИ ПО
💠Cisco systems
💠Mikrotik
💠VoIP
💠Linux
💠 Windows server
💠 Сетевые технологии
📽Видеоуроки
🤝Поддержка
Наша группа: @SySAD
Feedback bot: @SySADbot
Download Telegram
🔐 Права в Linux. Часть 2

🔏 5. Расширенные ACL (Access Control List)

Позволяют задавать более гибкие права, чем стандартная система rwx.

📍 Проверка ACL

getfacl file.txt


📍 Добавление прав пользователю

setfacl -m u:username:rw file.txt

(Пользователь username получит права rw на файл.)

📍 Удаление прав у пользователя
setfacl -x u:username file.txt


📍 Наследование ACL в директориях

setfacl -m d:u:username:rw directory/




⚙️ 6. Маска umask (маска прав)

Определяет, какие права не будут установлены при создании новых файлов и директорий.

📍 Проверка текущегоерка ACL

umask


📍 Задание нового Control

umask 022 # Новые файлы 644 (rw-r--r--), директории 755 (rwxr-xr-x)
umask 077 # Новые файлы 600 (rw-------), директории 700 (rwx------)

📌 Формула:

Права по умолчанию – umask = Итоговые права
Файлы: 666 – umask
Директории: 777 – umask


Пример:
- umask 022 → 666 - 022 = 644 (rw-r--r--)
- umask 077 → 666 - 077 = 600 (rw-------)

🛠 Быстрые команды для проверки и настройки прав
ls -l          # Просмотр прав файлов
stat file.txt # Детальная информация о файле
chmod 750 file # Изменение прав файла
chown user:group file # Изменение владельца
setfacl -m u:username:rw file # Установка ACL


💡 Полезные ссылки:
- man chmod
- man chown
- man setfacl
- man umask

@sysadmin1
👍3🔥31🎉1
Шпаргалка по Proxmox VE – мощной платформе для виртуализации на основе KVM и LXC с поддержкой кластеризации и Ceph.


🛠 Установка и настройка Proxmox
1. Загрузка ISO:
Скачать образ Proxmox VE и записать его на флешку (Rufus, dd).

2. Установка:
- Выбрать диск для установки.
- Задать пароль root и e-mail.
- Настроить сеть (можно оставить DHCP).

3. Доступ к Web-интерфейсу:
Открыть в браузере:


https://<IP-сервера>:8006

Логин: root, пароль – указанный при установке.



⚙️ Основные команды Proxmox
🔹 Работа с сервисами
systemctl restart pve-cluster  # Перезапуск кластера
systemctl restart pvedaemon # Перезапуск веб-интерфейса
systemctl restart pveproxy # Перезапуск веб-прокси
systemctl restart pvestatd # Перезапуск статистики


🔹 Управление виртуальными машинами (VM)
qm list                     # Список всех ВМ
qm start <vmid> # Запуск ВМ
qm stop <vmid> # Остановка ВМ
qm shutdown <vmid> # Корректное выключение ВМ
qm config <vmid> # Просмотр конфигурации ВМ
qm snapshot <vmid> <name> # Создать снимок ВМ
qm restore <vmid> <backup> # Восстановление из резервной копии


🔹 Управление контейнерами (LXC)
pct list                   # Список контейнеров
pct start <ctid> # Запуск контейнера
pct stop <ctid> # Остановка контейнера
pct shutdown <ctid> # Корректное выключение контейнера
pct exec <ctid> -- <cmd> # Выполнить команду внутри контейнера
pct console <ctid> # Подключиться к консоли контейнера




📦 Хранилища и резервные копии
🔹 Подключение NFS-хранилища
pvesm add nfs <name> --server <IP> --export <path> --content images,backup


🔹 Резервное копирование (VM и контейнеры)
vzdump <vmid> --dumpdir /backup --mode snapshot


🔹 Восстановление из резервной копии
vzdump --restore <backupfile> <vmid>




Кластеризация и Ceph
🔹 Создание кластера
На главном узле:
pvecm create <cluster-name>

На других узлах:
pvecm add <master-ip>

Проверка:
pvecm status


🔹 Ceph (для хранения данных)
Установка Ceph
pveceph install

Создание монитора Ceph
pveceph create
pveceph mon create
pveceph mgr create

Добавление OSD-диска
pveceph osd create /dev/sdX




🔧 Дополнительно
🔹 Удаление подписки Proxmox (убираем окно "No valid subscription")
sed -i.bak "s|if (data.status !== 'Active')|if (false)|g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
systemctl restart pveproxy


🔹 Обновление Proxmox
apt update && apt dist-upgrade -y


🔹 Установка Webmin (удобная панель управления сервером)
apt install -y wget
wget http://prdownloads.sourceforge.net/webadmin/webmin_2.101_all.deb
dpkg -i webmin_2.101_all.deb
apt --fix-broken install -y

После установки Webmin доступен на порту 10000:

https://<IP-сервера>:10000


@sysadmin1
2👍1🔥1🎉1
📌 Шпаргалка по управлению сервисами и демонами (systemctl, service, init.d)

🔹 Systemd (systemctl)
systemctl — основная утилита для управления сервисами в системах с Systemd (например, Ubuntu 16+, CentOS 7+, Debian 8+).

Запуск, остановка, перезапуск сервиса
systemctl start <service>      # Запустить сервис
systemctl stop <service> # Остановить сервис
systemctl restart <service> # Перезапустить сервис
systemctl reload <service> # Перезагрузить конфигурацию без остановки
systemctl reload-or-restart <service> # Перезапустить, если нельзя перезагрузить


🛠 Статус сервиса
systemctl status <service>     # Проверить статус сервиса
systemctl is-active <service> # Проверить, запущен ли сервис (active/inactive)
systemctl is-enabled <service> # Проверить, включен ли сервис при загрузке (enabled/disabled)


⚙️ Автозапуск при старте системы
systemctl enable <service>   # Включить автозапуск
systemctl disable <service> # Отключить автозапуск
systemctl mask <service> # Запретить запуск сервиса
systemctl unmask <service> # Разрешить запуск сервиса


📜 Логи сервиса
journalctl -u <service>       # Показать логи сервиса
journalctl -xe # Посмотреть детальные ошибки и события
journalctl --since "30 min ago" -u <service> # Логи за последние 30 минут


🔄 Перезагрузка Systemd
systemctl daemon-reexec   # Перезапустить systemd без перезагрузки системы
systemctl daemon-reload # Обновить конфигурацию сервисов




🔹 SysV Init (service, init.d)
Для старых систем без systemd (например, CentOS 6, Debian 7) используются SysV Init и скрипты в /etc/init.d/.

Запуск, остановка, перезапуск
service <service> start      # Запустить сервис
service <service> stop # Остановить сервис
service <service> restart # Перезапустить сервис
service <service> reload # Перезагрузить конфигурацию без остановки


🛠 Статус сервиса
service <service> status     # Проверить статус сервиса


⚙️ Автозапуск при старте системы
chkconfig <service> on       # Включить автозапуск
chkconfig <service> off # Отключить автозапуск
chkconfig --list <service> # Проверить, включен ли сервис при старте


📂 Ручное управление через init.d
/etc/init.d/<service> start   # Запустить сервис
/etc/init.d/<service> stop # Остановить сервис
/etc/init.d/<service> restart # Перезапустить сервис
/etc/init.d/<service> status # Проверить статус




🔹 Upstart (service, initctl)
Использовался в Ubuntu 9.10 – 14.10.

Управление сервисами
service <service> start       # Запустить сервис
service <service> stop # Остановить сервис
service <service> restart # Перезапустить сервис
service <service> status # Проверить статус сервиса
initctl list # Список всех сервисов


⚙️ Автозапуск
echo "manual" | sudo tee /etc/init/<service>.override  # Отключить автозапуск
sudo rm /etc/init/<service>.override # Включить автозапуск




🔹 Дополнительно
🔍 Найти сервис в системе
systemctl list-units --type=service  # Список всех сервисов
systemctl list-unit-files | grep enabled # Все включенные сервисы


🗑 Удаление сервиса
systemctl disable <service>
systemctl stop <service>
rm -f /etc/systemd/system/<service>.service
systemctl daemon-reload




🔥 Совет:
Если не знаете, какой менеджер используется в вашей системе, выполните:
ps --pid 1 -o comm=

Если ответ systemd → используйте systemctl, если initservice или init.d.

@sysadmin1
3👍1🔥1👏1
📌 Файлы конфигурации сети в Linux

1️⃣ /etc/resolv.conf – Настройки DNS
🔹 Основные директивы:
- nameserver <IP> – Указывает DNS-сервер
- search <домен> – Определяет домен по умолчанию
- options <параметры> – Дополнительные настройки (например, timeout:2)

🔹 Пример:
nameserver 8.8.8.8
nameserver 1.1.1.1
search example.com
options timeout:2 attempts:3


⚠️ Важно! В системах с NetworkManager или systemd-resolved resolv.conf может перезаписываться!
Проверить: ls -l /etc/resolv.conf (если это симлинк – управляется сервисом).



2️⃣ /etc/hosts – Сопоставление IP и доменных имен
🔹 Используется для локального DNS-резолвинга.

🔹 Пример:
127.0.0.1   localhost
192.168.1.10 server.localdomain server


📌 Применение:
- Подмена IP-адресов для тестирования
- Ускорение доступа к локальным ресурсам



3️⃣ /etc/network/interfaces (Debian-based) – Настройки сетевых интерфейсов
🔹 Используется в Debian, Ubuntu (если не задействован NetworkManager)

🔹 Пример настройки статического IP:
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 1.1.1.1


💡 Основные параметры:
- auto <интерфейс> – Автозапуск при загрузке
- iface <интерфейс> inet <тип>static, dhcp, manual
- address <IP> – Статический IP
- gateway <IP> – Шлюз
- dns-nameservers <IP> – DNS-серверы



4️⃣ NetworkManager – Современный способ управления сетью
🔹 Конфиги хранятся в /etc/NetworkManager/
🔹 Использует nmcli, nmtui для настройки

🔹 Пример подключения к Wi-Fi:
nmcli device wifi list
nmcli device wifi connect "MySSID" password "MySecretPass"


🔹 Проверка статуса сетевого подключения:
nmcli general status
nmcli connection show


🔹 Настройка статического IP:
nmcli con mod eth0 ipv4.addresses 192.168.1.100/24
nmcli con mod eth0 ipv4.gateway 192.168.1.1
nmcli con mod eth0 ipv4.dns "8.8.8.8 1.1.1.1"
nmcli con mod eth0 ipv4.method manual
nmcli con up eth0


⚠️ Важно! В CentOS/RHEL используется nmcli, а в Ubuntu/Debian – netplan.



📌 Проверка сетевого соединения:
ping -c 4 8.8.8.8        # Проверка связи с сервером
dig google.com # Проверка DNS
ip a # Вывод IP-адресов интерфейсов


🔹 Где еще могут храниться настройки?
- /etc/netplan/*.yaml – В Ubuntu 18.04+ (заменил /etc/network/interfaces)
- /etc/sysconfig/network-scripts/ifcfg-* – В CentOS/RHEL


📢 Используйте правильный инструмент для вашей ОС и следите за тем, чтобы изменения в конфигах не перезаписывались сервисами! 🚀

@sysadmin1
🔥2🤩2👌2🎉1🏆1
🎯 Мониторинг загрузки процессора и уведомление в Telegram 🎯

Сервер начал тормозить, а вы не знаете почему? 🤔 Напишите скрипт, который мониторит загрузку CPU и при превышении порога отправляет уведомление в Telegram!

📌 Скрипт для мониторинга CPU и отправки уведомлений

#!/bin/bash

# Порог загрузки CPU в процентах
THRESHOLD=80

# Токен бота и ID чата в Telegram
TELEGRAM_BOT_TOKEN="your_bot_token"
CHAT_ID="your_chat_id"

# Получаем среднюю загрузку CPU за 1 минуту
CPU_LOAD=$(awk '{print $1}' /proc/loadavg | awk '{print int($1)}')

# Проверяем, превышен ли порог
if [ "$CPU_LOAD" -ge "$THRESHOLD" ]; then
MESSAGE="⚠️ Внимание! Высокая загрузка CPU: ${CPU_LOAD}%"
curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-d chat_id="$CHAT_ID" \
-d text="$MESSAGE"
fi


🔹 Как использовать?
1️⃣ Сохраните скрипт в файл, например, cpu_monitor.sh.
2️⃣ Дайте права на выполнение:

   chmod +x cpu_monitor.sh

3️⃣ Добавьте в cron для проверки каждые 5 минут:

   crontab -e

Добавьте строку:

   */5 * * * * /path/to/cpu_monitor.sh


Теперь при высокой нагрузке процессора вы получите уведомление в Telegram и сможете быстро принять меры! 🚀

@sysadmin1
2👍1🔥1🎉1
📌 Резервное копирование и восстановление (tar, rsync, cron, BorgBackup)


🛠 1. Архивация с tar
📦 Создать архив:
tar -cvzf backup.tar.gz /путь/к/директории

📂 Распаковать архив:
tar -xvzf backup.tar.gz -C /путь/куда/распаковать

🔎 Просмотреть содержимое архива:
tar -tvf backup.tar.gz

📝 Архивация с исключением файлов:
tar --exclude='/путь/к/исключаемой_папке' -cvzf backup.tar.gz /путь/к/директории



🔄 2. Синхронизация с rsync
📤 Копирование файлов с сохранением структуры и прав:
rsync -av /источник/ /назначение/

🌍 Синхронизация по SSH:
rsync -avz -e ssh /источник/ user@host:/назначение/

🧹 Удаление устаревших файлов в целевой папке:
rsync -av --delete /источник/ /назначение/

📄 Исключение файлов:
rsync -av --exclude='*.log' /источник/ /назначение/



3. Автоматизация с cron
📅 Редактирование задач:
crontab -e

📌 Примеры:
- Запуск резервного копирования каждый день в 3:00

  0 3 * * * tar -cvzf /backup/backup_$(date +\%F).tar.gz /важные_данные

- Автоматическая синхронизация раз в час

  0 * * * * rsync -av /данные/ /backup/


📌 Проверка запланированных задач:
crontab -l


🏆 4. Бэкап с BorgBackup
Инициализация хранилища:
borg init --encryption=repokey /backup/repo

📦 Создание резервной копии:
borg create --stats /backup/repo::backup-$(date +%F) /данные

🛠 Восстановление данных:
borg extract /backup/repo::backup-2024-02-26

📜 Просмотр списка резервных копий:
borg list /backup/repo

🧹 Удаление старых бэкапов (например, старше 7 дней):
borg prune --keep-daily=7 /backup/repo



🔥 Вывод:
- tar — простая архивация
- rsync — синхронизация данных
- cron — автоматизация
- BorgBackup — мощное решение для резервного копирования

@sysadmin1
👍3💯21🔥1🎉1
Ata Elahi, Alex Cushman - Computer Networks – 2023 .pdf
19.4 MB
📖 Computer Networks: Data Communications, Internet and Security

Год: 2023
Автор: Ata Elahi, Alex Cushman

Книга рассматривает фундаментальные принципы компьютерных сетей и передачи данных, начиная с основ цифровых коммуникаций и заканчивая современными интернет-технологиями. Авторы объясняют работу локальных сетей (LAN), интернет-протоколов и технологий передачи голоса по IP. Также затрагиваются беспроводные сети и технологии связи с низким энергопотреблением, включая ZigBee, 6LoWPAN и LoRa.

Отдельные главы посвящены криптографии и базовым принципам сетевой безопасности, которые необходимы для защиты инфраструктуры и передачи данных. Материал построен как системное введение в сетевые технологии и помогает понять, как устроена современная интернет-архитектура. Книга подойдёт системным администраторам, сетевым инженерам и специалистам, которые хотят глубже разобраться в работе сетей и сетевой безопасности.


#network

@sysadmin1
👍5🏆21🔥1🎉1
This media is not supported in your browser
VIEW IN TELEGRAM
HTTP (HyperText Transfer Protocol)

Данные передаются в открытом виде, и любой в сети может их перехватить или прочитать – протокол небезопасен.
Пример: http://example.com

Шифрование отсутствует, поэтому соединение уязвимо для атак.

HTTPS (HTTP Secure)

Данные передаются в зашифрованном виде, и злоумышленники не могут их прочитать или изменить – соединение считается безопасным.
Пример: https://example.com

Данные защищены.

@Sysadmin1
🔥6👍211🎉1
📌 Журналы системы и мониторинг

🖥️ Основные инструменты логирования и мониторинга в Linux

📜 journalctl – просмотр логов systemd
🔹 journalctl -f — следить за логами в реальном времени
🔹 journalctl -u nginx — логи конкретного сервиса
🔹 journalctl --since "1 hour ago" — логи за последний час
🔹 journalctl -b -1 — логи предыдущей загрузки

💡 Фильтрация:
🔹 journalctl -p err — только ошибки
🔹 journalctl -k — только сообщения ядра



🔄 logrotate – ротация логов
Файл конфигурации: /etc/logrotate.conf

Пример настройки ротации:
/var/log/nginx/*.log {
weekly
rotate 4
compress
missingok
notifempty
}

🔹 logrotate -d /etc/logrotate.conf — тест без изменений
🔹 logrotate -f /etc/logrotate.conf — принудительная ротация



📡 syslog (rsyslog, syslog-ng) – логирование в файлы и удаленно
🔹 Конфиг: /etc/rsyslog.conf
🔹 /var/log/syslog — общий системный лог
🔹 /var/log/auth.log — авторизации
🔹 /var/log/kern.log — логи ядра

💡 Пример отправки логов на удалённый сервер (rsyslog):
Добавить в /etc/rsyslog.conf:

*.* @192.168.1.100:514

🔹 Перезапуск: systemctl restart rsyslog



⚙️ dmesg – логи ядра
🔹 dmesg | grep -i error — ошибки ядра
🔹 dmesg -T — отображение времени в читаемом формате

🛠 Полезные команды:
🔹 dmesg -H — цветная и структурированная выдача
🔹 dmesg --level=err,warn — фильтр по уровню



📊 Мониторинг логов
🔹 tail -f /var/log/syslog — следить за логами
🔹 grep -i "error" /var/log/syslog — поиск ошибок
🔹 awk '{print $5}' /var/log/syslog | sort | uniq -c | sort -nr — топ источников логов

💡 Автоматизация: используйте fail2ban, logwatch и Grafana+Loki для анализа логов 🔥

Сохрани, чтобы не потерять! 🚀

@sysadmin1
👍5🔥2🎉2🏆21
🔐 ТРЕБУЕТСЯ СПЕЦИАЛИСТ ПО CYBERSECURITY

IT-компания приглашает опытного специалиста по информационной безопасности.

📌 Обязанности:
• Обеспечение безопасности корпоративной почты
• Настройка безопасности Windows Server AD и GPO
• Ведение logging и систем мониторинга
• Выявление и предотвращение уязвимостей
• Обеспечение безопасности сети и SQL
• Проведение тренингов по безопасности для сотрудников
• Внедрение и контроль политик безопасности

📌 Требования:
• Практический опыт в сфере Cybersecurity
• Понимание сетевой безопасности и firewall
• Опыт работы с SIEM / системами мониторинга
• Знание принципов Incident Response
• Умение работать в команде
• Знание русского и английского языков

⭐️ Будет преимуществом:
• Сертификаты CEH, Security+, CISSP
• Опыт в Linux или Cloud security

📍 г. Ташкент
👤 Возраст: 20–30
💰 Зарплата: 1000$ + KPI

📩 Отправляйте резюме: @it_manager7

@sysadmin1
👍32🔥2🎉1🤩1
📦 Резервное копирование и восстановление


🧰 Основные инструменты:
- tar — архивирование файлов
- rsync — синхронизация каталогов
- cron — автоматизация по расписанию
- BorgBackup — инкрементные зашифрованные бэкапы



📁 tar — Архивация

📦 Создание архива:
tar -czvf backup.tar.gz /путь/к/каталогу


🔍 Проверка содержимого:
tar -tzf backup.tar.gz


♻️ Восстановление:
tar -xzvf backup.tar.gz -C /куда/восстановить


📝 Полезно:
- -c — создать архив
- -x — извлечь
- -z — сжать gzip
- -v — вывод списка
- -f — указать имя файла



🔁 rsync — Синхронизация и инкрементные копии

📤 Бэкап локальной папки:
rsync -avh /источник/ /backup/каталог/


🌍 На удалённый сервер по SSH:
rsync -avz -e ssh /data/ user@host:/backup/


🛡️ С флагами:
- -a — архивный режим (всё сохраняет)
- -v — подробный вывод
- -z — сжатие
- --delete — удаляет на стороне назначения лишние файлы

📅 Пример: копирование с датой
rsync -av --progress /data/ /backup/$(date +%F)/




cron — Автоматизация задач

🛠️ Открыть crontab:
crontab -e


🕒 Пример задания: ежедневный бэкап в 2:00
0 2 * * * /usr/bin/rsync -a /data/ /backup/


📌 Формат:

мин ч д_мес мес д_нед команда


👀 Просмотр логов:
grep CRON /var/log/syslog




🧠 BorgBackup — Продвинутый бэкап с дедупликацией и шифрованием

📦 Создание репозитория:
borg init --encryption=repokey /backup/borg-repo


🧱 Резервное копирование:
borg create /backup/borg-repo::ИмяАрхива-$(date +%F) /data


🔍 Проверка архива:
borg list /backup/borg-repo


🛠️ Восстановление:
borg extract /backup/borg-repo::ИмяАрхива


🧹 Удаление старых архивов:
borg prune -v --keep-daily=7 --keep-weekly=4 --keep-monthly=6 /backup/borg-repo


🔐 Преимущества Borg:
- Шифрование по умолчанию
- Сжатие и дедупликация
- Поддержка удалённого хранения (через SSH)



Best Practices

🔁 Храните несколько копий в разных местах
🔒 Используйте шифрование для чувствительных данных
📋 Регулярно тестируйте восстановление
📆 Автоматизируйте с помощью cron, логируйте результаты
☁️ Подумайте о облачном бэкапе (rclone, borg + SSH, rsync + VPS)

@sysadmin1
2👍2🎉2💯2🔥1
📌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. 🚀

@sysadmin1
🎉4🏆3👍2🔥21
📌 Автоматизация задач (cron, systemd timers, Ansible)

Всем доброй ночи!
Автоматизация — ключевой элемент эффективного администрирования серверов. В данном руководстве рассмотрены три основных инструмента автоматизации:
- cron — классический планировщик задач в UNIX-подобных системах.
- systemd timers — альтернатива cron, интегрированная в systemd.
- Ansible — инструмент управления конфигурацией и автоматизации.


1. Использование cron
cron позволяет запускать команды и скрипты по расписанию.

1.1. Основные файлы cron
- /etc/crontab — системный crontab.
- /etc/cron.d/ — каталог для пользовательских crontab-файлов.
- /var/spool/cron/crontabs/ — файлы crontab для отдельных пользователей.

1.2. Формат записи crontab

* * * * * /путь/к/команде аргументы
| | | | |
| | | | +---- День недели (0 - вс, 6 - сб)
| | | +------ Месяц (1-12)
| | +-------- День месяца (1-31)
| +---------- Часы (0-23)
+------------ Минуты (0-59)


Пример: запуск скрипта каждый день в 3:30 утра:

30 3 * * * /usr/local/bin/myscript.sh


1.3. Управление cron
- Просмотр текущего crontab:


crontab -l

- Редактирование crontab:


crontab -e

- Удаление crontab:


crontab -r

- Логи cron хранятся в /var/log/syslog (Ubuntu/Debian) или /var/log/cron (CentOS/RHEL).


2. Использование systemd timers
Systemd timers — альтернатива cron, предоставляющая больше возможностей, включая логирование и гибкость настроек.

2.1. Создание таймера
1. Создайте unit-файл для сервиса (/etc/systemd/system/myscript.service):

   [Unit]
Description=Запуск скрипта
[Service]
ExecStart=/usr/local/bin/myscript.sh

2. Создайте unit-файл для таймера (/etc/systemd/system/myscript.timer):

   [Unit]
Description=Таймер для myscript.service
[Timer]
OnCalendar=*-*-* 03:30:00
Persistent=true
[Install]
WantedBy=timers.target


2.2. Управление таймерами
- Включение таймера:

  systemctl enable --now myscript.timer

- Проверка состояния таймера:

  systemctl list-timers

- Просмотр логов:

  journalctl -u myscript.service --no-pager



3. Автоматизация с Ansible
Ansible позволяет управлять серверами без установки агентов.

3.1. Установка Ansible
Для Debian/Ubuntu:
sudo apt update && sudo apt install -y ansible

Для CentOS/RHEL:
sudo yum install -y epel-release
sudo yum install -y ansible


3.2. Базовая структура Ansible
inventory/hosts  # Список серверов
playbooks/
install_apache.yml # Пример Playbook
roles/
common/ # Роли Ansible


3.3. Пример Playbook
Файл install_apache.yml:
- hosts: webservers
become: yes
tasks:
- name: Установить Apache
apt:
name: apache2
state: present

Запуск:
ansible-playbook -i inventory/hosts playbooks/install_apache.yml


Заключение
- Используйте cron для простых задач.
- Применяйте systemd timers, если важны логи и интеграция с systemd.
- Автоматизируйте масштабные задачи с Ansible.

@sysadmin1
🤝3🤩21👍1🔥1