Системный администратор
25.9K subscribers
2.85K photos
2.5K videos
203 files
2.97K links
Все для системного администратора.

По всем вопросам @evgenycarter

РКН clck.ru/3KoDXp
Download Telegram
Карта ARPANET

Карта ARPANET, предшественницы Интернета, на которой показаны 111 компьютерных терминалов, подключенных к сети в 1977 году.

ARPANET была создана Министерством обороны, чтобы позволить исследователям обмениваться информацией и ресурсами. Изначально сеть была ограничена университетами и исследовательскими институтами.

К 1983 году ARPANET насчитывала более 4 000 подключенных компьютеров и растущее число пользователей электронной почты. В отчете о завершении создания ARPANET делается вывод, что "полное влияние технических изменений, вызванных этим проектом, возможно, не будет осознано в течение многих лет".

👉 @i_odmin
Подборка популярных каналов по информационной безопасности и этичному хакингу:

🔐 infosec — ламповое сообщество, которое публикует редкую литературу, курсы и полезный контент для ИБ специалистов любого уровня и направления.

🤯 Social Engineering — самый крупный ресурс в Telegram, посвященный этичному Хакингу, OSINT и социальной инженерии.

💬 Вакансии в ИБ — актуальные предложения от самых крупных работодателей и лидеров рынка в сфере информационной безопасности.
Please open Telegram to view this post
VIEW IN TELEGRAM
Быть системным администратором, это лучшая работа в мире ❤️

👉 @i_odmin
👋 Привет, админы!

Недавно столкнулся с кейсом: один из файловых серверов неожиданно перестал принимать события — логи просто «забились» до предела, из-за чего служба безопасности не могла записывать критичные события входа. Оказалось, что журналы событий выросли до 10 ГБ и система больше не записывала новые записи.

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


# Порог в мегабайтах
$logSizeThresholdMB = 1024

# Папка для архивации
$archivePath = "D:\EventLogArchives"
if (-not (Test-Path $archivePath)) {
New-Item -Path $archivePath -ItemType Directory | Out-Null
}

# Функция для проверки и архивации логов
function Archive-And-Clear-EventLog {
param (
[string]$LogName
)
# Определяем текущий размер лога
$logInfo = wevtutil gl $LogName
$fileSizeLine = ($logInfo | Where-Object { $_ -match "fileSize" })
$sizeBytes = [int64]($fileSizeLine -replace "[^0-9]", "")
$sizeMB = [math]::Round($sizeBytes / 1MB, 2)

if ($sizeMB -ge $logSizeThresholdMB) {
$timestamp = (Get-Date).ToString("yyyyMMdd_HHmmss")
$archiveFile = Join-Path $archivePath "$LogName`_$timestamp.evtx"

# Экспортируем текущий журнал
wevtutil epl $LogName $archiveFile
Write-Host "Архивировал лог $LogName (размер $sizeMB MB) в $archiveFile"

# Очищаем журнал
wevtutil cl $LogName
Write-Host "Очищен лог $LogName"
} else {
Write-Host "Лог $LogName в пределах нормы: $sizeMB MB"
}
}

# Получаем все журналы, которые хотим контролировать (пример: System и Security)
$logsToCheck = @("System", "Security")
foreach ($log in $logsToCheck) {
Archive-And-Clear-EventLog -LogName $log
}


Этот скрипт проверяет размер каждого указанного журнала, экспортирует его в папку архива, если размер больше 1 ГБ, и очищает файл. Я поставил его в Task Scheduler с частотой 1 раз в сутки, чтобы не «догонять» проблему вручную.

💬 А какие у вас есть практики по управлению журналами событий? Используете стандартные утилиты wevtutil/Get-WinEvent или доверяете решениям наподобие SCOM/Elastic Stack? Делитесь в комментах!

👉 @win_sysadmin
🛡 Вебинар: «Комплексная аутентификация: как Рутокен и Avanpost обеспечивают безопасность вашего бизнеса»

🗓 5 июня
🕚 11:00 (МСК)


Строгая многофакторная аутентификация (MFA) — ключевой метод защиты критически важных данных. По оценке CISA, она блокирует до 99% атак. Причем наиболее устойчивым решением считается использование аппаратных токенов.

Компании «Актив» и Avanpost приглашают на вебинар, где мы рассмотрим:
🔵Сложности использования строгой аутентификации в организациях.
🔵IAM как основа инфраструктуры по управлению доступом.
🔵Основные способы интеграции системы MFA с прикладным ПО.
🔵Преимущества совместных сценариев использования продуктов линейки Access Management от Аванпост и аутентификаторов Рутокен.
🔵Unified SSO как новая парадигма корпоративного управления доступом.

Спикеры:
Андрей Шпаков, руководитель направления многофакторной аутентификации, Компания «Актив».
Дмитрий Грудинин, руководитель по развитию продуктовой линейки аутентификации Avanpost FAM/MFA+, Avanpost.

Вебинар будет полезен руководителям ИТ- и ИБ-подразделений, архитекторам в области ИБ, presale-инженерам и интеграторам, внедряющим решения аутентификации пользователей в комплексные проекты.

🔗 Регистрация на вебинар


🤩 Компания «Актив» | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
📚Бесплатная электронная книга "Введение в сценарии Bash

Это руководство/книга с открытым исходным кодом по введению в Bash-сценарии, которое поможет вам изучить основы Bash-сценариев и начать писать потрясающие Bash-скрипты, которые помогут вам автоматизировать ежедневные задачи SysOps, DevOps и Dev. Неважно, являетесь ли вы DevOps/SysOps инженером, разработчиком или просто любителем Linux, вы можете использовать Bash скрипты для объединения различных команд Linux и автоматизации скучных и повторяющихся ежедневных задач, чтобы вы могли сосредоточиться на более продуктивных и интересных вещах.

Руководство подходит для всех, кто работает разработчиком, системным администратором или инженером DevOps и хочет изучить основы написания сценариев Bash.

https://github.com/bobbyiliev/introduction-to-bash-scripting

👉 @i_odmin
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Bash Советы
Сегодня я хочу поделиться простым, но очень полезным Bash-скриптом для автоматического резервного копирования директорий с ротацией старых бэкапов. Такой скрипт пригодится, если необходимо сохранять копии важных данных и при этом не засорять диск старыми архивами.


🔄 Скрипт: Backup с ротацией


#!/usr/bin/env bash

# ================================
# Скрипт: backup_rotate.sh
# Автор: https://t.me/bash_srv
# Описание: Создаёт архив указанной директории,
# хранит только последние N бэкапов, удаляя старые.
# ================================

# Настройки
SOURCE_DIR="/var/www/my_project" # Директория, которую резервируем
DEST_DIR="/backups/my_project" # Директория для хранения бэкапов
RETENTION_DAYS=7 # Сколько дней хранить бэкапы

# Текущее время для имени архива
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
ARCHIVE_NAME="backup_${DATE}.tar.gz"

# Проверяем, что исходная директория существует
if [[ ! -d "$SOURCE_DIR" ]]; then
echo " Исходная директория $SOURCE_DIR не найдена!"
exit 1
fi

# Создаём директорию назначения, если её нет
mkdir -p "$DEST_DIR"

# Создаём архив
tar -czf "${DEST_DIR}/${ARCHIVE_NAME}" -C "$(dirname "$SOURCE_DIR")" "$(basename "$SOURCE_DIR")"
if [[ $? -eq 0 ]]; then
echo " Создан бэкап: ${DEST_DIR}/${ARCHIVE_NAME}"
else
echo " Ошибка при создании архива!"
exit 1
fi

# Удаляем старые бэкапы старше RETENTION_DAYS
find "$DEST_DIR" -type f -name "backup_*.tar.gz" -mtime +${RETENTION_DAYS} -print -delete
echo "🗑️ Удалены бэкапы старше ${RETENTION_DAYS} дней."

exit 0



📝 Пояснение к скрипту

1. Настройки переменных:

🔹 SOURCE_DIR — путь к директории, которую нужно сохранить (например, веб-проект, база данных и т.д.).
🔹 DEST_DIR — куда складываем архива (может быть локальная папка или смонтированный удалённый диск).
🔹 RETENTION_DAYS — сколько дней хранить бэкапы. Всё, что старше этого значения, будет удаляться автоматически.
2. Скрипт проверяет, существует ли исходная директория. Если нет — выводит ошибку и завершает работу.
3. Создаётся папка назначения (mkdir -p), чтобы избежать ошибок, если её ещё нет.
4. Делается tar.gz - архив директории, причём для удобства используется команда:


tar -czf ${DEST_DIR}/${ARCHIVE_NAME} -C $(dirname $SOURCE_DIR) $(basename $SOURCE_DIR)


- Это позволяет не копировать весь путь в архив, а только нужную папку.
5. Если архивирование прошло успешно (код возврата 0) — выводим сообщение об успехе.
6. Далее команда find ищет файлы-архивы старше RETENTION_DAYS дней и удаляет их. Параметр -mtime +N означает “более N дней назад”. Опция -print -delete сначала покажет, что удаляется, а потом удалит.
7. В конце скрипт выводит, сколько старых бэкапов удалено, и завершает работу.


📌 Как использовать

1. Скопируйте скрипт в файл, например:


sudo nano /usr/local/bin/backup_rotate.sh

2. Сделайте его исполняемым:


sudo chmod +x /usr/local/bin/backup_rotate.sh

3. Отредактируйте переменные в начале скрипта под свои нужды:


SOURCE_DIR="/path/to/your/data"
DEST_DIR="/path/to/backup/location"
RETENTION_DAYS=7

4. Запустите вручную, чтобы протестировать:


/usr/local/bin/backup_rotate.sh

5. Если всё работает как надо, добавьте задание в ``````bash
crontab``````bash
для автоматического запуска. Например, чтобы делать бэкап каждый день в 3:00:


sudo crontab -e


И добавить строку:


0 3 * * * /usr/local/bin/backup_rotate.sh >> /var/log/backup_rotate.log 2>&1


Здесь мы также перенаправляем вывод в лог-файл, чтобы отслеживать успешные и неуспешные запуски. 📜

👉@bash_srv
Как стать нормальным системным администратором? Дополнения и ответы на вопросы

Прошел примерно месяц с момента публикации моей первой статьи. Если вы вдруг ее не читали, то настоятельно рекомендую прочитать ее, а также комментарии к ней, если у вас есть время. В этой статье будут лишь дополнения о ответы на вопросы, которые читатели мне задавали в комментариях и (гораздо больше) в личных сообщениях, а также рассуждения на некоторые важные темы. На все вопросы (нормальные вопросы) я уже ответил, просто размещаю ответы на них здесь для общей пользы, а также добавляю свои рассуждения. Для начала пройдусь по технической части, потому что это важнее, а «философские» темы разберу после в очередной «простыне». Опять же, первая треть статьи будет скучной и унылой, просто перетерпите.

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

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

👉 @i_odmin
🖥 Восстановление диапазона IPv4 класса E 240.0.0.0/4 (Статья на 🇬🇧)

Что такое Class E?
Диапазон IP-адресов 240.0.0.0 – 255.255.255.254, зарезервированный в RFC 1112 для «будущих нужд» и долгие годы неиспользуемый как адресное пространство.

История и причины резервирования:
В конце 1980-х при «классовой» системе IPv4 было решено оставить этот блок для гипотетического третьего типа маршрутизации (не уникаст, не мультикаст), однако потребности интернета быстро вышли за пределы классических A-, B- и C-сетей.

Почему сейчас говорят о Class E?
С исчерпанием общедоступного IPv4 (RFC 1918) и удорожанием «обычных» адресов провайдеры и крупные сети всё чаще смотрят на этот массив как на потенциальный запас (всего ≈ 268 млн адресов).

Практическое использование в локальных и облачных сетях:
– Class E можно применять в частных сетях: Amazon AWS уже использует 240.0.0.0/4 для внутренних нужд.
– Canonical («fan networking») и некоторые провайдеры малого бизнеса тоже экспериментируют с этими адресами.
– Современные ОС (Linux c 2008 г., Android c 2009 г., macOS c 2009 г., OpenBSD c окт. 2022 г.) поддерживают Class E.

Ограничения и перспективы:
– Глобальная маршрутизация Class E маловероятна из-за несовместимости оборудования и софта, уже «жующих» старые адреса.
– Поэтому главная реальная польза – внутри дата-центров, больших локальных сетей и облаков, где можно масштабировать инфраструктуру без боязни «закончить» IPv4.

https://blog.benjojo.co.uk/post/class-e-addresses-in-the-real-world

👉 @i_odmin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔄 Обновления Windows: что должен знать администратор?

🔥 23 июня в 20:00 мск приглашаем на бесплатный вебинар «Обновления Windows: что должен знать администратор?»


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

Что вас ждёт:


– как устроен механизм обновлений в Windows 10/11 и Server,
– какие средства Windows можно использовать для настройки обновлений,
– как тестировать и откладывать обновления в корпоративной среде,
– какие риски возникают после обновлений и как их минимизировать.

📌 Убедитесь, что обновления работают на пользу инфраструктуре, а не наоборот.

👉 Регистрируйтесь по ссылке: https://vk.cc/cMyLXd

Занятие приурочено к старту курса «Администратор Windows», где вы получите полные знания для управления инфраструктурой, настройкой обновлений и повышением безопасности рабочих станций и серверов.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Настраиваем свой send-only почтовый сервер postfix с DKIM в docker-контейнере

Если вы читаете этот материал, скорее всего вы уже знаете что поднять свой почтовик это страдание и внезапно нетривиальная задача. Цель статьи - без лишней лирики дать пошаговый мануал тем, кто хочет настроить свой собственный мейлер и не платить деньги mailgun и подобным SMTP-relay сервисам.

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

👉 @i_odmin
Media is too big
VIEW IN TELEGRAM
Установка и настройка MikroTik для работы с 3G, 4G, LTE USB модемом

На мастер-классе вы узнаете:
- как установить / подключить 3G, 4G, LTE USB модем в MikroTik;
- об особенностях настройки 3G, 4G, LTE USB модема с MikroTik;
- как настроить резервирование, автоматическое переключение провайдеров Интернета;

источник

👉 @i_odmin
🚀 Разгоняем kube-prometheus-stack: секретный ингредиент в Observability

🔥 9 июня в 20:00 мск — бесплатный вебинар «Разгоняем kube-prometheus-stack».
Мониторинг не должен тормозить, особенно когда что-то идёт не так.

Что разберём:

– как ускорить отклик Grafana при работе с большими объёмами данных,
– что замедляет Prometheus и как с этим бороться,
– как сократить сетевой трафик мониторинга без потерь,
– как не положить observability-инфру при инциденте,
– и какие архитектурные подходы помогают сделать мониторинг отказоустойчивым.

Оптимизируйте kube-prometheus-stack и держите руку на пульсе — даже в условиях пиковых нагрузок.

👉 Регистрируйтесь здесь:
https://vk.cc/cMyMaf

Занятие приурочено к старту курса "Observability: мониторинг, логирование, трейсинг", на котором вы научитесь строить эффективные системы мониторинга, работать с Prometheus, Grafana, ELK и другими инструментами, визуализировать метрики.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
В Linux Logical Volume Manager (LVM) - это система управления хранением данных, которая обеспечивает более гибкий подход к управлению дисковым хранилищем, чем традиционное разбиение на разделы. LVM работает за счет создания уровня абстракции между физическими устройствами хранения и файловой системой, позволяя создавать логические тома, которые могут охватывать несколько физических дисков.

С помощью LVM вы можете создавать группы томов из одного или нескольких физических дисков, а затем создавать логические тома в этих группах томов. Логические тома ведут себя как традиционные разделы диска, но у них есть несколько преимуществ:

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

- Логические тома можно легко расширить, добавив в группу томов дополнительные физические диски. Такая масштабируемость позволяет увеличивать объем хранилища без ущерба для существующих данных.

- LVM предоставляет такие возможности, как моментальные снимки, которые позволяют создавать копии логических томов «точка-в-время» для целей резервного копирования или тестирования.

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

👉 @i_odmin
Media is too big
VIEW IN TELEGRAM
Как посмотреть всех пользователей в системе Linux

источник

👉 @i_odmin
🚀⭐️ Разберётесь, как работают стандартные потоки в Linux и научитесь управлять вводом, выводом и ошибками в терминале

👉 Приглашаем на вебинар: Управление потоками ввода и вывода в Linux

На вебинаре вы узнаете:
- Что такое стандартные потоки ввода, вывода и ошибок
- Как перенаправлять потоки с помощью >, >>, <, 2>, | и других операторов
- Как использовать пайпы (конвейеры) для обработки данных в командной строке
- Как комбинировать команды, управлять выводом и создавать эффективные цепочки

В результате вебинара вы:
- Научитесь различать и использовать stdin, stdout и stderr
- Сможете перенаправлять потоки и использовать их в сценариях автоматизации
- Попробуете строить пайплайны и обрабатывать данные без создания временных файлов
- Поймёте, как вывод ошибок и данных влияет на поведение скриптов и программ.

🎁 Урок пройдет в преддверие старта курса «Administrator Linux. Basic». Все участники вебинара получат скидку на обучение.

👉 Для участия зарегистрируйтесь: https://vk.cc/cMyMwc

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Media is too big
VIEW IN TELEGRAM
Настройка DHCP и NAT на маршрутизаторе Cisco.

источник

👉 @i_odmin
👋 Привет, админы!

Недавно столкнулся с интересным кейсом: один из файловых серверов начал сигнализировать о недостатке свободного пространства. При проверке выяснилось, что причиной стали старые логи IIS и системные файлы, которые копились неделями. Для нас, админов, важно держать «мусор» под контролем, чтобы не проснуться однажды с дискoм, полностью забитым «ненужными» данными.

🔥 В таких случаях мне помогает небольшой PowerShell-скрипт для автоматической очистки логов старше заданного числа дней. Вот что я настроил:


# Путь до папки с логами (пример для IIS)
$LogPath = "C:\inetpub\logs\LogFiles"

# Возраст файлов (в днях), после которого файлы подлежат удалению
$DaysThreshold = 30

# Получаем все файлы в папке и вложенных каталогах старше $DaysThreshold
$OldLogs = Get-ChildItem -Path $LogPath -Recurse -File |
Where-Object { ($_.LastWriteTime -lt (Get-Date).AddDays(-$DaysThreshold)) }

# Если есть файлы для удаления, выводим их и удаляем
if ($OldLogs) {
Write-Host "Найдены логи старше $DaysThreshold дней:`n" -ForegroundColor Yellow
$OldLogs | Select-Object FullName, LastWriteTime | Format-Table -AutoSize

# Удаляем найденные файлы
$OldLogs | Remove-Item -Force -Verbose
Write-Host "`nОчистка завершена." -ForegroundColor Green
} else {
Write-Host "Файлы старше $DaysThreshold дней не найдены." -ForegroundColor Green
}


Основные моменты:

1. Гибкая настройка пути: в переменной $LogPath можно указать любую директорию – например, логи SQL Server (C:\Program Files\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\Log) или системные временные папки (C:\Windows\Temp).
2. Параметр возраста: переменная $DaysThreshold задаёт, сколько дней «жить» файлам, прежде чем они удалятся. Можно настроить, например, на 7 дней для критических логов или на 90 дней для менее важных.
3. Рекурсивный обход: флаг -Recurse позволяет удалять не только файлы в корне, но и во вложенных папках (удобно, если логи разбиты по датам или подпапкам).
4. Безопасность: перед удалением скрипт выводит список удаляемых файлов. Если сомневаетесь — закомментируйте строку Remove-Item и сначала просто отследите, какие файлы будут выбраны.

💬 Я запланировал выполнение этого скрипта через Task Scheduler каждую неделю в воскресенье в полночь. В результате освободилось несколько десятков гигабайт и администраторы перестали получать тревожные письма о заполненном разделе C:.

А как вы справляетесь с накоплением логов на серверах? Может, используете какие-то централизованные решения (SIEM, Splunk, ELK) для ретеншена и ротации? Делитесь своими приёмами в комментариях!

👉 @win_sysadmin
CasaOS: персональное облако на домашнем сервере

Представьте, что можно управлять всеми приложениями, трансляциями фильмов и музыки, бэкапами, дисковым хранилищем, устройствами умного дома — с домашнего сервера. Это есть личное или персональное облако, то есть аналог публичных облачных сервисов, но на своём сервере, дома или на VPS.

Например, система CasaOS изначально создавалась для одноплатника ZimaBoard (на фото), который позиционируется как мини-NAS. Главная ценность — отшлифованный UI с системными гаджетами для домашнего сервера, отобранный список приложений в каталоге, полезных именно для личного облака, и установка всех программ в докер-контейнерах в один клик. Плюс минимальные системные требования, поддержка старых ПК и одноплатников, включая Intel NUC и Raspberry Pi.

https://habr.com/ru/companies/ruvds/articles/913392/

👉 @i_odmin
Готовы к карьерному рывку? Станьте DevOps Engineer в команде Телекома YADRO🔥

Хотите создавать надёжные и технологичные процессы для разных продуктовых команд компании? Тогда отправляйте резюме в одно из направлений: Infrastructure или CI/CD.

Что предлагаем
🚀 удалёнка или офис в одном из городов (Москва, СПб, Нижний Новгород, Екатеринбург, Минск)
🚀 возможность влиять на продукт и стать частью большого инженерного сообщества
🚀 возможность вертикального и горизонтального роста — проводим performance review раз в год
🚀 ДМС с первого дня работы, а ещё консультации юристов, психологов, экспертов по ЗОЖ и управлению финансами

Кого ждём в команду
DevOps-инженеров с опытом работы от года и желанием развивать новые продукты в нашей команде

Какие задачи вас ждут
⏺️ настройка и внедрение систем мониторинга и Observability для продуктов, определение ключевых метрик совместно с командами разработки
⏺️ разработка с нуля и доработка существующих CI/CD пайплайнов для продуктов и их компонентов в рамках экосистемы Gitlab CI
⏺️ участие в создании отказоустойчивой инфраструктуры и её дальнейшей поддержке для обеспечения высокой скорости и качества сборки продуктов

Больше подробностей — по ссылке.

📆 Отправляйте резюме до 8 июня и присоединяйтесь к команде YADRO!
Please open Telegram to view this post
VIEW IN TELEGRAM