Системный Администратор
2.14K subscribers
209 photos
505 videos
8 files
220 links
Канал для системных администраторов. Полезный контент по Windows, Linux и т.д.

По всем вопросам @evgenycarter
Download Telegram
Как ускорить навигацию командной строки

++++++++++++++++++++++++++++++
Повторный запуск под root — sudo !!
user@host: cat /var/log/messages
cat /var/log/messages: Permission denied.
Как не надо: Вверх. Влево. Влево. Влево. …. sudo Enter. Рррр.
Как надо: sudo !!
++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++
Повторный ввод последнего аргумента — Alt+
Вы захотели еще раз воспользоваться только что написанным аргументом? Например, созданной директорией?

Как не надо: mkdir MyNewDirectory; cd MyNewDirectory
Как надо:

mkdir MyNewDirectory
cd <Alt+.>
++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++
Поиск запущенной команды — Ctrl+R
Какую же команду я только что запускал? Вверх. Вверх. Вверх. Вверх. О, вот и она!

Снова и снова вам приходится копаться в истории, ведь вы не знаете более подходящих альтернатив. Но что, если я скажу вам о том, что есть… поиск?

Как не надо: Вверх. Вверх. Вверх. Enter.
Как надо: Ctrl+R

Просто нажмите Ctrl+R и введите первые буквы нужной команды. Если поиск не выдал нужную команду сразу, то нажмите Ctrl+R еще раз. Повторное нажатие используется для прокрутки результатов. Ниже приведен поиск для cat.

(reverse-i-search)cat: sudo cat /var/log/messages
++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++
Переход в начальную директорию — cd
Вы не на шутку удивитесь, узнав, сколько людей не знают этого способа! cd. Да, так просто. Без лишних аргументов вы сразу попадете в начальную директорию.
++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++
Возвращение в последнюю директорию — cd -
Иногда простой способ — самый лучший. Допустим, вы были в директории /var/www/foo, а теперь оказались в /etc . Простая команда cd — вернет вас обратно в /var/www/foo .

Как не надо: cd /var/www/foo
Как надо: cd -
++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++
Контроль работы: передний план, фоновый режим и проч.
Возможно, вам потребуется какое-то время, чтобы привыкнуть, но оно того стоит. Допустим, вы редактируете файл в vim (вы же не будете этого делать в nano, да?!). И вот вам вдруг захотелось что-то найти в директории /var/www/html. Конечно же, вы можете выйти из vim, перейти в нужную директорию, а потом вдруг решить, что неплохо было бы вернуться к редактированию. Есть и другой вариант — перевести vim в фоновый режим и вернуться к нему позже.

Напишите: Ctrl+Z. Эта комбинация переводит все текущие задачи с переднего плана в фоновый режим. Полезно как минимум для: less, cat, man, vim и т.д.

«И куда же отправится моя активная задача?» — спросите вы. Напишите jobs и сами узнаете.

user@host: jobs
[1] Stopped vim
Супер. Теперь можно заняться чем-то другим. А как только вы решите вернуться к задаче, напишите fg. Эта команда возвращает фоновую задачу (vim) на передний план. Обратите внимание, что фоновые процессы приостанавливаются. Поэтому если в файле вы выполняли что-то из разряда tail, то для завершения команды потребуется какое-то время. Если же в фоновом режиме запущено несколько задач, то напишите fg 3 , где 3 — это номер задачи для возобновления. Увидеть список задач можно по команде jobs.
++++++++++++++++++++++++++++++


👉 @sys_adminos
👍31
Media is too big
VIEW IN TELEGRAM
Сравнение SHELLs: BASH vs ZSH vs FISH

Делаем красочный и удобный терминал.

источник

👉 @sys_adminos
👍31🔥1
Права доступа в Линукс
Расширенные права доступа - SUID, SGID, Sticky bit
Работа с ACL

👉 @sys_adminos
👍43
MAC адрес

1бит 1бит 22 бита 24 бита
------------------------------
|I/G |U/L | OUI | OUA |
------------------------------
<-- 46 бит UAA -->


MAC - адрес уникальная комбинация цифр и букв длиной 48 символов. Фактически, это аппаратный номер оборудования, который, присваивается сетевой карте устройства в момент производства.

I/G - (Individual - 0 / Group - 1) тип адреса. Пакеты с групповым адресом получат все имеющие этот групповой адрес сетевые адаптеры.

U/L - (Universal - 0 / Local - 1) - определяет, как был присвоен адрес. Обычно - 0, Единица означает, что адрес задан не производителем, а админом локальной сети (перепрошит или назначен через драйвер устройства)

OUI - (Organizationally Unique Identifier) Идентификатор производителя. Назначается организацией IEEE.

OUA - (Organizationally Unique Address) Уникальный адрес карты для данного производителя.

UAA - Универсально управляемый адрес.

👉 @sys_adminos
👍31
Как быстро узнать, какие порты открыты на вашем сервере? 🧐

Для этого есть команда ss. Она позволяет получить подробную информацию о сетевых соединениях, сокетах и портах, которые слушает система. Всё это — без установки дополнительных пакетов! 🔥

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

ss -tuln

Здесь:
- -t — показывает TCP соединения.
- -u — для UDP.
- -l — отображает только прослушиваемые порты.
- -n — выводит адреса в числовом формате (без попытки их разрешения в доменные имена).

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

Не забывайте проверять открытые порты и защищать их фаерволом! 💪

👉 @sys_adminos
👍31
Проверяем доступность портов с использованием nmap/netcat/telnet/nc

Доступность tcp-порта
netcat
netcat [options] host port
сканер портов:
netcat -z -v domain.com 1-1000

запустить netcat на хосте и слушать на tcp порте 4444:
netcat -l 4444

а на другой машине проверить подключение к netcat, запущенному на другом хосте:
netcat domain.com 4444

nc
nc -vt <ip> <port>

telnet
telnet <ip> <port>

nmap
порт 25 tcp: nmap -p25 11.11.11.11

Доступность udp-порта
netcat
netcat -u host port

nc
nc -vu <ip> <port>

nmap
доступность порта udp 53: nmap -sU -p U:53 11.1.11.12

👉 @sys_adminos
👍3
Как защитить сервер Linux

Ограничьте, кто может использовать sudo


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

Цели
привилегии sudo ограничены теми, кто входит в указанную нами группу.

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

cat /etc/group | grep "sudo"


Шаги

1 - Создайте группу:
sudo groupadd sudousers

2 - Добавьте учетную запись(и) в группу:
sudo usermod -a -G sudousers user1
sudo usermod -a -G sudousers user2
sudo usermod -a -G sudousers ...


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

3 - Создайте резервную копию файла конфигурации sudo /etc/sudoers:
sudo cp --archive /etc/sudoers /etc/sudoers-COPY-$(date +"%Y%m%d%H%M%S")

4 - Отредактируйте файл конфигурации sudo /etc/sudoers:
sudo visudo

5 - Скажите sudo, чтобы только пользователи из группы sudousers могли использовать sudo, добавив эту строку, если ее еще нет:
%sudousers ALL=(ALL:ALL) ALL

👉 @sys_adminos
👍31
Media is too big
VIEW IN TELEGRAM
Что такое systemd? Управление демонами linux c помощью systemctl

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

А также мини man systemctl:
systemctl is-enabled
systemctl list-units -t тип --all
systemctl status
systemctl start
systemctl stop
systemctl restart
systemctl reload
systemctl enable
systemctl disable
systemctl mask
systemctl unmask

источник

👉 @sys_adminos
👍41
🔥 Оптимизация загрузки Linux: systemd-analyze в деле! 🔥


Что это за инструмент?
systemd-analyze — утилита, которая показывает, сколько времени занимает загрузка системы, а также анализирует, какие сервисы тормозят процесс.

🚀 Как посмотреть общее время загрузки?

systemd-analyze

Вы получите данные о времени выполнения загрузчика (firmware), загрузчика ОС (kernel) и инициализации userspace (systemd).

📊 Хотите детальный разбор?
Используйте команду:

systemd-analyze blame

Она покажет список сервисов и сколько времени каждый из них загружался. Длинные процессы — ваши кандидаты на оптимизацию!

🔍 Графическая визуализация?

systemd-analyze plot > bootchart.svg

Открываем bootchart.svg и видим диаграмму загрузки.

💡 Оптимизация загрузки
1️⃣ Отключите ненужные сервисы
Проверяем активные:

systemctl list-unit-files --state=enabled

Отключаем ненужные:

systemctl disable <service>


2️⃣ Используйте systemd presets
Автоматическая настройка сервисов:

systemctl preset-all


3️⃣ Настройте параллельный запуск
Добавьте в /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash systemd.log_level=info systemd.default_timeout_start_sec=10"

Примените изменения:

sudo update-grub && reboot


👉 @sys_adminos
👍21
Есть приверженцы 😀

👉 @sys_adminos
🔥11👍3
🚀 Как настроить автоматическую очистку логов в Linux?

🔄 Что такое logrotate?
Это утилита, которая автоматически управляет лог-файлами:
Архивирует старые логи
Удаляет устаревшие файлы
Поддерживает ротацию по размеру или времени

📌 Базовая настройка logrotate
Файл конфигурации находится в /etc/logrotate.conf, а для отдельных сервисов — в /etc/logrotate.d/.

Пример настройки для /var/log/syslog:

/var/log/syslog {
daily # Ротация каждый день
rotate 7 # Храним 7 архивов
compress # Сжимаем старые логи
missingok # Не ругаемся, если файла нет
notifempty # Не трогаем пустые файлы
}

Такой конфиг сохранит последние 7 дней логов и удалит более старые.

🛠️ Ротация логов по размеру
Если логи растут слишком быстро, можно задать лимит по размеру:

/var/log/nginx/*.log {
size 100M # Ротация при достижении 100МБ
rotate 5
compress
missingok
notifempty
}

Это предотвратит переполнение диска, если сервис генерирует много логов.

Запуск logrotate вручную
Проверить, как отработает текущая конфигурация, можно так:

logrotate -d /etc/logrotate.conf

А запустить ротацию вручную:

logrotate -f /etc/logrotate.conf


👉 @sys_adminos
👍4
Media is too big
VIEW IN TELEGRAM
Защита от брутфорса на MikroTik

Если у вас есть маршрутизатор MikroTik с белым IP-адресом и открытым стандартным портом SSH, вероятно, вы заметили, что журнал заполнен неудачными попытками входа в систему. В большинстве случаев это происходит из-за неумолимых попыток брутфорса SSH со стороны злоумышленников. Сегодня я расскажу вам, как можно защитить себя от подобных атак на устройствах MikroTik. Мы создадим что-то аналогичное fail2ban.

источник

👉 @sys_adminos
👍41
Шпаргалка по управлению пользователями и группами в Linux

1. Добавление пользователя (useradd):
- Создание нового пользователя:

sudo useradd username

- Создание пользователя с домашним каталогом:

sudo useradd -m username


2. Установка и изменение пароля (passwd):
- Установка пароля для пользователя:

sudo passwd username

- Смена пароля текущего пользователя:

passwd


3. Управление привилегиями (sudo):
- Добавление пользователя в sudoers для получения привилегий администратора:

sudo usermod -aG sudo username

- Открытие файла конфигурации sudoers для редактирования:

sudo visudo


4. Управление группами (groups):
- Создание новой группы:

sudo groupadd groupname

- Добавление пользователя в группу:

sudo usermod -aG groupname username

- Удаление пользователя из группы:

sudo gpasswd -d username groupname

- Список групп, к которым принадлежит пользователь:

groups username


👉 @sys_adminos
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Именно так выглядит утечка данных 😁

👉 @sys_adminos
😁7🐳3🔥1🆒1
Облачные базы данных: Шпаргалка

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

Структурированные базы данных📌

Структурированные базы данных организуют данные в предопределенные схемы и модели.

Реляционные базы данных, такие как MySQL и PostgreSQL, хранят данные в таблицах со строками и столбцами.

Колоночные базы данных, такие как Amazon Redshift и Google BigQuery, также имеют структурированную модель данных, но хранят их по-другому, оптимизируя для аналитических запросов.

Преимущества:
- Эффективные SQL-запросы
- Возможность применения ограничений и валидации
- Последовательность там, где это необходимо

Примеры использования: CRM-системы, управление запасами, бухгалтерский учет, аналитика


Полуструктурированные базы данных📌

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

Примеры включают в себя документ-базы данных, такие как MongoDB, графовые базы данных, наподобие Neptune, широкие колоночные хранилища, такие как ScyllaDB, и хранилища ключ-значение, такие как DynamoDB.

Преимущества:
- Гибкость для изменяющихся данных
- Масштабируемость на разных серверах

Примеры использования: Электронная коммерция, ленты социальных сетей, данные IoT


Неструктурированные базы данных📌

Неструктурированные базы данных оптимизированы для хранения и обработки огромных объемов разнородных данных, таких как документы, изображения, видео. Примеры: AWS S3, Azure Blob Storage.

Преимущества:
- Хранение огромных объемов данных
- Высокая масштабируемость

Примеры использования: Медиарепозитории, управление контентом, океаны данных, журнальные данные, резервное копирование.

👉 @sys_adminos
👍3
Убираем зомби процессы

Знакомство с семейством операционных систем Linux сопряжено пониманием особенностей управления процессами в этой системе. Процесс — это программа, которая, по сути, выполняется постоянно.

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

Давайте определим два типа процессов:

Интерактивные процессы. За инициализацией и выполнением этих процессов стоит пользователь или программист. Системные службы не несут ответственности за их работу. Эти процессы возвращают выходные данные из ввода пользователя. Если процесс уже запущен, невозможно напрямую инициировать новый из того же терминала.

Фоновые процессы или неинтерактивные процессы. За их инициирование и выполнение несут ответственность системные службы или пользователи. Пользователи системы также могут управлять ими. Каждому из этих процессов присваивается уникальный идентификатор процесса (PID).

Состояние процесса.
В таблице процессов можно найти несколько состояний процессов.

Running (R) — это запущенные и активные процессы в данный момент.
Waiting (W) — это процессы, которые ожидают освобождение ресурсов или каких-либо событий. Такое ожидание может быть либо непрерывным спящим режимом (D), либо прерываемым (S)
Stopped (T) — запущенный процесс остановлен соответствующим сигналом.
Zombie(Z) — Это процессы, которые еще существуют в таблице процессов, несмотря на то, что они уже выполнили назначенные им задачи.

https://telegra.ph/Ubiraem-zombi-processy-03-09

👉 @sys_adminos
👍7🔥2💯2
Настройка Iptables для чайников

Операционные системы Linux, на которых чаще всего и функционируют серверы (виртуальные машины), имеют встроенный инструмент защиты – программный фильтр Iptables. Все сетевые пакеты идут через ядро приложения и проходят проверку на безопасность для компьютера. Сценария всего два – или данные передаются дальше на обработку, или полностью блокируются.

https://bookflow.ru/nastrojka-iptables-dlya-chajnikov/

👉 @sys_adminos
👍71