Системный администратор – Telegram
Системный администратор
2.53K subscribers
375 photos
497 videos
7 files
199 links
Канал для системных администраторов. Linux, Windows, Active Directory, GPO, PowerShell. Виртуализация Hyper-V, VMWare. Облака Azure, AWS.

По всем вопросам @evgenycarter
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Как сменить пароль Linux пользователя при помощи Ansible

00:00 Введение
00:20 Ansible.builtin.user Модуль Ansible
01:00 параметры ansible.builtin.user
02:30 демонстрация модуля пользователя в плейбуке
04:35 выполнение и проверка модуля user
05:38 Подведение итогов

change_password.yml

---
- name: user module demo
hosts: all
become: true
vars:
myuser: "example"
mypassword: "password"
tasks:
- name: change password
ansible.builtin.user:
name: "{{ myuser }}"
state: present
password: "{{ mypassword | password_hash('sha512') }}"


Запуск

ansible-playbook change_password.yml

👉 @i_linux
👍3
Shell скрипт для управления Linux- пользователями

Функциональные возможности

Создание пользователей
Просмотр списка существующих пользователей
Сброс пароля для существующих пользователей
Блокировка / Разблокировка пользовтеля
Просмотр всех заблокированных пользователей
Создание резервной копии домашнего каталога пользователя
Генерирование SSH ключей для пользователя
Повышение пользователя до админа и обратно
Удаление пользователя
Запись всех действий в журнал actions.log

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

Генерация SSH ключа
Для генерации используется ssh-keygen, в результате будут отображены сведения о том, куда был сохранен ключ и отображено содержимое публичного ключа:


https://github.com/m0zgen/user-manager

👉 @i_linux
👍5
KVM быстрый перенос виртуальной машины на другой сервер

Представим, что есть несколько гипервизоров - server1 и server2, как быстро перенести виртуального гостя с одного сервера, на другой? Очень просто.

Действия на server1
Выключить машину:
virsh shutdown vm1

Сделать дамп конфигурации машины:
virsh dumpxml vm1 > ~/vm1.xml

Скопировать данные на другой хост:
scp ~/vm1.xml server2:/path/to/folder/
scp /var/lib/libvirt/images/vm1.qcow2 server2:/var/lib/libvirt/images/



Действия на server2
Импортировать конфиг:
virsh define /path/to/folder/vm1.xml

Запустить виртуалную машину:
virsh start vm1

Удаление виртуальной машины KVM

Удалить машину:
virsh undefine vm1

Удалить диск:
virsh vol-delete --pool default vm1

Убедиться, что файл образа так же удален:
rm /var/lib/libvirt/images/vm1.qcow2

👉 @i_linux
👍4
🎯 Топ-5 инструментов, которые облегчат жизнь Linux-админу

Если ты всё ещё вручную лазаешь по логам и не автоматизируешь рутину — этот пост для тебя:

1. btop — продвинутый мониторинг ресурсов. Графика, интерактивность, кайф. Заменяет top и htop, особенно если ты ценишь эстетику и удобство.

2. glances — универсальный мониторинг "всё в одном". Работает даже через веб-интерфейс. Можно настроить алерты и метрики.

3. bpytop + ncdu — для анализа диска. Один показывает активность, другой — кто съел весь твой SSD.

4. atuin — мощный аналог истории bash/zsh с поиском по FZF и синхронизацией между машинами. Забудь про Ctrl+R.

5. tldr — короткие, понятные примеры команд. Особенно если ты не хочешь каждый раз читать мануал на 200 строк.

👉 @i_linux
👍7
Шпаргалка по поиску узких мест в Linux с помощью различных инструментов

👉 @i_linux
👍4
Шпаргалка по Tmux: установка, настройка, работа

Tmux (ти-макс) — это менеджер терминалов, который позволяет работать с несколькими сессиями в одном окне. То есть вместо нескольких открытых окон терминала — вы используете одно, которое можно делить на несколько окон.

Установка и настройка Tmux

Устанавливается Tmux из стандартных репозиториев Linux:
apt-get install tmux

После установки рекомендуем сразу отредактировать конфигурационный файл ти-макса (/etc/tmux.conf) и внести следующие изменения:
set -g mouse on

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


Работа с Tmux

Для работы с ти-миксом используется широкий набор горячих клавиш, состоящих из базового сочетания Ctrl + b и отдельных целевых клавиш (n,p,w,b и т.д.).

Работа с сессиями в Tmux
Для создания рабочей сессии без идентификатора — достаточно ввести tmux в терминале. Будет создана сессия 0:

Идентификатор сессии отображается внизу слева в квадратных скобках. Для создания именной сессии достаточно ввести следующую команду:
tmux new -s название сессии

Поскольку ти-макс завершает соединение с сохранением состояния сессии, правильным способом возобновить работу ти-макса будет его запуск командой:
tmux attach || tmux new

Команда запускает проверку уже созданных сессий и если активных подключений нет — создается новое подключение.
Просмотреть список созданных сессий можно командой:
tmux ls

Команда вернёт список следующего вида:
0: 1 windows (created Mon Aug 30 13:02:31 2021) (attached)

Если в списке одна сессия, то командой tmux attach она будет автоматически восстановлена, а если в списке несколько сессий — необходимо ввести следующую команду:
tmux attach -t наименование сессии

В нашем случае сессия называется 0.
Сменить сессию можно также, находясь в другой сессии. Для этого нужно воспользоваться сочетанием клавиш Ctrl + b, s.

Выйти из сессии можно с помощью сочетания клавиш Ctrl + b, d. А завершить сессию командой:
tmux kill-session -t название сессии

Закрыть все сессии можно командой:
tmux kill-server

👉@i_linux
👍6
Media is too big
VIEW IN TELEGRAM
Зачем вводить системы Linux в домен Microsoft Active Directory?

источник

👉@i_linux
👍6
Cisco. Базовая настройка

Заливаем последнюю прошивку (для SSH необходим минимум Advanced Security), избавляемся от преднастроенного мусора и перегружаемся
erase startup-config

Включаем шифрование паролей
service password-encryption

Используем новую модель ААА и локальную базу пользователей
aaa new-model
aaa authentication login default local


Заводим пользователя с максимальными правами
username user privilege 15 secret password

Назначаем имя роутеру
hostname R1
ip domain-name R1.domain


Генерируем ключ для SSH
crypto key generate rsa

Настраиваем SSH
ip ssh authentication-retries 5
ip ssh version 2
ip ssh time-out 60


Разрешаем telnet и ssh на удаленной консоли и делаем доступ сразу в привилегированный режим 15го уровня line vty 0 4
transport input telnet ssh
privilege level 15


Отключаем доступ по http и https
no ip http server
no ip http secure-server


Настройка временной зоны и ntp
clock timezone MSK 3
ntp server 146.0.32.144


Настраиваем DNS
ip domain name domain
ip name-server 8.8.8.8


Блокируем доступ при определённом количестве неправильных попыток
login block-for 600 attempts 5 within 30

Отключаем ошибку резолва при неправильном наборе чего-либо в консоли
no ip domain-lookup

Задаём timeout неактивности telnet сессии
exec-timeout 15 0

👉@i_linux
👍6
Cisco (защищаем доступ)

Установим пароль на доступ через консольный порт:
line console 0
login
password password


Создаём access-list с разрешёнными для доступа сетями или хостами (пишем сети с обратной маской):
access-list 1 permit 192.168.1.0 0.0.0.255
access-list 1 permit 192.168.2.0 0.0.0.255


Отключаем доступ по виртуальному терминалу для протокола telnet и применяем ранее созданный access-list для ограничения доступа по ssh:
line vty 0 4
transport input ssh
access-class 1 in
privilege level 15
login local


Добавляем watch for login Attacks
login block-for 600 attempts 2 within 30
login delay 5
login quiet-mode access-class 1


👉@i_linux
👍6
Cisco. ACL

Стандартные ACL
access-list 100 permit host 172.16.6.0 0.0.0.255
access-list 100 deny host 172.16.6.0 0.0.0.255


Расширенные ACL
ip access-list extended TEST
permit tcp host 172.16.6.66 host 172.16.0. eq ftp
permit tcp host 172.16.6.66 gt 1023 any eq www


ПРАВИЛА ПРОВЕРЯЮТСЯ СВЕРХУ ВНИЗ. КАК ТОЛЬКО ПРОВЕРКА ДОХОДИТ ДО ПРАВИЛА ПОД КОТОРОЕ ПАКЕТ ПОДПАДАЕТ, ПРОВЕРКА ПРЕКРАЩАЕТСЯ, НЕЗАВИСИМО ОТ ТОГО КАКИЕ ПРАВИЛА ИДУТ ДАЛЬШЕ.

В КОНЦЕ ЗАДАЁТСЯ НЕЯВНОЕ ПРАВИЛО


deny ip any any
Т.Е. ЕСЛИ ЯВНО ЧТО-ТО НЕ РАЗРЕШИТЬ СВЕРХУ, ТО ЭТО БУДЕТ ЗАПРЕЩЕНО

Вешаем ACL на интерфейс(in или out)
ip access-group TEST out

Иногда необходимо удалить конкретную запись в access-list(для примера ip 94.123.2.139). Для этого, сначала смотрим порядковые номера записей
# show access-lists
Standard IP access list 1
10 permit 185.40.30.134
20 permit 94.141.60.123
30 permit 94.123.2.139
90 permit 88.196.234.16
50 permit 222.251.243.67
40 permit 143.35.7.238


Затем удаляем нужную
# conf t
(config)# ip access-list s 1
(config-ext-nacl)# no 30


В данном случае S - Standard Access List
Если вдруг понадобилось вставить запись в конкретное место, делаем так
# conf t
(config)# ip access-list s 1
(config-ext-nacl)# 40 permit 94.123.2.139


OBJECT-GROUP
Предположим, надо составить ACL, выпускающий три определенных адреса в интернет по трем одинаковым портам c перспективой расширения количества адресов и портов.

Создаём список разрешённых портов
object-group service INET-PORTS
denoscription Ports allowed for some hosts
tcp eq www
tcp eq 8080
tcp eq 443


Создаём список разрешённых ипишек
object-group network HOSTS-TO-INET
denoscription Hosts allowed to browse the net
host 172.16.0.2
host 172.16.0.3
host 172.16.0.4


Создаём ACL
ip access-list extended INET-OUT
permit object-group INET-PORTS object-group HOSTS-TO-INET any


И в завершении вешаем ACL на интерфейс
ip access-group TEST out


👉@i_linux
👍3
Как скопировать структуру директорий в Linux

В этой статье мы расскажем как в две команды скопировать структуру директорий без файлов через командрую строку Linux.

Сначала необходимо перейти в директорию, где находятся нужная структура
# cd /dir1

Затем выполняем команду, которая находит директории и сохраняет пути к ни в файл
# find . -type d > dirs.txt

Теперь необходимо перенести этот файл в директорию, где мы хотим воссоздать структуру
# mv ./dirs.txt /dir2

Переходим туда
# cd /dir2

И используя xargs читаем из файла пути и создаем по ним структуру директорий
# xargs mkdir -p < dirs.txt

👉@i_linux
👍3
Карта ядра ОС Linux (Linux kernel map)

https://makelinux.github.io/kernel/map/

👉 @i_linux
👍3🔥1
Media is too big
VIEW IN TELEGRAM
Подключение удаленных USB устройств. USBIP

В этом видео мы расскажем о том, как получить общий доступ к usb-устройствам через ip-сеть для совместного использования. Расскажем, какие устройства можно подключить таким способом и продемонстрируем подключение в консольном и графическом варианте.

00:00 Вступление
01:14 Настройка на сервере
02:40 Настройка на клиенте
04:37 Графическая утилита

👉 @i_linux
👍4👏1