Архив метки: ssh

Полное руководство по настройке SSH в Ubuntu

В наши дни SSH стал методом по умолчанию для доступа к удаленному серверу Linux.

SSH расшифровывается как Secure Shell и представляет собой мощный, эффективный и популярный сетевой протокол, используемый для удаленной связи между двумя компьютерами. И давайте не будем забывать о защищенной части его имени; SSH шифрует весь трафик для предотвращения таких атак, как угон и подслушивание, предлагая различные методы аутентификации и множество вариантов конфигурации. Читать

Как подключиться по SSH к контейнеру Docker

Как вы используете SSH для входа в контейнер Docker? Традиционный подход состоит из двух шагов:

Шаг 1 : подключитесь по SSH к удаленному серверу Linux (если вы запускаете контейнер в удаленной системе).

ssh user_name@server_ip_address

Шаг 2 : Затем вы входите в оболочку вашего запущенного контейнера Docker в интерактивном режиме следующим образом:

docker exec -it container_ID_or_name /bin/bash

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

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

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

Читать

Разрешить root`у вход по ssh на Ubuntu

По умолчанию в убунту пользователю root запрещен вход через ssh. Для открытия доступа нужно выполнить следующие действия:

Читать

🔐 Настройка входа по SSH без пароля для нескольких удаленных серверов с помощью скрипта

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

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

В этой статье мы продемонстрируем, как создать пару ключей SSH и скопировать открытый ключ на несколько удаленных хостов Linux одновременно с помощью скрипта шелла.

Создайте новый ключ SSH на Linux

Сначала сгенерируйте пару ключей SSH (закрытый ключ / ключ идентификации, который SSH-клиент использует для аутентификации при входе на удаленный SSH-сервер, и открытый ключ, хранящийся в качестве авторизованного ключа в удаленной системе, на которой запущен SSH-сервер), используя ssh- keygen следующим образом:

# ssh-keygen




Создание скрипта bash для нескольких удаленных входов

Затем создайте скрипт, который поможет скопировать открытый ключ на несколько удаленных хостов Linux.

# vim ~/.bin/ssh-copy.sh

Скопируйте и вставьте следующий код в файл (замените следующие переменные соответственно USER_NAME – имя пользователя для подключения, HOST_FILE – файл, содержащий список имен хостов или IP-адресов, и ERROR_FILE – файл для хранения любых ошибок команды ssh).

#!/bin/bash

USER_NAME="root"

HOST_FILE="/root/hosts"

ERROR_FILE="/tmp/ssh-copy_error.txt"

PUBLIC_KEY_FILE="$1"



if [ ! -f  $PUBLIC_KEY_FILE ]; then

        echo "File '$PUBLIC_KEY_FILE' не найден!"

        exit 1

fi



if [ ! -f $HOST_FILE ]; then

        echo "File '$HOST_FILE' не найден!"

        exit 2

fi



for IP in `cat $HOST_FILE`; do

        ssh-copy-id -i $PUBLIC_KEY_FILE $USER_NAME@$IP 2>$ERROR_FILE

        RESULT=$?

        if [ $RESULT -eq 0 ]; then

                echo ""

                echo "Открытый ключ успешно скопирован на $IP"

                echo ""

        else

                echo "$(cat  $ERROR_FILE)"

                echo 

                exit 3

        fi

        echo ""

done

Сохраните файл и закройте его.

Затем сделайте скрипт исполняемым с помощью команды chmod, как показано далее:

# chmod +x ssh-copy.sh

Теперь запустите скрипт ssh-copy.sh и укажите свой файл открытого ключа в качестве первого аргумента, как показано ниже:

# ./ssh-copy.sh /root/.ssh/prod-rsa.pub

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

После запуска ssh-agent добавьте к нему свой закрытый ключ следующим образом:

# eval "$(ssh-agent -s)"

# ssh-add  ~/.ssh/prod_rsa

Вход на удаленный сервер Linux без пароля

Теперь вы можете войти на любой из своих удаленных хостов, не вводя пароль для аутентификации пользователя SSH.

Таким образом, вы можете автоматизировать межсерверные процессы.

# ssh root@10.2.32.12

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

 





2020-10-05T11:36:32
Скрипты

Запуск команд или скрипта через SSH

Сегодня рассмотрим примеры для запуска команд или скрипта через SSH соединения. Научимся запускать наши команды/скрипты из одной рабочей станции Linux на другой удаленной Linux машине. Рассмотрим практические примеры использования мощного инструмента SSH в администрировании Linux.






Запуск команд через SSH




Если вы хотите удаленно запустить какую-либо команду на сервере через SSH, то нет ничего проще. Давайте рассмотрим пару примеров.




Узнайте аптайм удаленного сервера:




ssh root@10.5.5.1 'uptime'




Узнать проходит ли пинг на удаленном сервере до google DNS:




ssh root@10.5.5.1 'ping 8.8.8.8 -c 5'




Перезагрузить удаленную машину:




ssh root@10.5.5.1 'reboot'




Запуск нескольких команд через SSH




В большинстве случаем недостаточно удаленно запустить только одну команду по SSH. Намного чаще необходимо отправить сразу несколько команд на удаленный сервер, например, для сбора информации и получить результат обратно.




Запустить несколько команд на удаленном хосте по SSH:




ssh ПОЛЬЗОВАТЕЛЬ@СЕРВЕР 'КОМАНДА1; КОМАНДА2; КОМАНДА3'




можно и так:




ssh ПОЛЬЗОВАТЕЛЬ@СЕРВЕР << EOF
КОМАНДА1
КОМАНДА2
КОМАНДА3
EOF




Практические примеры использования SSH




Узнайте аптайм и сколько свободного места на диске:




ssh root@10.5.5.1 'uptime; df -h'




Сколько используется памяти и среднюю нагрузку:




ssh root@10.5.5.1 'free -m ; cat /proc/loadavg'




Узнать версию ядра, количество ядер CPU и сколько всего RAM:




ssh root@10.5.5.1 << EOF
uname -a
lscpu  | grep "^CPU(s)"
grep -i memtotal /proc/meminfo
EOF




SSH: Запуск Bash Скрипта




Также бывает ситуация, когда на Linux сервере лежит какой-либо скрипт и его необходимо запустить по SSH на другом Linux сервере.




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




Эта задаче безусловно может быть выполнена и при этом довольно просто.




ssh root@10.5.5.1 'bash -s' < script.sh




Что если вы хотите выполнить сценарий с аргументом.




ssh root@10.5.5.1 'bash -s' < script.sh --argument




или




ssh root@10.5.5.1 'bash -s' < "script.sh --argument"




Если требуются привилегии sudo, то команда примет вид:




ssh root@10.5.5.1 'echo "passwords" | sudo -Sv && bash -s' < script.sh




  • password — пароль для пользователя root на удаленной машине.
  • script.sh — файл с вашим скриптом расположенный на станции с которой производите подключение.





2020-08-23T10:57:17
SSH

🐍 Брутим SSH удаленного сервера

Брутим SSH удаленного сервера

Для брута (атаки перебором паролей) будем использовать инструмент Hydra, который входит в состав дистрибутива Kali Linux. SSH присутствует на любом сервере Linux или Unix и, как правило, является основным способом использования администраторами для доступа к своим системам и управления ими.

Предупреждение: Hydra является инструментом для атак

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

Для реализации атаки используем команду:

# hydra -s 22 -l root -P /usr/share/wordlists/fasttrack.txt 192.168.1.1 -t 4 ssh

Теперь разберем ее:

s – Флаг указывает на порт. Стоит отметить, что администраторы могут заменить дефолтный 22 порт для работы службы ssh, чтобы узнать на каком порту работает служба необходимо произвести первоначальное сканирование цели с помощью инструмента Nmap. О том как это сделать мы писали ранее в статье.

l – флаг указывает на логин, в нашем примере мы используем root и admin. (можем указать здесь ссылку на словарь)

P – флаг указывает на пароль, в нашем случае мы используем словарик fasttrack.txt из дистрибутива kali, который располагается в директории /usr/share/wordlists/

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

192.168.1.1 – ip адресс цели, так как используемая нами цель имеет белый ip, он замазан

t — флаг указывает на число одновременно используемых потоков. Укажем 4

ssh — используемый протокол

По результатам работы команды видим, что пароли из словаря не подошли для логинов admin и root

Выводы

Hydra является удобным и простым инструментом для тестирования парольной политики SSH.

Инструмент способен просматривать массивные списки имен пользователей, паролей и целей для проверки, если вы или пользователь используете потенциально уязвимый пароль.

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

Для любого ибешника обеспечение безопасности паролей SSH должно быть главным приоритетом.

¯_(ツ)_/¯

Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.



2020-06-15T09:29:09
Аудит ИБ