Системный Администратор (Сисадмин)
13.9K subscribers
1.7K photos
1.55K videos
87 files
1.73K links
Настройка серверов Windows, Linux, сетевое оборудование Cisco Systems, D-Link, HP, Huawei, Juniper, MikroTik. Книги и мануалы для сисадминов.
По всем вопросам @evgenycarter

РКН clck.ru/3KoGJ3
Download Telegram
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

👉 @sysadminof
👍12
Утилиты на PowerShell для системных администраторов

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

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

https://github.com/Sync1er/ChernigovEugeniyUtilities

👉 @sysadminof
👍10🔥2🥱21
Как скопировать структуру директорий в Linux

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

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

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

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

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

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

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

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

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

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

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

👉 @sysadminof
👍11🏆1
Скрипт Bash для для проверки производительности системы в реальном времени, а также для сбора статистики использования за определенное время.

#!/bin/bash
# This script monitors CPU and memory usage

while :
do
# Get the current usage of CPU and memory
cpuUsage=$(top -bn1 | awk '/Cpu/ { print $2}')
memUsage=$(free -m | awk '/Mem/{print $3}')

# Print the usage
echo "CPU Usage: $cpuUsage%"
echo "Memory Usage: $memUsage MB"

# Sleep for 1 second
sleep 1
done

👉 @sysadminof
👍6😁1
Media is too big
VIEW IN TELEGRAM
Python. Пишем мониторинговую систему

00:00 - Постановка задачи
05:19 - Разбор кода
19:30 - Демонстрация на ноутбуке
20:55 - Регистрация на TimeWeb
21:33 - Создание виртуальной машины
23:15 - Настройка сервера
24:40 - Настройка домена
28:25 - Демонстрация на сервере
29:27 - Плюшка от TimeWeb

источник

👉 @sysadminof
👍6🤮3
Для ускорения вашей работы с командами

!! — повторяет последнюю команду.

!$ — позволяет изменить команду, сохраняя последний аргумент. Например, команда less !$ — используется для повторного открытия файла в меньшем объёме.

!* —позволяет изменить команду, сохраняя при этом все аргументы. Например, head states.txt | grep '^Al' — при использовании должен быть хвост.

tail !* — избавляет от необходимости вводить остальную часть команды.

>x.txt — используется для создания пустого файла или очистки существующего.

lsof -P -i -n — определяет, к каким скриптам идёт обращение со стороны веб-сервера.

👉 @sysadminof
👍93
Скрипт для мониторинга дискового пространства в Linux

Скрипт ниже предназначен для мониторинга использования дискового пространства на указанном разделе сервера. Настраиваемые параметры включают в себя максимально допустимый процент использования дискового пространства (`MAX`), адрес электронной почты для получения оповещений (`EMAIL`) и целевой раздел (`PARTITION`).

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

#!/bin/bash

# Set the maximum allowed disk space usage percentage
MAX=90

# Set the email address to receive alerts
EMAIL=user@example.com

# Set the partition to monitor (change accordingly, e.g., /dev/sda1)
PARTITION=/dev/sda1

# Get the current disk usage percentage and related information
USAGE_INFO=$(df -h "$PARTITION" | awk 'NR==2 {print $5, $1, $2, $3, $4}' | tr '\n' ' ')
USAGE=$(echo "$USAGE_INFO" | awk '{print int($1)}') # Remove the percentage sign

if [ "$USAGE" -gt "$MAX" ]; then
# Send an email alert with detailed disk usage information
echo -e "Warning: Disk space usage on $PARTITION is $USAGE%.\n\nDisk Usage Information:\n$USAGE_INFO" | \
mail -s "Disk Space Alert on $HOSTNAME" "$EMAIL"
fi


👉 @sysadminof
👍7🥰2
Подборка из 4 альтернативых SSH клиентов

1. Mosh

Mosh - это замена интерактивных терминалов SSH. Он более надежен и отзывчив, особенно при работе через Wi-Fi, сотовую связь и на дальних расстояниях.
Mosh - это свободное программное обеспечение, доступное для GNU/Linux, BSD, macOS, Solaris, Android, Chrome и iOS.


2. Teleport

Teleport с открытым исходным кодом был разработан для обеспечения доступа к необходимой инфраструктуре без замедления работы. С помощью одного инструмента инженеры получают унифицированный доступ к серверам Linux и Windows, кластерам Kubernetes, базам данных и приложениям DevOps, таким как AWS Management Console, CI/CD, контроль версий и панели мониторинга во всех средах.


3. Eternal Terminal

Удаленный терминал для занятых и нетерпеливых
Eternal Terminal (ET) - это удаленная оболочка, которая автоматически переподключается, не прерывая сеанса.

4. tmux

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

Работает на OpenBSD, FreeBSD, NetBSD, Linux, macOS и Solaris.

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

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

источник

👉 @sysadminof
👍19
Cамые нужные команд SSH

Запускай команды быстро
Чтобы выполнить всего одну удаленную команду, совсем не обязательно подключаться к SSH, вводить команду, а затем отключаться. Можно сделать это сразу. Например, так можно посмотреть заполненность ФС удаленной машины:
$ ssh user@host df -h
А так — перезагрузить ее:
$ ssh user@host sudo reboot

Составляй списки команд и запускай их разом
Если у тебя есть целый список команд, которые следует выполнить, их можно записать в файл и скормить этот файл SSH:
$ ssh user@host "`cat file.txt`"

Редактируй удаленные файлы локальным редактором
Чтобы отредактировать файл на удаленной машине, не требуется заходить на нее и использовать консольный редактор. На самом деле файл можно открыть в твоем любимом текстовом редакторе на локальной машине (gvim заменяем на свой редактор):
$ gvim scp://user@host//путь/к/файлу

Копируй содержимое удаленного файла в буфер обмена
Если необходимо скопировать содержимое удаленного файла или вывод команды в буфер обмена, не обязательно выводить его на экран или открывать в текстовом редакторе и копировать вручную. Можно использовать следующую команду:
$ ssh user@host cat /путь/к/файлу | xclip
А так можно скопировать вывод команды:
$ ssh user@host uname -a | xclip

Сравнивай удаленный и локальный файл без копирования
Похожий прием можно использовать для сравнения двух файлов:
$ ssh user@host cat /путь/к/удаленному/файлу | diff /путь/к/лoкальному/файлу -

Работай с удаленными файлами с помощью локального файлового менеджера
Не всегда удобно работать с большим количеством файлов с помощью консольных команд или mc, запущенного на удаленной машине. Но всегда можно подключить любой каталог удаленной машины как сетевой диск. Для этого достаточно установить sshfs:
$ sudo apt-get install sshfs
Создать каталог для подключения «сетевого диска»:
$ mkdir remote_files
И подключить его:
$ sshfs user@host:/home/user ~/remote_files/
Теперь все файлы удаленного каталога /home/user будут видны в каталоге ~/remote_files/ и с ними можно работать, как с обычными.

Копируй ключи быстро
Хоть и копирование публичного ключа на удаленный сервер — задача простая, но она требует выполнения нескольких действий вручную. Если тебя это напpягает, скопировать ключ можно в автоматическом режиме:
$ ssh-copy-id user@host
При этом не обязательно копировать основной ключ, с помощью флага -i можно указать любой другой:
$ ssh-copy-id -i ~/my_key.pub user@host

Создай постоянное соединение с машиной
Если в течение дня ты часто подключаешься к одной машине, в том числе на несколько минут или секунд (чтобы просто запустить одну команду, например), есть смысл создать с ней постоянное соединение. Твой комп будет держать соединение открытым и использовать его для каждого подключения к машине. Это намного быстрее и экономичнее с точки зрения трафика и нагрузки на процессор.
Добавь следующие строки в ~/.ssh/config:
Host host
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster no

А затем создай соединение:
$ ssh -MNf user@host

👉 @sysadminof
👍15🎉2
Сеть виновата

Привет. Я Марат Сибгатулин — сетевик в Яндексе, ведущий подкаста linkmeup, автор серии книг «Сети для самых маленьких» и спикер курса Слёрм Сети для DevOps, который мы сделали совместно с linkmeup.

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

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

https://habr.com/ru/company/southbridge/blog/717634/

👉 @sysadminof
👍4👎1
Media is too big
VIEW IN TELEGRAM
4 способа восстановления загрузчика Grub 2

В данном видео показано как восстановить загрузчик Grub 2, а точнее 4 способа восстановления загрузчика Grub 2 на компьютерах с BIOS. А также рассказывается о том, что такое MBR, как в Linux сделать backup (резервная копия) MBR, как восстановить MBR и многое другое.

● 00:00 - Вступление;
● 00:44 - Что такое MBR и почему можно создать
не больше 4 primary разделов ?
● 02:13 - Что нужно сделать перед тем как
восстанавливать Grub 2 ?
● 03:00 - Как определить какой раздел является
системным(корневым) ?
● 04:39 - 1-й способ.
Как восстановить Grub 2 из окружения chroot ?
● 10:33 - 2-й способ.
Как восстанавливая MBR восстановить Grub 2 ?
● 16:46 - 3-й способ. Самый простой способ;
● 19:14 - 4-й способ.
Что делать, если из меню Grub не запускается Linux или
как загрузиться с Linux из консоли grub ?
● 25:12 - Заключение;
● 26:01 - Заставка в конце видео.

источник

👉 @sysadminof
👍5
Для упрощение работы ИТ-администраторов

На следующей неделе Яндекс Браузер проведет вебинар, где поговорит про свой новый инструмент — Консоль управления для Яндекс Браузера для организаций. Консоль — своего рода палочка-выручалочка для комфортной работы с корпоративным парком браузеров.

К примеру, на вебинаре разберут:
— Как настроить сборку в Консоли;
— Как удобно развернуть её на Linux-cистемах;
— Как подключить браузер к Консоли в on-prem-режиме;
— Какие функции доступны в режиме on-premise и др.

Короткая регистрация по ссылке

👉 @sysadminof
👍4👏31
Как использовать команду grep в linux
grep это вполне возможно самая популярная из существующих команд в Unix/Linux. Многие бы с этим поспорили, но стоит начать использовать grep, эта команда будет присутствовать почти во всех ваших скриптах для консоли Linux. grep расшифровывается как ‘global regular expression printer‘. Иными словами grep выдрезает нужные вам строки из текстовых файлов которые содержат указаный пользователем текст.

grep может быть использован двумя путями — сам по себе или в комбинации с потоками.

Использование grep в чистом виде
$ grep '12:00' /home/david/backup/log.txt

Эта команда показывает как можно использовать grep для того чтобы получить строки из файла содержащие подстроку указаную в командной строке. Файл не обязательно должен оканчиваться на .txt. Показаная выше команда производит поиск подстроки 12.00 в файле /home/david/backup/log.txt и отображает все строки где эта подстрока встречается.

Эта комбинация может быть использована например для поиска бекапов которые происходили в 12:00.

$ grep -v '12.00' /home/david/backup/log.txt

А вот эта команда (с использованием ключа -v) наоборот покажет только те строки где подстрока ’12:00′ не встречается.

$ grep -l 'delay' /code/*.c

Эта команда будет искать все файлы оканчивающиеся на .c и текст в найденых файлах соответствующий подстроке 'delay' и в конечном итоге выведет только имена файлов где эта подстрока встречается.

$ grep -w '\<bay' * $ grep -w 'watch\>' *

Эта команда уже более сложная и состоит из комбинации двух команд grep. Первая ищет строки которые начинаются со слова ‘bay’ а вторая строки которые заканчиваются на слово ‘watch’.

Использование grep вместе с потоками
$ ls -l | grep rwxrwxrwx

Вы наверно уже знаете что команда ls -l отображает подробный список файлов в директории. Часть grep rwxrwxrwx фильтрует результат полученый от ls -l и выводит только те директории у которых установлены соответствующие права доступа. В данном случае это открытый доступ на чтение, запись и поиск для всех пользователей и групп. Так что вместо того чтобы увидеть полный список файлов вы увидите только те файлы у которых установлены нужные вам права доступа.

Вывод от команды grep может также быть направлен потоком в другую команду, например как в следующем примере:

$ du | grep 'mp3' | more

Вы должны уже догадаться что делает указаная выше команда 🙂 Если не догадались то все просто — она выводит постранично список mp3 файлов найденых в текущей директории. Все просто 🙂

$ grep '^#' /home/david/script1 | more

Эта команда отобразит все строки в файле /home/david/script1 которые начинаются с символа ‘#’. Определение тип ‘^#’ означает что символ ‘#’ должен быть первым символом с троке.

$ grep -v '^[0-9]' /home/david/backup/log.txt | more

Эта команда ищет строки содержащие в первом символе цифры от 0 до 9 а потом выводит только те строки которые не попали в результаты поиска. Как вы видите — был использован ключ ‘-v’ означающий реверсивный поиск.

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

Некоторые дополнительные ключи команды grep:

-v : Выводи реверсивные результаты. Вместо того чтобы вывести строки где искомое было найдено — выводи те строки где искомой подстроки нет.
-c : Отключает стандартный способ вывода результата и вместо этого отображает только число обозначающее количество найденых строк.
-i : Делает поиск регистронезависимым
-w : Ведет поиск по цельным словам. Например при обычном поиске строки ‘wood’ grep может найти слово ‘hollywood’. А если используется данный ключ то будут найдены только строки где есть слово ‘wood’.
-l : Выводит только имена файлов где была найдена строка.
-r : Производит поиск рекурсивно по всем поддиректориям.
Я надеюсь эта небольшая инструкция поможет вам разобраться с этой полезной командой.

👉 @i_odmin_book
👍142
Media is too big
VIEW IN TELEGRAM
MobaXterm

Это программа, предназначенная для удаленного администрирования компьютеров и серверов, самый универсальный терминал под Windows. SSH-RDP-FTP-SFTP...

https://mobaxterm.mobatek.net/

👉 @sysadminof
👍104