Linux
Kanalga Telegram’da o‘tish
Все для системного администратора, новости и информация из мира Linux По всем вопросам @evgenycarter
Ko'proq ko'rsatish2 345
Obunachilar
-524 soatlar
-347 kunlar
-20730 kunlar
Postlar arxiv
2 346
🔥 Оптимизация SSH-доступа: ускоряем работу с серверами 🔥
🔹 Отключаем DNS-резолвинг на сервере
При подключении по SSH сервер по умолчанию пытается определить IP клиента через DNS, что может замедлять вход. Отключаем это:
echo "UseDNS no" | sudo tee -a /etc/ssh/sshd_config
sudo systemctl restart sshd
🔹 Используем MUX-сессии SSH
Чтобы не устанавливать новое соединение при каждом подключении, можно использовать multiplexing:
Добавьте в ~/.ssh/config:
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 10m
Создайте папку:
mkdir -p ~/.ssh/sockets
Теперь первое соединение будет стандартным, а последующие — молниеносными! ⚡
🔹 Включаем сжатие трафика
Если соединение медленное, попробуйте сжатие:
ssh -C user@server
Или добавьте в ~/.ssh/config:
Compression yes
🔹 Используем mosh вместо ssh
mosh (Mobile Shell) держит соединение даже при смене сети и потере пакетов. Устанавливаем:
sudo apt install mosh # Debian/Ubuntu
sudo yum install mosh # CentOS/RHEL
Подключаемся:
mosh user@server
👉@linuxchmod2 346
RustScan – Инструмент для быстрого сканирования портов
Данный проект может похвастаться высокой скоростью работы(Сканирует все 65 тыс. портов за 3 секунды), гибкой расширяемостью и адаптивным методом работы.
https://github.com/RustScan/RustScan
👉@linuxchmod
2 346
Как разбить команду на несколько строк в linux
В Linux можно разбить длинную команду на несколько строк, используя обратный слэш (
\) в терминале. Это позволяет сделать команду более читаемой.
1. Запуск команды с аргументами:
cp -r \
/home/user/Documents \
/backup/Documents
Здесь команда cp -r переносится на новую строку после \.
2. Использование в скриптах (bash):
echo "Этот текст будет \
выведен в одной строке"
Результат:
Этот текст будет выведен в одной строке3. Конвейер (Pipeline) с
|:
cat /var/log/syslog | \
grep "error" | \
sort | \
uniq
4. Переменные и длинные строки:
MY_VAR="Это очень длинная строка, \
которая разбивается на несколько строк, \
но сохраняет свою целостность."
echo "$MY_VAR"
5. Использование фигурных скобок {}:
mv {file1.txt,file2.txt,file3.txt} \
/destination/
6. Перенос в командах sed, awk, grep:
awk '{ print $1, \
$2 }' file.txt
7. Использование EOF (многострочный ввод):
cat <<EOF
Это многострочный текст,
который будет выведен в терминал.
EOF
🔹 Важно: \ должен стоять в конце строки, без пробелов после него.
👉@linuxchmod2 346
RAID-массивы - восстановление данных
Технологии Raid массивов. Что делать, если из raid массива выпал диск?
Сетевое хранилище Synology - восстановление данных
RAID 5 - особенности и восстановление данных
Почему наличие Raid массивов любого уровня не освобождает вас от создания резервного копирования
Сбои Raid - контроллеров
Raid-массивы: ошибки пересборки
источник
👉@linuxchmod
2 346
Stacer – Опенсорсная утилита для оптимизации и мониторинга Linux-систем
https://github.com/oguzhaninan/Stacer
👉@linuxchmod
2 346
🔥 Linux Kernel Manager and Activity Monitor — Мониторинг ядра Linux в реальном времени 🐧💻
Kmon - удобный инструмент для мониторинга и управления модулями ядра Linux прямо из терминала. Если вам нужно быстро загрузить, выгрузить или повторно загрузить модули ядра,
kmon станет отличным помощником.
🔹 Основные возможности:
- Просмотр загруженных модулей ядра
- Фильтрация и поиск по модулям
- Управление модулями (load, unload, reload)
- Интуитивный TUI-интерфейс на ncurses
📌 Установка:
cargo install kmon
📌 Запуск:
kmon
После этого откроется удобный интерфейс для работы с модулями ядра!
https://github.com/orhun/kmon
👉@linuxchmod2 346
🔧 Оптимизация SSH: Ускоряем подключение к серверу
1️⃣ Отключаем проверку DNS
По умолчанию SSH проверяет IP-адрес клиента в DNS, что может замедлять соединение. Отключим это:
Открываем конфиг sshd_config:
sudo nano /etc/ssh/sshd_config
Добавляем/изменяем строку:
UseDNS no
Сохраняем и перезапускаем SSH:
sudo systemctl restart sshd
2️⃣ Убираем задержку при аутентификации GSSAPI
Если у вас в сети не используется Kerberos, отключите GSSAPI-аутентификацию:
В файле sshd_config добавляем:
GSSAPIAuthentication no
А также в файле ssh_config (для клиента):
GSSAPIAuthentication no
3️⃣ Подключаемся быстрее с ControlMaster
Чтобы не устанавливать новое соединение при каждом вызове SSH, используем сессионный сокет:
Добавляем в ~/.ssh/config:
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 10m
Создаем папку:
mkdir -p ~/.ssh/sockets
chmod 700 ~/.ssh/sockets
Теперь повторные соединения к серверу будут мгновенными! ⚡
👉@linuxchmod2 346
Shell Scripting
Bash (Born Again) - это оболочка Unix и язык командной строки, написанный Брайаном Фоксом. Оболочка Born Again используется большинством операционных систем Unix/Linux в качестве оболочки по умолчанию.
Этот туториал по Shell Script написан для тех, кто хочет изучить основы программирования сценариев оболочки (Shell scripting). В этой серии уроков вы узнаете о скриптах bash, которые будут очень полезны для автоматизации повседневных задач. Он помогает автоматизировать такие задачи, как резервное копирование, очистка диска и т.д.
https://tecadmin.net/tutorial/bash-scripting/
👉@linuxchmod
2 346
Firewall в Mikrotik: разбираем, как обеспечивать безопасность сети
Firewall дает огромные возможности по управлению сетевым трафиком, проходящим через Mikrotik.
Вы, как администратор сети, должны суметь разделить все потоки трафика. дать каждому из них свои права, а весь лишний трафик — заблокировать.
Firewall в Mikrotik по большей части позаимствован из IPTables из Linux.
02:27 Вопросы вебинара
03:23 Firewall filter
07:06 Работа по принципу «Если-То»
23:54 Filter Actions
57:15 Firewall NAT
1:03:33 NAT Actions
1:14:59 Connection State
1:30:49 Connection Tracking
1:31:22 Простая настройка firewall
1:33:16 Сложная настройка firewall
1:33:46 Address List
1:35:03 Блокирование сайтов через адрес листы с добавлением доменного имени
1:45:06 NAT Helpers
1:46:51 Полезные ссылки
источник
👉@linuxchmod
2 346
Mikrotik firewall
Цепочка Output в Mikrotik Firewall Filter
Основные цепочки IP Firewall Filter, используемые в MikroTik
Цепочка Input в Firewall Filter Mikrotik
Цепочка Forward в Firewall Mikrotik Filter
Action в Mikrotik ip firewall filter - accept, log, add to address list
Action Mikrotik ip firewall filter — drop, fasttrack connection, jump, passtrough, reject, tarpit
Address List в Mikrotik
Принцип «Если-То» в Firewall MikroTik, Вкладки «General», «Advanced», «Extra», «Action»
Ручная Настройка Default Firewall Filter Rules в MikroTik
Настройка Honeypot в Mikrotik
Port Knocking в Mikrotik Firewall Filter
Все видео на youtube
👉@linuxchmod
2 346
Batch-скрипт. Устаналивает портабельную программу с сетевого диска на локальный диск пользователя и выводит ярлык на рабочий стол.
Отредактированный под себя скрипт нужно прикрепить с помощью GPO в домене, как сценарий запуска при старте системы. Логи по установке пишутся на сетевой диск в отдельную папку.
@echo off
rem меняем кодировку чтобы использовать кириллицу
chcp 1251 >nul
rem указываем директорию с программой для копирования (в нашем случае на сетевом диске М)
set old_dir="M:\Programs\ExampleProgramPortable"
rem указываем директорию куда копировать программу (в нашем случае в корень диска С)
set new_dir="C:\ExampleProgramPortable"
rem если директория уже существует пишем запись в лог (дата, время, файл называется именем пользователя), в противном случае копируем программу в директорию new_dir
rem копируем ярлык программы в общую папку для всех пользователей, чтобы вывести на рабочий стол
rem переименовываем ярлык кириллицей (если нужно)
rem делаем запись в лог
If Exist "%new_dir%\*.*" (
echo %date% %time:~-11,8% DIR exist already >> M:\logs\%username%.txt
) Else (
xcopy %old_dir% %new_dir% /i /e /h /y
xcopy "C:\ExampleProgramPortable\example_program.lnk" C:\Users\Public\Desktop
rename "C:\Users\Public\Desktop\example_program.lnk" Программа.lnk
echo %date% %time:~-11,8% Example Program install successful >> M:\logs\%username%.txt
)
👉@linuxchmod2 346
Linux: делаем скриншот и отправляем его на электронную почту 📭
Для успешной работы скрипта необходимо сначала установить:
ssmtp(обязательно настроить), mpack и scrot
#!/usr/bin/env bash
# Важно! Для работы скрипта необходимо установить и настроить ssmtp, mpack и scrot
# путь к директории со скриншотами
dirpath=/home/$USER/screenshots
# проверяем наличие директории (если нет, то создаем). Делаем скриншот с названием по маске: ДД-ММ-ГГ_ЧЧ-ММ-СС.jpg
if [[ -d $dirpath ]]; then
scrot '%d-%m-%Y_%H-%M-%S.jpg' -e "mv \$f $dirpath"
screenshot=$(find "$dirpath" -name "*.jpg")
else
mkdir -p "$dirpath"
scrot '%d-%m-%Y_%H-%M-%S.jpg' -e "mv \$f $dirpath"
screenshot=$(find "$dirpath" -name "*.jpg")
fi
# отправляем письмо на почту
echo "Скриншот с сервера: $HOSTNAME" > $dirpath/message_body.txt
mpack -s "Скриншот" -d $dirpath/message_body.txt $screenshot your_login@mail.ru
# удаляем скриншот
rm -f $screenshot
👉@linuxchmod2 346
Как найти количество открытых файлов в Linux
Значение сохраняется в
# cat /proc/sys/fs/file-max
Проверка Hard лимит в Linux
# ulimit -Hn
Проверка Soft лимит в Linux
# ulimit -Sn
Чтобы просмотреть значения Hard и Soft для разных пользователей, переключите пользователя с «su» на пользователя, ограничения которого вы хотите проверить.
Например:
# su root
$ ulimit -Sn
$ ulimit -Hn
Как проверить количество системных дескрипторов файлов в Linux
На серверах, некоторые из ваших приложений могут потребовать более высокий лимит для открытых дескрипторов файлов. Хорошим примером этого являются службы MySQL / MariaDB или веб-сервер Apache.
Вы можете увеличить лимит открытых файлов в Linux, отредактировав опцию ядра fs.file-max. Для этого используйте утилиту sysctl.
Sysctl используется для настройки параметров ядра.
Например, чтобы увеличить ограничение на количество открых файла до 500000, вы можете использовать следующую команду:
# sysctl -w fs.file-max=500000
Вы можете проверить текущее значение для количества открытых файлов с помощью следующей команды:
$ cat /proc/sys/fs/file-max
С помощью указанной команды изменения, которые вы внесли, будут оставаться активными только до следующей перезагрузки. Если вы хотите применить их на постоянной основе, вам придется отредактировать следующий файл:
# vi /etc/sysctl.conf
Добавьте следующую команду:
fs.file-max=500000
Конечно, вы можете изменить число в соответствии с вашими потребностями. Чтобы снова проверить изменения, используйте:
# cat /proc/sys/fs/file-max
Чтобы изменения вступили в силу, пользователям необходимо будет выйти из системы и снова войти в систему. Если вы хотите немедленно применить ограничения, вы можете использовать следующую команду:
# sysctl -p
Установка количества открытых файлов для пользователя в Linux
Вышеприведенные примеры показали, как установить ограничения, но вы можете установить лимит для каждого пользователя. Для этой цели, с правами пользователя root, вам необходимо отредактировать следующий файл:
# vi /etc/security/limits.conf
Если вы администратор Linux, предлагаем Вам ознакомиться с этим файлом. Прочитайте все комментарии в нем, поскольку он обеспечивает гибкость в плане управления системными ресурсами путем установки лимита пользователям на разных уровнях.
Команды, которые вы должны добавить, имеют следующие параметры:
<domain> <type> <item> <value>
Вот пример установки Soft и Hard лимитов для пользователя dimon:
## Example hard limit for max opened files
dimon hard nofile 4096
## Example soft limit for max opened files
dimon soft nofile 1024
👉@linuxchmod2 346
SFTPGo — это мощный и гибкий сервер SFTP с поддержкой FTPS, S3, WebDAV и HTTP. Он написан на Go и предоставляет широкий набор функций для безопасного управления файлами.
Основные возможности:
🔹 Многопротокольная поддержка – SFTP, FTP, WebDAV, HTTP/S
🔹 Хранение данных – локально, в S3 (AWS, MinIO и др.), Google Cloud Storage, Azure Blob
🔹 Поддержка пользователей и групп – управление через API, веб-интерфейс или конфигурационные файлы
🔹 Аутентификация – встроенная, через JWT, OAuth2, OpenID Connect, PAM, LDAP
🔹 Шифрование и защита – встроенная поддержка TLS, двухфакторная аутентификация
🔹 Гибкость – поддержка виртуальных каталогов, перехват событий вебхуками, API и скриптами
📌 Идеальный вариант для развёртывания безопасного сервера передачи файлов в компании или облачной среде.
https://github.com/drakkan/sftpgo
👉@linuxchmod
2 346
Шпаргалка по RAID
mdadm — утилита для работы с программными RAID-массивами различных уровней. В данной инструкции рассмотрим примеры ее использования.
Информация о RAID
cat /proc/mdstat - состояние всех RAID
mdadm -D /dev/md0 - подробная инфа о конкретном RAID
lsblk - список дисков с разделами, местом, типом
df -hT - свободное место, тип файловой системы, точки монтирования
Сборка RAID
mdadm —zero-superblock —force /dev/sd{b,c} - обнуление суперблоков на дисках sdb sdc (для удаления инфы о других RAID)
при получении ответа mdadm: Unrecognised md component device - /dev/sdb значит, что диск не использовался для RAID, продолжаем
mdadm —create —verbose /dev/md0 -l 1 -n 2 /dev/sd{b,c}
* где /dev/md0 — устройство RAID, которое появится после сборки; -l 1 — уровень RAID; -n 2 — количество дисков, из которых собирается массив; /dev/sd{b,c} — сборка выполняется из дисков sdb и sdc.
Создание файловой системы и монтирование массива
mkfs.ext4 /dev/md0 - создание файловой системы ext4 на md0
mount /dev/md0 /mnt - разово примонтировать md0 к /mnt
nano /etc/fstab, прописать /dev/md0 /mnt ext4 defaults 1 2 - постоянное монтирование, работает после перезагрузки
Восстановление RAID
Замена жесткого диска
При выходе из строя, команда mdadm -D /dev/md0 выдаст: State : clean, degraded
mdadm /dev/md0 —remove /dev/sdc - удалить сбойный диск
mdadm /dev/md0 —add /dev/sde - добавить новый диск в массив
Статус должен стать Rebuild Status : 40% complete и так до полного восстановления
Пересборка массива
Если нам нужно вернуть ранее разобранный или развалившийся массив из дисков, которые уже входили в состав RAID, вводим:
mdadm —assemble —scan - команда сама найдет необходимую конфигурацию и восстановит RAID.
mdadm —assemble /dev/md0 /dev/sdb /dev/sdc - с указанием из каких дисков пересобрать
Запасной диск (Hot Spare)
Если в массиве будет запасной диск для горячей замены, при выходе из строя одного из основных дисков, его место займет запасной.
mdadm /dev/md0 —add /dev/sdd - Диском Hot Spare станет тот, который просто будет добавлен к массиву
Добавить диск к массиву, расширить массив
Добавление активного диска к RAID, который будет использоваться для работы, а не в качестве запасного.
mdadm /dev/md0 —add /dev/sde
mdadm -G /dev/md0 —raid-devices=3 - расширяем RAID
* в данном примере подразумевается, что у нас RAID 1 и мы добавили к нему 3-й диск.
Установка mdadm
Если каким-то образом в дистрибутиве нет этого пакета
apt-get install mdadm
Удаление массива
Если нам нужно полностью разобрать RAID, сначала размонтируем и остановим его:
umount /mnt
* где /mnt — каталог монтирования нашего RAID.
mdadm -S /dev/md0
Затем очищаем суперблоки на всех дисках, из которых он был собран:
mdadm —zero-superblock /dev/sdb
mdadm —zero-superblock /dev/sdc
mdadm —zero-superblock /dev/sdd
👉@linuxchmod2 346
Как пробросить порт в Linux на другой сервер
Необходимо пробросить с 8821 порта сервера 10.10.10.10 на 21 порт сервера 12.12.12.12:
iptables -A FORWARD --dst 10.10.10.10 -p tcp --dport 8821 -j ACCEPT
iptables -A FORWARD --src 10.10.10.10 -p tcp --sport 8821 -j ACCEPT
iptables -t nat -A PREROUTING -d 10.10.10.10 -p tcp --dport 8821 -j DNAT --to-destination 12.12.12.12:21
iptables -t nat -A POSTROUTING -d 12.12.12.12 -p tcp --dport 21 -j SNAT --to-source 10.10.10.10:8821
👉@linuxchmod2 346
Удаленный запуск скрипта на сервере Linux
Удаленный запуск скрипта повторяющихся задач повышают эффективность системного администрирования. Это отлично подходит для локальных машин, но что если вы контролируете удаленные серверы? Можете ли вы запустить локальный скрипт на удаленном компьютере? Да!
https://bookflow.ru/udalennyj-zapusk-skripta-na-servere-linux/
👉@linuxchmod
2 346
Как отлаживать bash-script-ы по шагам
Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.
Волшебная строчка, которую нужно добавить после
#!/bin/bash, чтоб скрипт можно было отлаживать по шагам
#!/bin/bash
trap 'echo "# $BASH_COMMAND";read' DEBUG
echo line1
echo line2
echo line3
Процесс отладки
Запускаем скрипт, перед выполнением каждой команды выводится то, что будет исполняться, затем интерпретатор начинает ожидать нажатия клавиши <ENTER>.
Если понимаем, что что-то пошло не так, нажимаем Ctrl+C и выходим из отладки.
Ингредиенты
команда trap, которая умеет перехватывать разные сигналы и в нашем случае она перехватывает сигнал DEBUG, посылаемый перед выполнением команды
команда read, которая умеет ожидать ввода чего-нибудь с клавиатуры (в данном случае нам нужно только либо ENTER либо Ctrl+C
переменная окружения $BASH_COMMAND, валидная внутри обработчика команды trap.
# Online Bash Shell.
# Code, Compile, Run and Debug Bash script online.
# Write your code in this editor and press "Run" button to execute it.
trap 'echo "# $BASH_COMMAND";read' DEBUG
echo line1
echo line2
echo line3
echo "Hello World";
👉@linuxchmod
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
