Системный Администратор (админ) – Telegram
Системный Администратор (админ)
28 subscribers
15 photos
32 videos
15 links
Пполезные советы, практические материалы по администрированию Linux, Windows, немного юмора, ну и за бэкап!
Download Telegram
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

👉 @sysodminof
Как защитить сервер 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

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

👉 @sysodminof
Media is too big
VIEW IN TELEGRAM
Защита от подбора пароля на устройствах MikroTik

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

источник

👉 @sysodminof
Terminus (Tabby) – Кросс-платформенный терминал с возможностью тонкой конфигурации.

Данный терминал имеет интегрированный ssh-клиент - что делает его превосходной заменой стандартного PowerShell или PuTTY на Windows.

https://github.com/Eugeny/tabby

👉 @sysodminof
🧠 Что делает команда exec в bash — и зачем она нужна?

Многие слышали о exec, но используют редко. А зря! Это мощный инструмент, особенно в скриптах и системном администрировании.

🔹 Что делает exec?
Она заменяет текущий процесс новым, без создания дочернего. То есть, вместо запуска новой программы — текущий процесс «перевоплощается» в неё.

Простой пример:
exec topВ этом случае оболочка bash будет заменена на top, и когда вы закроете top, сессия завершится.



🛠 Где это может пригодиться:

1. В systemd-юнитах — при запуске сервиса через скрипт:

#!/bin/bash
exec /usr/bin/myapp
Это позволит системе правильно отслеживать основной процесс.

2. В контейнерах (например, Docker) — если вы запускаете скрипт в качестве ENTRYPOINT, используйте exec, чтобы сигналы (например, SIGTERM) корректно передавались вашему приложению.

3. Для перенаправления ввода/вывода:

exec >> /var/log/mynoscript.log 2>&1
Всё, что будет выведено в stdout и stderr после этой строки — пойдёт в лог.


exec не делает магии, но помогает делать вещи правильно. Особенно там, где важна замена PID и корректная работа сигналов.


👉 @sysodminof
Media is too big
VIEW IN TELEGRAM
Деление IP сети на подсети при помощи маски легко и быстро. Наглядный способ!

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

источник

👉 @sysodminof
Не все логи одинаковы полезны: 3 истории из жизни

В своей статье я расскажу, как выявить проблемы в ПО, не имеющего исходного кода и написанного не вами, а так же как минимальными средствами выяснить, что происходит у вас в системе. Данный текст подойдет администраторам, где по условиям работы всё запрещено, а так же инженерам АСУТП, где систему приходится эксплуатировать в жестких рамках ИБ.

https://habr.com/ru/articles/790554/

👉 @sysodminof
Media is too big
VIEW IN TELEGRAM
OpenSSH: Разбираем туннели

Мы с примерами разбираем прямые туннели, обратные и создаем SOCKS туннели для проксирования веб траффика.

источник

👉 @sysodminof
Как работает HTTPS?

Безопасный протокол передачи гипертекста

(HTTPS) - это расширение протокола передачи гипертекста (HTTP). HTTPS передает зашифрованные данные с использованием транспортного уровня безопасности (TLS). Если данные будут перехвачены в Интернете, все, что получит угонщик, - это двоичный код.

Как шифруются и дешифруются данные?

Шаг 1 - Клиент (браузер) и сервер устанавливают TCP-соединение.

Шаг 2 - Клиент отправляет серверу " client hello". Сообщение содержит набор необходимых алгоритмов шифрования (наборов шифров) и последнюю версию TLS, которую он может поддерживать. Сервер отвечает " server hello", чтобы браузер знал, может ли он поддерживать алгоритмы и версию TLS.

Затем сервер отправляет SSL-сертификат клиенту. Сертификат содержит открытый ключ, имя хоста, дату истечения срока действия и т. д. Клиент проверяет сертификат.

Шаг 3. После проверки SSL-сертификата клиент генерирует ключ сессии и шифрует его с помощью открытого ключа. Сервер получает зашифрованный ключ сеанса и расшифровывает его с помощью закрытого ключа.

Шаг 4 - Теперь, когда клиент и сервер владеют одним и тем же сеансовым ключом (симметричное шифрование), зашифрованные данные передаются по защищенному двунаправленному каналу.

Почему HTTPS переключается на симметричное шифрование при передаче данных? Есть две основные причины:

1. Безопасность: Асимметричное шифрование работает только в одну сторону. Это означает, что если сервер попытается отправить зашифрованные данные обратно клиенту, любой сможет расшифровать их с помощью открытого ключа.

2. Ресурсы сервера: Асимметричное шифрование добавляет довольно много математических накладных расходов. Оно не подходит для передачи данных в длительных сессиях.

👉 @sysodminof
👍1
Как отлаживать bash-noscript-ы по шагам

Мне всегда хотелось иметь возможность отлаживать bash-noscripts так же, как и любой другой код, т.е. по шагам, и 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 noscript 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";


👉 @sysodminof
👍2🔥1
Docker Essentials

(Part 1) - Introduction
(Part 2) - What is Docker?
(Part 3) - Installing Docker on Windows 10, macOS, and Ubuntu
(Part 4) - Running Containers
(Part 5) - Making Containers Persist
(Part 6) - Accessing Containerized Apps
(Part 7) - Creating Images

👉 @sysodminof
👍2
Скриптик переустановки пароля пользователя MikroTik

# Скрипт смены пароля пользователя
# только для исполнения в терминале ROS
# by Sertik 09/06/2020

{
:global EnterString do={
:local cont 0; :local string ""
:while ($cont!=13) do={
:local key ([:terminal inkey])
:if ($key!=13) do={
:local char [[:parse "(\"\\$[:pick "0123456789ABCDEF" (($key >> 4) & 0xF)]$[:pick "0123456789ABCDEF" ($key & 0xF)]\")"]]
:set string ("$string"."$char")}
:set cont $key
}
:return $string}
;
:put "Please, enter Username:"
:local RegUser [$EnterString];
:put "";
:if ([:len [/user find disabled=no name=$RegUser]]!=0) do={:put "Ok, a user with this name was found"; :put "";
:put "Please, enter new password for this user:"
:local newPass [$EnterString];
[/user remove $RegUser];
[/user add name=$RegUser password=$newPass group=full];
:put "";
:put "The user has been re-created, the password has been changed";
:put ("New user`s password: "."$newPass");
:put "Don't forget to set up access restrictions based on ip addresses";
} else={:put ("User "."$RegUser "."not found"); :put "";
}
}

Скрипт интересен строкой преобразования кода символа из переменной $key, сграбленного с клавиатуры терминала, в сам символ.

:local char [[:parse "(\"\\$[:pick "0123456789ABCDEF" (($key >> 4) & 0xF)]$[:pick "0123456789ABCDEF" ($key & 0xF)]\")"]]

👉 @sysodminof
👍2
Как пробросить порт в 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


👉 @sysodminof
👍2