15 мая 2015 г.

Установка и настройка OpenSSH-сервера на Linux




Для установки ssh-сервера выполните в терминале:

Ubuntu/Debian/Linux Mint

$ sudo apt-get update
$ sudo apt-get install openssh-server

RHEL/Centos/Fedora

$ yum -y install openssh-server

Команда, чтобы сделать копию оригинального файла sshd_config

$ sudo cp /etc/ssh/sshd_config  /etc/ssh/sshd_config.original_copy

Затем отредактируйте настройки ssh-сервера в файле /etc/ssh/sshd_config
Для  этого в терминале выполните:

$ sudo nano /etc/ssh/sshd_config

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

Port 22

Также для того чтобы OpenSSH слушал только определенные ip адресса, допустим 192.168.0.50, 192.168.0.51 на порту 777,  то просто добавьте следующие строчки:

Port 777
ListenAddress 192.168.0.50
ListenAddress 192.168.0.51

Используйте только второй протокол SSH, проверьте, что подобная строка имеет место:

Protocol 2

Также, для большей безопасности, рекомендуется в строке PermitRootLogin заменить yes на no, запретив тем самым вход по ssh используя root:

PermitRootLogin yes

Дать доступ к системе через SSH только ограниченным пользователям: root, pi

AllowUsers root pi

Ограничить доступ через SSH для пользователей: test test2 test3

DenyUsers test test2 test3

Выставляем таймаут в случае бездействия пользователя. Здесь выставлено время бездействия в секундах 600 с = 10 мин., по истечении этого времени сессия пользователя будет закрыта, и произойдет обрыв связи.

ClientAliveInterval 600
ClientAliveCountMax 0

OpenSSH сервер может использовать протокол Rlogin для авторизации и может имитировать поведение устаревшей комманды rsh, по этому отключите чтение пользовательских файлов ~/.rhosts и ~/.shosts:

IgnoreRhosts yes

Отключите аутентификацию на основе хоста

HostbasedAuthentication no

Включите предупреждающий баннер отредактировав следующую строку и создания соотв. файла:

Banner /etc/issue

Можно запретить удаленный доступ для юзеров с пустыми паролями:

PermitEmptyPasswords no

Сохраняйте логи, удостоверьтесь что директива LogLevel имеет значение INFO или DEBUG

LogLevel INFO

Перезапуск сервера OpenSSH

После изменения в /etc/ssh/sshd_config, необходимо перезагрузить ssh-сервер.

Чтобы перезапустить OpenSSH на Ubuntu или Debian:

$ sudo /etc/init.d/ssh restart
(или )
$ sudo service ssh restart

Чтобы перезапустить OpenSSH на CentOS, Fedora или RHEL:

$ sudo service sshd restart

Запуск сервера OpenSSH

Проверяем файл настроек перед перезапуском sshd:

root:~# /usr/sbin/sshd -t

В некоторых случаях, запустить сервер можно только таким способом:

root:~# /usr/local/sbin/sshd -d
(или)
root:~# /usr/sbin/sshd -d

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

$ sudo /etc/init.d/ssh status
(или)
$ sudo service ssh status

Теперь на компьютер с установленным OpenSSH-server можно зайти так:

ssh [-p port] [name@adress]

Например:

$ ssh -p 777 root@192.168.0.50

Debian / Ubuntu Linux пользователи могут удалить OpenSSH с помощью утилиты apt-get:

$ sudo apt-get remove openssh-server

CentOS / RHEL / Fedora Linux - отключить или удалить OpenSSH можно так:

$ chkconfig sshd off
$ yum erase openssh-server

Основные файлы и папки SSH:
~/.ssh/ - пользовательские конфигурационные директории
~/.ssh/authorized_keys и ~/.ssh/authorized_keys2 - списки публичных ключей (RSA или DSA), которые могут быть использованы для авторизации в пользовательский аккаунт
~/.ssh/known_hosts - ключи серверов
/etc/ssh/sshd_config - конфигурационный файл сервера OpenSSH
/etc/ssh/ssh_config - конфигурационный файл клиента OpenSSH
/etc/nologin - если этот файл существует, то система будет отказываться пускать кого-либо кроме root-пользователя. Лучше удалить и не использовать.
/etc/hosts.allow и /etc/hosts.deny - списки контроля доступа (ACL)

Python. Подключаемся по OpenSSH используя модуль Paramiko  

Комментариев нет :

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

Оставить отзыв