BashMaster
8.23K subscribers
680 photos
14 videos
1 file
703 links
Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов.

Реклама: @Kone4noVasya

Канал на бирже: https://telega.in/c/bash_help
Download Telegram
⚙️ Bash: сочетания клавиш для повышения производительности

✔️Работа в среде командной строки, например, в сеансе Bash, может быть гораздо более продуктивной, чем использование графического пользовательского интерфейса. Вот набор сочетаний клавиш.

➡️ Содержание:
▶️Перемещение по командной строке
▶️Использование истории командной строки
▶️Использование аргументов из истории командной строки
▶️Управление историей командной строки
▶️Навигация по каталогам

🖼️ Перейти на сайт

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ NetAlertX

✔️Инструмент для мониторинга сетевой активности и обнаружения изменений в подключенных устройствах.

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

➡️ Утилита может быть полезной для повышения безопасности сети и оптимизации управления подключениями.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
SSH/SFTP/RDP/VNC-клиент МС22 — решение для удалённого управления и конфигурирования сетевого оборудования, сделанное с заботой об админах.
Отечественная замена популярных зарубежных программ (PuTTY, Xshell, KiTTY, SecureCRT, SmarTTY, MobaXterm и др.) и встроенных терминалов ОС.
Есть возможность работы в нескольких вкладках, подсветка синтаксиса, быстрые клавиши и готовые шаблоны, различные инструменты автоматизации и приятные мелочи (типа соблюдение стандарта FHS установочным пакетом).

Посмотреть и бесплатно потестировать можно тут - https://МС22.рф
В процессе обеспечим оперативную поддержку и гарантированно прислушаемся к обратной связи!

#реклама
О рекламодателе
⚙️ Бот для Telegram, предупреждающий о входе по SSH на сервер

✔️Когда парк серверов разрастается, а команда администраторов насчитывает больше одного человека, появляется необходимость отслеживать успешные попытки входа на сервер по протоколу SSH. Оповещение в Telegram, пожалуй, будет лучшим способом сообщить об удачной попытке входа на сервер. Напишем простой скрипт для bash, который будет отсылать сообщения в Телеграм.

➡️ Предварительные замечания
▶️Будем считать, что новый бот в Telegram уже создан, а его токен нам известен
▶️Считаем, что уже есть группа с оригинальным названием, в которую добавлен новый бот
Данная методика проверена на операционных системах Debian 11, Ubuntu 22.04. Также работает на Rocky 8.7 (а значит, и на AlmaLinux и RHEL).

➡️ Установка
▶️В случае, если установлена утилита git, установка проходит в одну команду
cd /opt/ && git clone https://github.com/MyTheValentinus/ssh-login-alert-telegram

▶️Если же у нас нет git, и его нельзя установить (да, бывает и такое), самостоятельно создаём три файла.
cd /opt

mkdir ssh-login-alert-telegram && cd ssh-login-alert-telegram/

touch alert.sh credentials.config deploy.sh

▶️Вставляем в alert.sh:

#!/usr/bin/env bash

. /opt/ssh-login-alert-telegram/credentials.config
for i in "${USERID[@]}"
do
URL="https://api.telegram.org/bot${KEY}/sendMessage"
DATE="$(date "+%d %b %Y %H:%M")"

if [ -n "$SSH_CLIENT" ]; then
CLIENT_IP=$(echo $SSH_CLIENT | awk '{print $1}')

SRV_HOSTNAME=$(hostname -f)
SRV_IP=$(hostname -I | awk '{print $1}')

IPINFO="https://ipinfo.io/${CLIENT_IP}"

TEXT="Connection from *${CLIENT_IP}* as ${USER} on *${SRV_HOSTNAME}* (*${SRV_IP}*)
Date: ${DATE}
More informations: [${IPINFO}](${IPINFO})"

curl -s -d "chat_id=$i&text=${TEXT}&disable_web_page_preview=true&parse_mode=markdown" $URL > /dev/null
fi
done


▶️Вставляем в deploy.sh:
#!/usr/bin/env bash

add_profiled(){
cat <<EOF > /etc/profile.d/telegram-alert.sh

bash $ALERTSCRIPT_PATH
EOF
}

add_zsh () {
cat <<EOF >> /etc/zsh/zshrc

bash $ALERTSCRIPT_PATH
EOF
}

ALERTSCRIPT_PATH="/opt/ssh-login-alert-telegram/alert.sh"

echo "Deploying alerts..."
add_profiled

echo "Check if ZSH is installed.."

HAS_ZSH=$(grep -o -m 1 "zsh" /etc/shells)
if [ ! -z $HAS_ZSH ]; then
echo "ZSH is installed, deploy alerts to zshrc"
add_zsh
else
echo "No zsh detected"
fi

echo "Success!"

▶️Вставляем в credentials.config:
USERID=(-97160441299)
KEY="573414141899:AAFxoC51krUaLEInlPGJwEEQICUp8QvVs99"

▶️Здесь USERID - это ID пользователя в Телеграм или ID канала; KEY - это токен нашего нового бота.

➡️ Внедрение
▶️Делаем файлы скриптов выполнимыми:
chmod 700 deploy.sh && chmod 700 alert.sh

▶️Одной командой единовременно проводим внедрение
bash deploy.sh

➡️ Использование
▶️Для проверки попробуем вручную запустить скрипт: ./alert.sh
В Telegram должно появиться сообщение о входе.
Выходит, всё сделано правильно, теперь мы будем всегда предупреждены, если кто-то зашёл на сервер.

🖼️ Ссылка на источник

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Тестирование канала с помощью Iperf

✔️Iperf - это инструмент для измерения и настройки производительности сети. Это кроссплатформенный инструмент, который может производить стандартизированные измерения производительности для любой сети. Iperf обладает клиентскими и серверными функциями и может создавать потоки данных для измерения пропускной способности между двумя концами в одном или обоих направлениях. Он был разработан командой поддержки распределенных приложений (DAST) Национальной лаборатории прикладных сетевых исследований (NLANR). Актуальная версия на сегодня - третья.

➡️ Описание Iperf
▶️Iperf мультиплатформенная программа, работающая в режиме клиент-сервер. Вы можете запустить сервер на Linux, а тестировать скорость, подключаясь к нему с Windows или Android. И наоборот. Достаточно при запуске выбрать режим, в котором он будет работать: сервер или клиент.

▶️Iperf - это программное обеспечение с открытым исходным кодом, написанное на C, и оно работает на различных платформах, включая Linux, Unix, Windows (либо изначально, либо внутри Cygwin), OpenBSD, NetBSD, Android, Solaris и другие дистрибутивы Linux.
Доступность исходного кода позволяет пользователю тщательно изучить методологию измерения.

▶️Iperf3 - это написанная с нуля программа, целью которой является создание меньшей и более простой базы кода и библиотечной версии функциональности, которую можно использовать в других программах. Он также включает в себя ряд функций, найденных в других инструментах, таких как nuttcp и netperf, но отсутствовавших в исходном iperf. К ним относятся, например, режим нулевого копирования и необязательный вывод в формате JSON. Обратите внимание, что iperf3 не имеет обратной совместимости с оригинальным iperf.
▶️Iperf - это широко используемый инструмент тестирования сети, который может создавать потоки данных TCP и UDP и измерять пропускную способность сети, доступной между клиентом и сервером. Он поддерживает настройку различных параметров, связанных с синхронизацией, буферами и протоколами (TCP, UDP, SCTP с IPv4 и IPv6). Для каждого теста он сообщает о пропускной способности, потерях и других параметрах.

🖼️ Дочитать статью

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Устали от ограничений и долгой настройки серверов? HSVDS поможет в работе!

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

А чтобы вы могли начать максимально быстро, мы подготовили предустановленный образ GitLab:

 Управление репозиториями кода для Git
 Система отслеживания задач
 Удобная Wiki для документации
 Мощный CI/CD пайплайн
 И многое другое для продуктивной работы всей команды!

HSVDS — это стабильность, готовые решения и свобода для ваших идей 💻
⚙️ Классификация команд оболочки bash в Linux

✔️В Linux существует огромное количество различных утилит, которые можно разделить на несколько типов.

➡️ Внешние команды
Это те, которые не встроены в оболочку Linux. Такие утилиты можно назвать небольшими отдельными программами, которые расположены в файловой системе. Зачастую, такие команды находятся в каталогах /bin или /usr/bin. Также к внешним командам можно отнести и исполняемые файлы.

▶️В Linux переменная $PATH содержит перечень путей, разделенных двоеточиями, по которым хранятся команды этого типа. Чтобы найти нужную утилиту, ОС ищет исполняемый файл в каталогах в порядке, установленном переменной. Если находит, запускает на выполнение. Если нет — проверяет следующие директории. Чтобы просмотреть текущее значение $PATH:
echo $PATH

▶️Чтобы узнать, какие команды содержатся в директории /bin:
ls /bin/

▶️К внешним командам можно отнести apt, awk, mount, mkdir и т. п.

➡️ Псевдонимы
▶️Это ярлык, ссылающийся на команду. Псевдоним заменяет строку, вызывающую команду в Linux, другой строкой, заданной пользователем. По умолчанию в системе существует несколько автоматически созданных псевдонимов. Чтобы узнать список всех псевдонимов, введите команду alias

▶️Разберем один из псевдонимов — alias la='ls -A':

alias — указывает, что команда является псевдонимом;
la — название псевдонима;
ls -A — полная команда, которую заменяют псевдонимом.

▶️Псевдонимы бывают двух видов:
временные — те, которые будут действовать только в текущей сессии терминала;
постоянные — те, которыми можно пользоваться на постоянной основе.
▶️Чтобы создать новый временный псевдоним:
alias name='full_command'

▶️Чтобы установить постоянный псевдоним, перейдите в файл ~/.bashrc и впишите новый в разделе псевдонимов, сохраните файл. Он будет автоматически загружен при запуске следующего сеанса терминала.

➡️ Зарезервированные слова
▶️Это комбинации символов, которые имеют особое значение для оболочки. Они используются для составления больших и сложных команд в терминале:
! — логическое НЕ;
case, esac — используются для создания многосторонних условных конструкций;
coproc — создает со-процесс;
do, done — используются для построения циклов;
elif — часть конструкции if-else;
if, else — составные части конструкции if-else;
for, in — используются для создания цикла for;
function — объявляет функции в скриптах;
fi — указывает на конец внутреннего оператора if;
select — генерирует меню из списка элементов;
then — используется для разделения условия и команд, которые будут выполнены, если условие окажется истинным;
until — используется для создания цикла, который продолжает выполняться до тех пор, пока не будет выполнено определенное условие;
while — создает цикл while;
{, } — группируют команды вместе и создают командный блок;
time — используется для определения времени выполнения команды;
[[, ]] — используются для проверки условных выражений.

➡️ Функции оболочки
▶️Это способ группировки команд для последующего их выполнения. Они выполняются так же, как и обычные команды. Функции активно используются для создания различных скриптов. Структура функции оболочки bash в скрипте выглядит следующим образом:
function_name() {
command1
command2
...
}
function_name

▶️Создадим скрипт 123.sh, в котором напишем функцию для выполнения команд ls и ls -a. С помощью утилиты chmod разрешим выполнение файла для его владельца (u+x)

Чтобы запустить созданный скрипт, выполним команду:
./123.sh

Или:
sh 123.sh


➡️ Встроенные команды
▶️Это инструменты командной строки, которые содержатся в самой оболочке bash. Встроенные утилиты необходимы для реализации функций, которые невозможно или неудобно получать с помощью отдельных инструментов.

▶️Самые известные:
pwd — выводит на экран название текущего каталога;
cd — позволяет переходить между каталогами;
echo — выводит на экран заданную строку текста.
Чтобы вывести на экран все встроенные в оболочку команды:
help

▶️Чтобы выяснить, является ли команда внутренней, используйте утилиту type с ее названием в качестве аргумента. К примеру — type pwd

🖼️ Прочитать статью полностью

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Как настроить цвета и содержимое Bash в командной строке терминала Linux

✔️Сегодня Bash является оболочкой по умолчанию в большинстве (если не всех) современных дистрибутивов Linux. Однако вы могли заметить, что цвет текста в терминале и содержимое Bash запроса могут отличаться в зависимости от дистрибутива.

Если вам интересно, как настроить этот параметр для лучшей читабельности или просто у вас появилось такая прихоть, дочитайте до конца — в этой статье мы объясним, как это сделать.

➡️ Переменная окружения PS_ Bash
▶️Командная строка и внешний вид терминала определяются переменной среды PS1. Согласно странице man Bash, PS1 представляет собой основную строку, которая отображается, когда оболочка готова к чтению команды.

▶️Допустимый контент в PS1 состоит из нескольких специальных символов с обратным слэшем, значение которых указано в разделе PROMPTING на странице руководства.

▶️Чтобы стало яснее, давайте выведем текущее содержимое PS1 в нашей системе (в вашем случае результат может выглядеть иначе):
$ echo $PS1

➡️ Настройка формата PS1
▶️Согласно разделу PROMPTING на странице руководства, ниже приведено значение каждого специального символа:
\u: имя пользователя (текущего пользователя).
\h: имя хоста до первой точки (.).
\W: базовое имя текущего рабочего каталога, с $HOME (сокращенно тильдой ~).
\$: если текущий пользователь root, пропишите «#», в противном случае «$«.

▶️Например, мы можем захотеть добавить \! если мы хотим отобразить номер истории текущей команды или \H, если мы хотим отобразить полное доменное имя вместо короткого имени сервера.

▶️В следующем примере мы импортируем обе опции в нашу текущую среду, выполнив следующую команду:
PS1="[\u@\H \W \!]\$"

▶️Когда вы нажмете Enter, вы увидите, что содержимое запроса изменится, как показано ниже. Сравните запрос до и после выполнения вышеуказанной команды.

▶️Теперь давайте сделаем еще один шаг и изменим цвет пользователя и имя хоста в командной строке, включая текст и окружающий его фон.

▶️Мы будем использовать специальный символ \e в начале и m в конце, чтобы указать, что далее прописана последовательность цветов.

▶️В этой последовательности три значения (фон, формат и передний план) разделяются запятыми (если значение не задано по умолчанию).

▶️Кроме того, поскольку диапазоны значений отличаются друг от друга, не имеет значения, какой из них (фон, формат или передний план) вы указываете первым.
PS1="\e[40;11;32m[\u@\h \W]$ "


▶️Как бы ни выглядел запрос, эта настройка будет сохраняться только для текущего сеанса пользователя. Если вы закроете терминал или выйдете из сеанса, изменения будут потеряны.

▶️Чтобы сделать эти изменения постоянными, вам нужно будет добавить следующую строку ~/.bashrc или
~/.bash_profile в зависимости от вашего дистрибутива:
PS1="\e[40;11;32m[\u@\h \W]$ "


🖼️ Прочитать статью полностью

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
infosec - один из самых ламповых каналов по информационной безопасности, где говорят об истории ИТ, публикуют актуальные новости и пишут технический материал по разным темам:

- Как зарождалась Флибуста?
- Сервисы для обеспечения безопасности в сети;
- Каким образом "компьютерные мастера" обманывают своих клиентов?
- Бесплатный бот, который проверит файлы на предмет угроз более чем 70 антивирусами одновременно.

А еще у нас часто проходят розыгрыши самых актуальных и новых книг по ИБ. Так что присоединяйся, у нас интересно!
⚙️ Fast cd menu

✔️ Скрипт на Bash, который поддерживает команду «c» в Bash и показывает историю cd в виде меню.

➡️ Пример использования:
▶️показать меню истории cdc
▶️перейти на вторую папку в истории cdc 2
▶️перейти в папку, имя которой содержит строку test, где «name» — имя папки, а не полный путь — c test.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Шпаргалка по Bash — инфографика от sysexplore.com

✔️Это тщательно составленный и визуально приятный материал, который станет полезным как новичкам, так и опытным пользователям Bash.

➡️ Шпаргалка охватывает основы скриптинга, включая базовую терминологию, чтение параметров из файлов, обработку сигналов (например, SIGTERM) и многое другое.

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
В России можно посещать бесплатные IT-мероприятия хоть каждый день: как оффлайн, так и онлайн.

Чтобы не пропустить полезные — сохраните канал @FreeItEvent.

Анонсы вебинаров, хакатонов, конференций, мастер-классов и других событий в IT. Ивенты от гигантов индустрии и лучших специалистов в сфере IT.

Всё публикуют здесь.
⚙️ ️1000+ Bash скриптов для DevOps

✔️Не всегда скрипты на Bash вообще нужны в DevOps, но иногда всё же возникает ситуация, когда нужно что-то автоматизировать, а готовых решений нет или они не подходят. И именно в таких ситуациях может быть удобно быстро написать решение на Bash.

➡️ Это большая подборка из скриптов, связанных с настройкой и управлением AWS, GCP, Kubernetes, Docker, PostgreSQL, MySQL, Hive, Impala, Kafka, Hadoop, Jenkins, GitHub, GitLab, BitBucket, Azure TeamCity, Spotify, LDAP, Python и это далеко не полный список.

▶️Есть здесь даже скрипты для конфигурирования .bashrc, .vimrc, .gitconfig, .screenrc, tmux.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Ты готов к РЕВОЛЮЦИИ? Тогда тебе точно сюда!

В этом канале не просто обсуждают Web3/4/5, блокчейн и крипту — здесь строят будущее! 🌐 Ты не только узнаешь, как создать смарт-контракт на Solidity, но и получишь реальные инструменты для работы с блокчейном, DeFi и DAO. Мы не рассказываем, как это делать, а показываем! 🚀

🚨 Что будет на канале?

Пошаговые инструкции по созданию смарт-контрактов и их деплою. Без воды, только полезная информация.

Как сделать безопасный криптокошелёк и работать с токенами.

Реальные проекты и решения для DeFi.

Всё, что нужно знать о DAO и их развитии.

И многое другое, что поможет тебе стать мастером Web3.

Забудь все скучные теории — здесь ты получишь только практику и реальные навыки! В следующем посте будем разбирать, как настроить свой первый смарт-контракт на блокчейне!

Присоединяйся, и вместе создадим БУДУЩЕЕ!
⚙️ Список действий, если подозреваете, что ваш сервер был взломан

✔️Небольшой список действий, которые имеет смысл выполнить, если у вас есть подозрения на то, что ваш сервер был взломан тем или иным способом. То есть на нём исполняется вредоносный код. Чаще всего это нужно не для восстановления работоспособности, а для расследования, чтобы понять, что конкретно случилось. Если сервер был скомпрометирован, лучше его полностью переустановить, перенеся полезную нагрузку.

▶️Если это веб сервер, то имеет смысл начать с анализа его лог файлов. Если знаете, что у вас была какая-то незакрытая уязвимость в коде, то искать следует её эксплуатацию, либо запуск веб-шеллов.
Обычно уязвимость находят в каком-то конкретном файле, так что смотрим обращения к нему. Если по описанию уязвимости вы видите, что зловред создаёт или загружает новый файл и потом к нему обращается, то ищите эти обращения.

▶️Можно посмотреть список изменённых файлов за последнее время. Не факт, что поможет, так как изменить дату модификации файла не сложно, но тем не менее, это может помочь:
# find /var/www/site -type f -mtime -30 ! -mtime -1 -printf '%TY-%Tm-%Td %TT %p\n' | sort -r

Тут мы выводим все изменённые файлы за последние 30 дней, кроме сегодняшнего и сортируем их по дате изменения от более свежей к старой. Если список большой, лучше сразу его в файл отправить и анализировать там. Это, кстати, полезная команда именно в таком виде и выводе.

▶️Смотрим журналы операционной системы, в том числе аутентификации по SSH. На них хорошо бы ставить мониторинг и отправлять эту информацию на сторонний лог сервер. Смотрим задачи cron, at и systemd timers.

▶️Не часто, но иногда можно что-то увидеть в истории shell команд или истории команд клиентов СУБД:
➡️ # cat ~/.bash_history
➡️ # cat ~/.mysql_history
➡️ # sudo -u postgres psql
➡️ # \s

▶️Имеет смысл проверить целостность исполняемых файлов согласно эталонным хеш-значениям из DEB и RPM пакетов.
➡️ # dpkg —verify
➡️ # rpm -Va

▶️Проверяем системных пользователей, прописанные для них шеллы, прописанные ключи для SSH соединений. Проверяем домашние директории пользователей, от которых работает веб сервер и другие запущенные службы, на предмет подозрительных скриптов. То же самое делаем во временных директориях.

▶️Проверяем прослушиваемые приложениями порты и исходящие подключения:
➡️ # ss -tulnp | column -t
➡️ # ss -ntu

▶️На всякий случай можно посмотреть и список процессов. Иногда там и вручную глаз за что-то зацепится. Майнеров сразу будет видно.
➡️ # ps axf

🖼️ Ссылка на источник

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Используй новогодние выходные наилучшим образом!

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

🤩 Admin Books – техническая литература для сетевых и системных администраторов и ИБ специалистов.

Ссылка для своих: https://t.me/+uZU9Jq_qa_djOTcy
Please open Telegram to view this post
VIEW IN TELEGRAM
✔️ Научим писать плейбуки и модули ✔️

Один пропущенный шаг — и конфигурация ломается. Члены команды выполняют задачи по-своему, документация не помогает. Добавление новых серверов — это боль и часы работы.

Как этого избежать? Мы научим вас работать с Ansible, чтобы вы смогли:

Настроить автоматизацию: один playbook — и ваши сервера настраиваются в считаные минуты.

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

Масштабировать в одно касание: развёртывание сотен серверов — больше не головная боль.

Экономить время: больше времени на стратегические задачи, меньше — на рутину.

Освоить лучшие практики на курсе «Ansible: Infrastructure as Code» –
по ссылке.
Старт 20 января.

erid: 2W5zFJNU7Xv