Системный администратор
Все для системного администратора. По всем вопросам @evgenycarter РКН clck.ru/3KoDXp
نمایش بیشتر📈 تحلیل کانال تلگرام Системный администратор
کانال Системный администратор (@i_odmin) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 26 728 مشترک است و جایگاه 4 956 را در دسته فناوری و برنامهها و رتبه 24 202 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 26 728 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 25 اکتبر, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر 52 و در ۲۴ ساعت گذشته برابر -1 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 10.26% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 5.93% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 2 742 بازدید دریافت میکند. در اولین روز معمولاً 1 585 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 11 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند linux, grep, диск, строка, /var تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Все для системного администратора.
По всем вопросам @evgenycarter
РКН clck.ru/3KoDXp”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 26 اکتبر, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
grep [ОПЦИИ] 'ШАБЛОН' [ФАЙЛ...]
команда | grep [ОПЦИИ] 'ШАБЛОН'
⚙️ Топ-опции (must-have)
-i - без учёта регистра
-n - номер строки
-H - печатать имя файла
-r / -R - рекурсивно по каталогам (-R следует по symlink)
-l - только имена файлов с совпадениями
-L - файлы без совпадений
-v - инверсия (показать НЕ совпавшие строки)
-c - количество совпадений (строк)
-o - вывести только совпавшую часть
-w - совпадение целого слова
-x - совпадение всей строки целиком
--color=auto - подсветка
🧠 Контекст вокруг совпадения
-A 5 - 5 строк после
-B 5 - 5 строк до
-C 5 - 5 строк вокруг
grep -nC 2 'error' /var/log/syslog
🧵 Несколько шаблонов
-e - несколько выражений
-f patterns.txt - шаблоны из файла
grep -E -e 'error' -e 'warn' app.log
grep -f patterns.txt app.log
🔤 Режимы регулярных выражений
🩵BRE (по умолчанию): grep 'a\{2\}'
🩵ERE: grep -E 'a{2,}' (удобнее)
🩵PCRE: grep -P '(?<=id=)\d+' (lookbehind и т.п.)
🧩 Мини-шпаргалка по regex
Якоря и позиции
🩵 ^ начало строки, $ конец строки
🩵 \< начало слова, \> конец слова (в GNU grep часто работает)
Квантификаторы
🩵 ? 0 или 1
🩵 * 0+
🩵 + 1+ (в ERE/PCRE)
🩵 {n}, {n,}, {n,m}
Классы
🩵 . любой символ кроме \n
🩵 [0-9], [A-Za-z], [^...] (не из набора)
🩵 POSIX: [[:digit:]] [[:alpha:]] [[:alnum:]] [[:space:]]
🧪 Практика: логи и инциденты
Ошибки/варнинги
grep -iE 'error|warn|fatal' /var/log/syslog
Сервис по systemd-журналу
journalctl -u nginx --no-pager | grep -i 'error'
Кто ломится по SSH (auth.log)
grep -i 'failed password' /var/log/auth.log | tail
Найти IP в логе
grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}' access.log | sort -u
📁 Поиск в конфиге
Рекурсивно, исключая мусор
grep -RIn --exclude-dir={.git,node_modules} --exclude='*.min.*' 'listen' /etc/nginx
Показать строки, где параметр закомментирован/не закомментирован
grep -nE '^\s*#?\s*PermitRootLogin' /etc/ssh/sshd_config
🧨 Трюки: grep + find
Только по *.conf
find /etc -name '*.conf' -print0 | xargs -0 grep -nH 'timeout'
Большие файлы — быстрее
LC_ALL=C grep -n 'pattern' big.log
✅ Быстрые проверки (exit code)
🩵 0 - найдено
🩵 1 - не найдено
🩵 2 - ошибка
grep -q 'pattern' file && echo OK || echo NO
📲 Мы в MAX
👉 @i_odmin
nft list ruleset # Показать все правила
nft add table ip filter # Создать таблицу filter для IPv4
nft add chain ip filter input # Создать цепочку input в таблице filter
2. Добавление правил
- Принять пакеты от локального хоста:
nft add rule ip filter input ip saddr 127.0.0.1 accept
- Блокировать входящий трафик на порт 80:
nft add rule ip filter input tcp dport 80 drop
- Разрешить весь исходящий трафик:
nft add rule ip filter output accept
3. Удаление
nft delete rule ip filter input handle <номер> # Удалить правило по handle
nft delete chain ip filter input # Удалить цепочку input
nft delete table ip filter # Удалить таблицу filter
4. Сохранение и загрузка конфигурации
nft list ruleset > /etc/nftables.conf # Сохранить правила
nft -f /etc/nftables.conf # Загрузить правила из файла
5. Создание логирования
nft add rule ip filter input log prefix "IN: " level debug
🔵Типы объектов
1. Таблицы (tables) – В nftables таблицы служат для организации правил. Каждая таблица привязывается к семейству (например, ip, ip6).
2. Цепочки (chains) – Цепочки представляют собой наборы правил. Основные встроенные цепочки: input, output, forward.
3. Правила (rules) – Условия и действия, выполняемые на пакетах, такие как accept, drop, reject, log.
🔵Основные операторы
- accept – Разрешить пакет.
- drop – Заблокировать пакет.
- reject – Отклонить с ответом.
- log – Вести лог пакетов.
🔵Примеры сложных правил
1. Ограничение скорости (rate limiting):
nft add rule ip filter input limit rate 5/second accept
2. Использование сетов для IP-адресов:
nft add set ip filter blacklist { type ipv4_addr; }
nft add rule ip filter input ip saddr @blacklist drop
nft add element ip filter blacklist { 192.168.1.1, 10.0.0.0/8 }
3. Redirect на другой порт:
nft add rule ip nat prerouting tcp dport 80 redirect to 8080
- Используйте nft monitor для слежения за изменениями правил в реальном времени.
- Включайте логирование при тестировании правил для отладки (log prefix "TEST: ").
- nftables имеет более гибкий синтаксис, чем iptables, и поддерживает более сложные условия и комбинации.
📲 Мы в MAX
👉 @i_odmin/, домашних ПК и серверов общего назначения.
🟡Плюсы: Отличная совместимость, высокая стабильность, можно уменьшать размер раздела "на лету" (в отличие от XFS).
🟡Минусы: Ограничение на размер тома (1 EB) и файла (16 TB) - хотя для большинства это не проблема.
2. XFS
🟡Вердикт: "Король больших данных".
🟡Где использовать: Большие хранилища, сервера с интенсивной записью, базы данных. Дефолтная ФС в RHEL/CentOS.
🟡Плюсы: Мгновенное форматирование гигантских дисков, отличная работа с большими файлами и высокой параллельной нагрузкой.
🟡Минусы: Нельзя уменьшить размер раздела (только увеличить).
3. ZFS (OpenZFS)
🟡Вердикт: "Больше, чем просто ФС".
🟡Где использовать: NAS, критически важные хранилища данных (Proxmox, TrueNAS).
🟡Плюсы: Встроенный RAID, сжатие, дедупликация, защита от "bit rot" (порчи данных), мгновенные снэпшоты.
🟡Минусы: Требовательна к RAM (нужна ECC память для идеальной надежности), сложнее в настройке, лицензионные нюансы в ядре Linux.
4. Btrfs
🟡Вердикт: "Современный комбайн".
🟡Где использовать: Системы, где нужны снэпшоты (как в ZFS), но на уровне ядра Linux. Используется по умолчанию в Fedora и SUSE.
🟡Плюсы: Copy-on-Write (CoW), работа с подтомами (subvolumes), легкое добавление дисков "на лету".
📌Windows
🔵NTFS: Стандарт с 1993 года. Журналируемая, поддерживает ACL (права доступа), шифрование. Надежна, но фрагментация — её вечная болезнь.
🔵ReFS (Resilient File System): Ответ Microsoft на ZFS. Устойчива к повреждениям, умеет "лечить" данные, но пока не может быть загрузочной для ОС.
🛠 Полезные команды (Cheat Sheet)
Проверить тип ФС и занятое место:
df -hT
Посмотреть информацию о блочных устройствах (и UUID):
lsblk -f
Проверить, не закончились ли иноды (частая причина "No space left on device", когда место есть):
df -i
Принудительная проверка ФС (только на отмонтированном диске!):
fsck /dev/sdX
💡Для баз данных (PostgreSQL/MySQL) часто рекомендуют XFS или ext4 с отключенным atime (временем последнего доступа), чтобы лишний раз не дергать диск при чтении.
На чем крутятся ваши продакшн-сервера? Консервативный ext4, мощный XFS или вы фанат ZFS? Пишите в комменты 👇
📲 Мы в MAX
👉 @i_odmin
/system logging action
add name="pppoe"
/system logging
add action=pppoe topics=pppoe,info,!ppp,!debug
Буфер журнала будет выглядеть примерно так же, как этот:
[admin@mainGW] > /log print where buffer=pppoe
13:11:08 pppoe,info PPPoE connection established from 00:0C:42:04:4C:EE
Теперь мы можем написать скрипт, который будет определять, добавлена ли новая запись.
:global lastTime;
:global currentBuf [ :toarray [ /log find buffer=pppoe ] ] ;
:global currentLineCount [ :len $currentBuf ] ;
:global currentTime [ :totime [/log get [ :pick $currentBuf ($currentLineCount -1) ] time ] ];
:global message "";
:if ( $lastTime = "" ) do={
:set lastTime $currentTime ;
:set message [/log get [ :pick $currentBuf ($currentLineCount-1) ] message];
} else={
:if ( $lastTime < $currentTime ) do={
:set lastTime $currentTime ;
:set message [/log get [ :pick $currentBuf ($currentLineCount-1) ] message];
}
}
После обнаружения новой записи она сохраняется в переменной «message», которую в дальнейшем можно использовать для анализа сообщений журнала, например, для получения mac-адресов PPPoE-клиентов.
📲 Мы в MAX
👉 @i_odmin.pem, .crt, .cer, .key): Текстовый формат (ASCII), начинается с -----BEGIN.... Самый частый в Linux/Nginx/Apache.
- DER (.der, .cer): Бинарный формат. Часто встречается в Java и Windows.
- PFX/P12 (.pfx, .p12): Контейнер-сейф. Хранит и сертификат, и приватный ключ, и цепочку. Часто используется в Windows и для импорта/экспорта.
🛠 OpenSSL: Команды на каждый день
Самая полезная часть. Копируй и вставляй.
1. Проверка удаленного сервера
Посмотреть, какой сертификат отдает сайт, и проверить цепочку:
openssl s_client -connect domain.com:443 -showcerts
Лайфхак: Добавь -servername domain.com, если на IP висит несколько сайтов (SNI).
Посмотреть только дату истечения сертификата на сайте:
echo | openssl s_client -servername domain.com -connect domain.com:443 2>/dev/null | openssl x509 -noout -dates
2. Работа с локальными файлами
Прочитать содержимое сертификата (кто выдал, кому, когда истекает):
openssl x509 -in cert.pem -text -noout
Проверить, соответствует ли приватный ключ сертификату (хеши должны совпасть):
openssl x509 -noout -modulus -in cert.pem | openssl md5
openssl rsa -noout -modulus -in privkey.pem | openssl md5
3. Генерация CSR (Запрос на сертификат)
Создать ключ и запрос (CSR) одной командой:
openssl req -new -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr
4. Конвертация форматов
PEM -> PFX (для IIS/Windows):
openssl pkcs12 -export -out domain.pfx -inkey domain.key -in domain.crt -certfile root-ca.crt
PFX -> PEM (достать ключ и серт):
# Только ключ (без пароля)
openssl pkcs12 -in domain.pfx -nocerts -nodes -out domain.key
# Только сертификат
openssl pkcs12 -in domain.pfx -nokeys -out domain.crt
🧠 Анатомия Cipher Suite
Что значит строка: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384?
1. TLS: Протокол.
2. ECDHE: Key Exchange (Как договорились о ключах). Эллиптические кривые, Ephemeral (генерируется каждый раз — это PFS).
3. RSA: Authentication (Проверка подлинности). Сертификат RSA.
4. AES_256_GCM: Bulk Encryption (Чем шифруем данные). Алгоритм AES, 256 бит, режим GCM (быстро и безопасно).
5. SHA384: MAC/PRF (Целостность). Хеширование для проверки пакетов.
Совет: Старайтесь использовать GCM или ChaCha20-Poly1305. Избегайте режимов CBC в старых протоколах.🛡 Чек-лист 1. HSTS (HTTP Strict Transport Security): Заголовок, заставляющий браузер ходить только по HTTPS. -
Strict-Transport-Security: max-age=31536000; includeSubDomains
2. Forward Secrecy (PFS): Если украдут ключ сервера, прошлый трафик не расшифруют. Требует шифров ECDHE или DHE.
3. OCSP Stapling: Сервер сам шлет статус валидности сертификата, ускоряя загрузку страницы для клиента.
4. CAA Record: DNS-запись, указывающая, каким CA разрешено выдавать сертификаты для вашего домена.
📲 Мы в MAX
👉 @i_odminbytebytego.com
2. Поиск в кэше (браузер/ОС) — не найдено
3. DNS-запрос к резолверу
4. Поиск в кэше резолвера — не найдено
5. Запрос к корневому DNS-серверу (Root NS)
6. Ответ: адрес TLD .com
7. Запрос к TLD-серверу .com
8. Ответ: адрес авторитетного сервера для bytebytego.com
9. Запрос к авторитетному DNS-серверу
10. Ответ: запись A/AAAA — IP 172.67.21.11
11. Сохранение IP в кэше резолвера
12. Передача IP в браузер: 172.67.21.11
13. Сохранение IP в кэше браузера/ОС
14. HTTP-запрос: GET /index.html
15. HTTP-ответ: OK
📲 Мы в MAX
👉 @i_odmin/var/log/messages или /var/log/syslog, либо напрямую из journalctl) с одного или нескольких удалённых хостов. Очень эффективен даже при работе с большими лог-файлами (1 ГБ и более).
Поддерживаются и другие форматы логов, можно использовать любые лог-файлы, но именно этот основной сценарий определял реализацию: у нас backend веб-сервиса работал как systemd-сервисы на множестве Linux-инстансов, генерировал большое количество логов, и нам нужен был способ эффективно читать эти логи с гистограммой временной шкалы — примерно как в Graylog, но проще и быстрее.
https://github.com/dimonomid/nerdlog
📲 Мы в MAX
👉 @i_odmin20 октября на онлайн-митапе ребята покажут, где рождается скорость, как устроен такой диск внутри и как не уронить систему при отказе.Участие бесплатное. Подробности и регистрация по ссылке.
