Типичный Сисадмин
1.25K subscribers
363 photos
43 videos
201 links
⚙️Информация для системного администратора

По всем вопросам : @Sofiia_artamonova
Download Telegram
Совет для Linux💡

Получайте уведомления, когда ваши команды в терминале завершатся!


$ sudo apt update; notify-send "Обновление завершено" "Обновления получены"


Замените apt update на любую команду, выполнение которой займет время. Не забудьте сначала установить inotify-tools:


$ sudo apt install inotify-tools
👍4
Шпаргалка по работе с Tmux
3👍2
Выводим список установленных пакетов в Linux по дате

Порой необходимо узнать когда тот или иной пакет был установлен в операционной системе (например, в целях аудита). В данной статье рассмотрим как вывести список установленных пакетов в Linux, отсортированный по дате установки - давайте разберемся!

https://telegra.ph/Vyvodim-spisok-ustanovlennyh-paketov-v-Linux-po-date-09-10
👍1
Список полезных команд для работы с `telnet`, которые могут помочь при подключении и отладке сетевых служб

### Основные команды telnet:
1. Подключение к удаленному хосту:

telnet <hostname> <port>

Пример:

telnet example.com 80

Подключается к хосту example.com на порту 80 (HTTP).

2. Закрытие соединения:
Чтобы завершить сессию, используйте сочетание клавиш:

Ctrl + ] (переход в режим команд)

Затем введите:

quit


3. Отправка текстового запроса после подключения:
Если подключились к порту, например, HTTP-сервера, можно отправить запрос вручную:

GET / HTTP/1.1
Host: example.com

Это выполняет запрос к домашней странице на порту 80.

### Встроенные команды telnet (используйте в режиме команд после нажатия `Ctrl + ]`):

1. help
Показывает список доступных команд telnet:

telnet> help


2. open
Открывает новое соединение с указанным хостом:

telnet> open <hostname> <port>


3. close
Закрывает текущее соединение:

telnet> close


4. display
Показывает текущие параметры подключения:

telnet> display


5. mode
Переключает режим работы telnet (например, line или `character`):

telnet> mode line


6. send
Отправляет управляющие символы (например, send escape для отправки escape-секвенции):

telnet> send escape


7. status
Показывает статус текущего соединения:

telnet> status


8. set и unset
Настраивают параметры подключения (например, установка режима эхо):

telnet> set echo
telnet> unset echo


### Примеры использования telnet:

1. Проверка доступности порта:
Чтобы проверить, открыт ли порт на удаленном сервере:

telnet <hostname> <port>


2. Проверка почтового сервера (SMTP):
Подключение к серверу SMTP:

telnet smtp.example.com 25

Затем можно вручную ввести SMTP-команды, такие как:

EHLO example.com


3. Проверка DNS сервера:
Можно подключиться к DNS-серверу и проверить его ответы:

telnet <dns-server> 53


Эти команды помогут вам работать с telnet для отладки, диагностики и проверки сетевых служб.
Быстрый совет по Linux 💡

В Linux вы можете сделать файл или каталог недоступным для удаления, используя команду chattr для установки флага неизменности:


$ sudo chattr +i filename.txt
🔥3👍1
Как изменить дату установки пароля пользователя в Active Directory

У учетной записи пользователя в ActiveDirectory есть два атрибута, в которых хранится последнее время смены пароля учетной записи. Это атрибуты pwdLastSet и PasswordLastSet.

Различаются они форматом записи. PasswordLastSet хранит данные в нормальном читабельном виде, а вот в pwdLastSet дата хранится в виде большого целого числа, которое представляет собой количество 100-наносекундных интервалов, прошедших с 12:00 полуночи, 1 января 1601 года нашей эры в формате UTC (Coordinated Universal Time).

https://telegra.ph/Kak-izmenit-datu-ustanovki-parolya-polzovatelya-v-Active-Directory-08-08
👍2
3 довольно неизвестных команды Docker, которые помогут вам в самых различных ситуациях

Если вы какое-то время используете Docker, у вас, вероятно, уже есть адаптированный для вас простой и эффективный рабочий процесс, который включает в себя некоторые из ваших любимых команд Docker (если это технически правильные подкоманды).

https://telegra.ph/3-dovolno-neizvestnyh-komandy-Docker-kotorye-pomogut-vam-v-samyh-razlichnyh-situaciyah-09-26
👍2
Краткий курс по созданию сценариев Bash
👍3
Shell Scripting

Bash (Born Again) - это оболочка Unix и язык командной строки, написанный Брайаном Фоксом. Оболочка Born Again используется большинством операционных систем Unix/Linux в качестве оболочки по умолчанию.

Этот туториал по Shell Script написан для тех, кто хочет изучить основы программирования сценариев оболочки (Shell scripting). В этой серии уроков вы узнаете о скриптах bash, которые будут очень полезны для автоматизации повседневных задач. Он помогает автоматизировать такие задачи, как резервное копирование, очистка диска и т.д.

https://tecadmin.net/tutorial/bash-scripting/
🔥21
Как работает DHCP
1
Настройка фаервола в Ubuntu с помощью утилиты UFW

UFW (Uncomplicated Firewall) — удобный интерфейс для управления политиками безопасности межсетевого экрана. Наши серверы постоянно подвергаются различным атакам или сканируются в поиске уязвимостей. Как только эти уязвимости находятся, мы рискуем стать частью ботнета, раскрыть конфиденциальные данные или потерять деньги из-за сбоев в работе веб-приложений. Одной из первых мер по снижению рисков безопасности является грамотная настройка правил межсетевого экрана. В нашем руководстве мы рассмотрим основные команды и правила работы с утилитой UFW.
2
Работа с пользователями в командной строке Windows (net user)

Вот справка по замечательной программе net, точнее по её работе с пользователями: net user. Иногда, например нужно активировать учётную запись гостя или администратора в Windows 10 на клиентском ПК. Тогда короткая и удобная для запоминания Windows net user Гость /active:yes может быть удобнее других способов.

https://telegra.ph/Rabota-s-polzovatelyami-v-komandnoj-stroke-Windows-net-user-09-26
👍1
Шпаргалка по повышению привилегий в Linux

Эта шпаргалка предназначена для тех, кто готовится к OSCP, чтобы помочь им понять различные методы эскалации привилегий на машинах под управлением Linux и CTF с примерами.

https://github.com/Ignitetechnologies/Linux-Privilege-Escalation
👍2
20 лучших скриптов Powershell для Active Directory

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

https://itmozg.ru/20-luchshih-skriptov-powershell-dlja-active-directory/
👍3
Как найти количество открытых файлов в Linux

Значение сохраняется в
# cat /proc/sys/fs/file-max

Проверка Hard лимит в Linux
# ulimit -Hn

Проверка Soft лимит в Linux
# ulimit -Sn

Чтобы просмотреть значения Hard и Soft для разных пользователей, переключите пользователя с «su» на пользователя, ограничения которого вы хотите проверить.
Например:
# su root
$ ulimit -Sn
$ ulimit -Hn


Как проверить количество системных дескрипторов файлов в Linux
На серверах, некоторые из ваших приложений могут потребовать более высокий лимит для открытых дескрипторов файлов. Хорошим примером этого являются службы MySQL / MariaDB или веб-сервер Apache.

Вы можете увеличить лимит открытых файлов в Linux, отредактировав опцию ядра fs.file-max. Для этого используйте утилиту sysctl.

Sysctl используется для настройки параметров ядра.

Например, чтобы увеличить ограничение на количество открых файла до 500000, вы можете использовать следующую команду:
# sysctl -w fs.file-max=500000

Вы можете проверить текущее значение для количества открытых файлов с помощью следующей команды:
$ cat /proc/sys/fs/file-max

С помощью указанной команды изменения, которые вы внесли, будут оставаться активными только до следующей перезагрузки. Если вы хотите применить их на постоянной основе, вам придется отредактировать следующий файл:
# vi /etc/sysctl.conf

Добавьте следующую команду:
fs.file-max=500000

Конечно, вы можете изменить число в соответствии с вашими потребностями. Чтобы снова проверить изменения, используйте:
# cat /proc/sys/fs/file-max

Чтобы изменения вступили в силу, пользователям необходимо будет выйти из системы и снова войти в систему. Если вы хотите немедленно применить ограничения, вы можете использовать следующую команду:
# sysctl -p

Установка количества открытых файлов для пользователя в Linux
Вышеприведенные примеры показали, как установить ограничения, но вы можете установить лимит для каждого пользователя. Для этой цели, с правами пользователя root, вам необходимо отредактировать следующий файл:
# vi /etc/security/limits.conf

Если вы администратор Linux, предлагаем Вам ознакомиться с этим файлом. Прочитайте все комментарии в нем, поскольку он обеспечивает гибкость в плане управления системными ресурсами путем установки лимита пользователям на разных уровнях.

Команды, которые вы должны добавить, имеют следующие параметры:
<domain>        <type>  <item>  <value>

Вот пример установки Soft и Hard лимитов для пользователя dimon:
## Example hard limit for max opened files
dimon hard nofile 4096
## Example soft limit for max opened files
dimon soft nofile 1024
🔥3
Когда TCP-сокеты отказываются умирать

В поисках причин, почему установленные соединения не разрываются в некоторых случаях, я набрёл на отличную статью в блоге Cloudflare. Которая, в итоге помогла найти не только решение моей проблемы, но и помогла лучше понять как работают таймауты TCP соединений в Linux

Rus https://habr.com/ru/post/700470/

Eng https://blog.cloudflare.com/when-tcp-sockets-refuse-to-die/
👍3
Наиболее распространенные оболочки

Текстовые оболочки
Bash (оболочка типичная для систем GNU / Linux )
Bourne оболочки (оболочка из первых систем Unix )
C оболочки (оболочки популярные на Unix )
Z оболочки (известный как Zsh)
Korn оболочки (системы оболочки , обычно доступные на Unix )
Debian Альмквист оболочки (оболочки , используемый в Debian и производных для запуска системных скриптов)
cmd.exe (оболочка операционных систем семейства Windows NT)
command. com (оболочка операционной системы MS-DOS и некоторых системах Microsoft Windows )
Windows PowerShell (Advanced Shell для систем Microsoft Windows)

Графические оболочки
GNOME ( что характерно для GNU / Linux и Solaris 10 )
KDE ( что характерно для GNU/ Linux )
Xfce ( что характерно для систем GNU / Linux )
Common Desktop Environment ( как правило, доступны для систем Unix )
Finder (оболочка систем Mac OS )
File Explorer (оболочка системы Microsoft Windows )
Unity (Official оболочка Ubuntu)
Как отлаживать bash-script-ы по шагам

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