Настройка ssh в Debian

Майор

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
2.834
Реакции
1.939
Баллы
113
Довольно часто, администрирование сервера на базе Linux происходит посредством удалённого доступа. А основным способом удалённого администрирования является администрирование с помощью SSH. Об этом и пойдёт речь в этой статье. Данная статья входит в цикл статей о настройке коммуникационного сервера класса SOHO под управлением Debian/GNU Linux и подразумевается, что дальнейшая настройка сервера будет производиться с помощью SSH. Цикл статей ещё в процессе написания.

Но вернёмся к SSH. Что такое SSH и чем же он так хорош? SSH – это сетевой протокол для TCP-соединений, который позволяет удалённо управлять операционной системой. SSH – это аббревиатура от Secure SHell, что переводится как безопасная оболочка. Вся передаваемая по этому протоколу информация сжимается и надёжно шифруется, а так же производится проверка модификации пакетов. Злоумышленники могут прослушивать сеть, перехватывать и изменять пакеты, но они этим ничего не добьются. Кроме администрирования, через SSH можно передавать другие сетевые протоколы, создавая защищённые туннели.

Раньше для удалённого администрирования компьютеров на базе Linux использовали протоколы RLOGIN, TELNET и RSH. Но пароли и данные в этих протоколах не шифровались, пакеты могли быть перехвачены и модифицированы, а злоумышленник мог подменить IP клиента и, использовав перехваченные данные пройти аутентификацию. Естественно, что в незащищённых сетях работать по этим протоколам небезопасно и в 1995 году была разработана первая версия протокола SSH (SSH-1). Уже в следующем году была разработана вторая, более защищённая версия протокола SSH (SSH-2). Первая и вторая версии протоколов несовместимы между собой. В своей работе мы будем использовать протокол SSH только второй версии и всё, что будет описано ниже, подразумевает использование SSH-2.

Существует несколько реализаций программного обеспечения для SSH. Мы установим одну из его разновидностей — OpenSSH. OpenSSH расшифровывается как Open BSD Secure SHell и изначально был разработан для BSD систем.

В пакет OpenSSH входит несколько программ: scp (Secure CoPy), ssh (Secure SHell) и sftp (Secure File Transfer Protocol). Первая из них нужна для защищённого копирования файлов с одного компьютера на другой, вторая предоставляет защищённый доступ к оболочке. В основном именно она используется для удалённого администрирования, позволяя работать с другим компьютером так, как будто вы физически работаете за этим компьютером. Третья программа из пакета OpenSSH нужна для защищённой передачи файлов по протоколу FTP.
 

Майор

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
2.834
Реакции
1.939
Баллы
113
Программа ssh использует технологию клиент/сервер. Проверим, установлены ли в системе какие либо пакеты openssh:
Код:
$ aptitude search ^openssh
В ответ получаем следующее:
Код:
iA openssh-blacklist
iA openssh-blacklist-extra
i openssh-client
p openssh-server
Как видим, клиентская часть программы установлена и в дополнение к ней для удовлетворения зависимостей автоматически установлены пакеты openssh-blacklist и openssh-blacklist-extra. Устанавливаем серверную часть, естественно с правами суперпользователя:
Код:
# aptitude install openssh-server
Во время установки будут сгенерированы ключи и перезапущен соответствующий демон - sshd. Можно было бы установить openssh в интерактивном режиме одной задачей , но в этом нет большого смысла, так как метапакет и так содержит только один пакет openssh-server.
Проверяем, запущен ли sshd:
Код:
# ps ax | grep sshd
Если видим примерно такие строки, то всё в порядке:
Код:
910 ? Ss 0:00 /usr/sbin/sshd
1190 tty1 S+ 0:00 grep sshd
Состояние сервера ssh можно проверить следующим способом:
Код:
# /etc/init.d/ssh status
Если сервер работает и запущен, то видим следующее сообщение:
Код:
sshd is running
Управление сервером осуществляется так же в командной строке:
Код:
# /etc/init.d/ssh {start|stop|reload|force-reload|restart|try-restart|status}
 

Майор

Администратор
Команда форума
Регистрация
04.09.14
Сообщения
2.834
Реакции
1.939
Баллы
113
В фигурных скобках перечислены команды управления, которые разделены вертикальными линиями. Вертикальные линии в этой записи равнозначны слову ИЛИ, т. е. может быть выполнена только какая-нибудь одна команда. Например, выведен статус сервера, как показано в примере выше.

Прежде чем подключиться к нашему серверу, поговорим об аутентификации (проверке подлинности) в SSH. При подключении по SSH используются три вида аутентификации: аутентификация по паролю, аутентификация по ключу хоста и аутентификация по открытому ключу. Мы не будем рассматривать аутентификацию по паролю в чистом виде, как небезопасную. Рассмотрим разницу между аутентификацией по ключу хоста и аутентификацией по открытому ключу. При первом подключении с использованием аутентификации по ключу хоста открытый ключ хоста (сервера) копируется на компьютер-клиент в профиль пользователя, инициировавшего удалённое подключение, в файл /.ssh/known_hosts. При последующих подключениях копия открытого ключа на клиенте сравнивается с открытым ключом на сервере и далее следует запрос пароля для пользователя. При использовании аутентификации по открытому ключу, пара ключей генерируется не на хосте (сервере), а на клиенте и полностью его идентифицирует. Открытый ключ шифруется и копируется на сервер. При подключении происходит сравнение копии открытого ключа и оригинала и если ключи совпали, происходит вход на удалённый компьютер.

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

Автор: Золкин А. Н.
 
Сверху Снизу