Admin Guides | Сисадмин
11.4K subscribers
1.22K photos
19 videos
34 files
555 links
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.

Админ, реклама: @Ak_Mihail
Биржа: https://telega.in/c/admguides

РКН: https://kurl.ru/nQejS
Download Telegram
Команда dig: что это и как использовать

dig (domain information groper) — это мощный инструмент для работы с DNS. Он помогает получать информацию о домене, такой как A-записи, CNAME, MX-записи и другие.

Этот инструмент полезен как для системных администраторов, так и для специалистов по сетям, позволяя диагностировать и анализировать DNS-запросы.

Пример использования команды dig

Запустите команду с указанием домена:

$ dig google.com


После выполнения запроса вы получите детализированный отчет. Рассмотрим ключевые секции результата:

1️⃣QUESTION SECTION
Содержит информацию о том, что вы запрашиваете. В данном случае запрашивается A-запись для google.com.
2️⃣ ANSWER SECTION
Здесь отображается основная информация, например, IP-адрес, связанный с доменом:

google.com. 72 IN A 172.217.166.78


Это указывает, что домен google.com связан с IP-адресом 172.217.166.78.

3️⃣ AUTHORITY SECTION
Содержит список авторитетных DNS-серверов, которые могут дать больше информации о домене.
4️⃣ ADDITIONAL SECTION
Показывает дополнительные данные, например, IP-адреса серверов, указанных в AUTHORITY SECTION.
5️⃣ Дополнительные данные
Query time: время, затраченное на выполнение запроса.
SERVER: сервер, который обработал запрос.
MSG SIZE rcvd: общий размер ответа.

Часто используемые команды
Запрос конкретной записи (например, MX):

dig google.com MX


Использование другого DNS-сервера:

dig @8.8.8.8 google.com


Вывод краткой информации:

dig +short google.com
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111
Forwarded from Cyber Media
😎 Защита от DDoS-атак: методы, решения и советы экспертов

DDoS-атаки продолжают оставаться одной из самых серьезных угроз для компаний по всему миру.

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

➡️ В новой статье на сайте разобрались, как работают DDoS-атаки, какие методы защиты наиболее эффективны и на что обращать внимание при выборе подходящего решения.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Как работает механизм capabilities в Linux, и зачем он нужен?

Ответ: Capabilities — механизм, который разбивает права суперпользователя на мелкие привилегии. Это позволяет процессам выполнять отдельные задачи, например, работать с сетью или управлять временем, без полного root-доступа.

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

1️⃣Проверка привилегий процесса:

cat /proc/<PID>/status | grep Cap


2️⃣ Назначение привилегий файлу:
Например, чтобы разрешить ping без root-прав:

sudo setcap cap_net_raw=ep /bin/ping


3️⃣ Проверка привилегий файла:

getcap /bin/ping


Capabilities повышают безопасность, ограничивая доступ только необходимыми правами.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍201
Экспорт CSV в MySQL

Файлы CSV (Comma Separated Values) — это удобный формат для переноса данных между различными системами, включая базы данных MySQL.

В этой части мы рассмотрим, как экспортировать данные MySQL в файл CSV с использованием phpMyAdmin и командной строки.


Экспорт MySQL в CSV с phpMyAdmin

Этот способ подходит для тех, кто предпочитает графический интерфейс.
1. Войдите в phpMyAdmin.
2. Нажмите на вкладку Databases (Базы данных) и выберите нужную базу.
3. Отметьте таблицы, которые хотите экспортировать.
4. Нажмите Export. Выберите формат CSV и нажмите Go.
5. Сохраните файл в предложенной директории.

Экспорт MySQL в CSV с помощью командной строки

Для тех, кто работает через терминал:
1️⃣Войдите в оболочку MySQL.
2️⃣ Переключитесь на нужную базу данных.
3️⃣ Используйте команду:

SELECT * FROM myTable  
INTO OUTFILE '/path/to/myExportFile.csv'
FIELDS ENCLOSED BY '"'
TERMINATED BY ','
LINES TERMINATED BY '\n';


Замените myTable на название таблицы, а /path/to/myExportFile.csv на путь для сохранения файла.

Дополнительные возможности:

• Экспортировать только определённые столбцы:

SELECT column1, column2 FROM myTable WHERE column3 = 'value';


• Добавить временную метку к имени файла:

SET @FILENAME = CONCAT('/path/to/export_', DATE_FORMAT(NOW(), '%Y%m%d_%H%i%s'), '.csv');  
SELECT * FROM myTable INTO OUTFILE @FILENAME
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102
Какой командой можно создать зашифрованный LUKS-том в Linux?
Anonymous Quiz
18%
mkfs.luks
29%
cryptsetup luksFormat
17%
lvm luksCreate
36%
mkfs.ext4 -encrypt
5👍2🔥1
Импорт CSV в MySQL

Импорт CSV-файлов в MySQL позволяет быстро добавить внешние данные в базу данных.

Рассмотрим два метода: через командную строку и phpMyAdmin.

Импорт CSV через командную строку

1️⃣Войдите в MySQL:

mysql -u username -p


Замените username своим именем пользователя MySQL.

2️⃣ Создайте таблицу, соответствующую структуре CSV:

CREATE TABLE myTable (
id INT NOT NULL AUTO_INCREMENT,
column1 VARCHAR(255),
column2 DATE,
column3 DECIMAL(10,2),
PRIMARY KEY (id)
);


3️⃣ Импортируйте данные:

LOAD DATA INFILE '/path/to/importFile.csv'  
INTO TABLE myTable
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;


Параметр IGNORE 1 ROWS пропускает первую строку, если в ней находятся заголовки столбцов.

Импорт CSV через phpMyAdmin

1. Откройте phpMyAdmin и выберите базу данных.
2. Нажмите на таблицу, в которую вы хотите импортировать данные.
3. Перейдите во вкладку Import.
4. Выберите CSV-файл и настройте формат импорта.
5. Нажмите Go для завершения импорта.

С помощью этих методов вы сможете эффективно работать с данными MySQL в формате CSV.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Исходный код Linux превысил 40 миллионов строк

В январе 2025 года размер исходного кода ядра Linux превысил 40 миллионов строк, удвоившись с 2015 года.

За последние два месяца код увеличился на 400 тысяч строк, включая комментарии и документацию.

Большая часть кода может быть неактуальна для конкретной системы. 


Например, из 4,5 млн строк для всех процессоров архитектура x86 использует менее 500 тысяч. Драйверы AMD Radeon, включая документацию, занимают около 5 млн строк.

Активность разработчиков в 2024 году

В 2024 году ядро получило 3,69 млн новых строк, при этом было удалено 1,49 млн. Общее число коммитов составило 1 324 647 от 4807 разработчиков, что меньше прошлых лет.

Линус Торвальдс внёс 2877 коммитов, в основном за счёт слияний. Среди активных участников — Кшиштоф Козловски (Linaro), Якуб Кичински (Meta*) и другие.
👍71👀1
Три варианта инициализации ОС в Linux

После загрузки ядра Linux система переходит к инициализации.

В зависимости от дистрибутива и версии могут использоваться три основные системы инициализации: SysVinit, systemd и Upstart.


SysVinit — классическая Unix-инициализация

SysVinit — самый старый вариант, основанный на уровнях загрузки (runlevel). Всего их семь, от 0 (выключение системы) до 6 (перезагрузка).
При старте системы выполняются скрипты из /etc/rc.d/, которые запускают или останавливают службы. Например:
• service ssh start — запуск SSH
• service rsync stop — остановка Rsync
• telinit 1 — переход в однопользовательский режим

Этот метод инициализации устарел и в современных дистрибутивах заменён на systemd.

Systemd — современный стандарт

Systemd использует юниты (unit) для управления службами, устройствами и точками монтирования. Юниты хранятся в /usr/lib/systemd и /etc/systemd.
Основные команды для работы:
• systemctl list-units — просмотр запущенных юнитов
• systemctl start crond — запуск службы
• systemctl set-default multi-user.target — установка загрузочного уровня по умолчанию

Systemd заменил старый /etc/inittab, добавил поддержку параллельного запуска процессов и систему логирования journald.

Upstart — переходный вариант

Upstart использовался в Ubuntu как замена SysVinit. Главная особенность — события (event-driven model). Службы запускаются и останавливаются в зависимости от событий системы.
Файлы конфигурации хранятся в /etc/init/ и управляются командой initctl:
• initctl start ufw — запуск UFW
• initctl stop ufw — остановка
• cat /etc/init/rc-sysinit.conf — просмотр конфигурации

Upstart применялся в Ubuntu, но был вытеснен systemd.

В следующем посте продолжим…
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥81👎1
Исследователь Wiz Research нашёл открытую базу данных DeepSeek

Эксперт из Wiz Research с ником Nagli провёл пентест DeepSeek и обнаружил открытую базу данных ClickHouse.


Сначала исследователи собрали информацию о поддоменах deepseek[.]com, просканировали порты (Masscan, Naabu) и проверили веб-сервисы (httpx).

Они нашли несколько доступных ресурсов, включая oauth2callback.deepseek.com и dev.deepseek.com.

Анализ через Nuclei показал, что база ClickHouse не требовала аутентификации. В ней хранилось более миллиона строк логов, включая историю чатов, ключи API и внутренние данные DeepSeek.

Исследователи сообщили о проблеме, и компания быстро закрыла доступ.
👍10👎3🤯31
😁36💯31👍1
Как работает Systemd в Linux?

Продолжаем говорить о системах инициализации Linux

Systemd — это современная система инициализации в Linux, пришедшая на смену SysVinit и Upstart. Она управляет процессами через юниты (units), которые могут быть:

• .service — службы
• .mount — точки монтирования
• .device — устройства
• .socket — сокеты

Где хранятся юниты?
/usr/lib/systemd — системные юниты, устанавливаемые с ПО
/etc/systemd — юниты, редактируемые администратором

Основные команды Systemd
• systemctl list-units — список запущенных юнитов
• systemctl status crond — статус службы
• systemctl start|stop|restart crond — управление сервисами
• systemctl set-default multi-user.target — смена режима загрузки

Runlevel в Systemd

Systemd заменил традиционные runlevel на target. Например:
• runlevel 3 → multi-user.target
• runlevel 5 → graphical.target

Список активных target можно посмотреть командой:

systemctl list-units --type=target


Для перехода в другой режим:

systemctl isolate rescue.target


Журналирование в Systemd

Systemd включает мощную систему логирования journald. Основные команды:
journalctl -f — просмотр событий в реальном времени
journalctl -n 10 — последние 10 записей
Please open Telegram to view this post
VIEW IN TELEGRAM
👍211
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Как работает LVM в Linux и зачем он нужен?

Ответ:

LVM
(Logical Volume Manager) — это система управления логическими томами, которая даёт гибкость в управлении дисковым пространством. В отличие от традиционного разбиения диска, LVM позволяет динамически изменять размер разделов без потери данных.

Основные компоненты:
Physical Volume (PV) — физические устройства, такие как жесткие диски или их разделы. Они объединяются в Volume Group (VG), которая представляет собой пул свободного места. Из VG создаются Logical Volumes (LV), которые работают как обычные разделы, но могут изменяться в размере на лету.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍181
Как архивировать и распаковывать файлы с помощью PowerShell

Формат ZIP позволяет уменьшить размер файлов, экономить дисковое пространство, шифровать данные и упрощать их передачу.

PowerShell предоставляет удобные инструменты для работы с архивами, позволяя быстро сжимать и разархивировать файлы без стороннего ПО.

Архивирование файлов в ZIP

В PowerShell для создания архивов используется командлет Compress-Archive. Он позволяет сжимать как отдельные файлы, так и целые папки, создавая ZIP-архив.

Пример 1: архивирование нескольких файлов
Чтобы заархивировать один или несколько файлов, используйте следующую команду:

Compress-Archive -LiteralPath "C:\Path\To\File1.txt", "C:\Path\To\File2.txt" -DestinationPath "C:\Path\To\Archive.zip"


Эта команда создаст ZIP-архив Archive.zip, содержащий указанные файлы. Если архив с таким именем уже существует, PowerShell выдаст ошибку.

Пример 2: архивирование всей папки
Чтобы создать архив из содержимого папки вместе с её подпапками, используйте команду:

Compress-Archive -LiteralPath "C:\Path\To\Folder" -DestinationPath "C:\Path\To\Archive.zip"


В этом случае PowerShell включит в архив всё содержимое указанной папки, включая файлы и вложенные каталоги.

Пример 3: создание архива только из файлов определённого типа
Если вам нужно добавить в архив только файлы определённого типа (например, изображения .jpg), используйте символ подстановки *:

Compress-Archive -Path "C:\Path\To\Files\*.jpg" -DestinationPath "C:\Path\To\Archive.zip"


Эта команда создаст ZIP-архив, содержащий только файлы .jpg из указанной папки. Подкаталоги при этом не включаются.

Пример 4: добавление новых файлов в уже существующий архив
PowerShell позволяет обновлять архивы без их пересоздания с нуля. Если вам нужно добавить файлы или заменить старые версии, используйте флаг -Update:

Compress-Archive -Path "C:\Path\To\Files" -Update -DestinationPath "C:\Path\To\Archive.zip"


При этом новые файлы будут добавлены, а существующие файлы в архиве заменятся на более свежие версии.

Распаковка ZIP-архива

PowerShell также позволяет быстро разархивировать файлы с помощью командлета Expand-Archive.

Пример 1: извлечение архива в указанную папку
Для распаковки архива используйте команду:

Expand-Archive -LiteralPath "C:\Path\To\Archive.zip" -DestinationPath "C:\Path\To\Extracted"


Если указанной папки не существует, PowerShell автоматически создаст её перед распаковкой.

Пример 2: принудительная распаковка с перезаписью файлов
Если в папке назначения уже есть файлы с такими же именами, PowerShell выдаст ошибку. Чтобы избежать этого, можно использовать флаг -Force, который перезапишет существующие файлы:

Expand-Archive -LiteralPath "C:\Path\To\Archive.zip" -DestinationPath "C:\Path\To\Extracted" -Force
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥5
Какой командой можно настроить лимит на максимальное количество подключений к определенному порту в Linux с использованием iptables?
Anonymous Quiz
46%
iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/m -j ACCEPT
36%
iptables -A INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP
11%
iptables -A OUTPUT -p tcp --dport 22 -m hashlimit --hashlimit 3 --hashlimit-mode srcip -j ACCEPT
7%
iptables -A INPUT -p tcp --dport 22 -j REJECT
👍7🔥2🤔2
Управление модулями ядра в Linux

Модуль ядра (Kernel Module, ko-файл) — это исполняемый файл, который расширяет функциональность ядра, например, добавляя поддержку файловых систем, сетевых интерфейсов или драйверов оборудования.

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

Загрузка модулей ядра

Если Linux не загрузил нужный модуль автоматически, его можно загрузить вручную с помощью modprobe:

modprobe <имя_модуля>


Например, для загрузки модуля vfat (драйвер FAT32):

modprobe vfat


Если modprobe не находит модуль, можно попробовать загрузить его напрямую:

insmod /lib/modules/$(uname -r)/kernel/drivers/net/<module>.ko


Но insmod не управляет зависимостями, поэтому предпочтительнее modprobe.

Удаление модулей ядра

Иногда нужно выгрузить модуль, например, при отладке или обновлении.

Удаление модуля выполняется командой:

modprobe -r <имя_модуля>


Если модуль используется, его можно принудительно выгрузить:

rmmod <имя_модуля>


Чтобы найти процессы, использующие модуль:

lsmod | grep <имя_модуля>
lsof | grep <имя_модуля>


Добавление модуля в автозагрузку

Чтобы загружать модуль при старте системы, добавьте его в файл /etc/modules:

echo "<имя_модуля>" | sudo tee -a /etc/modules


Отключение автозагрузки модуля

Если модуль загружается автоматически, но его нужно отключить, можно занести его в чёрный список (blacklist):

echo "blacklist <имя_модуля>" | sudo tee -a /etc/modprobe.d/blacklist.conf


Затем обновляем конфигурацию и перезагружаем систему:

sudo update-initramfs -u
reboot


Зачем управлять модулями ядра?
Отладка и тестирование (например, при замене драйвера)
Оптимизация системы (исключение ненужных драйверов)
Безопасность (запрет загрузки уязвимых или нежелательных модулей)

Если нужно полностью удалить модуль из системы, его можно найти и удалить:

find /lib/modules/$(uname -r) -name "<модуль>.ko" -delete
👍15🔥2
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что такое seccomp в Linux и зачем он нужен?

Ответ: Seccomp (Secure Computing Mode) — это механизм ядра Linux, который ограничивает системные вызовы для процессов, уменьшая поверхность атаки.

Проверка режима seccomp у процесса:

cat /proc/<PID>/status | grep Seccomp


Применение seccomp в Docker:

docker run --security-opt seccomp=restricted.json alpine


Seccomp повышает безопасность контейнеров и песочниц, блокируя нежелательные syscalls.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93
rdiff-backup: Инкрементальное резервное копирование в Linux

rdiff-backup — мощный инструмент для создания инкрементных резервных копий, который объединяет простоту работы с эффективным использованием дискового пространства.

Он позволяет копировать данные как на локальные, так и на удалённые серверы, сохраняя историю изменений.

Ключевые особенности rdiff-backup

Простота использования – создание резервной копии выполняется одной командой.
Инкрементное хранение – сохраняются только изменения, что экономит место.
Функция зеркалирования – позволяет быстро восстановить актуальное состояние.
Эффективное использование пространства – старые резервные копии хранятся в компактном виде.
Поддержка расширенных атрибутов (ACL, xattrs) – сохраняются все метаданные файлов.
Кроссплатформенность – работает на Linux, Windows, BSD и macOS.

Как установить rdiff-backup в Linux

Ubuntu и Debian

Для современных версий Ubuntu (20.04+) и Debian:

sudo apt install rdiff-backup


Для старых версий:

sudo add-apt-repository ppa:rdiff-backup/rdiff-backup-backports
sudo apt update
sudo apt install rdiff-backup


CentOS и RHEL 7

sudo yum install yum-plugin-copr epel-release
sudo yum copr enable frankcrawford/rdiff-backup
sudo yum install rdiff-backup


Fedora

sudo dnf install rdiff-backup


Установка через PyPi (для всех дистрибутивов)

Debian/Ubuntu:

sudo apt install python3-pip python3-setuptools python3-pylibacl python3-pyxattr
sudo pip3 install rdiff-backup


Fedora:

sudo dnf install python3-pip python3-setuptools py3libacl python3-pyxattr
sudo pip3 install rdiff-backup


Создание резервной копии с rdiff-backup

Простейший способ сделать резервную копию:

rdiff-backup /home/user/documents /mnt/backup


Здесь /home/user/documents – исходные данные, а /mnt/backup – папка, где будет храниться резервная копия.

Для копирования на удалённый сервер:

rdiff-backup /home/user/documents user@remote-server::/backup


Восстановление данных

Восстановить последнюю резервную копию можно так:

rdiff-backup -r now /mnt/backup /home/user/documents


Чтобы откатиться к резервной копии, созданной 7 дней назад:

rdiff-backup -r 7D /mnt/backup /home/user/documents


Очистка старых резервных копий

Удаление данных старше 30 дней:

rdiff-backup --remove-older-than 30D /mnt/backup
Please open Telegram to view this post
VIEW IN TELEGRAM
👍162
Однажды Эрнест Хемингуэй поспорил, что сможет написать самый короткий рассказ, способный растрогать любого 😅
😁60🔥4😢1
Как использовать winget: менеджер пакетов Windows 10

winget – это официальный менеджер пакетов для Windows, который упрощает установку программ одним командой.

Вместо того чтобы искать установочный файл в интернете, загружать его и проходить мастер установки, теперь можно просто ввести команду, и Windows сделает все за вас.

Что такое Windows Package Manager?

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

Microsoft внедрила аналогичный подход в Windows с помощью winget.

Пример установки Microsoft PowerToys:

winget install powertoys


Windows Package Manager — проект с открытым исходным кодом, доступный на GitHub.

Как установить winget

На новых версиях Windows 10 и 11 winget предустановлен. Если у вас более старая система или winget отсутствует, его можно установить вручную:

Через GitHub
1. Перейдите на страницу релизов winget
2. Скачайте .appxbundle
3. Установите, дважды кликнув по файлу

После установки откройте командную строку и выполните:

winget --version


Если установка прошла успешно, отобразится версия winget.

Основные команды winget

Вы можете использовать winget в PowerShell, Windows Terminal или классической cmd.

1. Поиск приложений

Чтобы найти программу, замените name на ключевое слово:

winget search name


Пример поиска Google Chrome:

winget search chrome


2. Установка приложений

Для установки программы используйте:

winget install name


Пример установки Zoom:

winget install zoom  


3. Просмотр информации о программе

Чтобы узнать подробности о приложении:

winget show name


Пример:

winget show vscode


4. Просмотр доступных программ

Список всех приложений в репозитории Microsoft:

winget list


5. Управление источниками

Чтобы посмотреть список доступных репозиториев:

winget source list


В первой версии winget использует только официальный репозиторий Microsoft, но в будущем появится поддержка сторонних источников.

6. Получение справки

Чтобы узнать больше о командах, добавьте -?:

winget search -?
👍194
Какая команда используется для отображения активных TCP-соединений на сервере в Linux, включая их состояние?
Anonymous Quiz
42%
netstat -tuln
22%
ss -tuln
10%
lsof -i
26%
netstat -an
🤬21👏4🗿41😁1