Linux show openssh version

Глава 11 Программы обеспечения безопасности (Сетевые сервисы) — OpenSSH

Linux OpenSSH Клиент/Сервер

Краткий обзор.

Согласно официальному OpenSSH README файлу:

Ssh (Secure Shell) — это программа для подключения к компьютерам через сеть, выполнения команд на удаленных машинах и перемещения файлов из одного компьютера на другой. Она предоставляет строгую аутентификацию и безопасную передачу информации по незащищенным каналам. Ssh предназначен заменить rlogin, rsh, rcp и rdist.

В нашей конфигурации мы будем настраивать OpenSSH на поддержку tcp-wrappers (inetd superserver) для улучшения безопасности уже безопасной программы и чтобы не запускать ее как демон. В результате, когда клиент пытается соединиться с сервером, ssh будет запущен TCP-WRAPPER-ом для его аутентификации и авторизации перед тем, как разрешить подключение.

OpenSSH — это свободно-распространяемая замена SSH1, в которой были удалены все патентозависимые алгоритмы (во внешние библиотеки), все известные ошибки в безопасности и добавлены новые возможности. Мы рекомендуем вам использовать OpenSSH вместо SSH1 (свободно- распространяемый, но содержащий ошибки) или SSH2, который изначально тоже был бесплатным, но сейчас поставляется под коммерческой лицензией. Для тех, кто использует SSH2 от компании Datafellows, мы описываем в этой книге обе версии, начиная с OpenSSH.

Эти инструкции предполагают.
Unix-совместимые команды.
Путь к исходным кодам «/var/tmp» (возможны другие варианты).
Инсталляция была проверена на Red Hat Linux 6.1 и 6.2.
Все шаги инсталляции осуществляются суперпользователем «root».
OpenSSH версии 1.2.3

Пакеты.
Домашняя страница OpenSSH: http://violet.ibs.com.au/openssh /
Вы должны скачать: openssh-1.2.3.tar.gz
Необходимые условия.

OpenSSH требует, чтобы был установлен пакет zlib-devel, который содержит заголовочные файлы и библиотеки нужные программам, использующим библиотеки zlib компрессии и декомпрессии. Если это не так, то установите его с вашего Red Hat Linux 6.1 или 6.2 CD-ROM.

Чтобы узнать установлен ли у вас zlib-devel дайте команду:
[root@deep /]# rpm -qi zlib-devel
package zlib-devel is not installed

Для инсталляции zlib-devel дайте следующие комнады: OpenSSL, необходимая для включения поддержки SSL в OpenSSH, тоже должна быть установлена на вашей системе.

ЗАМЕЧАНИЕ. Для того, чтобы получить большую информацию об OpenSSL сервере читайте соответствующую главу этой книги. Даже если вам не нужно использовать OpenSSL для создания и хранения зашифрованных файлов ключей, все равно для правильной работы OpenSSH требуются библиотеки OpenSSL.

Хорошей идеей будет создать список файлов установленных в вашей системе до инсталляции OpenSSH и после, в результате, с помощью утилиты diff вы сможете узнать какие файлы были установлены. Например,

До инсталляции:
find /* > OpenSSH1

После инсталляции:
find /* > OpenSSH2

Для получения списка установленных файлов:
diff OpenSSH1 OpenSSH22 > OpenSSH-Installed

Раскройте тарбол:
[root@deep /]# cp openssh-version.tar.gz /var/tmp
[root@deep /]# cd /var/tmp
[root@deep tmp]# tar xzpf openssh-version.tar.gz

Компиляция и оптимизация.
Шаг 1.

Переместитесь в новый каталог OpenSSH и выполните следующие команды:
CC=»egcs» \
CFLAGS=»-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro —
march=pentiumpro -fomit-frame-pointer -fno-exceptions» \
./configure \
—prefix=/usr \
—sysconfdir=/etc/ssh \
—with-tcp-wrappers \
—with-ipv4-default \
—with-ssl-dir=/usr/include/openssl

Вышеприведенные опции говорят OpenSSH следующее:

Вкомпилировать libwrap и включить поддержку TCP Wrappers (/etc/hosts.allow|deny)
Заблокировать длительные задержки при разрешении имен под Linux/glibc-2.1.2 для улучшения времени соединения
Определить месторасположение OpenSSL
Шаг 2.

Сейчас мы должны компилировать и инсталлировать OpenSSH на сервере:
[root@deep openssh-1.2.3]# make
[root@deep openssh-1.2.3]# make install
[root@deep openssh-1.2.3]# make host-key
[root@deep openssh-1.2.3]# install -m644 contrib/redhat/sshd.pam /etc/pam.d/sshd

make — компилирует исходные коды в двоичные файлы;
make install — инсталлирует исполняемы и вспомогательные файлы
make host-key — создает ключ сервера
install — инсталлирует PAM поддержку на Red Hat Linux, которая сейчас имеет больше возможностей, чем популярный пакет из коммерческого ssh-1.2.x.
Очистка после работы. [root@deep /]# cd /var/tmp
[root@deep tmp]# rm -rf openssh-version/ openssh-version.tar.gz

Читайте также:  Безопасный режим windows 10 ноутбук packard bell

Команда «rm», использованная выше, будет удалять все исходные коды, которые мы использовали при компиляции и инсталляции OpenSSH. Она также удалит .tar.gz архив.

Конфигурации.

Для запуска OpenSSH клиента/сервера следующие файлы должны быть созданы или скопированы в нужный каталог:

Копируйте ssh_config в каталог «/etc/ssh/».
Копируйте sshd_config в каталог «/etc/ssh/».
Копируйте sshd в каталог «/etc/pam.d/».

Вы можете взять эти файлы из нашего архива floppy.tgz.
Настройка файла «/etc/ssh/ssh_config».

Файл «/etc/ssh/ssh_config» это конфигурационный файл для OpenSSH, действующий в масштабах системы, который определяет опции изменяющие действия клиентских программ. Он содержит пары ключ-значение, одну на строку, не зависящие от регистра. Здесь описаны наиболее важные ключи влияющие на безопасность; полный список вы можете найти на стрнице руководства (man) для ssh (1).

Редактируйте файл ssh_config (vi /etc/ssh/ssh_config) и добавьте/или измените следующие параметры: Host *
Опция «Host» ограничивает влияние всех нижестоящих объявлений и опций только на компьютеры соответствующих шаблону приведенному после ключевого слова. «*» подразумевает все компьютеры. При помощи этой опции вы сможете в одном файле определить параметры для разных удаленных машин.

ForwardAgent no
Опция «ForwardAgent» определяет какой агент установления подлинности соединения должен быть направлен на удаленную машину.

ForwardX11 no
Опция «ForwardX11» для людей, которые используют Xwindow GUI и хотят автоматически перенаправлять сессии X11 на удаленную машину. Так как мы устанавливали сервер и не инсталлировали GUI, мы можем спокойно выключить эту опцию.

RhostsAuthentication no
Опция «RhostsAuthentication» определяет можем ли мы использовать аутентификацию, базирующуюся на rhosts. Так как она не безопасна, то мы отключаем ее.

RhostsRSAAuthentication no
Опция «RhostsRSAAuthentication» определяет использовать ли rhosts аутентификацию совместно с RSA host аутентификацией или нет.

RSAAuthentication yes
Опция «RSAAuthentication» определяет использовать RSA аутентфикацию или нет. Эта опция должна быть установлена в «yes» для лучшей безопасности ваших сессий. RSA использует пару из общедоступного и личного ключей, созданную при помощи утилиты ssh-keygen1.

PasswordAuthentication yes
Опция «PasswordAuthentication» определяет можем ли мы использовать аутентификацию, базирующуюся на паролях, или нет. Для большей безопасности эта опция должна быть установлена в «yes».

FallBackToRsh no
Опция «FallBackToRsh» определяет, что если соединение с демоном ssh завершилось ошибкой, должен ли автоматически использоваться rsh. Запомните, что сервис rsh небезопасен, поэтому эту опцию устанавливаем в no.

UseRsh no
Опция «UseRsh» определяет, что сервис rlogin/rsh должен использоваться на этом компьютере. Как и с опцией «FallBackToRsh», эта опция должна быть установлена в «no» из соображений безопасности.

BatchMode no
Опция «BatchMode» определяет можем ли мы отключить запрос имени и пароля при соединении. Эта опция полезна когда вы создаете скрипты и не хотите вводить пароль. (например, скрипт, который использует команду scp для создания резервных копий через сеть).

CheckHostIP yes
Опция «CheckHostIP» определяет будет или нет ssh дополнительно проверять IP адрес компьютера, который подключается к серверу, для определения DNS spoofing. Рекомендую установить эту опцию в «yes».

StrictHostKeyChecking no
Опция «StrictHostKeyChecking» определяет будет или нет ssh автоматически добавлять новые ключи компьютера в файл $HOME/.ssh/known_host. Эта опция, когда установлена в «yes», предоставляет максимальную защиту от атак Trojan horse. С этой опцией должна быть проведена одна процедура. Вначале она устанавливается в «no», чтобы ключи с обычно используемых компьютеров были собраны в файле, а затем нужно установить ее в «yes», чтобы воспользоваться ее дополнительными возможностями.

/.ssh/identity
Опция «IdentityFile» определяет альтернативный идентичный файл RSA идентификации для чтения. Много идентичных файлов может быть определено с помощью этой опции.

Port 22
Опция «Port» опередляет какой порт используется для ssh соединений на удаленном компьютере. По умолчанию он равен 22.

Читайте также:  Windows mail windows 10 download

Cipher blowfish
Опция «Cipher» определяет какой шифр должен быть использован для шифрования сессии. blowfish использует 64-битные блоки и ключи до 448 бит.

Опция «EscapeChar» определяет сессионный знак перехода в приостановленное состояние.

Настройка файла «/etc/ssh/sshd_config».

Файл «/etc/ssh/sshd_config» — это конфигурационный файл для OpenSSH, действующий в масштабах системы, который определяет опции изменяющие действия демона. Он содержит пары ключ-значение, одну на строку, не зависящие от регистра. Здесь описаны наиболее важные ключи влияющие на безопасность sshd; полный список вы можете найти на странице руководства к sshd (8).
Редактируйте файл sshd_config (vi /etc/ssh/sshd_config) и добавьте/или измените следующие параметры: Port 22
Опция «Port» определяет какой порт слушает ssh демон для входящих соединений. По умолчанию — 22.

ListenAddress 192.168.1.1
Опция «ListenAddress» определяет IP адрес интерфейса к которому подключен сокет ssh демона. По умолчанию это «0.0.0.0»; для улучшения безопасности вы можете ограничиться только одним адресом.

HostKey /etc/ssh/ssh_host_key
Опция «HostKey» определяет место содержащее приватный ключ сервера.

ServerKeyBits 1024
Опция «ServerKeyBits» определяет как много бит используется в ключе сервера. Эти биты используются когда демон стартует для генерации RSA ключа.

LoginGraceTime 600
Опция «LoginGraceTime» определяет как долго в секундах после соединения сервер ждет правильной регистрации до его разрыва.

KeyRegenerationInterval 3600
Опция «KeyRegenerationInterval» определяет как долго в секундах сервер должен ждать перед автоматической регенерацией своего ключа. Эта опция защиты предназначена для предотвращения расшифровки захваченного сеанса связи.

PermitRootLogin no
Опция «PermitRootLogin» определяет может ли root подключаться, используя ssh. Никогда не говорите «yes» в этой опции.

IgnoreRhosts yes
Опция «IgnoreRhosts» определяет должны ли файлы rhosts или shosts использоваться при аутентификации. Из соображений безопасности рекомендуется не использовать эти файлы.

IgnoreUserKnownHosts yes
Опция «IgnoreUserKnownHosts» определяет должен ли ssh демон игнорировать пользователей «$HOME/.ssh/known_hosts» во время RhostsRSAAuthentication.

StrictModes yes
Опция «StrictModes» определяет должен ли ssh проверять права пользователей в их домашних каталогах и файлы rhosts перед тем, как пустить на сервер. Эта опция должна всегда быть установлена в «yes», потому что иногда пользователи могут случайно оставить свои каталоги и файлы открытыми всем для записи.

X11Forwarding no
Опция «X11Forwarding» определяет должен ли сервер перенаправлять X11 пакеты или нет. Так как мы установили сервер без GUI, то эту опцию устанавливаем в no.

PrintMotd yes
Опция «PrintMotd» определяет должен ли ssh демон печатать содержимое файла «/etc/motd», когда пользователь входит на сервер. Файл «/etc/motd» также известен как «сообщение дня».

SyslogFacility AUTH
Опция «SyslogFacility» определяет с какого средства (facility) поступают сообщения в syslog от sshd. facility представляет подсистему, которая создает сообщение, в нашем случае AUTH.

LogLevel INFO
Опция «LogLevel» определяет уровень важности сообщения поступающего системе syslog от sshd. INFO — хороший выбор. Смотрите страницу man для sshd для получения большей информации о других возможностях.

RhostsAuthentication no
Опция «RhostsAuthentication» определяет может ли sshd использовать rhosts аутентификацию. Так как rhosts аутентификация небезопасна, то мы не используем эту опцию.

RhostsRSAAuthentication no
Опция «RhostsRSAAuthentication» определяет можно ли использовать rhosts аутентификацию вместе с RSA аутентификацией.

RSAAuthentication yes
Опция «RSAAuthentication» определяет можно ли использовать RSA аутентификацию. Эта опция должна быть установлена в «yes» для лучшей безопасности. RSA использует пару из общедоступного и личного ключей, созданных с помощью утилиты ssh-keygen1.

PasswordAuthentication yes
Опция «PasswordAuthentication» определяет можно ли использовать аутентификацию по паролю. Для лучшей защищенности эта опция должна быть установлена в «yes».

PermitEmptyPasswords no
Опция «PermitEmptyPasswords» определяет позволяет ли сервер входить на сервер с бюджетов с пустыми паролями. Если вы используете утилиту «scp» для автоматического создания резервных копий через сеть, то нужно установить эту опцию в «yes».

Читайте также:  Linux mint mate обзор

AllowUsers admin
Опция «AllowUsers» определяет и контролирует какие пользователи могут использовать ssh сервис. Для разделения нескольких имен используйте пробелы.

Настройка OpenSSH для использования с TCP-Wrappers inetd супер сервером.

Редактируйте файл inetd.conf (vi /etc/inetd.conf) и добавьте в него следующую строку:
ssh stream tcp nowait root /usr/sbin/tcpd sshd -i

ЗАМЕЧАНИЕ. Параметр ‘»-i» говорит, что sshd должен запускаться из inetd. После редактирования файла «etc/inetd.conf» отправьте демону inetd сигнал SIGHUP, чтобы он перечитал файл конфигурации.
[root@deep /]# killall -HUP inetd Шаг 2.

Редактируйте файл hosts.allow file (vi /etc/hosts.allow) и добавьте следующую строку:
sshd: 192.168.1.4 win.openna.com

Которая значит, что клиенту с IP адресом «192.168.1.4» и именем компьютера «win.openna.com» разрешен ssh доступ к серверу.

Эти строки «демона» (для tcp-wrappers) используются sshd:

sshdfwd-X11 (если вы хотите разрешить/запретить X11-forwarding).
sshdfwd-

(для tcp-forwarding).
sshdfwd-

(номер порта определен в /etc/services. Ипсользуемый в tcp-forwarding).

ЗАМЕЧАНИЕ. Если вы решили переключиться на использование ssh, сделайте так, чтобы вы инсталлировали и использовали его на всех ваших серверах. Наличие десяти защищенных серверов и одного незащищенного бесполезно.

Дополнительная документация.

$ man ssh (1) — OpenSSH secure shell клиент (программа удаленного подключения)
$ man ssh [slogin] (1) — OpenSSH secure shell клиент (клиент (программа удаленного подключения)
$ man ssh-add (1) — добавление identities для агента аутентификации
$ man ssh-agent (1) — аутентификационный агент
$ man ssh-keygen (1) — генерация аутентификационного ключа
$ man sshd (8) — ssh демон

Конфигурирование OpenSSH для каждого пользователя

Создайте, локально, ваш общедоступный и персональный ключи:
[root@deep /]# su admin
[admin@deep /]$ ssh-keygen

Результат должен выглядеть примерно так: ЗАМЕЧАНИЕ. Если вы имеете несколько бюджетов, то вы можете хотеть создать независимые ключи для них.

Вы хотите создать ключи для:

  1. Ваш почтовый сервер
  2. Ваш Веб сервер
  3. Ваш шлюз

Это позволит вам ограничить доступ между серверами, например не позволит почтовому бюджету получить доступ на Веб сервер или Шлюз. Это расширяет полную защиту, если одни из ваших аутентификационных ключей скомпрометирован по какой-нибудь причине.
Шаг 2.

Копируйте ваш общедоступный ключ (identity.pub) на удаленный компьютер в каталог «/home/admin/.ssh» под именем «authorized_keys».

ЗАМЧЕАНИЕ. Одним из способов копирования файла является использование ftp команд или вам нужно послать по электронной почте ваш общедоступный ключ администратору системы. Только включите содержимое файла

/.ssh/identity.pub в сообщение.

Изменение вашей pass-phrase.

Утилиты пользователя OpenSSH

«ssh» (Secure Shell) команда предоставляющая безопасную шифрованную связь между двумя недоверенными компьютерами через небезопасную сеть. Эта программа для безопасного подключения к удаленной машине и выполнения команд на ней. Она заменяет такие небезопасные программы, как telnet, rlogin, rcp, rdist и rsh.

Для подключения к удаленной машине используйте команду:
[root@deep /]# ssh -l

Например: Где это имя, которое вы используете для соединения с ssh сервером и это имя удаленного ssh сервера.
scp

«scp» (Secure Copy) это утилита для копирования файлов из локальной системы на удаленную и наоборот, или между двумя удаленными системами. Для копирования файлов с удаленной системы на локулбную используйте следующую команду:
[root@deep /]# su admin
[admin@deep /]$ scp -p :/dir/for/file localdir/to/filelocation

Например:
[admin@deep /]$ scp1 -p admin@mail:/etc/test1 /tmp
Enter passphrase for RSA key ‘admin@mail.openna.com’:
test1 | 2 KB | 2.0 kB/s | ETA: 00:00:00 | 100%

Для копирования файла с локальной на удаленную систему используйте следующую команду:
[root@deep /]# su admin
[admin@deep /]$ scp -p localdir/to/filelocation :/dir/for/file

Например:
[admin@deep /]$ scp1 -p /usr/bin/test2 admin@mail:/var/tmp
admin@mail’s password:
test2 | 7 KB | 7.9 kB/s | ETA: 00:00:00 | 100%

ЗАМЕЧАНИЕ. Опция «-p» говорит, что время модификации и доступа, также как и режимы исходных файлов, должны быть сохранены и на копии. Это обычно желательно.

Источник

Оцените статью