- Доступ по SSH
- Предварительный бэкап
- Доступ по SSH через сеть
- Обмен файлами
- Alt linux sshd config
- Глава 71. Создание ssh-туннелей, использующих контроль целостности заголовков IP-пакетов в соответствии с ГОСТ Р 34.12-2015
- 71.1. Настройка сервера ssh
- Удалённый доступ и удалённое администрирование (OpenSSH)
- Аутентификация
- Аутентификация по паролю
- Аутентификация по ключу
- Безопасность
Доступ по SSH
Примечание: Обратите внимение, что это не официальная документация, а попытка начинающего админа объяснить материал начинающим админам. Официальная и более подробная документация здесь.
С помощью SSH-сервера можно удаленно управлять сервером через консоль (ssh://-соединение) и передавать файлы (sftp-сервер).
В данной статье будут рассмотрены настройка доступа к терминалу (TODO: надо описать. В данный момент настройка терминального доступа не описана) и файлам через SSH.
Предварительный бэкап
На сервере переключаемся в режим суперпользователя:
Делаем на всякий случай бэкап конфига:
# cd /etc/openssh # cp -a sshd_config sshd_config.bak
# cd /etc/openssh # mcedit sshd_config
Потом, если что-то пошло не так, удаляем измененный и восстанавливаем исходный:
# cd /etc/openssh # rm sshd_config # cp -a sshd_config.bak sshd_config # service sshd reload
В любом случае при изменениях этого файла стоит обязательно:
- держать уже открытую рутовую сессию через достаточно надёжное соединение;
- перезапустить sshd;
- попытаться подключиться ещё одной рутовой сессией по ключу (либо пользовательской с поднятием привилегий, что несколько менее предпочтительно),
чтобы убедиться в том, что удалённый доступ к системе всё ещё функционирует.
Доступ по SSH через сеть
Редактируем следующие значения:
Port 22 //раскоментируем строчку MaxSessions 10 //раскомментируем строчку PubkeyAuthentication yes //раскомментируем строчку PubkeyAcceptedKeyTypes ssh-ed25519-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa-cert-v01@openssh.com,ssh-rsa,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384,ecdsa-sha2-nistp256 //раскомментируем строчку PasswordAuthentication yes //раскомментируем строчку PermitEmptyPasswords no //раскомментируем строчку ChallengeResponseAuthentication yes //раскомментируем строчку ClientAliveInterval 300 //раскомментируем строчку и меняем значение ClientAliveCountMax 3 //раскомментируем строчку Subsystem sftp /usr/lib/openssh/sftp-server //раскомментируем строчку Match User petr //тут пишем пользователя, под которым будем заходить X11Forwarding yes //раскомментируем строчку AllowTcpForwarding yes //раскомментируем строчку PermitTTY yes //раскомментируем строчку
Сохраняем файл и перезапускаем сервис:
Вводим в консоли ssh user@ip:
Система запросит разрешение на принятие SSH-ключа и ввод пароля. После этого у Вас будет консоль подключенного сервера.
Обмен файлами
Обмен файлами с сервером будет происходить по протоколу SSH.
Этот же каталог прописываем в ChrootDirectory.
ChrootDirectory /home/files
# chown petr:petr /home/files # chmod -R u+rwx /home/files
- Открываем Caja
- Файл > Соединиться с сервером:
- IP
- Тип: SSH
- Папка: /home/files
- Имя пользователя: petr (учетка на сервере, которой мы дали права)
- Пароль: (соответствующий)
- Можно поставить галочку «Добавить закладку»
Alt linux sshd config
Глава 71. Создание ssh-туннелей, использующих контроль целостности заголовков IP-пакетов в соответствии с ГОСТ Р 34.12-2015
71.1. Настройка сервера ssh
Установить пакеты openssh-gostcrypto , openssh-clients-gostcrypto , openssh-server-gostcrypto , openssh-server-control-gostcrypto , openssh-common-gostcrypto , openssh-askpass-common-gostcrypto :
#
apt-get install openssh-gostcrypto openssh-clients-gostcrypto openssh-server-gostcrypto openssh-server-control-gostcrypto openssh-common-gostcrypto openssh-askpass-common-gostcrypto
Чтение списков пакетов. Завершено Построение дерева зависимостей. Завершено Следующие пакеты будут УДАЛЕНЫ: NetworkManager-ssh kde5-network-manager-4-nm openssh openssh-askpass-common openssh-clients openssh-common openssh-server openssh-server-control plasma5-nm-connect-ssh plasma5-nm-maxi Следующие НОВЫЕ пакеты будут установлены: openssh-askpass-common-gostcrypto openssh-clients-gostcrypto openssh-common-gostcrypto openssh-gostcrypto openssh-server-control-gostcrypto openssh-server-gostcrypto ВНИМАНИЕ: Будут удалены важные для работы системы пакеты Обычно этого делать не следует. Вы должны точно понимать возможные последствия! openssh-server openssh-server-control (по причине openssh-server) 0 будет обновлено, 6 новых установлено, 10 пакетов будет удалено и 0 не будет обновлено. Необходимо получить 1190kB архивов. После распаковки будет освобождено 154kB дискового пространства. Вы делаете нечто потенциально опасное! Введите фразу 'Yes, do as I say!' чтобы продолжить. Yes, do as I say!$
ssh -Q cipher
3des-cbc aes128-cbc aes192-cbc aes256-cbc rijndael-cbc@lysator.liu.se aes128-ctr aes192-ctr aes256-ctr aes128-gcm@openssh.com aes256-gcm@openssh.com chacha20-poly1305@openssh.com grasshopper-cbc@altlinux.org grasshopper-ctr@altlinux.org magma-cbc@altlinux.org magma-ctr@altlinux.org$
ssh -Q mac
hmac-sha1 hmac-sha1-96 hmac-sha2-256 hmac-sha2-512 hmac-md5 hmac-md5-96 umac-64@openssh.com umac-128@openssh.com hmac-sha1-etm@openssh.com hmac-sha1-96-etm@openssh.com hmac-sha2-256-etm@openssh.com hmac-sha2-512-etm@openssh.com hmac-md5-etm@openssh.com hmac-md5-96-etm@openssh.com umac-64-etm@openssh.com umac-128-etm@openssh.com grasshopper-mac@altlinux.org hmac-gostr3411-2012-256@altlinux.org hmac-streebog-256@altlinux.org hmac-gostr3411-2012-512@altlinux.org hmac-streebog-512@altlinux.org hmac-gostr3411-2012-256-etm@altlinux.org hmac-streebog-256-etm@altlinux.org hmac-gostr3411-2012-512-etm@altlinux.org hmac-streebog-512-etm@altlinux.orgДобавить в файл /etc/openssh/sshd_config строки (набор допустимых алгоритмов, в порядке убывания приоритета):
Ciphers grasshopper-ctr@altlinux.org MACs grasshopper-mac@altlinux.org,hmac-streebog-512@altlinux.org
Удалённый доступ и удалённое администрирование (OpenSSH)
Одна из самых распространённых задач, возникающих при работе в сети, — удалённый доступ к другим компьютерам, в том числе их удалённое администрирование. Технология SSH (Secure Shell) призвана предоставить возможность безопасного способа управления удалённой системой. Посторенная по клиент-серверной модели, она позволяет при помощи ssh клиента подключаться к ssh серверу, предоставляя командную оболочку для работы с удалённой системой.
- прослушивания данных, передаваемых по этому соединению;
- манипулирования данными на пути от клиента к серверу;
- подмены клиента или сервера путём манипулирования IP-адресами, DNS или маршрутизацией.
- Сжатие передаваемых данных.
- Туннелирование каналов внутри установленного соединения, в том числе соединений с X-сервером, что позволяет запускать графические приложения на удалённой машине.
- Широкая распространённость: существуют реализации SSH для самых различных аппаратных платформ и операционных систем.
OpenSSH — это включённая в дистрибутивы ALT Linux реализация SSH. Она представлена следующими пакетами:
- openssh-clients — клиентская часть (утилита ssh , sftp и др.).
- openssh-server — серверная часть (сервер sshd , sftp-server ).
- openssh — утилиты, необходимые для работы как клиентской, так и серверной части.
Пакет openssh-server в ALT Linux 4.0 Server устанавливается по умолчанию, позволяя непосредственно после установки системы воспользоваться возможностью удалённого администрирования.
В простейшем виде сеанс работы будет выглядеть следующим образом. Запускается ssh клиент ( ssh ) с указанием имени пользователя на удалённой системе (если оно отличается от локального) и имени машины (либо IP-адреса). На удалённой машине, естественно, должна быть настроена и работать серверная часть — sshd .
После этого sshd предоставляет командную оболочку для работы на удалённой системе. Ваш компьютер становится удаленным терминалом другого компьютера.
Аутентификация
Прежде чем начать удалённый сеанс работы, необходимо пройти процедуру аутентификации, аналогичную той, что происходит при непосредственной работе с физическим терминалом Linux-системы. Утилита sshd поддерживает различные способы аутентификации, наиболее часто используются два из них: аутентификация по паролю и аутентификация по ключу.
Параметры, относящиеся к способу аутентификации, а так же все прочие настройки sshd указываются в конфигурационном файле /etc/openssh/sshd_config . Для вcтупления в силу изменений, вносимых с конфигурационный файл, каждый раз после правки файла необходимо выполнять команду
Аутентификация по паролю
Аутентификации по паролю включается добавлением строки PasswordAuthentication yes в файл etc/openssh/sshd_config . Хотя пароль в этом случае и не передается по сети в открытом виде, всё же существует опасность подбора пароля. Поэтому не следует выбирать слишком простые пароли.
Аутентификация по ключу
Аутентификация по ключу включается строкой
в файле /etc/openssh/sshd_config . При использовании этой схемы аутентификации будет использоваться асимметричное шифрование, следовательно, необходимо сгенерировать пару ключей: секретный и публичный 1 .
Для генерации пары ключей на компьютере пользователя необходимо выполнить $ ssh-keygen с необходимыми параметрами, например:
На вопрос о файле для сохранения ключа нажать Enter (принять вариант по умолчанию). Будет задан вопрос, следует ли создать пароль к ключу. Поскольку ключи рекомендуется создавать с паролем, нужно указать свой пароль.
После генерации ключей образуются 2 файла: ~/.ssh/id_dsa — секретный ключ, и ~/.ssh/id_dsa.pub — публичный. Его предстоит поместить на удалённый сервер.
Следующим шагом содержимое файла id_dsa.pub неоходимо добавить в файл ~/.ssh/authorized_keys2 на удалённой машине. Если под этой учётной записью будет входить один пользователь, файл id_dsa.pub можно просто скопировать, назвав его authorized_keys2 . Также можно воспользоваться утилиой ssh-copy-id :
$ ssh-copy-id username@hostname
Обратите внимание, что для выполнения этой операции должна работать аутентификация по паролю. В дальнейшем её можно будет отключить.
После указанных действий можно использовать аутентификацию по ключу. В процессе такой аутентификации запрашивается не пароль удаленного пользователя, а пароль на ваш ключ, что делает ssh сессию ещё более безопасной.
Безопасность
При настройке sshd следует весьма щепетильно отнестись к вопросам безопасности. SSH — очень важная часть системы. Она является незаменимым помощником любого администатора Linux, предоставляя ему доступ к командной оболочке удалённой системы. Но как раз по этой же причине данная служба может стать и источником бед.
Далее приводятся лишь некоторые рекомендации, призванные обезопасить вашу систему от насанкционированного доступа.
По возможности следует использовать способ аутентификации по ключу как наиболее безопасный. Если вы все же по каким-либо причинам используется аутентификация по паролю, то следует тщательнейшим образом отнестись к выбору паролей. В вопросах выбора паролей надо руководствовться теми же соображениями что и при выборе паролей при регистрации пользователей.
В качестве дополнительных мер, можно явно указать список пользователей, которым разрешена либо запрещена удалённая работа. За это отвечают параметры AllowUsers и DenyUsers в /etc/openssh/sshd_config .
Наконец, можно осложнить жизнь потенциальному злоумышленнику, отключив возможность удалённой регистрации в системе для суперпользователя ( root ). Для этого в /etc/openssh/sshd_config нужно добавить строку PermitRootLogin no .
Как и в случае с любыми потенциально опасными службами, следует постоянно следить за обновленями безопасности, связанными с данными пакетами. Администратор системы, заботящийся о безопасности, должнен непременно устанавливать обновления штатным способом:
# apt-get update # apt-get upgrade
За более детальной информацией по настройке sshd следует обращаться к руководству sshd_config(5) . Настройка клиентской части подробно описана в ssh_config(5) .