| Организация удаленного доступа с помощью OpenSSH |
|
Лень — основной двигатель прогресса, отнюдь не реклама. Первобытному человеку лень было лазить каждый раз на дерево для собирания его плодов, и он додумался взять палку— это первый прототипульта дистанционного управления, созданного современным человеком из тех же побуждений. С помощью Интернета и некоторых вспомогательных программ мы можем получить достук любому удаленному компьютеру, при условии, что он соответствующим образом настроен. В UNIX/Linux в свое время был очень популярный протокол Telnet. Только представьте, что вы уехали в долгожданный заслуженный отпуск, а ваше начальство сообщает, что с сервером что-то не-то, и слезно просит исправить ситуацию. Если вы не уехали на необитаемый остров, то все, что вам нужно сделать, — это добраться до компьютера, подключенного к Интернету. В каждой сетевой операционной системе — будь то FreeBSD или Windows 95 (которую, впрочем, сложно назвать сетевой) есть telnet-клиент. Данная программа так и называется — telnet (в Windows — telnet.exe). После подключения с помощью telnet к удаленному компьютеру вы може работать с ним как обычно. В окне telnet-клиента вы увидите как бы KOHCOJU. удаленного компьютера — вы будете вводить команды и получать результатi их выполнения — все так, если бы вы работали непосредственно за удален ным компьютером. Но технологии не стоят на месте, и протокол Telnet устарел. Сейчас им практически никто не пользуется. На его смену пришел SSH (Secure Shell). SSH, как видно из названия, представляет собой безопасную оболочку. Главное отличие от telnet состоит в том, что все данные (включая пароли доступа к удаленному компьютеру, передаваемые по SSH файлы) передаются в зашифрованном виде. Во времена telnet участились случаи перехвата паролей и другой важной информации, что и стало причиной создания SSH. SSH использует следующие алгоритмы для шифрования передаваемых данных: BlowFish, 3DES (Data Encryption Standard), IDEA (International Data Encryption Algorithm) и RSA (Rivest-Shamir-Adelman algorithm). Самыми надежными являются алгоритмы IDEA и RSA. Поэтому если вы передаете действительно конфиденциальные данные, лучше использовать один из этих алгоритмов. В состав любого дистрибутива Linux входит как SSH-сервер (программа, которая и обеспечивает удаленный доступ компьютеру, на котором она установлена) и SSH-клиент (программа, позволяющая подключаться к SSH-серверу). Для установки SSH-сервера нужно установить пакет openssh (это разновидность SSH-сервера), а для установки SSH-клиента — пакет openssh-clients. Если у вас на рабочей станции установлена ОС Windows и вам нужно подключиться к SSH-серверу, запущенному на Linux-машине, то по адресу http://www.cs.hut.fi/ssh/ вы можете скачать Windows-клиента для SSH. Нужно отметить, что Windows-клиент, в отличие от Linux-клиента, небесплатен, и за него нужно заплатить, если не ошибаюсь, целых 149 американских долларов. Не очень дешево, поэтому на отпуск лучше захватить ноутбук с установленным Linux. Работать с SSH-клиентом очень просто. Для подключения к удаленному компьютеру введите команду: ssh [опции] <адрес_удаленного_компьютера> В качестве адреса можно указать как IP-адрес, так и доменное имя компьютера. В табл. приведены часто используемые опции программы ssh. Опции программы ssh
В данный момент нас сейчас больше интересует файл sshd_config, содержащий конфигурацию SSH-сервера. Рассмотрим пример файла конфигурации SSH-сервера. Чтобы понять назначение директив, внимательно читайте комментарии, приведенные в листинге.
# Задает порт, на котором будет работать SSH-сервер. Если директива # не указана (закомментирована), то по умолчанию используется порт 22 #Port 22 # Директива Protocol позволяет выбрать версию протокола, # рекомендуется использовать вторую версию #Protocol 2,1 Protocol 2 # Директива AddressFamily задает семейство интерфейсов, которые должен # прослушивать SSH-сервер #AddressFamily any # Локальный адрес, который должен прослушиваться SSH-серверсм #ListenAddress 0.0.0.0 # Ключевой файл для протокола SSH версии 1 # HostKey for protocol version 1 HostKey /etc/ssh/ssh_host_key # Ключевые файлы для второй версии протокола SSH HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key # Время жизни ключа протокола первой версии. Время можно задавать в # секундах или в часах (постфикс h, например, lh — это 1 час или # 3600 секунд). По истечении указанного времени ключевой файл # будет сгенерирован заново #KeyRegenerationInterval lh # Разрядность ключа сервера в битах (только для первой версии # протокола SSH) #ServerKeyBits 768 # Директивы управления протоколированием (можно не изменять) #SyslogFacility AUTH #LogLevel INFO # Директивы аутентификации # Время, предоставляемое клиенту для аутентификации. # Задается в секундах или минутах (1т = 60 секунд).
# Если за это время клиент не аутентифицировал себя, # соединение будет прекращено #LoginGraceTime 2m # Директива разрешает (yes) удаленный доступользователя root PermitRootLogin yes # Максимальное количество попыток аутентификации #MaxAuthTries 6 # Использование RSA (yes) #RSAAuthentication yes # Аутентификация с открытым ключом (при значении yes) #PubkeyAuthentication yes ttAuthorizedKeysFile .ssh/authorized_keys # Использование .rhosts-аутентификации с поддержкой RSA. # Rhosts-аутентификацию использовать не рекомендуется, # поэтому по умолчанию для этой директивы указано # значение по. Если вы все-таки установите значение yes # для этой директивы, то не # забудьте указать в файле /etc/ssh/ssh_known_hosts IP-адреса # компьютеров, которым разрешен достук SSH-серверу. # Только для первой версии протокола #RhostsRSAAuthentication no # Если вы используете вторую версию протокола и хотите разрешить # Rhosts-аутентификацию, то вам нужно включить директиву # HostbasedAuthentication, а разрешенные узлы указываются # в файле ~/.ssh/known_hosts # HostbasedAuthentication no # Если вы не доверяете пользовательским файлам ~/.ssh/known_hosts, # установите значение yes для директивы IgnoreUserKnownHosts. # Тогда будет использован только # файл /etc/ssh/ssh_known_hosts #IgnoreUserKnownHosts no # Игнорировать файлы -/.rhosts и -/.shosts (рекомендуется установить yes) #IgnoreRhosts yes # Следующие директивы не рекомендуется изменять из соображений # безопасности — они включают аутентификацию по паролю (а не # IP-адресу компьютера, указанному в файле /etc/ssh/ssh_known_hosts), # и запрещают использование пустых паролей #PasswordAuthentication yes #PermitEmptyPasswords no # Параметры протокола аутентификации Kerberos # Рекомендуется использовать RSA-аутентификацию #KerberosAuthentication no #KerberosOrLocalPasswd yes #KerberosTicketCleanup yes #KerberosGetAFSToken no # Параметры GSSAPI #GSSAPIAuthentication no #GSSAPlCleanupCredentials yes # Использовать для аутентификации модули РАМ (по умолчанию они # не используются) #UsePAM no # Разрешить ТСР-форвардинг #AllowTcpForwarding yes # Использовать порты шлюза #GatewayPorts no # Использовать Xll-форвардинг (для запуска XII-приложений) XllForwarding yes # Выводить сообщение дня (содержится в файле /etc/motd) #PrintMotd yes # Выводить время последней регистрации пользователя #PrintLastLog yes # Не обрывать TCP-соединения после выполнения команды по SSH #TCPKeepAlive yes # Отключение (значение по) этой опции позволяет немного ускорить # работу SSH, поскольку DNS не будет использоваться для разрешения # доменных имен #UseDNS yes # Остальные параметры рекомендуется оставить как есть #UseLogin no UsePrivilegeSeparation yes #PermitUserEnvironment no #Conpression delayed #ClientAliveInterval 0 #ClientAliveCountMax 3 #PidFile /var/run/sshd.pid #MaxStartups 10 #Banner /some/path Subsystem sftp /usr/lib/ssh/sftp-server После установки пакетов openssh и openssh-clients можно приступить к тестированию работы SSH-сервера. Для запуска сервера можно использовать команду: # service sshd start А для останова — ту же команду, но с параметром stop: # service sshd stop Также запустите конфигуратор управления сервисами (drakxservices в Mandriva и system-config-services в Fedora Core) и убедитесь, что сервис sshd запускается при старте системы. После этого можно ввести команду ssh 127.0.0.1 для подключения к локальному компьютеру. Можно также подключиться с удаленного компьютера. Если сеть на локальном и удаленном компьютерах настроена правильно, проблем не должно возникнуть.
Set as favorite
Bookmark
Email This
Hits: 246 Комментарии (0)RSS feed CommentsНаписать комментарий |