Sysadminium
322 subscribers
148 photos
1 video
1 file
398 links
Я делюсь своими знаниями системного администратора. Всё проверено на себе — иногда даже дважды.
Download Telegram
☝️Начало

🔍 Как проверить Effective Access

🖱 Через GUI:

Свойства папки → Безопасность → Дополнительно → Действующие права доступа → Выбрать пользователя

✅ Windows покажет итоговые права с учётом:
• групп
• наследования
• явных Deny

💻 Через PowerShell

📌 Список SMB-шар:
Get-SmbShare


📌 Права на SMB-шару:
Invoke-Command -ComputerName <имя сервера> {
Get-SmbShareAccess -Name "<имя шары>"
}


📌 NTFS-права:
icacls "U:\example\Ivanov"


💡 Многие админы делают так:

🔹 Share permissions → всем дают Full Control
🔹 Всё разграничение — только через NTFS

Это спорная практика, но у неё есть плюсы:

✅ меньше путаницы
✅ проще аудит
✅ удобнее автоматизация

🚨 Если доступ не работает — проверьте:

✔️ Пользователь точно в нужной группе?
✔️ Нет ли явного Deny? (Deny всегда приоритетнее Allow)
✔️ Пользователь перелогинился после изменения групп?
✔️ Доступен ли SMB-сервер?
Test-NetConnection server -Port 445

✔️ Нет ли старых SMB-сессий?
net use * /delete


🔖 Сохраните — пригодится во время инцидента.
👍7
Продолжаю переносить статьи со старого сайта на новый. Эта статья за апрель 2022.

Если вам нужен локальный репозиторий для внутренних пакетов — DevPI спасет ситуацию, ускоряя CI/CD.

Как это работает:
1️⃣ Вы поднимаете локальный сервер DevPI (кэширующее зеркало PyPI).
2️⃣ Настраиваете pip так, чтобы он тянул модули не напрямую из интернета, а с вашего локального сервера.
3️⃣ Если нужного пакета нет в локальном кэше, DevPI сам скачает его с PyPI, сохранит у себя и отдаст вам.

Итог: Все последующие установки проходят мгновенно с локального сервера, а вы меньше зависите от доступности внешнего PyPI.
👍3
👋 Продолжаю переносить статьи со старого сайта на новый! На очереди материал за июнь 2022 года.

В этот раз разбираем настройку OSPF на четырёх роутерах. Чтобы охватить разные ситуации, я подготовил сразу два примера:
1️⃣ Через один свитч. Отличный вариант, если нужно быстро развернуть тестовый стенд и отработать базу.
2️⃣ Поверх VPN. А вот это уже более жизненный и практичный кейс, приближенный к реалиям.
👍3
Продолжаю переносить материалы на новый сайт и хочу поделиться с вами статьей о Load Average в Linux, изначально опубликованной в октябре 2022 года.

Материал получился действительно практичным. В статье подробно объясняется природа метрики, рассматриваются инструменты мониторинга и даются рекомендации по её анализу.
👍9
Переделал одну из своих самых популярных статей — «Linux и оперативная память».

Первую версию я написал ещё в 2022 году, но за это время решил полностью её пересмотреть. Не просто исправил опечатки, а дополнил материал тем, чего тогда очень не хватало.

Теперь в статье разобраны:

✅что такое RSS и VSZ;
✅как устроены Page Cache, Dirty Pages и HugePages;
✅как Linux использует Swap;
✅что происходит при нехватке памяти;
✅как работают стратегии overcommit_memory;
✅что такое CommitLimit и Committed_AS;
✅как OOM Killer выбирает процесс для завершения и как можно повлиять на его решение.

Постарался объяснить всё простыми словами, но без упрощений, чтобы статья была полезна как начинающим, так и опытным Linux-администраторам.
👍8
🔧 Почему возникает ошибка "Too many open files"? Чем отличается fs.file-max от nofile? Где задаются лимиты для пользователей, а где — для служб SystemD?

Подготовил большую статью о лимитах в Linux. Разобрал три уровня ограничений:

• системные (sysctl);
• пользовательские (limits.conf);
• для служб (SystemD).

Без сухого перечисления параметров — с объяснением, как они работают и в каких случаях их действительно приходится менять.

В статье также есть готовый Bash-скрипт, который помогает определить количество открытых файлов у процессов. Не раз выручал меня при диагностике серверов.
👍5
👀Я продолжаю переносить статьи со старого на новый сайт, уже перенёс 57% материала.

👉Эта статья за апрель 2023 года.
Иногда требуется выяснить причину перезагрузки Windows сервера, который не должен был перезагружаться, но всё же сделал это.
👍6
📝Выбор диска для GRUB при обновлении Debian на VPS/VDS

После приобретения виртуального сервера VPS/VDS с Linux, например с Debian 13, вам нужно провести некоторые стандартные действия:

👉Обновить сервер (apt update && apt upgrade).
👉Настроить файрвол (например, UFW).
👉Настроить доступ по SSH-ключу (и отключить вход по паролю).
👉А затем уже устанавливать и настраивать необходимое приложение.

⚠️ Частая проблема при обновлении.

Во время первого обновления система (пакет grub-pc) спрашивает: установить загрузчик GRUB на /dev/sda или на /dev/sda1?

✅Выбирайте /dev/sda (весь диск целиком, без номера раздела).

💡 Почему так?

В классической схеме загрузки (BIOS/MBR) GRUB записывается в MBR (Master Boot Record) — это первые 512 байт всего диска.

/dev/sda1 — это уже первый раздел. Установка GRUB на раздел нужна только в редких специфичных случаях (например, при chain-loading), которые на стандартном VPS не встречаются.
👍7
💬У меня в обслуживании много Proxmox VE серверов. Чаще всего сеть настроена в виде бонда:
👉active-backup - резервируем подключение дополнительным кабелем;
👉LACP (802.3ad) - резервируем и балансируем нагрузку между кабелями.

На одном из серверов стояла задача: поменять тип бонда с active-backup на LACP. И дополнительно поменять сетевые интерфейсы:
👉active-backup - был 10G + 1G;
👉LACP - нужно 10G + 10G.

Я выбрал нужные интерфейсы и режим бонда в web-интерфейсе, нажал Apply. Переподключил кабели в подготовленный LACP-лаг на коммутаторе. Сеть не заработала. 🤔

Проверил конфиг: /etc/network/interfaces - всё верно✅.
Проверил бонд: /proc/net/bonding/bond0 - остался active-backup. ⚠️

Помогла команда ifreload -a. Она по сути и вызывается кнопкой Apply. Видимо, при смене типа бонда UI сработал не до конца: конфиг заменил, но ядро не пересоздало интерфейс.😊
1👍8
🐧 Аналог Windows tracert в Linux

Если вы переезжаете с Windows или просто забыли, чем трассировать маршрут в Linux, вот 3 главных инструмента.👇

1️⃣ Прямой аналог - traceroute.

Установка : sudo apt install traceroute
Пример работы: traceroute example.com

❗️По умолчанию шлёт UDP. Для ICMP (как в Windows) добавьте ключ -I и используйте sudo.

2️⃣ Более простой - tracepath

Обычно предустановлен и не требует root.

Пример работы: tracepath example.com

3️⃣ Более продвинутый - mtr

Установка: sudo apt install mtr
Использование: mtr example.com

Можно выполнить mtr -c 10 example.com - для 10 циклов и автоматического выхода. Объединяет возможности ping и traceroute в реальном времени. Сразу видно, на каком именно хопе начинаются задержки или потери пакетов.
👍5
📝Когда вы и коллеги подключаетесь к разным Linux-серверам, используя SSH-ключи, вы можете выбрать разные стратегии работы с ними:

✅ Один сотрудник — многие серверы. У каждого сотрудника один свой ключ для всех серверов. На серверах в authorized_keys прописаны публичные ключи каждого сотрудника. Самый распространённый подход в индустрии. Удобно и безопасно: не нужно плодить кучу ключей, а при увольнении достаточно удалить ключ сотрудника со всех серверов.

🚫 Один сервер — один ключ на всех. Для каждого сервера существует одна пара ключей, и все сотрудники используют один и тот же приватный ключ для подключения. Грубая ошибка безопасности — эквивалент одного пароля на всех. Если коллега уволится, придётся генерировать новую пару ключей и раздавать приватный ключ оставшимся коллегам.

⚠️ Каждой паре «сотрудник–сервер» — свой ключ. Самый безопасный вариант, но адский менеджмент. На практике применяется не для людей, а для автоматизации: CI/CD-пайплайны, Ansible, скрипты.
👍5
🧵 В продолжение темы SSH и подключений по ключам (Windows Powershell).

Чтобы повысить безопасность хранения SSH-ключей, при их генерации удобно задать пароль:

ssh-keygen -t ed25519 -f C:\Users\user\.ssh\id_ed25519


💡 Имя ключа (id_ed25519) можно изменить на своё.
💡 У меня пользователь user, у вас путь может отличаться.

Смотрим открытый ключ:

Get-Content C:\Users\user\.ssh\id_ed25519.pub


Его передаём на сервер: ~/.ssh/authorized_keys.

Теперь при подключении к серверу вы вводите пароль от ключа. Он не передаётся по сети, что повышает безопасность.

🤖 Чтобы не вводить пароль при каждом подключении, используем ssh-agent. На Windows его нужно один раз запустить с правами администратора:
Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent


Добавим ключ в агент:

ssh-add C:\Users\user\.ssh\id_ed25519


Пароль хранится в памяти компьютера и очищается при перезагрузке.

Полезные команды:
🔹 Посмотреть добавленные ключи: ssh-add -l
🔹 Очистить все добавленные ключи: ssh-add -D
👍9
🗓Статься от 27.09.2023 про утилиту psping.

Эта утилита позволяет:
🔹Выполнять ping по определённому tcp порту.
🔹Сделать анализ и построить гистограмму.
🔹Протестировать латентность и скорость соединения между двумя серверами.

Она входит в состав пакета PsTools от Марка Руссиновича.

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

psping.exe yandex.ru:443
🚀 Bash-скрипты без создания файлов: метод Heredoc

В инструкциях можно встретить длинные блоки кода, которые целиком можно скопировать и вставить в терминал, и всё выполнится.

Этот способ называется Here-document (или Heredoc). Конструкция bash <<'EOF' ... EOF позволяет передать многострочный текст напрямую в bash.

Кавычки вокруг 'EOF' важны: они говорят оболочке не раскрыть переменные внутри блока до его передачи в bash. Это защищает от неожиданных ошибок при копировании.

В таком скрипте часто используют:
⭐️set -e - скрипт остановиться, если любая из команд завершится с ошибкой.
⭐️export DEBIAN_FRONTEND=noninteractive - переменная окружения для пакетного менеджера apt/dpkg. Она отключает интерактивные диалоги, всё становится молча и автоматически.

Пример:

bash <<'EOF'
set -e
export DEBIAN_FRONTEND=noninteractive

apt-get update && apt-get dist-upgrade -y
apt-get install -y locales wget tzdata lbzip2 bash-completion

EOF
👍8
✅В продолжении темы heredoc я написал небольшую статью.

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

💡В статье разбирается:
- Подстановка переменных или запрет подстановки
- Создание файлов (с помощью перенаправления или утилиты tee)
- Использование heredoc в bash скриптах для форматирования вывода
- Использование для автоматизации (bash, sql-запросы, sftp-команды)

❓Также в статье есть вопросы для самопроверки.

Буду рад вашим лайкам👍
👍5
📝Выделенный сервер 1С для раздачи лицензий - решение не новое, но я начал применять его совсем недавно. Суть проста: в кластере из нескольких серверов одному назначаем только "Сервис лицензирования", отключая остальные функции. Лицензия на сам этот сервер не нужна.

👉Раньше я использовал аппаратные ключи (hasplm), но сейчас их почти не выдают. Пришлось переходить на программные лицензии: их можно активировать на рабочие места сотрудников или централизованно на сервере 1С.

👉Зачем отдельный сервер, если можно активировать лицензии на основном? Всё из-за привязки к железу. Любое изменение конфигурации основного сервера приведет к слету лицензий и необходимости переактивации. Выделенный сервер решает эту проблему: его можно поднять на небольшой виртуалке, один раз активировать и больше не трогать.

👇Продолжение
👍6
Существуют некоторые особенности такого сервера лицензирования:
- Работает только с программными лицензиями.
- Умеет выдавать клиентские и серверные лицензии.
- Серверные лицензии выдаются серверам 1С в составе кластера.
- Клиентские лицензии выдаются только через сервер 1С (на каждый сеанс), файловые базы не поддерживаются.
- Все серверы 1С в одном кластере должны быть одной версией платформы.

Серверы 1С в кластере общаются по именам, и удобно на обоих серверах добавить имена друг друга в файл hosts, или прописать их на своём DNS-сервере.

Подготовить такой кластер несложно.

1. Устанавливаем два сервера 1С.
2. Подключаемся к обоим оснасткой "Администрирование серверов 1С Предприятия".
3. На сервере лицензирования удаляем локальный кластер.
4. На рабочем сервере добавляем "Рабочий сервер" к кластеру (укажем имя сервера лицензирования).
5. На каждом "Рабочем сервере" настраиваем требования назначения:
- На сервере лицензирования:
Сервис лицензирования - Назначить - Для всех.
Для всех - Не назначать - Для всех.
- На рабочем сервере:
Клиентское соединение с ИБ - Назначить - Для всех.
Сервис лицензирования - Не назначать - Для всех.
6. Применяем требования назначения на "Локальном кластере".

При активации лицензии выбираем тип активации "На сервере" и указываем имя сервера лицензирования.
👍5
📌Полезные команды PowerShell

🔹Получить список процессов в системе:
Get-Process

🔹Топ 10 процессов по занимаемой памяти:
Get-Process | Sort-Object WS -Descending | Select -First 10

🔹Получить информацию о процессе, остановить и запустить его:
Get-Process -Name <process-name>
# Завершить процесс по имени
Stop-Process -Name <process-name>
# Завершить процесс по имени
Stop-Process -Id <PID>
# Запустить процесс указав путь к файлу
Start-Process -FilePath <file>

🔹Получить список служб Windows:
Get-Service

🔹Получить информацию о службе, остановить, запустить и перезапустить её:
Get-Service -Name <service-name>
Stop-Service -Name <service-name>
Start-Service -Name <service-name>
Restart-Service -Name <service-name>

🔹Прочитать текстовый файл:
Get-Content -Path <file>

🔹Найти строку в текстовом файле:
Select-String -Path <file> -Pattern <pattern>

🔹Получить информацию о системе:
Get-ComputerInfo

Продолжение👇
👍2
🔹Получить хеш файла. Бывает полезно чтобы проверить не побился ли файл (например: образ или архив):
Get-FileHash -Path <file> -Algorithm SHA256

🔹Проверить порт (открыт или закрыт):
Test-NetConnection -ComputerName <ip> -Port <port>

🔹Переключить неопознанную сеть в частную (кстати, переключить сеть в DomainAuthenticated принудительно нельзя):
# узнаём имя интерфейса и текущий профиль (InterfaceAlias / NetworkCategory)
Get-NetConnectionProfile
# переключим сеть на Private (например, интерфейс называется Ethernet-2)
Set-NetConnectionProfile -InterfaceAlias "Ethernet-2" -NetworkCategory Private
👍3
В статье мы знакомимся с SIEM сервером Wazuh и устанавливаем его на Debian12.

Wazuh — это платформа с открытым исходным кодом, реализующая концепции XDR (Extended Detection and Response) и SIEM (Security Information and Event Management). Решение является бесплатным для развертывания на собственной инфраструктуре. Агенты поддерживают операционные системы Linux, Windows и macOS.
👍4
✔️Из статьи вы узнаете, как подключить Linux, Windows и MikroTik к SIEM-системе Wazuh. Для подключения будем использовать агентов и syslog.
👉В этой статье в качестве Linux используется дистрибутив Debian 13, а в качестве Windows - Windows 10 22H2. На других системах установка и настройка может немного отличаться.
👉На Linux в статье показаны 2 возможных сценария:
- Отправка логов по протоколу syslog.
- Использование агента, который не просто пересылает логи, а также собирает и отправляет на сервер некоторую телеметрию для анализа.
👉Для Windows показан только вариант с использованием агента, хотя отправлять логи по syslog технически тоже можно.
👉Также в статье показана настройка отправки логов с роутеров MikroTik по протоколу syslog.
1👍5