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

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

РКН: https://kurl.ru/nQejS
Download Telegram
Почему стоит установить локальный кэширующий DNS-сервер на Linux

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

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


Это особенно полезно, если DNS-серверы провайдера медленно реагируют, что замедляет работу в интернете.

Например, веб-страница новостного канала может обращаться к более чем 100 уникальным доменам.

Даже минимальная задержка на каждый запрос приводит к значительному времени ожидания загрузки страницы.

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

Дополнительным преимуществом является поддержка современных стандартов, таких как DNSSEC и DNSoverTLS, которые повышают безопасность в интернете.

В следующем посте мы рассмотрим, как установить и настроить кэширующий DNS-сервер с использованием утилиты systemd-resolved.
🔥26👍71
Распространенные переменные окружения и оболочки

Переменные окружения:

USER — текущий пользователь.
PWD — текущая директория.
OLDPWD — предыдущая рабочая директория. Используется оболочкой для того, чтобы вернуться в предыдущий каталог при выполнении команды cd -.
HOME — домашняя директория текущего пользователя.
SHELL — путь к оболочке текущего пользователя (например, #bash или #zsh).
EDITOR — заданный по умолчанию редактор. Этот редактор будет вызываться в ответ на команду edit.
LOGNAME — имя пользователя, используемое для входа в систему.
PATH — пути к каталогам, в которых будет производиться поиск вызываемых команд. При выполнении команды система будет проходить по данным каталогам в указанном порядке и выберет первый из них, в котором будет находиться исполняемый файл искомой команды.
LANG — текущие настройки языка и кодировки.
TERM — тип текущего эмулятора терминала.
MAIL — место хранения почты текущего пользователя.
LS_COLORS — задает цвета, используемые для выделения объектов (например, различные типы файлов в выводе команды ls будут выделены разными цветами).

Переменные оболочки:

BASHOPTS — список задействованных параметров оболочки, разделенных двоеточием.
BASH_VERSION — версия запущенной оболочки bash.
COLUMNS — количество столбцов, которые используются для отображения выходных данных.
DIRSTACK — стек директорий, к которому можно применять команды pushd и popd.
HISTFILESIZE — максимальное количество строк для файла истории команд.
HISTSIZE — количество строк из файла истории команд, которые можно хранить в памяти.
HOSTNAME — имя текущего хоста.
IFS — внутренний разделитель поля в командной строке (по умолчанию используется пробел).
PS1 — определяет внешний вид строки приглашения ввода новых команд.
PS2 — вторичная строка приглашения.
SHELLOPTS — параметры оболочки, которые можно устанавливать с помощью команды set.
UID — идентификатор текущего пользователя.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥4
Уязвимость в IPv6 на Windows: угроза удалённого заражения ПК

Microsoft выпустила патч для критической уязвимости, затрагивающей все системы Windows с включённым по умолчанию протоколом IPv6.

Проблема связана с реализацией TCP/IP и позволяет удалённо выполнить код, мгновенно заражая ПК.


Уязвимость, обозначенная как CVE-2024-38063, была обнаружена экспертом Сяо Вэем из Kunlun Lab.

Она вызвана целочисленным переполнением (Integer Underflow) и затрагивает Windows 10, 11 и Windows Server. Эксплуатация уязвимости возможна до обработки пакетов брандмауэром, что делает её особенно опасной.

В Microsoft пояснили, что злоумышленникам достаточно многократно отправить специально созданные пакеты IPv6.

Дастин Чайлдс из Trend Micro назвал эту уязвимость одной из самых серьёзных, исправленных в обновлении Windows.

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


⚡️ На Black Hat 2024 Алон Левиев из SafeBreach также сообщил о двух уязвимостях нулевого дня, которые позволяют хакерам обходить исправления в системах Windows, что делает CVE-2024-38063 особенно опасной.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
3 полезных примера использования Curl

cURL идеальная команда для взаимодействия с веб-сайтом или API, отправления запросов и получения ответов на терминал или с выводом в файл. 


Иногда она используется как часть сложного скрипта для передачи полученных данных другим функциям на дальнейшую обработку.
Наряду с получением файлов из сервера, cURL так же используется для закачки части вебсайта.

Несмотря на то, что она довольно хорошо справляется с работой, но всё же wget лучше наточен под такую работу.

Указание времени выполнения команды
Если нужно чтобы прервать выполнение команды cURL по истечении указанного времени, мы можем указать таймер выполнения команды. Это особо полезно так как некоторые операции выполняются бесконечно, что может привести к зависанию системы.

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

$ curl -m 60 example.com


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

Эта опция тоже в качестве аргумента принимает значение в секундах. А команда выглядит так:

$ curl --connect-timeout 60 example.com


Указание логина и пароля
Утилита cURL позволяет указывать имя пользователя и пароль при подключении. Чаще всего это нужно при аутентификации на FTP сервере. Для этого используется ключ u. Синтаксис команды указан ниже:

$ curl -u username:password ftp://example.com


Данную опцию можно использовать с любым протоколом, но FTP является самым распространённым для простой передачи файлов.
Если нужно скачать файл указанный на скриншоте ниже запускаем ту же команду, только указываем полный путь к нужному документу.

$ curl -u username:password ftp://example.com/readme.txt


Использование прокси
cURL можно указать, чтобы подключение выполнялось через прокси сервер. По умолчанию, она использует HTTP прокси, но можно указать и другие. Чтобы направить трафик через прокси используется ключ x.

$ curl -x 192.168.1.1:8080 https://example.com


Данная команда обязует cURL подключиться к прокси по адресу 192.168.1.1 на порту 8080 перед обращением на example.com

Прокси можно использовать и с другими протоколами. Ниже показан пример использования прокси сервера для получения файла с фтп сервера.

$ curl -x 192.168.1.1:8080 ftp://example.com/readme.txt


🔥 cURL поддерживает много типов прокси и соответствующих ключей, но охватить их всех в одном руководстве сложно. Для более подробной информации о туннелировании, SOCKS прокси, аутентификации и т.п. можете прочитать man по команде cURL.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22
Когда ты в рабстве, но ты еще сисадмин
27😁22😭1
💬 Вопрос на собеседовании для сисадмина

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


Вопрос: Каким именам файлов предшествует точка?

Ответ: Обычно имена файлов, которым предшествует точка, являются скрытыми файлами.

Эти файлы могут быть файлами конфигурации, содержащими важные данные или информацию о настройке. Установка этих файлов как скрытых снижает вероятность их случайного удаления.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24
Как настроить локальный кэширующий DNS-сервер с systemd-resolved

systemd-resolved — это утилита для управления сетевыми настройками, которая может работать как локальный кэширующий DNS-сервер.

Если ваша система использует systemd, скорее всего, systemd-resolved уже установлен, но не запущен. Для проверки введите команду:

$ resolvectl status


Если systemd-resolved не настроен, система выдаст сообщение об ошибке.
• Если сервис работает, будут отображены настройки DNS.


Чтобы запустить systemd-resolved и добавить его в автозагрузку, выполните:

$ sudo systemctl start systemd-resolved.service
$ sudo systemctl enable systemd-resolved.service


Далее настройте DNS-сервера, к которым будет обращаться локальный сервер. Рекомендуем использовать DNS-сервера Cloudflare:

$ sudo nano /etc/systemd/resolved.conf


В конфигурационном файле отредактируйте строку DNS=, указав:

DNS=1.1.1.1 1.0.0.1


Сохраните изменения и перезапустите службу:

$ sudo systemctl restart systemd-resolved.service


🔥 Теперь система готова к использованию локального DNS-сервера.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥2
Какой параметр команды rsync используется для проверки контрольных сумм файлов перед их передачей?
Anonymous Quiz
59%
-c
13%
-t
11%
-u
18%
-v
9
💬 Вопрос на собеседовании для сисадмина

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


Вопрос: Что такое inode? Какая информация там хранится?

Ответ: Inode (индексный дескриптор) - структура данных, в которой хранятся метаданные файла и перечислены блоки с данными файла. Хранит всю информацию, кроме имени файла и данных. Каждый файл в данном каталоге является записью с именем файла и номером индекса. Вся остальная информация о файле извлекается из таблицы индексов путем ссылки на номер индекса.

Inodes хранит метаданные о файле, к которому он относится. Эти метаданные содержат всю информацию об указанном файле.

• Размер.
• Разрешение.
• Владелец/группа.
• Расположение жесткого диска.
• Дата/время.
• Любая другая необходимая информация.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥2
Как пользоваться утилитой screen в Linux?

Сейчас вы точно прочувствуете важность команды screen. Бывало ли у вас так, что вы выполняете команду в консоли на удаленной машине через SSH, команда долго выполняется, и вдруг рвется подключение, и все, что вы делали, пропадает?

Простите за напоминание. Знаю, это болезненно. В таких ситуациях поможет команда screen, о которой мы и поговорим.

Немножко теории

Screen — это терминальный мультиплексор. Он позволяет открывать множество виртуальных окон/терминалов в одной сессии. Процессы, запущенные в screen, будут продолжаться даже если вы отключитесь от сессии.

Установка screen в Linux

Пакет screen обычно предустановлен на большинстве Linux-дистрибутивов. Проверить это можно командой:

screen --version


Если screen не установлен, можно легко установить его:

Ubuntu и Debian:

apt install screen


CentOS и Fedora:

yum install screen


Запуск screen в Linux

Чтобы запустить screen, просто введите:

screen


В новой сессии вы можете вводить все нужные shell-команды. Чтобы посмотреть список доступных команд управления screen, используйте:

Ctrl+a и ?


Сессия screen с именем

Очень удобная фича. Чтобы обозначить сессию, используйте:

screen -S имя_сессия_скрин


Например:

screen -S pings_towards_1C


Как работать с окнами в screen

• Создать дополнительное окно: Ctrl+a и c
• Показать список всех окон: Ctrl+a и "
• Переключиться на окно с номером 0: Ctrl+a и 0
• Переименовать текущее окно: Ctrl+a и A
• Разделить окно по горизонтали: Ctrl+a и S
• Разделить окно по вертикали: Ctrl+a и |
• Переключить рабочий фокус на следующую область: Ctrl+a и tab
• Переключить рабочий фокус на предыдущую область: Ctrl+a и Ctrl+a
• Закрыть все области кроме текущей: Ctrl+a и Q
• Закрыть текущую область: Ctrl+a и X

Выход из screen-сессии

Чтобы выйти из screen-сессии, нажмите:

Ctrl+a и d


Процесс продолжит выполнение в фоне.

Возврат к screen-сессии

Чтобы вернуться к сессии, используйте:

screen -r


Если у вас несколько сессий, укажите ID:

screen -ls


Для возврата к сессии с ID 32328:

screen -r 32328


Кастомизация screen

Файл конфигурации ~/.screenrc позволяет настроить screen под себя. Пример:

# Выключаем приветствие
startup_message off

# Включаем визуальный звонок
vbell off

# Увеличиваем буфер до 10000 строк
defscrollback 10000

# Кастомизация строки состояния
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'
👍211
Иногда к серверам нужен и такой подход 😅
31😁12👍3
Роскомнадзор объяснил сбой в рунете DDoS-атакой на операторов связи

21 августа 2024 года в рунете произошел сбой в работе популярных сервисов, включая WhatsApp, Telegram, GitHub, Steam, Discord, Skype, Roblox, AnyDesk и Wikipedia.

Неполадки начали фиксироваться после 14:00 мск, и пользователи по всей стране стали жаловаться на проблемы с доступом к этим платформам. 


Также был недоступен сервис для отслеживания сбоев, https://сбой.рф/, который выдавал ошибку 503.

Роскомнадзор оперативно объяснил произошедшее DDoS-атакой на российских операторов связи.

Согласно заявлению Центра мониторинга и управления сетью связи общего пользования (ЦМУ ССОП) «Главного радиочастотного центра», атака началась в 14:00 и была успешно отражена к 15:00, после чего работа всех сервисов была восстановлена.

На проблемы также указывал детектор сбоев Brand Analytics, согласно которому пользователи сообщали о трудностях в работе VK, Госуслуг и «Ростелекома».

👀 Однако в «Ростелекоме» и «Вымпелкоме» (бренд «Билайн») заявили, что их сети работали в штатном режиме, а МТС отказался комментировать ситуацию.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁18👎5👍4
Работа с .tar архивами

.tar архивы являются неотъемлемой частью работы с файлами в Linux, особенно при необходимости пакетирования и сжатия данных для их последующей передачи или хранения.

Вот несколько команд, которые помогут вам управлять .tar архивами:

Создание архива:

tar cf example.tar /home/example.txt


Эта команда создаёт архив example.tar, который содержит файл example.txt. Это удобно, если вам нужно объединить несколько файлов или каталогов в один архив.

Сжатие с использованием Bzip2:

tar cjf example1.tar.bz2 /home/example1.txt


В данном случае, помимо создания архива, происходит его сжатие с использованием алгоритма Bzip2. Это позволяет уменьшить размер архива, что особенно полезно при передаче данных по сети.

Сжатие с использованием Gzip:

tar czf example2.tar.gz /home/example2.txt


Этот вариант схож с предыдущим, но использует Gzip для сжатия. Формат .gz чаще используется в Linux-системах и может быть более предпочтителен для больших данных.
Распаковка архива:

tar xf example.tar


Команда распаковывает содержимое архива example.tar в текущую директорию. Если архив был сжат с помощью нестандартного алгоритма, например, Bzip2 или Gzip, необходимо добавить соответствующее расширение: .bz2 или .gz.

Работа с RPM пакетами

Если вы используете CentOS или другой RPM-based Linux дистрибутив, работа с RPM пакетами станет неотъемлемой частью вашей деятельности.

Вот несколько основных команд:

Вывод списка установленных пакетов:

rpm -qa


Эта команда покажет все установленные в системе RPM пакеты. Полезно для аудита установленных приложений и их версий.
Установка пакета:

rpm -i rpmpackage.rpm


Используется для установки нового RPM пакета. Замените rpmpackage.rpm на имя вашего пакета.

Удаление пакета:

rpm -e rpmpackage


Команда удаляет указанный RPM пакет из системы. Будьте осторожны, чтобы не удалить зависимости, которые могут вызвать проблемы в системе.

Установка пакетов из директории:

dpkg -i *.rpm


Эта команда установит все пакеты, находящиеся в указанной директории. Это удобно, когда вы скачали или подготовили несколько пакетов и хотите установить их разом.

Про жёсткие диски

Для администраторов важно уметь управлять жёсткими дисками и понимать их конфигурацию. Команда fdisk -l может оказаться крайне полезной.

Вывод информации о дисках:

fdisk -l


Эта команда отображает список всех подключенных жёстких и сменных дисков в системе, включая информацию о разделе, типе файловой системы и размере.

Пример использования – аудит подключённых устройств или проверка конфигурации нового оборудования.

Пример вывода для OTRS сервера:

Disk /dev/sda: 500 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes


Этот вывод показывает основной диск системы, его размер и структурную информацию. Такой анализ важен при планировании разделения пространства или конфигурации RAID.
👍131
Какой параметр команды tar позволяет архивировать файлы, сохраняя при этом ссылки (символьные и жесткие) в их оригинальном виде?
Anonymous Quiz
55%
-s
16%
-h
16%
-P
12%
-k
👍6
💬 Вопрос на собеседовании для сисадмина

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


Вопрос: Как чувствительность к регистру влияет на то, как вы используете команды?

Ответ: Когда мы говорим о чувствительности к регистру, команды считаются идентичными, только если каждый символ закодирован как есть, включая строчные и прописные буквы. Это означает, что CD, cd и Cd — это три разные команды.

Ввод команды с использованием прописных букв вместо строчных приведет к разным выводам.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
Еще 4 полезных лайфхака для работы в терминале Linux

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

Начнем с первого:

1️⃣Совет:

command | sudo tee file вместо sudo command > file 


позволяет запускать команду с правами администратора и перенаправлять ее вывод в файл с правами доступа.

2️⃣ Совет:

<<<


(herestring):Позволяет передать строку в качестве входных данных для команды. Например,

cat – <<< "Hello, world!" выведет "Hello, world!"


3️⃣ Совет:

pushd
и popd сохраняют состояние перехода между директориями.

Более простой способ управления директориями используется в оболочке Fish – nextd и prevd.

4️⃣ Совет:

vim scp://<user>@<host>/<absolute-path>
 


позволяет редактировать удаленный файл напрямую через SSH.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍161🔥1
- Мне жаль тебя

- Я вообще о тебе не думаю
😁21💯3👍1👎1🗿1
Управление групповыми политиками через PowerShell

Групповые политики (Group Policy) являются важным инструментом для администрирования Windows-систем, особенно в корпоративных средах.

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


Использование PowerShell для управления групповыми политиками значительно упрощает и автоматизирует эту задачу.

Экспорт и импорт объектов GPO

PowerShell предоставляет мощные команды для экспорта и импорта объектов групповых политик (GPO).

Это особенно полезно при необходимости переноса настроек между разными доменами или создания резервных копий.

Для экспорта объекта GPO используется командлет Backup-GPO:

Backup-GPO -Name "НазваниеGPO" -Path "C:\Backup\GPO"


Этот командлет создает резервную копию указанного объекта GPO в указанной директории. Экспортированный файл может быть использован для восстановления или переноса настроек.

Импортировать объект GPO можно с помощью командлета Import-GPO:

Import-GPO -BackupId (Get-GpoBackup -Path "C:\Backup\GPO").BackupID -TargetName "НазваниеНовогоGPO" -CreateIfNeeded


Этот командлет восстанавливает GPO из резервной копии, что упрощает процесс развертывания стандартных политик в новой среде.

Управление отдельными параметрами GPO

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

Например, для включения политики "Запретить изменение параметров экрана" можно использовать командлет Set-GPRegistryValue:

Set-GPRegistryValue -Name "НазваниеGPO" -Key "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" -ValueName "NoDispSettingsPage" -Type Dword -Value 1


Этот командлет задает значение параметра реестра, связанного с конкретной политикой, что позволяет управлять настройками напрямую через PowerShell.

Мониторинг изменений GPO

Для мониторинга изменений в объектах групповых политик PowerShell предлагает использование командлета Get-GPReport.

Этот командлет генерирует отчет о состоянии GPO в формате XML или HTML, что удобно для аудита и документирования.

Get-GPReport -Name "НазваниеGPO" -ReportType HTML -Path "C:\Reports\GPOReport.html"
👍15
Какой командой можно изменить планировщик ввода-вывода (I/O scheduler) в Linux для конкретного блока устройства?
Anonymous Quiz
35%
tune2fs
22%
echo
24%
bikid
19%
chattr
👍10
Релиз WinToUSB 9.0

Вышла новая версия инструмента WinToUSB 9.0. 


Этот проект позволяет устанавливать и запускать полнофункциональную Windows на внешнем жёстком диске, USB-флешке или диске с поддержкой Thunderbolt.

WinToUSB поддерживает версии Windows 7/8/10/11 и Windows Server, а также установки этих ОС с образов ISO, WIM, ESD, SWM, VHD, VHDX.

Кроме того, можно клонировать текущую установленную Windows на USB или диск Thunderbolt, создавая портативную версию операционной системы.

Список изменений в WinToUSB 9.0:

• Добавлена поддержка изменения размера и перемещения разделов;
• Улучшен графический интерфейс пользователя;
• Поддержка светлых и тёмных тем;
• Исправлена проблема с установкой дополнительных драйверов;
• Повышена производительность за счёт исправления некоторых ошибок.
13👍13🔥4
Как сделать резервную копию и восстановить базу данных MySQL с помощью Mysqldump

Mysqldump — это удобная утилита, входящая в стандартный комплект MySQL и MariaDB, предназначенная для создания резервных копий баз данных.

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

Основной синтаксис

mysqldump [options] > file.sql

• options — параметры для конфигурации экспорта данных.
• file.sql — файл, в который будет сохранена резервная копия базы данных.

Резервное копирование одной базы данных

mysqldump -u root -p database_name > database_name.sql


После ввода пароля root будет создан файл database_name.sql, содержащий SQL-операторы для восстановления базы данных.

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

Резервное копирование нескольких баз данных

Если вам нужно сделать резервную копию сразу нескольких баз данных, это можно сделать одной командой:

mysqldump -u root -p --databases database1 database2 > databases.sql


Этот файл будет содержать дампы всех указанных баз данных.

Резервное копирование всех баз данных

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

mysqldump -u root -p --all-databases > all_databases.sql


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

Сжатие резервной копии

При необходимости можно уменьшить размер файла резервной копии с помощью сжатия:

mysqldump database_name | gzip > database_name.sql.gz


Команда создаст сжатый файл, что сэкономит место на диске и упростит его передачу.

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

Для восстановления базы данных используйте следующую команду:

mysql -u root -p database_name < database_name.sql


Это вернет все данные из файла database_name.sql в базу данных database_name.

Автоматизация резервного копирования

Чтобы автоматизировать процесс создания резервных копий, можно использовать планировщик заданий cron. Например, следующая команда создаст резервную копию базы данных каждый день в 3 часа ночи:

0 3 * * * /usr/bin/mysqldump -u dbuser mydb > /home/username/db_backups/mydb-$(date +%Y%m%d).sql 


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

В следующем посте продолжим
👍152🔥1