Текст
                    Лабораторная работа №
6
(
2
часа)
Настройка
OpenSSH
и терминальные сервисы
Цели:
изучить основные способы применения
OpenSSH
для удален
ного
администрирования серверов под управлением
GNU
\
Linux
, получить навыки
установки, настройки и использования сервера и клиента
OpenSSH
, а также
сопутствующих утилит.
Инструкции по выполнению
:
Для выполнения лабораторной работы
потребуется доступ к двум
машинам (виртуальным или физическим).
Загрузите ОС
Linux
, войдите в сеанс и получите доступ к командной строке.
Перед выполнением заданий лабораторной работы ознакомьтесь с главой 22
пункт 10 (с.97
2
) книги «
UNIX
и
Linux
. Руководство системного
администрат
ора» Эви Немет и др, а также с главой 15 (с.359) книги Скотта
Граннемана «
Linux
. Карманный справочник». Внимательно прочитайте
условие лабораторной работы, выполните требуемые задания, ответьте на
приведенные вопросы и составьте итоговый отчет по работе.
Перед
началом
работы
проверьте
,
установлены ли
на
Вашей
машине
необходимые пакеты
(
openssh
-
server
,
openssh
-
client
)
.
В случае
необходимости установите их.
Достаточно часто при администрировании возникает необходимость
подключиться к удаленной системе. Это
может быть продиктовано
рассредоточенным расположением администрируемых машин,
необходимостью быстрого доступа к различным машинам и др. причинами.
Один из самых древних способов удаленного подключения
–
telnet
.
Несмотря на простоту, является очень небез
опасным в использовании:
данные, в том числе логин и пароль, передаются по сети в виде открытого
текста, что позволяет злоумышленнику их легко перехватить. В большинстве
современных дистрибутивов сервис
telnet
–
telnetd
,
-
даже не
устанавливается по умолча
нию. Если он установлен, очевидная
рекомендация:
apt
-
get purge telnetd
По той же причине не рекомендуются исторические альтернативы,
известные как
Remote
SHell
–
rsh
,
rlogin
и
rcp
(пакеты
rsh
-
server
и
rsh
-
client
).
В качестве частичной замены может использ
оваться сервис,
построенный на базе
Secure
Socket
Layer
–
telnetd
-
ssl
(серверная часть) и
telnet
-
ssl
(клиентская часть).


Наиболее распространенной альтернативой telnet ’ у для удаленного доступа является SSH – Secure SHell . Он представляет собой безопасный способ удаленного доступа – подключение требует аутентификации и все передаваемые данных шифруются. Кроме возможности удаленного доступа, SSH предоставляет средства безопасной передачи файлов: scp и sftp . Scp ( secure copy ) позволяет копировать файлы анал огично стандартной команде cp , но с / на удаленную машину. При этом используется синтаксис, аналогичный cp в котором путь к файлу на удаленной машине задается в формате: имя_машины:путь_в_файловой_системе sftp ( secure ftp ) – безопасный аналог протокола FTP , позволяющий копировать, удалять, переименовывать файлы, менять им разрешения и т.д. В Debian GNU \ Linux SSH представлен версией OpenSSH . Для установки SSH может использоваться метапакет « ssh », включающий в себя пакеты ssh - server и ssh - client . OpenSSH предл агает несколько механизмов аутентификации пользователя. Одним из способов является аутентификация по ключу. Это удобно для частых подключений и для автоматизации подключений. Для аутентификации по ключу, следует сгенерировать ключевую пару: открытый и закр ытый ключи: ssh - keygen - t rsa – b 4096 Вопрос для любознательных: Что делает опция « - b » и зачем она здесь использована? Ключи будут сохранены в домашнем каталоге пользователя в подкаталоге . ssh с именами id _ rsa . pub и id _ rsa . После этого необходимо добавить открытый ключ на сервер в подкаталоге домашнего каталога пользователя . ssh / authorized _ keys : ssh - copy - id пользователь @ server Сгенерированный ключ может дополнительно защищаться паролем. При этом при подключении будет требоваться его ввод. Частого ввода паро ля можно избежать, настроив ssh - agent . При любом подозрении на компрометацию закрытого ключа, следует удалить открытый ключ из authorized _ keys на сервере и заменить его на 
сгенерированный новый. При этом рекомендуется использовать RSA ключ длиной не менее 1024 бит. Настройка SSH - сервера выполняется путём редактирования файлов конфигурации: / etc / ssh / ssh _ config уровня компьютера и . ssh / config для каждого пользователя по отдельности. Параметры конфигурации хорошо прокомментированы в самом файле и в страницах m an ( man ssh _ config ). Задание. Изучите и настройте sshd согласно рекомендациям повышения безопасности.  Запретите удалённый доступ к аккаунту root .  Запретите подключение с пустым паролем (или вообще запретите парольную аутентификацию).  Установите нестандартн ый порт для SSH .  Используйте длинные ключи RSA (больше 1024 бит).  Ограничьте список компьютеров, с которых разрешен доступ к серверу (это можно сделать дважды: в настройках sshd и при помощи iptables ).  Регулярно просматривайте сообщения об ошибках аутентиф икации ( access . log ). Другие рекомендации будут даны на лекции по безопасности. Отметьте в отчете, каким образом выполнялись эти настройки. Конфигурационный файл как правило состоит из набора секции Host с указанием имени или IP - адреса компьютера. Из опции наиболее интересными являются User – задает имена пользователей на удаленной системе, которым разрешен доступ и Cipher – задает алгоритм шифрования для указанной системы. В качестве значения Host можно задать «*». Такая секция должна задаваться последней в конфигурационном файле. Для подключения к удаленному серверу следует выполнить команду: ssh пользователь @ сервер или ssh - p порт пользователь@сервер если из соображений безопасности для ssh был установлен не стандартный порт. Альтернативным способом по дключения является использование PuTTY . Самостоятельно подключитесь при помощи PuTTY к ssh - серверу и запишите в отчет последовательность шагов, которые Вы выполнили. Кроме консольного подключения ssh предоставляет возможность «проброса» сессии X 11 . Эта воз можность по умолчанию отключена в настройках ssh . Задание: найдите в конфигурационном файле ssh ( / etc / ssh / sshd _ config ) опцию, отвечающую за «проброс» сессии X 11 и включите ее. Подключитесь к серверу, добавив к команде подключения « - X ». 
Еще одной часто исп ользуемой возможностью SSH является создание шифрованных туннелей для TCP / UDP . Для этого используются опции « - L » и « - R ». Эта возможность может использоваться для создания безопасного подключения к удаленному рабочему столу по протоколу VNC ( Virtual Network Computing ). Для этого вначале следует, используя GUI - приложение vino в Gnome или команду x 11 vnc , разрешить разделение сессии X 11 . Если Вас устраивает передача данных по сети без шифрования, то после этого можно переходить к следующему абзацу. Иначе, перед подключением, следует создать шифрованный туннель. При работе, VNC использует по умолчанию порт 5900 для первого экрана (он называется localhost :0 ), 5901 для второго ( localhost :1 ) и т.д. Можно использовать команду: ssh - L localhost :5901: localhost :5900 - N - T имя_компьютера для создания шифруемого ssh - туннеля. После этого можно подключиться к удаленной сессии при помощи VNC - клиента. В Gnome для этого может использоваться vinagre или tsclient , в KDE – krdc , а также команда vncvie wer из пакета xvnc 4 viewer . Зад ание. Настройте ssh - туннель для удаленного рабочего стола и подключитесь к нему. Отметьте в отчете последовательность Ваших действий. Замечание. При работе с удаленным рабочим столом удобно включить в SSH сжатие передаваемых данных. Кстати, каким параметро м? Дополнительно. VNC также может использоваться для доступа к рабочей станции мобильным пользователям или для удаленного доступа из дома (и наоборот). Настройка такого сервиса немного сложнее. Вначале необходимо установить и настроить vnc 4 server , а также изменить конфигурацию менеджера графического входа ( gdm , gdm 3, kdm или xdm ) на приём XDMCP - запросов. Затем запустить сервер через сетевого демона inetd таким образом, чтобы сессия автоматически запускалась, когда пользователь пытается подключиться. Наприм ер, Вы можете добавить в / etc / inetd . conf : 5950 stream tcp nowait nobody.tty /usr/bin/Xvnc Xvnc - inetd - query localhost - once - geometry 1024x768 - depth 16 securitytypes=none Это достаточно безопасное решение, поскольку, только зная локальную учетную запись, можно будет пройти дальше менеджера графического входа. 
Такое решение допускает множественные параллельные подключения и может использоваться как терминальный сервер: vncviewer сервер:50