Secure Shell (Русский)

From ArchWiki
Revision as of 23:06, 11 February 2009 by Dr.Ziko (talk | contribs) (Настройка SSH сервера)
Jump to: navigation, search


Введение

Безопасная Оболочка или SSH - это сетевой протокол, который позволяет обмениваться информацией между двумя компьютерами по безопасному каналу. Высокий уровень шифрования обеспечивает конфиденциальность передаваемых данных. SSH использует открытый ключ шифрования для авторизации на удалённом компьютере и в то же время позволяет удалённому компьютеру идентифицировать пользователя если нужно.

SSH обычно использует лог на удалённой машине и запускает на ней команды, но также поддерживает "туннелирование", TCP порты и подключения через X11, он позволяет передавать файлы по протоколам SFTP или SCP.

По умолчанию сервер SSH использует стандартный порт 22. На клиентской части обычно используются соединения, которые разрешены демоном "sshd". SSH одинаково распространён на всех популярных операционных системах, таких как Mac OS X, Linux, Solaris, Windows и OpenVMS. Существует множество пропиетарных, свободных и версий с открытым исходным кодом связок сервер-клиент, которые отличаются своей сложностью и функционалом.

Установка OpenSSH

# pacman -Sy openssh

Настройка SSH сервера

Для настройки сервера Вам следует поправить конфигурационный файл:

$ su -c 'nano /etc/ssh/sshd_config'

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

Когда порт SSH будет открыт, его можно будет обнаружить любым сканером портов, например, nmap.

Настройка конфигурационного файла

Конфигурационный файл находится по адресу /etc/ssh/ssh_config и по умолчанию выглядит следующим образом:

#	$OpenBSD: sshd_config,v 1.75 2007/03/19 01:01:29 djm Exp $

# This is the ssh client system-wide configuration file.  See
# ssh_config(5) for more information.  This file provides defaults for
# users, and the values can be changed in per-user configuration files
# or on the command line.

# Configuration data is parsed as follows:
#  1. command line options
#  2. user-specific file
#  3. system-wide file
# Any configuration value is only changed the first time it is set.
# Thus, host-specific definitions should be at the beginning of the
# configuration file, and defaults at the end.

# Site-wide defaults for various options

# Host *
#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   Port 22
#   Protocol 2,1
#   Cipher 3des
#   Ciphers aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc
#   EscapeChar ~

Рекоммендуется поменять строку с надписью Protocol на следующую:

Protocol 2

Эти изменения обозначают, что будет использоваться только протокол версии 2.

Также есть и конфигурационный файл для демона SSH. Он находится по адресу /etc/ssh/sshd_config и обычно выглядит вот так:

#	$OpenBSD: sshd_config,v 1.75 2007/03/19 01:01:29 djm Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options change a
# default value.

#Port 22
#Protocol 2,1
ListenAddress 0.0.0.0
#ListenAddress ::

# HostKey for protocol version 1
#HostKey /etc/ssh/ssh''host''key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh''host''rsa_key
#HostKey /etc/ssh/ssh''host''dsa_key

# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 768

# Logging
#obsoletes ~QuietMode and ~FascistLogging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
#PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6

#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile     .ssh/authorized_keys

# For this to work you will also need host keys in /etc/ssh/ssh''known''hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no

# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ~ChallengeResponseAuthentication mechanism.
# Depending on your PAM configuration, this may bypass the setting of
# PasswordAuthentication, ~PermitEmptyPasswords, and
# "PermitRootLogin without-password". If you just want the PAM account and
# session checks to run without PAM authentication, then enable this but set
# ChallengeResponseAuthentication=no
#UsePAM no

#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression yes
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10

# no default banner path
#Banner /some/path

# override default of no subsystems
Subsystem       sftp    /usr/lib/ssh/sftp-server

Для разрешения доступа только конкретным пользователям, добавьте следующую строку:

AllowUsers    user1 user2 ...

Вместо user1 и user2 ... подставляются реальные пользователи. Также можно поменять несколько следующих строк строк:

Protocol 2
.
.
.
LoginGraceTime 120
.
.
.
PermitRootLogin no # (put yes here if you want root login)

Также можно раскомментировать опцию BANNER и исправить /etc/issue для удобного для Вас текста приглашения в систему.

Другие включения

Для того, чтобы разрешить людям подключаться к Вашей машине вы должны отредактировать файл по адресу /etc/hosts.allow и добавить следующие строки:

# let everyone connect to you (Позволяет подключаться всем пользователям)
sshd: ALL

# OR you can restrict it to a certain ip (Позволяет подключаться с людям с конкретными адресами IP)
sshd: 192.168.0.1

# OR restrict for an IP range (Позволяет подключаться целой локальной сети)
sshd: 10.0.0.0/255.255.255.0

# OR restrict for an IP match (Позволяет подлючаться ограниченному кругу людей, используя маску)
sshd: 192.168.1.

Теперь нужно проверить файл /etc/hosts.deny. Там должны присутствовать строки:

ALL: ALL: DENY

Если таких строк нет, то добавьте их. Всё, теперь можно наслаждаться подключением по SSH :)

Для того, чтобы новая конфигурация заработала, необходимо перезапустить демона:

$ su -c '/etc/rc.d/sshd restart'

Управление демоном SSHD

Чтобы демон включался автоматически при запуске системы, добавьте его в список демонов в секции "DAEMONS" в файле /etc/rc.conf:

DAEMONS=(... ... sshd ... ...)

Для зупуска/перезапуска/остановки демона используются следующие команды:

# /etc/rc.d/sshd {start|stop|restart}

Подключение к серверу

Для подключения к серверу введите:

$ ssh -p port user@server-address