HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Как включить SSH в Kali Linux. Как подключиться к Kali Linux по SSH
SSH позволяет подключиться к удалённому компьютеру и выполнить на нём команды, подключение и передача данных происходит по зашифрованному каналу, который защищён от различных атак перехвата и подмены данных.
SSH включает в себя две программы: сервер и клиент. Сервер устанавливается на удалённую машину, к которой нужно подключиться и выполнить на ней команды. Клиент предназначен для подключения к удалённой машине.
Сервер SSH работает как служба, которая по умолчанию прослушивает 22 порт. При подключении по умолчанию используется аутентификация по паролю — нужно ввести пароль пользователя на удалённой системе Linux. Также можно настроить аутентификацию с помощью ключей — данный вариант является более удобным (не требуется вводить пароль) и более надёжным (ключи менее подвержены брут-форсу).
Говоря о SSH в Kali Linux, нужно учитывать, что данный дистрибутив выпускается в различных вариантах (смотрите подробности «Где скачать Kali Linux. В чём различие версий Kali Linux»): для персональных компьютеров, для ARM компьютеров, для мобильных телефонов, для виртуальных машин. Рассмотрим особенности SSH в Kali Linux для ПК и для ARM.
SSH в Kali Linux в ARM компьютерах
Поскольку обычно ARM устройства представляют собой маломощные компьютеры без монитора, то управлять ими возможно только подключившись по SSH. По этой причине служба SSH на таких устройствах уже и установлена, и запущена по умолчанию.
В таких системах в качестве учётных данных для входа используйте пару:
- Пользователь: root
- Пароль: toor
В некоторых системах также настроен ещё один пользователь: kali / kali
Проблема с ARM устройствами без экрана может заключаться в том, что неизвестен их IP адрес, который в большинстве локальных сетей присваивается автоматически протоколом DHCP. Обычно роутеры позволяют просмотреть список устройств и их IP адреса. Если у вас такой возможности нет, то их можно найти путём сканирования сети, например, командой:
Вместо _gateway операционная система Linux сама подставит IP адрес вашего роутера, в результате получтися _gateway/24, то есть будет просканирована ваша локальная сеть, например, 192.168.1.0/24. Либо явно укажите диапазон для сканирования.
SSH в Kali Linux на настольных компьютерах
В Kali Linux уже установлен пакет SSH, но автоматический его запуск отключён (как и всех других сетевых служб). Следовательно, для подключения к Kali Linux по SSH нужно запустить эту службу. При желании, её можно добавить в автозагрузку.
Есть два варианта запуска службы SSH:
- ssh.service — служба SSH всегда будет запущена
- ssh.socket — система откроет для прослушивания 22-й порт и будет ожидать подключение к нему. В случае подключения, система запустит службу SSH. Во всё остальное время (когда нет подключений по SSH), служба SSH будет отключена и не будет потреблять системные ресурсы.
Второй вариант является более предпочтительным. Подробности о первом и втором варианте смотрите в «Полном руководстве по SSH».
Для запуска службы SSH в Kali Linux:
Для добавления службы в автозагрузку:
Для проверки состояния службы:
Как подключиться к Kali Linux по SSH
О том, как подключиться по SSH из различных операционных систем смотрите «Полное руководство по SSH (ч.3) Как подключиться к SSH. Настройка клиента OpenSSH».
Команда для подключения имеет следующий вид:
В качестве IP_АДРЕСа удалённой системы нужно указать её IP. Узнать IP адрес можно командой:
Кстати, чтобы Kali Linux после перезагрузки всегда имела одинаковый IP адрес, нужно настроить статический IP, как это сделать написано в статье «Как настроить Kali Linux на использование статичного IP адреса».
В данном случае IP адрес Kali Linux это 192.168.1.68. Пользователем по умолчанию является root. Тогда команда должна быть следующей:
Но проблема в том, что в SSH по умолчанию заблокирован вход пользователя root по паролю. Вариантов выхода два:
- разрешить вход root по паролю
- настроить аутентификацию с помощью ключей
Рассмотрим их оба, но я рекомендую именно второй вариант, как более безопасный и более удобный.
Почему SSH не принимает пароль root
Настройка службы SSH выполняется в конфигурационном файле /etc/ssh/sshd_config. Откроем его:
Сохраните и закройте файл.
Перезапускать службу SSH НЕ нужно, поскольку при выборе варианта ssh.socket эта служба и так отключена и будет запущена только при следующей попытке подключения по SSH.
При самом первом подключении программа выведет сообщение:
В нём у нас спрашивается, действительно ли мы хотим подключиться, набираем: yes
Затем вводим пароль и мы оказываемся в Kali Linux:
О том, что мы в другой системе, говорит изменившееся приглашение командной строки — теперь там имя пользователя и имя хоста удалённой системы.
Как настроить аутентификацию по ключу в Kali Linux (SSH без пароля)
Отключаемся от удалённой машины. И на локальной машине (с которой заходим) выполняем команду:
Опять без предварительного подключения, выполняем команду на удалённой машине (IP и имя пользователя поменяйте на свои):
Теперь нам нужно скопировать содержимое файла id_rsa.pub на удалённую машину. Сделать это очень просто (не забываем менять данные на свои):
После этого подключаемся как обычно, но вход уже не будет требовать пароль:
Методы удаленного доступа к Linux GUI
В службу технической поддержки RUVDS регулярно обращаются по поводу GUI и удаленного доступа к нему на виртуальных серверах с Linux, несмотря на то что в интернете достаточно много материалов освещающих эту проблему. Поэтому, для наших пользователей мы решили собрать всё по этой теме в одну статью.
Введение
На всякий случай возможно стоит упомянуть, что SSH — основной способ предоставления доступа к линуксовым виртуалкам на RUVDS. Большая часть действий описываемых в этой статье будет осуществляться именно таким образом.
Для подключения необходимо найти SSH-клиент для вашей операционной системы.
- OpenSSH; если Вы пользуетесь Linux, например Ubuntu, скорее всего всё уже установлено, до нас, так что можно смело писать в терминале: ssh root@[IP].
- PuTTY есть и для Linux, в том числе в официальных репозиториях Debian и Ubuntu.
MAC OS:
Установка GUI
Итак, перейдем к установке GUI. Сначала нужно поставить графическую подсистему:
Для Debian/Ubuntu:
Далее следует установка Desktop Environment (DE). Их существует великое множество. Мы рекомендуем ставить на сервер более легковесные среды, а еще лучше, не ставить вовсе. Первые две DE достаточно компактные, функциональные и «привычные».
1. Xfce
Для Debian/Ubuntu:
Можно поставить дополнительно:
Добавление русской раскладки:
Сочетание клавиш можно менять на свое усмотрение, например:
Чтобы эта команда запускалась каждый раз при запуске LXDE, нужно добавить в конец файла с помощью вашего любимого vi строку: @setxkbmap -option grp:switch,grp:ctrl_shift_toggle,grp_led:scroll us,ru. Или вот так…
Следующие две DE являются чрезвычайно легкими. Если уж GUI нужен на сервере, вероятно, стоит использовать именно их.
3. FluxBox
Для Debian/Ubuntu:
4. Openbox
Для Debian/Ubuntu:
Далее следуют наиболее популярные на десктопах графические оболочки.
5. Gnome
Для Ubuntu/Debian:
Замечание: с настройкой VNC-сервера под Gnome что-то пошло не так… Сервера из репозиториев tightvncserver и vnc4server так и не согласились сотрудничать, поэтому пришлось собрать пару deb-пакетов руками. Если у Вас не получится настроить сервер, то мы можем порекомендовать скачать собранный нами архив с tigervnc-server’ом и поставить его. Для этого:
7. Cinnamon
Для Debian/Ubuntu:
Если Вы хотите получать доступ к GUI через «Аварийный режим», то необходимо сделать следующее:
Мало того, необходимо обеспечить запуск графической оболочки при старте системы. Для этого можно установить какой-нибудь экранный менеджер (Display Manager, DM), например:
Или в случае с CentOS:
Если необходимости в доступе из личного кабинета нет, то следует выполнить:
Заметка: Ubuntu предлагает своим пользователям несколько метапакетов для более удобной установки нужной DE:
Далее, есть много способов получить удаленный доступ к GUI.
Удаленный доступ
На виртуальном сервере, в зависимости от OS нужно произвести следующие действия.
Далее, если вы используете Windows, подключаемся через встроенный RDP-клиент, Remote Desktop Connection (Подключение к удаленному рабочему столу).
Стандартный порт 3389. Для Linux есть масса клиентов которые можно установить из репозиториев: freerdp и remmina, gnome-rdp, vinagre и т.п.
Также можно пробросить RDP-шный трафик через SSH-туннель. Для этого нужно поправить конфигурационный файл xrdp:
В секцию [globals] нужно добавить строку: address=127.0.0.1
Проверить, что всё правильно, можно так:
Затем если вы используете cygwin или mingw, linux или mac os:
Запустите PuTTY. В древовидном меню слева Connection → SSH → Tunnels. Далее добавляем новый Forwarded Port (Source port: 3389, Destination: localhost:3389). Нажимаем Add.
Далее следуете в секцию Session. Вводите IP вашего сервера в поле Host Name (or IP address). Нажимаете кнопку Open, вводите пароль для подключения по SSH.
- Можно использовать вышеупомянутый клиент: remmina
- Если в браузере хотите: novnc — HTML5 VNC client
- И ещё куча всяких разных: directvnc, gnome-rdp, krdc, xtightvncviewer, vinagre, xvnc4viewer
Для MAC OS:
OS X предоставляет для этого встроенное приложение Screen Sharing. Можно также использовать Safari
Сервер: На Вашей виртуальной машине установите VNC сервер:
Если на Вашей системе работает файрвол необходимо открыть соответствующие порты. Пример для CentOS
При возникновении проблем с отображением иконок и шрифтов при использовании xfce4 по Ubuntu/Debian:
Если вы хотите, чтобы VNC-сервер стартовал автоматически, создайте файл:
Со следующим содержимым:
Теперь можно подключиться, например, через UltraVNC. Для этого нужно запустить UltraVNC Viewer, в поле VNC Server записать [IP]::5901 (по-умолчанию: 5901, 5902 и т.п. для первого дисплея, второго и т.д. соответственно) и нажать на кнопку подключиться.
Также можно пустить vnc-шный трафик через ssh-туннель. Для этого отредактируйте:
Затем если вы используете cygwin или mingw, linux или mac os:
Если PuTTY:
Запустите PuTTY. В древовидном меню слева Connection → SSH → Tunnels. Далее добавляем новый Forwarded Port (Source port: 5901, Destination: localhost:5901). Нажимаем Add.
Далее следуете в секцию Session. Вводите IP вашего сервера в поле Host Name (or IP address). Нажимаете кнопку Open, вводите пароль для подключения по SSH.
Затем открываете UltraVNC Viewer и в поле VNC Server вводите: localhost::5901 после чего подключаетесь.
Также можете попробовать другие VNC-сервера:
x11vnc — фактически VNC-сервер (как vnc4server или tightvnc), но позволяет получать доступ к уже существующей X-сессии. Т.е. если Вы настроили графическую оболочку таким образом, что она запускается при старте системы, то можно использовать следующий вариант:
После подключения по VNC (на порт 5900) Вы должны увидеть тоже что и в «Аварийном режиме».
Для старта x11vnc при запуске OS необходимо проделать следующее:
Теперь немного поинтереснее. Одна замечательная компания NoMachine разработала отличный протокол NX на замену VNC. Клиенты для подключения по этому протоколу бесплатны, а официальное серверное ПО от NoMachine стоит много денег. В свое время, эта же компания поддерживала проект FreeNX работы на котором со временем затихли; текущая версия 0.7.2 от 2008-08-22. Но, к счастью, нашлись люди создавшие форк и назвавшие его x2go. К сожалению, x2go не совместим ни с NX от NoMachine, ни с freeNX. Так что клиент берем тут.
Установка сервера на Debian (источник):
Для примера поставим эту DE:
Далее следуем инструкциям с оффициального сайта:
Вывод следующей команды должен показать, что x2go готов к работе:
А теперь важный момент, подключиться без этого фикса не получится! Нужно найти в файле .profile строку «mesg n» и заменить её на «tty -s && mesg n».
Следующая команда выведет путь до исполняемого файла startfluxbox, понадобится при настройке клиента:
Установка сервера на Ubuntu:
А теперь важный момент, подключиться без этого фикса не получится! Нужно найти в файле .profile строку «mesg n || true» и заменить её на «tty -s && mesg n».
Установка сервера на CentOS:
Клиент для линукс ставится из вышеприведенных репозиториев следующей командой:
Для Windows — скачиваем, ставим, запускаем. По той же ссылке, приведенной выше, есть клиент для OS X.
В настройках сессии указываем: в поле Host — IP вашего сервера, в поле Login — root, порт оставляем как есть, session type — тот GUI который ставили.
Как вы можете видеть, есть возможность аутентификации по ключу. В общем много всякого. Посмотрите сами. И звук можно через PulseAudio выводить.
После нажатия Ok вы увидите вот такие вот очаровательные штучки, на которые нужно нажать для получения запроса на ввод пароля и подключения к выбранной сессии:
Замечание: обратите внимание, что в списке нет Вашего любимого FluxBox’а поэтому путь к нему приходится прописывать руками.
Важной возможностью x2go является возможность запуска любого графического приложения вообще без установки DE. Для этого в настройках сессии нужно в секции session type нужно выбрать пункт single application и выбрать выполняемое приложение или ввести путь к программе которую следует запустить.
В этом случае установка ПО на сервер будет выглядеть следующим образом. В случае с Ubuntu:
А теперь важный момент, подключиться без этого фикса не получится! Нужно найти в файле .profile строку «mesg n || true» и заменить её на «tty -s && mesg n».
И настроив сессию как показано ниже, можно будет запустить браузер на удаленном сервере, а на вашей машине откроется окно его отображающее:
Или так; тогда просто откроется окно терминала:
Ниже вы можете видеть скриншот окна статуса текущей сессии. Оранжевыми цифрами отмечены кнопки:
- «Suspend session» — после нажатия на эту кнопку соединение будет разорвано, но сессия останется и будет ожидать повторного подключения. Все запущенные вами на сервере приложения продолжат свою работу;
- «Terminate session» — после нажатия подключение к серверу будет разорвано, а запущенные вами на сервере приложения будут завершены.
TeamViewer
Последний способ удаленного доступа к рабочему столу.
Установка на Ubuntu:
Установка на Debian:
Установка на CentOS:
Также необходимо принять лицензионное соглашение TeamViewer’а, это можно сделать с помощью «Аварийного режима», либо добавить следующие строки в конец файла /opt/teamviewer/config/global.conf:
Следующая команда покажет состояние демона TeamViewer’а и необходимый для подключения девятизначный TeamViewer ID:
После запуска клиента скачанного тут, нужно ввести TeamViewer ID в поле Partner UD и нажать на кнопку «Connect to partner». Далее TeamViewer запросит пароль: [PASSWD].