Лучшие практики сегментации корпоративной сети любой компании
Данный проект создан для публикации лучших практик сегментации корпоративной сети любой компании. В целом схемы, приведенные в данном проекте, подходят для любой компании.
https://github.com/sergiomarotco/Network-segmentation-cheat-sheet
Данный проект создан для публикации лучших практик сегментации корпоративной сети любой компании. В целом схемы, приведенные в данном проекте, подходят для любой компании.
https://github.com/sergiomarotco/Network-segmentation-cheat-sheet
❤1
Batch-скрипт. Устаналивает портабельную программу с сетевого диска на локальный диск пользователя и выводит ярлык на рабочий стол.
Отредактированный под себя скрипт нужно прикрепить с помощью GPO в домене, как сценарий запуска при старте системы. Логи по установке пишутся на сетевой диск в отдельную папку.
Отредактированный под себя скрипт нужно прикрепить с помощью 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
)
👍3
Права в Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)
Всем привет. Это перевод статьи из книги RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 and EX300.
От себя: Надеюсь статья будет полезна не только начинающим, но и поможет более опытным администраторам упорядочить свои знания.
https://habr.com/ru/post/469667/
Всем привет. Это перевод статьи из книги RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 and EX300.
От себя: Надеюсь статья будет полезна не только начинающим, но и поможет более опытным администраторам упорядочить свои знания.
https://habr.com/ru/post/469667/
❤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)]\")"]]
Совет по Linux 💡🐧
Если вы хотите определить, сколько времени займет выполнение определенной команды или скрипта, используйте команду time.
Вот синтаксис:
Пример:
Он также показывает использование системных ресурсов процесса, что делает его полезным инструментом для оценки эффективности конкретной команды.
Если вы хотите определить, сколько времени займет выполнение определенной команды или скрипта, используйте команду time.
Вот синтаксис:
$ time <команда>.
Пример:
$ time find / -perm -u=s -type f &>/dev/null
Он также показывает использование системных ресурсов процесса, что делает его полезным инструментом для оценки эффективности конкретной команды.
👍1
Logstash. Преимущества фильтра Dissect над Grok
Мы в Домклик много лет используем ELK-stack (сейчас уже OpenSearch) для хранения и работы с логами, которых у нас очень много: около 400 гигабайтов в день. Весь этот объём проходит через Logstash, где логи частично парсятся, обогащаются метаданными и т. д.
Недавно мы решили стандартизировать логи инфраструктурных сервисов, которые подняты в нескольких экземплярах. Начали с HAproxy. У нас несколько групп экземпляров под разные цели, с разным количеством логов. Раньше каждая группа HAproxy писала логи в каком-то собственном формате, и мы парсили эти логи с помощью всего одного паттерна для Grok-фильтра. Сообщение либо подходило под паттерн и разбивалось на поля, либо отправлялось в виде одной текстовой строки.
Расскажу о проблемах, с которыми мы столкнулись при добавлении новых Grok-паттернов, и о том, как мы их решили, отказавшись от Grok.
https://habr.com/ru/companies/domclick/articles/840338/
Мы в Домклик много лет используем ELK-stack (сейчас уже OpenSearch) для хранения и работы с логами, которых у нас очень много: около 400 гигабайтов в день. Весь этот объём проходит через Logstash, где логи частично парсятся, обогащаются метаданными и т. д.
Недавно мы решили стандартизировать логи инфраструктурных сервисов, которые подняты в нескольких экземплярах. Начали с HAproxy. У нас несколько групп экземпляров под разные цели, с разным количеством логов. Раньше каждая группа HAproxy писала логи в каком-то собственном формате, и мы парсили эти логи с помощью всего одного паттерна для Grok-фильтра. Сообщение либо подходило под паттерн и разбивалось на поля, либо отправлялось в виде одной текстовой строки.
Расскажу о проблемах, с которыми мы столкнулись при добавлении новых Grok-паттернов, и о том, как мы их решили, отказавшись от Grok.
https://habr.com/ru/companies/domclick/articles/840338/
❤1
Полезные команды Linux. Пользователи и группы
#
Создать пользователя vasya, домашним каталогом будет создана директория /home/vasya, в качестве системной оболочки будет назначен /bin/bash, пользователь будет включен в группу admin, кроме того для учетной записи будет создан комментарий "User Vasya"
#
Создать пользователя vasya
#
Изменение пользователя
#
Удалить пользователя с именем vasya и его домашнюю директорию
#
Создать группу с именем group_name
#
Установить дату окончания действия учётной записи пользователя vasya
#
Удалить группу group_name
#
Переименовать группу test в new_test
#
Изменяет основную группу текущего пользователя. При указании "-", ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, основная группа будет назначена из файла /etc/passwd
#
Проверка корректности системных файлов учётных записей. Проверяется файл/etc/group
#
Проверка корректности системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow
#
Изменить пароль текущего пользователя
#
Изменить пароль пользователя vasya ( может выполнять только root )
#
useradd -c "User Vasya" -g admin -d /home/vasya -s /bin/bash vasya
Создать пользователя vasya, домашним каталогом будет создана директория /home/vasya, в качестве системной оболочки будет назначен /bin/bash, пользователь будет включен в группу admin, кроме того для учетной записи будет создан комментарий "User Vasya"
#
useradd vasya
Создать пользователя vasya
#
usermod -c "User FTP" -g system -d /ftp/ftpuser -s /bin/nologin ftpuser
Изменение пользователя
#
userdel -r vasya
Удалить пользователя с именем vasya и его домашнюю директорию
#
groupadd [ group_name ]
Создать группу с именем group_name
#
chage -E 2005-12-31 vasya
Установить дату окончания действия учётной записи пользователя vasya
#
groupdel [ group_name ]
Удалить группу group_name
#
groupmod -n test new_test
Переименовать группу test в new_test
#
newgrp - [group]
Изменяет основную группу текущего пользователя. При указании "-", ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, основная группа будет назначена из файла /etc/passwd
#
grpck
Проверка корректности системных файлов учётных записей. Проверяется файл/etc/group
#
pwck
Проверка корректности системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow
#
passwd
Изменить пароль текущего пользователя
#
passwd vasya
Изменить пароль пользователя vasya ( может выполнять только root )
👍2
Atop — это мощная консольная утилита для мониторинга системы в реальном времени, которая предоставляет подробную информацию о загрузке процессора, использовании памяти, дисковых операциях, сетевой активности и других аспектах работы системы. Она похожа на команду
Основные возможности
1. Мониторинг в реальном времени:
- Отображение загрузки процессора (по ядрам и процессам).
- Использование оперативной памяти и свопа.
- Активность дисков (чтение/запись, загрузка).
- Сетевая активность (входящий/исходящий трафик).
2. Исторические данные:
-
- Позволяет просматривать статистику за прошлые периоды.
3. Гибкость отображения:
- Возможность сортировки процессов по различным параметрам (CPU, память, диск и т.д.).
- Поддержка цветового выделения для удобства восприятия.
4. Подробная информация о процессах:
- Показывает не только текущее состояние процессов, но и их историю (например, какие процессы завершились).
Установка
В большинстве дистрибутивов Linux
- Debian/Ubuntu:
- CentOS/RHEL:
- Fedora:
- Arch Linux:
Использование
После установки запустите
Основные клавиши управления:
- c — показать командную строку процесса.
- m — сортировка по использованию памяти.
- d — сортировка по активности диска.
- n — сортировка по сетевой активности.
- t — переключение между текущим и прошлым состоянием процессов.
- q — выход из
Примеры использования:
1. Просмотр текущей нагрузки:
2. Запись данных в файл:
3. Просмотр записанных данных:
4. Мониторинг с интервалом обновления 5 секунд:
Конфигурация
Настройки
Преимущества
- Подходит для диагностики проблем с производительностью.
- Позволяет анализировать исторические данные.
- Поддерживает мониторинг как всей системы, так и отдельных процессов.
top
, но предлагает более детализированную и структурированную информацию, а также сохраняет историю данных для последующего анализа.Основные возможности
atop
:1. Мониторинг в реальном времени:
- Отображение загрузки процессора (по ядрам и процессам).
- Использование оперативной памяти и свопа.
- Активность дисков (чтение/запись, загрузка).
- Сетевая активность (входящий/исходящий трафик).
2. Исторические данные:
-
atop
может записывать данные в файлы для последующего анализа.- Позволяет просматривать статистику за прошлые периоды.
3. Гибкость отображения:
- Возможность сортировки процессов по различным параметрам (CPU, память, диск и т.д.).
- Поддержка цветового выделения для удобства восприятия.
4. Подробная информация о процессах:
- Показывает не только текущее состояние процессов, но и их историю (например, какие процессы завершились).
Установка
atop
В большинстве дистрибутивов Linux
atop
можно установить через пакетный менеджер:- Debian/Ubuntu:
sudo apt install atop
- CentOS/RHEL:
sudo yum install atop
- Fedora:
sudo dnf install atop
- Arch Linux:
sudo pacman -S atop
Использование
atop
После установки запустите
atop
в терминале:
sudo atop
Основные клавиши управления:
- c — показать командную строку процесса.
- m — сортировка по использованию памяти.
- d — сортировка по активности диска.
- n — сортировка по сетевой активности.
- t — переключение между текущим и прошлым состоянием процессов.
- q — выход из
atop
.Примеры использования:
1. Просмотр текущей нагрузки:
atop
2. Запись данных в файл:
atop -w /path/to/file.log
3. Просмотр записанных данных:
atop -r /path/to/file.log
4. Мониторинг с интервалом обновления 5 секунд:
atop 5
Конфигурация
atop
Настройки
atop
хранятся в файле /etc/atop/atop.conf
. Здесь можно настроить параметры записи логов, интервалы обновления и другие опции.Преимущества
atop
:- Подходит для диагностики проблем с производительностью.
- Позволяет анализировать исторические данные.
- Поддерживает мониторинг как всей системы, так и отдельных процессов.
❤2
Восстановление удаленных объектов в Active Directory
При удалении любого объекта в Active Directory (пользователя, группы, компьютера или OU), вы можете восстановить его. В этой статье мы рассмотрим, как восстановить удаленный объект в AD с помощью PowerShell и графических инструментов.
Сначала разберемся, что происходит при удалении объекта из каталога AD. Поведение AD при удалении объектов зависит от того включена ли Active Directory Recycle Bin или нет (по умолчанию отключена). В обоих случаях объект не удаляется физически, а помечается как удаленный (атрибут isDeleted = true) и перемещается в специальный контейнер Deleted Objects (не отображается в обычных mmc оснастках управления AD). Однако при включенной корзине AD все атрибуты и членство в группах сохраняется.
https://telegra.ph/Vosstanovlenie-udalennyh-obektov-v-Active-Directory-09-26
При удалении любого объекта в Active Directory (пользователя, группы, компьютера или OU), вы можете восстановить его. В этой статье мы рассмотрим, как восстановить удаленный объект в AD с помощью PowerShell и графических инструментов.
Сначала разберемся, что происходит при удалении объекта из каталога AD. Поведение AD при удалении объектов зависит от того включена ли Active Directory Recycle Bin или нет (по умолчанию отключена). В обоих случаях объект не удаляется физически, а помечается как удаленный (атрибут isDeleted = true) и перемещается в специальный контейнер Deleted Objects (не отображается в обычных mmc оснастках управления AD). Однако при включенной корзине AD все атрибуты и членство в группах сохраняется.
https://telegra.ph/Vosstanovlenie-udalennyh-obektov-v-Active-Directory-09-26
Как подключиться к контейнеру Docker по ssh
После того, как у вас появился контейнер Docker, работающий в системе Linux, одна из вещей, которые вам, вероятно, потребуется сделать, – это запустить команды внутри контейнера.
https://telegra.ph/Kak-podklyuchitsya-k-kontejneru-Docker-po-ssh-09-26
После того, как у вас появился контейнер Docker, работающий в системе Linux, одна из вещей, которые вам, вероятно, потребуется сделать, – это запустить команды внутри контейнера.
https://telegra.ph/Kak-podklyuchitsya-k-kontejneru-Docker-po-ssh-09-26
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
RBAC Wizard
RBAC Wizard - это инструмент, который помогает визуализировать и анализировать конфигурации RBAC в кластере Kubernetes. Он обеспечивает графическое представление объектов RBAC Kubernetes.
https://github.com/pehlicd/rbac-wizard
RBAC Wizard - это инструмент, который помогает визуализировать и анализировать конфигурации RBAC в кластере Kubernetes. Он обеспечивает графическое представление объектов RBAC Kubernetes.
https://github.com/pehlicd/rbac-wizard
Команды мониторинга и отладки
top
отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных)ps -eafw
отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)ps -e -o pid,args --forest
вывести PID’ы и процессы в виде дереваpstree
отобразить дерево процессовkill -9 98989
kill -KILL 98989
«убить» процесс с PID 98989 «на смерть» (без соблюдения целостности данных)kill -TERM 98989
Корректно завершить процесс с PID 98989kill -1 98989
kill -HUP 98989
заставить процесс с PID 98989 перепрочитать файл конфигурацииlsof -p 98989
отобразить список файлов, открытых процессом с PID 98989lsof /home/user1
отобразить список открытых файлов из директории /home/user1strace -c ls > /dev/null
вывести список системных вызовов, созданных и полученных процессом lsstrace -f -e open ls > /dev/null
вывести вызовы бибилотекwatch -n1 ‘cat /proc/interrupts’
отображать прерывания в режиме реального времениlast reboot
отобразить историю перезагрузок системыlast user1
отобразить историю регистрации пользователя user1 в системе и время его нахождения в нейlsmod
вывести загруженные модули ядраfree -m
показать состояние оперативной памяти в мегабайтахsmartctl -A /dev/hda
контроль состояния жёсткого диска /dev/hda через SMARTsmartctl -i /dev/hda
проверить доступность SMART на жёстком диске /dev/hdatail /var/log/dmesg
вывести десять последних записей из журнала загрузки ядраtail /var/log/messages
вывести десять последних записей из системного журнала❤3
Шпаргалка по RAID
Информация о RAID
Сборка RAID
при получении ответа mdadm: Unrecognised md component device -
* где /dev/md0 — устройство RAID, которое появится после сборки; -l 1 — уровень RAID; -n 2 — количество дисков, из которых собирается массив; /dev/sd{b,c} — сборка выполняется из дисков sdb и sdc.
Создание файловой системы и монтирование массива
nano /etc/fstab, прописать
Восстановление RAID
Замена жесткого диска
При выходе из строя, команда mdadm -D /dev/md0 выдаст: State : clean, degraded
Статус должен стать Rebuild Status : 40% complete и так до полного восстановления
Пересборка массива
Если нам нужно вернуть ранее разобранный или развалившийся массив из дисков, которые уже входили в состав RAID, вводим:
Запасной диск (Hot Spare)
Если в массиве будет запасной диск для горячей замены, при выходе из строя одного из основных дисков, его место займет запасной.
Добавить диск к массиву, расширить массив
Добавление активного диска к RAID, который будет использоваться для работы, а не в качестве запасного.
* в данном примере подразумевается, что у нас RAID 1 и мы добавили к нему 3-й диск.
Установка mdadm
Если каким-то образом в дистрибутиве нет этого пакета
Удаление массива
Если нам нужно полностью разобрать RAID, сначала размонтируем и остановим его:
* где
Затем очищаем суперблоки на всех дисках, из которых он был собран:
mdadm
— утилита для работы с программными RAID-массивами различных уровней. В данной инструкции рассмотрим примеры ее использования.Информация о RAID
cat /proc/mdstat
- состояние всех RAIDmdadm -D /dev/md0
- подробная инфа о конкретном RAIDlsblk
- список дисков с разделами, местом, типом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 на md0mount /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
👍4❤1
Руководство по стеку протоколов TCP/IP для начинающих
Cтек протоколов TCP/IP широко распространен. Он используется в качестве основы для глобальной сети интернет. Разбираемся в основных понятиях и принципах работы стека.
Стек протоколов TCP/IP (Transmission Control Protocol/Internet Protocol, протокол управления передачей/протокол интернета) — сетевая модель, описывающая процесс передачи цифровых данных. Она названа по двум главным протоколам, по этой модели построена глобальная сеть — интернет. Сейчас это кажется невероятным, но в 1970-х информация не могла быть передана из одной сети в другую, с целью обеспечить такую возможность был разработан стек интернет-протоколов также известный как TCP/IP.
Разработкой этих протоколов занималось Министерство обороны США, поэтому иногда модель TCP/IP называют DoD (Department of Defence) модель. Если вы знакомы с моделью OSI, то вам будет проще понять построение модели TCP/IP, потому что обе модели имеют деление на уровни, внутри которых действуют определенные протоколы и выполняются собственные функции. Мы разделили статью на смысловые части, чтобы было проще понять, как устроена модель TCP/IP:
https://telegra.ph/Rukovodstvo-po-steku-protokolov-TCPIP-dlya-nachinayushchih-02-11
Cтек протоколов TCP/IP широко распространен. Он используется в качестве основы для глобальной сети интернет. Разбираемся в основных понятиях и принципах работы стека.
Стек протоколов TCP/IP (Transmission Control Protocol/Internet Protocol, протокол управления передачей/протокол интернета) — сетевая модель, описывающая процесс передачи цифровых данных. Она названа по двум главным протоколам, по этой модели построена глобальная сеть — интернет. Сейчас это кажется невероятным, но в 1970-х информация не могла быть передана из одной сети в другую, с целью обеспечить такую возможность был разработан стек интернет-протоколов также известный как TCP/IP.
Разработкой этих протоколов занималось Министерство обороны США, поэтому иногда модель TCP/IP называют DoD (Department of Defence) модель. Если вы знакомы с моделью OSI, то вам будет проще понять построение модели TCP/IP, потому что обе модели имеют деление на уровни, внутри которых действуют определенные протоколы и выполняются собственные функции. Мы разделили статью на смысловые части, чтобы было проще понять, как устроена модель TCP/IP:
https://telegra.ph/Rukovodstvo-po-steku-protokolov-TCPIP-dlya-nachinayushchih-02-11
❤4