Админские угодья
1.46K subscribers
446 photos
40 videos
219 links
Всё для системного администратора

По всем вопросам : @Sofiia_artamonova
Download Telegram
📌 Шпаргалка по работе с Tmux
1
20 лучших скриптов Powershell для Active Directory

Работая много лет, я столкнулся со многими проблемами в качестве системного администратора windows. Иногда создание пользователей или групп в домене занимает значительное время. Это процесс можно автоматизировать, чтобы сэкономить время. В данной статье есть скрипты DNS powershell, скрипты DHCP powershell и мой собственный репозиторий powershell.

https://itmozg.ru/20-luchshih-skriptov-powershell-dlja-active-directory/
3
Подборка часто используемых команд для первоначальной настройки устройств MikroTik: имя устройства, DNS сервера, Email, время, доступы и т.д.

Установки имени устройства
/system identity set name=MyHomeMikrotik

Установка своих DNS серверов и отключение получения их по DHCP
/ip dns set servers=8.8.8.8,1.1.1.1
/ip dhcp-client set [find ] use-peer-dns=no


Настройка email клиента для работы с Yandex.Mail
Для корректной работы разрешите в настройках профиля авторизацию SMTP по обычному паролю или [рекомендуется] используйте пароли приложений (почта)
/tool e-mail
set address=smtp.yandex.ru [email protected] password=example-pass port=587 start-tls=yes [email protected]


Настройка синхронизации времени по NTP и MikroTik Cloud Time (Москва)
/system ntp client set enabled=yes server-dns-names=time.google.com,0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org,3.pool.ntp.org
/system clock set time-zone-autodetect=no
/system clock set time-zone-name=Europe/Moscow
/ip cloud set update-time=yes


Изменение количества строк системного лога
/system logging action set memory memory-lines=10000

Очистка системного лога (оставляет сообщение о смене настроек лога)
/system logging action set memory memory-lines=1
/system logging action set memory memory-lines=10000


Контроль доступа с IP адресов домена
Это позволяет использовать DynamicDNS для записей своего домена, и получать доступ к устройству с IP адресов, которые будут резолвится с домена. RouterOS будет сам обновлять записи и access-list при изменении записи в домене.

Обратите внимание, в конце 2 строки с move. Это сделано для того, чтобы правило корректно двигалось на первое место при включенном fasttrack (то есть первое место), а также при отключенном (на нулевое место)

/ip firewall address-list
add address=access.example.con list=DomainIPsAccess
/ip firewall filter
add action=accept chain=input src-address-list=DomainIPsAccess comment="Allow DomainIPsAccess"
move [find comment="Allow DomainIPsAccess"] 1
move [find comment="Allow DomainIPsAccess"] 0


Отключение ненужных служб доступа (web тоже отключается, осторожно)
/ip service disable www,ftp,api,api-ssl,telnet
/ip service enable ssh,winbox
/ip service set ssh address=""
/ip service set winbox address=""


Фикс MTU (нужен редко, но метко)
/ip firewall mangle
add chain=postrouting out-interface-list=WAN protocol=tcp tcp-flags=syn,!ack action=change-mss new-mss=clamp-to-pmtu comment="MTU Fix" passthrough=yes


Заблокировать доступ к WiFi по MAC-адресу
/interface wireless access-list authentication=no mac-address=8A:EA:B7:2E:38:C1

Поместить клиента WiFi в отдельный VLAN по MAC-адресу
/interface wireless access-list
add interface=all mac-address=8A:EA:B7:2E:38:C1 vlan-id=99 vlan-mode=use-tag


Настройка пароля и безопасности WiFi на default профиль
/interface wireless security-profiles set default mode=dynamic
-keys authentication-types=wpa2-psk unicast-ciphers=aes-ccm group-ciphers=aes-ccm
wpa2-pre-shared-key=bigpassword


Включение пробросов портов SSH
/ip ssh set forwarding-enabled=both
1
DevOps resources

Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP


https://github.com/bregman-arie/devops-resources
1👍1
Как выполнить grep для поиска текста в PowerShell

grep – это мощная утилита для поиска текста в Linux, но она недоступна в Windows.

Хотя существуют сторонние порты и решения, PowerShell предлагает встроенные эквиваленты grep, которые выполняют ту же работу в ваших скриптах.

Использование findstr для поиска в PowerShell
В PowerShell есть несколько различных утилит поиска, каждая из которых обладает своими достоинствами.

Самая простая – findstr, которая является собственным исполняемым файлом windows.

Она хорошо подходит для замены grep для простых операций поиска в командной строке.

Например, вы можете передать ему вывод ls для поиска совпадений.


ls | findstr "foo"


Вы также можете искать несколько слов одновременно, использовать подстановочные знаки для соответствия чему угодно и использовать флаг /R для передачи основных регулярных выражений.


ls | findstr /R ba[a-z]\.txt


Хотя, если вы хотите искать явно , включая пробел, вам нужно использовать флаг /C::


ls | findstr /C:"foo"


Если вы привыкли к командной строке Linux и не хотите запоминать новую команду, вы можете настроить “grep” как алиас findstr, что позволит вам сохранить мышечную память.


new-alias grep findstr


Использование Select-String для поиска в PowerShell
Другой собственный метод, который предлагает PowerShell, – это команда Select-String, которая делает то же самое, что и findstr, но является командой PowerShell, а не исполняемым файлом Windows.

Это означает, что она лучше работает в сценариях PowerShell, и, что особенно важно, возвращает результат в виде объекта, который может быть красиво распечатан PowerShell.

Его также легче использовать в командной строке, поскольку с ним работает завершение вкладки PowerShell.

Он работает так же, как findstr, и может принимать подстановочные знаки и регулярные выражения.


ls | Select-String foo
ls | Select-String -Pattern <regexPattern>


Вы можете использовать Select-String для поиска текста внутри файлов, передав ему аргумент -Path. Вы также можете использовать его с вводом, передаваемым другими командами, например Get-Content.


Select-String -Path ".\foo.txt" -Pattern ba.*


Если вы хотите использовать его в командной строке, вы также можете присвоить ему псевдоним “grep” для быстрого доступа.


remove-alias grep
new-alias grep Select-String
2
Типы памяти и накопителей

- Основополагающий дуэт: RAM и ROM
- DDR4 и DDR5
- Микропрограмма и BIOS
- SRAM и DRAM
- HDD, SSD, USB-накопитель, SD-карта
2
📌 Шпаргалка по скобочкам в Bash
1
Трюки терминала Bash

Полезные комбинации клавиш (хоткеи) и небольшие хитрости, которые сделают Вашу работу в Linux более эффективной.

Горячие клавиши Bash с Ctrl
Ctrl + n — то же самое, что и стрелка вниз.
Ctrl + p — то же самое, что и стрелка вверх.
Ctrl + r — поиск по предыдущим командам из истории команд (history). Продолжайте нажимать Ctrl + r, чтобы искать дальше. Ctrl + Shift + r — поиск в другую сторону.
Ctrl + s — остановить вывод в терминал.
Ctrl + q — восстановить вывод в терминал после Ctrl + s.
Ctrl + a — перейти к началу строки (аналог клавиши Home).
Ctrl + e — перейти к концу строки (аналог клавиши End).
Ctrl + d — если вы ввели что-то, то Ctrl + d удаляет символ под курсором. В противном случае означает конец ввода и завершает текущую сессию Bash.
Ctrl + k — удалить весь текст от курсора до конца строки.
Ctrl + x + backspace — удалить весь текст от начала строки до курсора.
Ctrl + t — переставить символ до курсора на символ под курсором. Нажмите Esc + t для перестановки двух слов до курсора.
Ctrl + w — удалить слово до курсора; затем Ctrl + y, чтобы вставить его.
Ctrl + u — удалить строку перед курсором; Ctrl + y для вставки его.
Ctrl + _ — отменить ввод.
Ctrl + l — очищает окно терминала. То же самое, что и clear.
Ctrl + x + Ctrl + e — запускает редактор, определённый в переменной $EDITOR, для ввода команды. Полезно для многострочных команд.

Изменить заглавные на строчные и наоборот
Esc + u — преобразовать буквы от курсора до конца строки в заглавные буквы.
Esc + l — преобразовать буквы от курсора до конца строки в нижний регистр.
Esc + c — заменить букву под курсором на заглавную.

Запустить предыдущую команду ещё раз
Запустить команду из истории по номеру (например, 53)
!53
!! — запуск последней команды.
sudo !! — запустить предыдущую команду с sudo.

Запускает последнюю команду и меняет какой-то параметр. Например, меняем "aaa" на "bbb":
# Последняя команда: echo 'aaa'
$ ^aaa^bbb

$ echo 'bbb'
bbb


Важно: предыдущая команда заменит только первое вхождение "aaa". Если вы хотите заменить все вхождения, используйте :&:
^aaa^bbb^:&
# или
!!:gs/aaa/bbb/


Запустить последнюю команду, которая начинается с...
Например, до этого в истории команд была команда cat filename:
!cat
# или
!c


— запускает cat filename ещё раз.

Указание файлов по шаблону в Bash
/etc/pa*wd/etc/passwd — символ * означает "несколько любых символов".
/b?n/?at/bin/cat — символ ? означает "один любой символ".
ls -l [a-z]* — вывести список файлов, содержащих только буквы латинского алфавита. В квадратных скобках [] перечисляются символы, которые будут искаться. А символ * после [] означает "хоть сколько раз".
ls {*.sh,*.py} — вывести все .sh и .py файлы. {} используется для группировки нескольких шаблонов по принципу "или".

Полезные переменные окружения Bash
Короткие переменные:
$0 — оболочка командной строки или путь до запускаемого файла.
$1, $2, $3, ... — аргументы запуска скрипта.
$# — число аргументов, переданных в скрипт из терминала.
$? — код завершения последней команды.
$- — текущие опции, установленные для оболочки.
$$ — идентификатор текущего процесса.
$! — идентификатор процесса, завершённого последним.

Более длинные, но тоже полезные переменные:
$DESKTOP_SESSION — текущий менеджер дисплеев.
$EDITOR — редактор текста по умолчанию.
$LANG — используемый системой язык.
$PATH — список директорий, в которых будут искаться исполняемые файлы.
$PWD — текущая директория.
$SHELL — текущая оболочка командной строки.
$USER — имя текущего пользователя.
$HOSTNAME — имя текущего хоста (компьютера).
2
Шпаргалка по работе в командной строке

Команды для работы с файлами

ls — вывод содержимого каталога;
ls -la — вывод содержимого каталога в форматированном виде (в т.ч. скрытые файлы);
cd dir — перейти в каталог dir;
cd — перейти в домашний каталог;
pwd — показать текущий каталог;
mkdir dir — создать каталог dir;
rm file — удалить файл;
rm -r dir — удалить каталог dir;
rm -f file — принудительно удалить файл;
rm -rf dir — принудительно удалить каталог dir;
cp file1 file2 — скопировать file1 в file2;
cp -r dir1 dir2 — скопировать каталог dir1 в каталог dir2 (если каталога dir2 нет, он будет создан);
mv file1 file2 — переместить (или переименовать, если file1 и file2 находятся в одном каталоге) file1 в file2;
ln -s file link — создать симлинк link на файл file;
touch file — создать файл;
cat > file — направить стандартный ввод в file;
more file — вывод содержимого file;
head file — вывод содержимого первых 10 строк file;
tail file — вывод содержимого последних 10 строк file;
tail -f file — вывод содержимого file по мере появления, начиная с последних 10 строк файла.
4
📌 Шпаргалка: Деление сети на подсети
4
Безопасность Linux
5
📌 Как проверить SSL-сертификат с Bash

Иногда нужно быстро проверить, когда истекает SSL-сертификат у сайта.


echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
| openssl x509 -noout -dates | grep 'notAfter'


Вывод будет примерно таким:


notAfter=Jun 15 12:00:00 2025 GMT


А если хочешь узнать, сколько дней осталось до окончания сертификата:


end_date=$(echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
| openssl x509 -noout -enddate | cut -d= -f2)

end_ts=$(date -d "$end_date" +%s)
now_ts=$(date +%s)
echo $(( (end_ts - now_ts) / 86400 )) дней до окончания
4
Трюки терминала Bash

Полезные комбинации клавиш (хоткеи) и небольшие хитрости, которые сделают Вашу работу в Linux более эффективной.

Горячие клавиши" Bash с Ctrl
Ctrl + n — то же самое, что и стрелка вниз.
Ctrl + p — то же самое, что и стрелка вверх.
Ctrl + r — поиск по предыдущим командам из истории команд (history). Продолжайте нажимать Ctrl + r, чтобы искать дальше. Ctrl + Shift + r — поиск в другую сторону.
Ctrl + s — остановить вывод в терминал.
Ctrl + q — восстановить вывод в терминал после Ctrl + s.
Ctrl + a — перейти к началу строки (аналог клавиши Home).
Ctrl + e — перейти к концу строки (аналог клавиши End).
Ctrl + d — если вы ввели что-то, то Ctrl + d удаляет символ под курсором. В противном случае означает конец ввода и завершает текущую сессию Bash.
Ctrl + k — удалить весь текст от курсора до конца строки.
Ctrl + x + backspace — удалить весь текст от начала строки до курсора.
Ctrl + t — переставить символ до курсора на символ под курсором. Нажмите Esc + t для перестановки двух слов до курсора.
Ctrl + w — удалить слово до курсора; затем Ctrl + y, чтобы вставить его.
Ctrl + u — удалить строку перед курсором; Ctrl + y для вставки его.
Ctrl + _ — отменить ввод.
Ctrl + l — очищает окно терминала. То же самое, что и clear.
Ctrl + x + Ctrl + e — запускает редактор, определённый в переменной $EDITOR, для ввода команды. Полезно для многострочных команд.

Изменить заглавные на строчные и наоборот
Esc + u — преобразовать буквы от курсора до конца строки в заглавные буквы.
Esc + l — преобразовать буквы от курсора до конца строки в нижний регистр.
Esc + c — заменить букву под курсором на заглавную.

Запустить предыдущую команду ещё раз
Запустить команду из истории по номеру (например, 53)
!53
!! — запуск последней команды.
sudo !! — запустить предыдущую команду с sudo.

Запускает последнюю команду и меняет какой-то параметр. Например, меняем "aaa" на "bbb":
# Последняя команда: echo 'aaa'
$ ^aaa^bbb

$ echo 'bbb'
bbb


Важно: предыдущая команда заменит только первое вхождение "aaa". Если вы хотите заменить все вхождения, используйте :&:
^aaa^bbb^:&
# или
!!:gs/aaa/bbb/


Запустить последнюю команду, которая начинается с...
Например, до этого в истории команд была команда cat filename:
!cat
# или
!c


— запускает cat filename ещё раз.

Указание файлов по шаблону в Bash
/etc/pa*wd/etc/passwd — символ * означает "несколько любых символов".
/b?n/?at/bin/cat — символ ? означает "один любой символ".
ls -l [a-z]* — вывести список файлов, содержащих только буквы латинского алфавита. В квадратных скобках [] перечисляются символы, которые будут искаться. А символ * после [] означает "хоть сколько раз".
ls {*.sh,*.py} — вывести все .sh и .py файлы. {} используется для группировки нескольких шаблонов по принципу "или".

Полезные переменные окружения Bash
Короткие переменные:
$0 — оболочка командной строки или путь до запускаемого файла.
$1, $2, $3, ... — аргументы запуска скрипта.
$# — число аргументов, переданных в скрипт из терминала.
$? — код завершения последней команды.
$- — текущие опции, установленные для оболочки.
$$ — идентификатор текущего процесса.
$! — идентификатор процесса, завершённого последним.

Более длинные, но тоже полезные переменные:
$DESKTOP_SESSION — текущий менеджер дисплеев.
$EDITOR — редактор текста по умолчанию.
$LANG — используемый системой язык.
$PATH — список директорий, в которых будут искаться исполняемые файлы.
$PWD — текущая директория.
$SHELL — текущая оболочка командной строки.
$USER — имя текущего пользователя.
$HOSTNAME — имя текущего хоста (компьютера).
5🔥2👍1
Команда ip в Linux: Мощный сетевой инструмент

Для системных администраторов Linux и сетевых инженеров команда ip является важным инструментом для настройки и проверки сетевых интерфейсов и таблиц маршрутизации.
3
This media is not supported in your browser
VIEW IN TELEGRAM
Statusnook — это открытое (MIT) self-hosted решение для быстрого развёртывания страницы статуса и мониторинга HTTP-эндпоинтов с оповещениями в Email и Slack.

https://github.com/goksan/statusnook
1👍1
Шпаргалка по маскам подсети CIDR
2
Системные утилиты для безопасного удаления файлов с HDD

Windows
В данном примере мы форматируем том D в файловую систему NTFS, при этом даем операционной системе команду предварительно перезаписать весь раздел нулями 10 раз, используя параметр /p («passes»), задающий количество проходов.
format d: /fs:NTFS /p:10

Linux
Быстро и надежно удаляет один или несколько файлов.
shred -u -n 40 /private/file.txt

В этом примере мы перезаписали файл file.txt случайными данными 40 раз подряд (параметр -n, по умолчанию же shred совершает 25 проходов) и затем удалили его (параметр -u, поскольку по умолчанию shred не удаляет файлы, а сразу перезаписывает).
shred -u -n 40 /private/file.txt /private/file2.txt

Если нам внужно дополнительно скрыть и сам факт «зачистки», то можете воспользоваться параметром -z:
shred -u -z -n 40 /private/file.txt

Единственный недостаток shred — данная утилита не умеет работать с директориями. Поэтому если вам требуется уничтожить содержимое целого каталога с вложенными папками, стоит воспользоваться wipe. В данном примере мы отдали команду рекурсивно (-r) удалить все, что находится в папке private, а также отключили запрос подтверждения удаления папок и файлов (-f), которое wipe выводит по умолчанию. Среди интересных дополнительных опций, поддерживаемых утилитой, стоит выделить принудительное выполнение chmod для каталогов и файлов, защищенных от перезаписи (-c), работу в тихом режиме (-s) и возможность заставить wipe следовать символическим ссылкам (-D, конфликтует с -r).
wipe -rf /private/*

Mac OS
В версиях операционной системы с 10.4 по 10.10 вы могли инициировать перезапись файлов, переместив их в корзину, а затем выбрав в Finder опцию «Очистить корзину необратимо», однако впоследствии Apple от нее отказалась. Вплоть до версии 10.11 для безопасного удаления данных можно было воспользоваться консольной командой srm. В данном примере мы рекурсивно удаляем содержимое папки private (-r), перезаписывая каждый файл случайными данными 7 раз подряд (-m). Также можно выбрать однократную перезапись файлов (-s) или же не указывать этот параметр вовсе — в этом случае утилита выполнит 35 проходов.
srm -rm /private/

В актуальных версиях Mac OS инициировать безопасное удаление файлов с жесткого диска можно с помощью Дисковой утилиты (для этого необходимо нажать на кнопку «Параметры безопасности» и задать количество циклов перезаписи), либо через терминал, используя конструкцию вида. Параметр -P является специфичным для Mac OS и сообщает утилите, что удаляемые файлы необходимо трижды перезаписать.
rm -P /private/file.txt
🔥21
Команды для получения информации о системе в Linux

Если хочешь быстро узнать, что происходит с твоей системой — эти команды помогут:

▪️ uname
Показывает информацию о системе: версию ядра, архитектуру и тип машины.

▪️ uname -r
Только версия работающего ядра Linux.

▪️ uptime
Отображает текущее время, как давно включён компьютер, число пользователей и среднюю нагрузку.

▪️ hostname
Выводит имя хоста (имя машины в сети).

▪️ hostname -i
Показывает IP-адрес текущего хоста.

▪️ last reboot
История перезагрузок системы: когда и как долго работала.

▪️ date
Текущая дата и время.

▪️ timedatectl
Подробности о системных часах и часовом поясе.

▪️ cal
Простой календарь текущего месяца.

▪️ w
Кто сейчас в системе и чем занят.

▪️ whoami
Имя текущего пользователя.

▪️ finger username
Информация о пользователе username (если установлен пакет finger).
🥰21👍1💩1
📌 Горячие клавиши терминала Linux

Общие:
Ctrl+Alt+T - в дистрибутивах, основанных на Ubuntu это сочетание клавиш используется для открытия терминала.
Tab - эта клавиша используется для автодополнения в терминале. Вам достаточно набрать начало какой-нибудь команды, затем нажать её и команда предложит доступные варианты или завершит её если она одна.
Ctrl+L - очистить весь вывод терминала.
Ctrl+S - приостановить вывод терминала.
Ctrl+Q - возобновить вывод если он был приостановлен.
Ctrl+C - отправить команде сигнал SigInt для её завершения.
Ctrl+Z - свернуть текущую команду в фоновый режим.

История команд:
Стрелки вверх и вниз - используются для перемещения вперед и назад по истории команд.
Ctrl+r - можно использовать для поиска по истории команд.
Ctrl+p - предыдущая команда в истории команд.
Ctrl+n - следующая команда в истории команд.
Ctrl+g - если вы находитесь в режиме поиска, завершает поиск.
Ctrl+o - выполнить найденную поиском команду.
Alt+. - использовать последнее слово предыдущей команды.

Перемещение курсора:
Ctrl+a - перейти в начало строки.
Ctrl+e - перейти в конец строки.
Alt+b - перейти влево на одно слово.
Alt+f - перейти в право на одно слово.
Ctrl+b - перейти влево на один символ.
Ctrl+f - перейти вправо на один символ.
Ctrl+xx - перейти в конец или в начало строки.

Редактирование:
Ctrl+u - вырезать строку до позиции курсора.
Alt+Del - удалить слово перед курсором.
Alt+d - удалить слово после курсора.
Ctrl+d - удалить символ под курсором.
Ctrl+h - удалить символ под курсором.
Ctrl+w - вырезать слово под курсором.
Ctrl+k - вырезать строку от позиции курсора до конца строки
Alt+t - поменять текущее слово с предыдущим.
Ctrl+t - поменять местами два символа перед курсором.
Esc+t - поменять местами два слова перед курсором.
Ctrl+y - вставить то, что было вырезано.
Alt+u - сделать верхний регистр символов от позиции курсора до конца текущего слова.
Alt+l - сделать нижний регистр символов от позиции курсора до конца слова.
Alt+c - перевести символ под курсором в верхний регистр и перейти к концу слова.
Alt+r - вернуть строку в исходное состояние.
Ctrl+_ - отменить последнее действие со строкой.
🔥21