Для установки 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
Комментариев нет :
Отправить комментарий
Оставить отзыв