Оглавление Оглавление 1

Вид материалаДокументы

Содержание


Безопасная оболочка (OpenSSH)
Настройка OpenSSH
scp / sftp
It is possible that someone is doing something nasty!
Вход в систему с помощью открытого ключа
Настройка маршрутизации X-протокола
Подобный материал:
1   ...   19   20   21   22   23   24   25   26   ...   29

Упражнения


Упражнение 1 :


  • Установите wu-ftpd
  • Смените предупреждающий и приветствующий текст
  • Настройте ftp-сервер со сменой корневой файловой системы
  • Настройте анонимную выгрузку файлов
      1. Решения




Решение 1 :
  • Следуйте инструкциям этой главы
    1. Безопасная оболочка (OpenSSH)

                  1. Ключевые файл, термины и утилиты:

/etc/ssh/sshd_config
~/.ssh/identity.pub и identity

~/.ssh/authorized_keys
.shosts

.rhosts
      1. Настройка OpenSSH

Введение


OpenSSH - это бесплатная реализация безопасной оболочки (secure shell). Эта утилита является заменой старых и небезопасных утилит rsh, rlogin, telnet, ftp, ...
  • SSH предоставляет возможности оболочки поверх безопасного зашифрованного канала передачи данных.
  • Файлы могут передаваться с помощью утилит scp или sftp
  • SSH предоставляет возможности маршрутизации протокола X11
  • Прозрачный вход в систему с аутентификацией при помощи публичных ключей

sshd


Сервер SSH – демон sshd - обычно устанавливается вместе с пакетом ssh. Конфигурация находится в файле /etc/ssh/sshd_config.

Некоторые настройки безопасности:

...

Port 22

Protocol 2

HostKey /etc/ssh/ssh_host_rsa_key

HostKey /etc/ssh/ssh_host_dsa_key

UsePrivilegeSeparation yes

...

LoginGraceTime 600

PermitRootLogin no

StrictModes yes

...

#AuthorizedKeysFile %h/.ssh/authorized_keys

...

IgnoreRhosts yes

PermitEmptyPasswords no




ssh


Конфигурационный файл ssh клиента: /etc/ssh/ssh_config. X11Forwarding может быть установлен по умолчанию.


  • Вход в систему через SSH

[root@test root]# ssh 192.168.0.69

Password:

Last login: Mon Jul 29 16:36:57 2004 from 192.168.0.42

[root@test1 root]#


  • Пользователь для утилиты ssh может быть указан двумя способами

[root@test root]# ssh -l root 192.168.0.69

[root@test root]# ssh root@192.168.0.69


  • Если не указано имя пользователя, будет использоваться текущая учетная запись


  • На удаленном хосте могут быть выполнены команды

[root@test root]# ssh 192.168.0.69 ls /usr/share/doc



scp / sftp


Файлы можно копировать с помощью scp, утилиты безопасного копирования.

[root@test root]# scp some-file.tar.gz user@remote:

[root@test root]# scp some-file.tar.gz user@remote:/home/user

[root@test root]# scp -r something/ user@remote:/tmp/


OpenSSH предоставляет утилиту подобную ftp - sftp, которая позволяет перемещаться по каталогами на удаленном сервере.

[user@test user]$ sftp user@192.168.0.206

Connecting to 192.168.0.206...

Password:

sftp> ls /mnt

/mnt/.

/mnt/..

/mnt/floppy

/mnt/slash

/mnt/usbstorage

sftp>

[user@test user]$



Безопасность

  • Данные шифруются
  • Нужно использовать только протокол версии 2, протокол версии 1 считается небезопасным
  • Для идентификации на каждой машине существует ключ хоста



[root@test root]# cat /etc/ssh/ssh_host_rsa_key

-----BEGIN RSA PRIVATE KEY-----

MIICWwIBAAKBgQDLI9tAuoCgm959RaJSXMnh8UIj008r6Pg40nKuVfcsZ+nVTseY

EeT0YWg8ulDUlJlDg9J+432ZRkmw3lup0U/9oMGJ8lrofK17xExH8gsHcLTiKwrZ

pOXrVD19H+9B4kRnMSVeVqPcgENsHeijxp7NoZldxm5Ia17MVUUdQ6PbvQIBIwKB

gAubpiD0tuSbMUj8qjCXloHwh2/C7pTLe+X9ZaOP4j0NQI/YnbDrFGW8bFs92Luw

uE0AN+n+XvLQ0QLK4KqePxW0m4Itx2UeJXejoG3TUO6loct1sJnwtvZj/JSuZpv/

9WCMrprFOOKl8b2g830U69gR8ZMwCHYhTRilcmLJUYWLAkEA5wZIlsW/RzqxJe18

FjSp1DgRLnF2pmvbJtE7+oYNXXccZTo27rLGboydjXQR7LmgtV0h9P4u5DWz3wp5

ZWgnwQJBAOEZ2zpzv6XjHO7nSenODUntaHEG3Qn4OFeoFzllioWHMS37kuyNl7mw

WA/PhOvF57I4rAjcBkBj6Sbo4xspEv0CQQCearVus3vZEk2WWbQse+IrHyG5cl/9

FsIpPwSOh86mfY/QYm7PkIgRSnqqI7SFEZLFgbDigmlMB5FIfDX8ZK2LAkEAzc5/

S2KDVdb14b2FaAzY8yIzmonuqgeD+F8rLSmjOEEXBXhL0PZ8F3yoSPg/A3Mc+rd4

t6SYAFtY0x4Rd+sKCwJASvw6wMKi3EZhb4Ii3ZeG9wWMiZuWFVluzggKz7E80IJa

Sn1TIzl9mnOo8/E5VoH171QOFETv1/rloIDH5QoJJw==

-----END RSA PRIVATE KEY-----

[root@test root]#


Подписи известных хостов сохраняются в домашнем каталоге пользователя:

[user@test user]$ cat .ssh/known_hosts

192.168.0.206 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAz66o+3HSw83k8l0G/hi9x9NeqDZNAHoY43lE2F1JtcypJQifdN9maSrGFuUispNb1vvz69BgHdtZ1c67+EftgsGH7NCcjgFGg7AeLpdj6TVp8C0K5dLwmqIlaOdCV6OaLyohhucpZxWRCREN1ezt0mNysdUobLP3vrPjCmqJLN8=

[user@test user]$


Если во время установления ssh-соединения было определено, что подпись изменилась, SSH выводит следующее предупреждающее сообщение:


[user@test user]$ ssh 192.168.0.206

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

Someone could be eavesdropping on you right now (man-in-the-middle attack)!

It is also possible that the RSA host key has just been changed.

The fingerprint for the RSA key sent by the remote host is

17:9b:fe:36:98:6f:60:75:69:47:e2:43:46:09:f6:3c.

Please contact your system administrator.

Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.

Offending key in /home/user/.ssh/known_hosts:1

Password authentication is disabled to avoid man-in-the-middle attacks.

X11 forwarding is disabled to avoid man-in-the-middle attacks.

Password:

Вход в систему с помощью открытого ключа


Механизм PKI (Public Key Infrastructure – инфраструктура открытых ключей) может использоваться вместо обычной авторизации с помощью пароля.

На стороне клиента должна быть сгенерирована пара ключей – открытый и закрытый. Открытый ключ публикуется, т.е. закачивается на сервер. Если SSH обнаруживает открытый ключ, он использует этот метод аутентификации и возвращается к методу аутентификации паролем только в случае неудачи.

Пара ключей может быть защищена особым паролем – он должен иметь длину минимум 25 символов, и не должен содержать нелатинских символов (представьте, что на каникулах вам придется воспользоваться иностранной клавиатурой).

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


  • DSA, версия 2.0

[user@test user]$ ssh-keygen -t dsa

Generating public/private dsa key pair.

Enter file in which to save the key (/home/user/.ssh/id_dsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/user/.ssh/id_dsa.

Your public key has been saved in /home/user/.ssh/id_dsa.pub.

The key fingerprint is:

bb:ff:f2:c1:70:0e:80:1b:23:63:ea:a2:52:c6:64:86 user@test

[user@test user]$


Каталог .ssh/ на сервере должен иметь права доступа 700. Скопируйте открытый ключ на удаленный хост или добавьте его к файлу, если он уже существует и содержит другие ключи.

[user@test user]$ ssh user@192.168.0.206 "mkdir .ssh; chmod 700 .ssh"

Warning: Permanently added '192.168.0.206' (RSA) to the list of known hosts.

Password:

Warning: No xauth data; using fake authentication data for X11 forwarding.

/usr/bin/X11/xauth: creating new authority file /home/user/.Xauthority

[user@test user]$ scp .ssh/id_dsa.pub user@192.168.0.206:/home/user/.ssh/authorized_keys

Password:

id_dsa.pub 100% 599 1.7MB/s 00:00

[user@test user]$


Проверьте аутентификацию с открытым ключом:

[user@test user]$ ssh user@192.168.0.206

Warning: No xauth data; using fake authentication data for X11 forwarding.

Linux socrate 2.6.5 #8 Sun Apr 4 15:29:35 CEST 2004 i686 GNU/Linux


user@socrate:~$


  • RSA, версия 2.0

[user@test user]$ ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/home/user/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/user/.ssh/id_rsa.

Your public key has been saved in /home/user/.ssh/id_rsa.pub.

The key fingerprint is:

7f:2b:75:4d:dc:01:06:63:e9:90:dc:a0:71:67:a2:40 user@test

[user@test user]$


Каталог .ssh/ на сервере должен иметь права доступа 700. Скопируйте открытый ключ на удаленный хост или добавьте его к файлу, если он уже существует и содержит другие ключи.

[user@test user]$ scp .ssh/id_rsa.pub user@192.168.0.206:/home/user/.ssh/test_pub_key

id_rsa.pub 100% 219 2.6MB/s 00:00

[user@test user]$ ssh user@192.168.0.206 cat .ssh/test_pub_key >> .ssh/authorized_keys

Warning: No xauth data; using fake authentication data for X11 forwarding.

[user@test user]$

Настройка маршрутизации X-протокола


На сервере в файле /etc/ssh/sshdconfig должна присутствовать строка:

X11Forwarding yes


На клиенте мы должны использовать опцию -X:

[user@test user]$ ssh -X user@192.168.0.206

Warning: No xauth data; using fake authentication data for X11 forwarding.

Linux socrate 2.6.5 #8 Sun Apr 4 15:29:35 CEST 2004 i686 GNU/Linux


Last login: Wed Aug 18 19:15:29 2004 from 192.168.0.42

user@socrate:~$