Личный блог Suvan`a.

Работая и играя с Linux... И что из этого иногда получается.

Настройка SSH.

Рубрика: Безопасность -> Защита сервисов
Метки: | |
Четверг, 13 августа 2009 г.
Просмотров: 7354
Подписаться на комментарии по RSS

     SSH представляется безопасной альтернативой протокола Telnet. Учитывая преимущества SSH, Telnet сейчас практически не применяется - в нем нет больше нужды. Хотя SSH считается значительно безопаснее, чем Telnet, все же есть над чем поработать. В данном пункте будет рассмотренр, как надо сделать применение SSH еще безопаснее.

     Настройка. Опции настройки SSH.

     SSHD определяется и запускается по умолчанию во многих дистрибутивах Linux. Конфигурационный файл SSHD называется /etc/sshd_config или /etc/sshd/sshd_config. Наиболее интересными в нем являются опции:


  • AllowGroups <group1> [group2] - опция позволяет указать список групп, пользователи которых имеют право регистрироваться в системе с помощью SSH. Рекомендуется создать специальную группу, к примеру sshuser, и поместить в нее всех пользователей, которым разрешен доступ по SSH.
  • AllowUsers <userl> [user2] - предопределяет список пользователей, которым разрешен SSH-доступ. Пользователи могут быть указаны в виде пользователь@узел, что разрешает доступ конкретных пользователей только с явственных узлов.
  • Banner <файл> - этот файл будет показан перед регистрацией пользователя в системе.
  • DenyGroups <group1> [group2] - список групп, которым запрещен SSH-доступ. Вместо данной директивы для ограничения доступа рекомендуется применять директиву AllowGroups.
  • DenyUsers <user1> [user2] - определяет список пользователей, которым запрещен SSH-доступ. Вместо нее лучше применять AllowUsers.
  • PermitEmptyPasswords <yes|no> - если включена, то разрешено употребление учетных записей без пароля. Нужно выключить ее (nо).
  • PermitRootLogin <yes|no> - если включена, то допускается регистрация пользователя root. Нужно выключить данную опцию. Если нужен root-доступ к удаленной машине, нужно регистрироваться как обычный пользователь, а затем вводить команду su.
  • UseDNS <yes|no> - если включена, то имена удаленных узлов будут разрешены в IP-адреса, а затем - обратно, чтобы проверить соответствие имени узла. Двойное преобразование необходимо, чтобы обеспечить защиту от DNS-спуфинга (поддержки доменного имени).
  • X11Forwarding <yes|no> - разрешает туннелирование X11-трафика по SSH. Да, такой режим безопаснее, чем обычный, но если SSH-машина скомпрометирована, хакер может захватить дисплей X11. Если не надо систематически туннелировать X11-трафик, то лучше выключить ее.

     Сокрытие версии SSH-сервера.

     Для данного придется перекомпилировать текущую версию Open SSH. Для этого надо перейти в каталог, содержащий исходный код OpenSSH, найти файл version.h и изменить в нем строку:

#define SSH_VERSION "0penSSH_3 . х"

     Можно изменить эту строку - надо употреблять что угодно, хоть «MySSH v1.O», потом перекомпилировать и переустановить SSH.

     SSH-утилиты.

     SSH предлагает достойную замену пакету BSD R* Suite (программы rep, rsh и rlogin), предлагая безопасные версии этих программ.

     SCP

Программа scp (secure copy) копирует файлы с одной машины на другую по зашифрованному каналу. Ее синтаксис аналогичен команде ср. Следующий пример копирует локальный файл /home/den/index.html в каталог /var/www/htdocs на удаленной машине test.net:

$ scp /home/xew/index.html xew@test.net:/var/www/htdocs/

xew@test.net's password:

index.html

100% 467 O.OKB/s 00:00

     Для копирования файла с удаленной машины на локальную нужно употреблять команду:

$ scp xew@test.net:/var/www/htdocs/images/*.gif /home/xew

     SFTP

     Sftp - это безопасная версия FTP. Разница между обычным ftp и sftp заключается только в том, что sftp передает весь трафик (сессии данных и управляющей сессии) по зашифрованному каналу:

sftp xew@test.net Connecting to example... xew@test.net's password: sftp> ls -l

drwx-x 0 0 0 4096 Aug 22 15:03 .

drwx-xr-x 0 0 0 4096 Jar. 9 2004

drwx 0 0 0 4096 Jul 28 13:06 .BitchX

-rw-r—r—0 0 0 1126 Aug 23 1995 .Xresources

     Туннелирование соединения.

     Туннелирование соединения представляется экспериментальной функцией SSH. Туннелирование означает, что данные прочих протоколов, к примеру РОРЗ, будут передаваться по защищенному каналу, предоставляя тем самым защиту для протоколов, передающих данные в незашифрованном виде.

     Для создания туннеля применяется опция -L, ее синтаксис следующий:

$ ssh -L <порт>:<узел>:<удаленный порт>

     Например:

$ ssh -L 12345:xew.test.net:110

     Локальный порт 12345/ТСР будет употребляться в связке с портом 110 удаленной машины. Это можно проверить, запустив telnet и присоединившись к порту 12345 локальной машины - будет показан баннер РОРЗ-сервера. Можно настроить почтовый клиент на применение почтового сервера localhost. Весь РОРЗ-трафик между xew.test.net и локальной машиной будет туннелирован с помощью SSH.

     Недостатком данного метода представляется то, что на удаленной машине должен быть запущен SSH-демон. А преимуществом - простота настройки и употребления. Но не надо забывать, что имеются более надежные протоколы для туннелирования соединений, к примеру IPSec, рассмотренный ранее.

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



(обязательно)