Установка и настройка ssh сервера в ubuntu

Установка и настройка ssh сервера в ubuntuСегодня рассмотрим, как поднять SSH-сервер в Ubuntu и подобных ей операционных системах. Обзорную статью о протоколе SSH можно прочитать по этой ссылке, в ней же приведен пример подключения по SSH через популярный клиент PuTTY. Но вернемся к SSH-серверу.

В Ubuntu и родственных дистрибутивах используется свободная реализация клиента и сервера SSH — OpenSSH. И клиент, и сервер устанавливаются общей командой:

sudo apt-get install ssh

Как правило, SSH-клиент уже установлен в системе, поэтому данная команда доустановит SSH-сервер.

Установка и настройка ssh сервера в ubuntu Установка пакетов SSH-сервера.

SSH-сервер прописывается в автозагрузку. Если нужно запустить сервер вручную, используйте команду:

sudo service ssh start

Для остановки SSH-сервера используйте команду:

sudo service ssh stop

Для перезапуска:

sudo service ssh restart

Настройки SSH-сервера лежат в файле /etc/ssh/sshd_config, который доступен для чтения и редактирования только суперпользователю.

Установка и настройка ssh сервера в ubuntu Пример файла /etc/ssh/sshd_config.

Повышаем безопасность SSH-сервера

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

Для начала будет не лишним сменить порт для подключения. Стандартом является порт 22, многие сетевые сканеры пытаются соединиться с устройствами по данному порту и получить доступ через перебор логинов и паролей. Если на сервере используется несколько сетевых интерфейсов, можно задать используемый порт отдельно для каждого, либо задать общую настройку для всех.

Если нужно задать общую настройку используемого порта, используйте директиву Port:

Port 2002

Если нужно задать используемый порт для каждого интерфейса в отдельности, используйте директиву ListenAddress:

ListenAddress 192.168.0.1:2003 ListenAddress 192.168.1.1:2004

Кстати, про IP-адреса. По умолчанию SSH-сервер в Ubuntu настроен на использование IPv4 и IPv6. Определяется это директивой AddressFamily.

Разрешены IPv4 и IPv6:

AddressFamily any

Разрешены только IPv4:

AddressFamily inet

Разрешены только IPv6:

AddressFamily inet6

Следующим разумным шагом для повышения безопасности SSH-подключений будет отключение удаленного доступа для суперпользователя. По умолчанию доступ суперпользователю открыт только по ключу, а по паролю закрыт. Определяется это директивой PermitRootLogin, которая выставлена в значении prohibit-password (в OpenSSH до версии 7.0 without-password).

Для отключения суперпользователю доступа по SSH выставьте директиву как:

PermitRootLogin no

Ещё есть особый режим подключения суперпользователя, когда такой пользователь можно зайти на SSH-сервер, пользуясь публичным ключом, но только если передаст необходимую к исполнению команду. Для этого задайте следующее значение:

PermitRootLogin forced-commands-only

Если же вы всё таки хотите разрешить суперпользователю доступ по SSH, директива должна выглядеть так:

PermitRootLogin yes

Но, хочется отметить, что в Ubuntu пользователь, созданный при установке системы, и так имеет возможность решать все административные задачи через sudo. Поэтому подключение суперпользователя по SSH выглядит излишним.

Наверное, вы уже заметили, что в материалах про SSH упоминаются разные способы аутентификации (по логину/паролю и по ключу). Разберем оба способа подробнее.

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

Аутентификация по логину/паролю разрешена:

PasswordAuthentication yes

Аутентификация по логину/паролю запрещена:

PasswordAuthentication no

Если вы всё таки хотите использовать парольную аутентификацию, хотя бы отключите возможно зайти с пустым паролем:

PermitEmptyPasswords no

Более безопасным способом подключения является аутентификация на основе SSH2 RSA-ключей. Этот способ подразумевает генерацию пользователем на своей стороне пары ключей — приватного и публичного. Публичный ключ копируется на сервер и служит для проверки идентичности пользователя.

Сам способ генерации зависит от используемого пользователем SSH-клиента. В том же PuTTY есть утилита PuTTY Key Generator (puttygen.exe), которая позволяет генерировать различные ключи, а не только RSA. О ней можете прочитать в этой статье. Но это что касается Windows.

Установка и настройка ssh сервера в ubuntu Интерфейс PuTTY Key Generator.

В Linux сгенерировать ключи можно прямо в терминале. Для этого введите команду

ssh-keygen -t rsa

Терминал выведет следующее сообщение:

Установка и настройка ssh сервера в ubuntu

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

Установка и настройка ssh сервера в ubuntu

При ответе на следующий вопрос тоже нажмите Enter.

После этого пара ключей будет создана, а на экран будет выведено сообщение следующего характера:

Установка и настройка ssh сервера в ubuntu

Для просмотра приватного ключа введите команду:

cat ~/.ssh/id_rsa

Ключ будет выведен в окне терминала.

Установка и настройка ssh сервера в ubuntu

Ну а для просмотра публичного ключа введите:

cat ~/.ssh/id_rsa.pub

Вернемся к настройке SSH-сервера в Ubuntu. Первым делом отметим, что OpenSSH умеет работать как с протоколом SSH-1, так и с SSH-2. И оба поддерживают RSA-ключи. Но SSH-1 ныне считается небезопасным протоколом, поэтому рекомендуется использовать только SSH-2. Сделать это можно через следующую директиву:

Protocol 2

За включение или выключение аутентификации по паре RSA-ключей отвечает директива PubkeyAuthentication. Для включения аутентификации задайте:

PubkeyAuthentication yes

Кроме того, нужно указать, где будут храниться публичные ключи пользователей. Для этого используется специальный файл authorized_keys. Можно использовать общий файл для всех ключей пользователей или задать по отдельному файлу для каждого пользователя. Второй способ, естественно, является более безопасным. Задать расположение файла с ключами можно директивой AuthorizedKeysFile.

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

AuthorizedKeysFile /etc/ssh/authorized_keys

Если нужно задать отдельный файл для каждого пользователя, используйте:

AuthorizedKeysFile %h/.ssh/authorized_keys

Скорее всего, указанные файлы и каталоги не были созданы заранее в Вашей системе, создайте их и скопируйте туда публичные ключи (содержимое файла id_rsa.pub, который мы создали выше при генерации ключей) командой:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@server

где user и server это имена пользователя и сервера соответственно.

Если вы уже изменили порт для подключения по SSH, слегка модифицируйте команду:

ssh-copy-id '-p 2002 -i ~/.ssh/id_rsa.pub user@server

Естественно, вместо 2002 может быть и другой порт.

В старых версиях OpenSSH нет скрипта ssh-copy-id, поэтому можно использовать другую команду:

cat ~/.ssh/id_rsa.pub | ssh user@server 'cat >> ~/.ssh/authorized_keys'

Если вы подключаетесь с клиентской машины с Windows, то скопировать публичный ключ на сервер можно, например, через любой FTP-клиент (SFTP-клиент).

Кстати, про SFTP. Как известно, SSH-серверы позволяют передавать файлы через SFTP. И OpenSSH тут не исключение. Для включения SFTP добавьте в файл sshd_config строку:

Subsystem sftp /usr/lib/openssh/sftp-server

В конце поговорим о разграничении доступа к серверу через SSH. Допустим, сервером пользуется большое число пользователей, но далеко не всем из них нужно предоставлять доступ по SSH.

Для разграничения доступа используются специальные директивы: DenyUsers, AllowUsers, DenyGroups, и AllowGroups. Проверка этих директив осуществляется именно в той последовательности, в какой они здесь перечислены.

В директивах принимаются только имена пользователей и групп, UserID не распознаются.

DenyUsers — список пользователей, которым нельзя подключаться к SSH-серверу. По умолчанию не указан.

AllowUsers — список пользователей, которым можно подключаться к SSH-серверу. По умолчанию он также не указан, и это значит, что подключаться можно всем. Если занести в данный список пользователей, подключаться смогут только они. Если в списке будет один пользователь — подключаться сможет только он.

DenyGroups — список групп пользователей, которым нельзя подключаться к SSH-серверу. По умолчанию не указан.

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

Источник: https://webistore.ru/administrirovaniye-unix/ustanovka-i-nastrojka-ssh-servera-v-ubuntu/

Установка ssh Ubuntu 16.04

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

Служба ssh позволяет получить доступ к терминалу удаленного компьютера и выполнить там все необходимые вам команды. При своей простоте она достаточно безопасна, чтобы использоваться для решения серьезных коммерческих задач, так и задач обычных пользователей. В этой статье мы рассмотрим как выполняется установка ssh Ubuntu 16.04, а также поговорим о начальной настройке ssh сервера.

Что такое SSH?

SSH или Secure Shell — это протокол безопасного доступа из одного компьютера к другому по сети. У протокола SSH очень много возможностей. Вы можете создавать защищенные соединения между компьютерами, открывать командную строку на удаленном компьютере, запускать графические программы, передавать файлы и организовывать частные сети.

Читайте также:  Лучшие дополнения для firefox quantum

За поддержку протокола SSH в Linux отвечает набор программного обеспечения OpenSSH. Это открытая реализация этого протокола, которая предоставляет все необходимые возможности. В состав пакета OpenSSH входят утилиты для установки соединения, передачи файлов, а также сам ssh сервер.

Установка OpenSSH в Ubuntu

Установить ssh на Ubuntu будет очень просто, программа считается стандартной и используется почти везде. Хотя по умолчанию в дистрибутиве ее нет, но зато она есть в официальных репозиториях.

Поэтому для установки откройте терминал с помощью сочетания клавиш Ctrl+Alt+T и выполните команду:

sudo apt install openssh-server

Установка и настройка ssh сервера в ubuntu

Будет загружено несколько пакетов, а когда установка ssh сервера Ubuntu завершится, программа будет готова к работе. Если вы хотите чтобы служба запускалась автоматически нужно добавить его в автозагрузку. Поэтому чтобы включить ssh Ubuntu 16.04 выполните:

sudo systemctl enable sshd

Установка и настройка ssh сервера в ubuntu

  • Если затем вы захотите удалить службу из автозагрузки, используйте команду disable:
  • sudo systemctl disable sshd
  • Что касается клиента ssh, то он уже установлен в системе по умолчанию. Сейчас вы можете попробовать подключиться к локальному ssh серверу просто набрав:
  • ssh localhost

Установка и настройка ssh сервера в ubuntu

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

ssh 0.0.0.0

Установка и настройка ssh сервера в ubuntu

Точно таким способом вы можете получить ssh доступ ubuntu к любому другому компьютеру из сети. Для этого достаточно указать вместо localhost его ip адрес и имя пользователя в таком формате:

$ ssh имя_пользователя@ip_адрес

Настройка SSH в Ubuntu

С параметрами по умолчанию сервер SSH не очень безопасен поэтому перед тем, как программа будет готова к полноценному использованию ее нужно немного настроить. Все настройки сервера SSH хранятся в конфигурационном файле sshd_config, который находится в папке /etc/ssh.

  1. Перед тем как вносить изменения в этот конфигурационный файл рекомендуется сделать его резервную копию, для этого можете использовать такую команду:
  2. sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults
  3. Дальше вы можете перейти к настройке конфигурационного файла:
  4. sudo vi /etc/ssh/sshd_config
  5. Первым делом желательно сменить порт, на котором работает ssh, возможный злоумышленник не знал включен ли у вас этот сервис. Найдите в конфигурационном файле строчку Port и замените ее значение на любое число, например, Port 2222:

Установка и настройка ssh сервера в ubuntu

По умолчанию вход от имени суперпользователя включен, рекомендуется отключить такую возможность. Для этого найдите строчку PermitRootLogin и замените ее значение на no:

Установка и настройка ssh сервера в ubuntu

Чтобы разрешить аутентификацию по ключу, а не по паролю найдите строку PubkeyAuthentication и убедитесь, что ее значение yes.

Установка и настройка ssh сервера в ubuntu

  • После того как все настройки будут завершены, сохраните изменения нажав :w и перезапустите службу ssd:
  • sudo systemctl restart ssh
  • Более подробно про настройку и использование различных тонкостей ssh рассказано в статье как использовать ssh.
  • Если вы изменили порт, то при подключении в клиенте тоже нужно указать новый порт, так как по умолчанию будет использоваться 22, например:
  • ssh -p 2222 localhost 
  • К тому же, если на компьютере установлен и настроен брандмауэр, то в нем тоже нужно разрешить доступ к новому порту ssh, для этого выполните:
  • sudo ufw allow 2222
  • Даже если служба ssh находится на порту по умолчанию, его тоже нужно открыть в брандмауэре если вы собираетесь подключаться к компьютеру через интернет:
  • sudo ufw allow 22

Настройка ssh Ubuntu 16.04 полностью завершена.

Выводы

Теперь, когда установка ssh Ubuntu 16.04 завершена, вы можете получить удаленный доступ к своему компьютеру через интернет и быть уверенными что он находится в безопасности. Если у вас остались вопросы, спрашивайте в х.

На завершение видео, где подробно рассказано о том, что такое ssh:

(12

Источник: https://losst.ru/ustanovka-ssh-ubuntu-16-04

Доступ по SSH на ubuntu server

Данная статья посвящена настройкам удаленного доступа к Ubuntu Server.

Принцип подключения очень прост: на стороне клиента мы используем программу для удаленного доступа (например, Putty), на стороне сервера устанавливаем и настраиваем пакет OpenSSH.

При подключении клиент проходит процедуру авторизации у сервера и между ними устанавливается зашифрованное соединение. Более подробно принцип работы протокола SSH рассматривался в статье по ссылке.

Схема сети представлена ниже. Удаленное подключение к серверу будет производиться с компьютера client.

Установка и настройка ssh сервера в ubuntu

В предыдущей статье мы установили Ubuntu Server на чистый жесткий диск. После установки необходимо настроить сетевой интерфейс сервера для выхода в сеть.

А, именно, задать Ip-адрес, маску сети, шлюз по-умолчанию. Если у вас интерфейс уже настроен – можете этот шаг пропустить. Настройки сетевых интерфейсов задаются в файле /etc/network/interfaces.

Для редактирования воспользуемся текстовым редактором nano.

Установка и настройка ssh сервера в ubuntu

Попадаем в режим редактирования файла interfaces. Нас тут интересует все, что ниже # The primary network interface. В данный момент сервер получает IP-адрес по DHCP, что не совсем правильно. Сервер должен иметь статический IP, чтобы все узлы в сети точно знали его адрес. Пропишем сетевые настройки вручную.

Установка и настройка ssh сервера в ubuntu

Мой сервер находится в локальной подсети 192.168.1.0/24. Серверу назначен IP 192.168.1.2, маска 255.255.255.0, шлюз по-умолчанию 192.168.1.1, адрес DNS-сервера 192.168.0.1

Установка и настройка ssh сервера в ubuntu

Для сохранения файла нажимаем клавиши Ctrl + X   –>  Y —> Enter. Чтобы применить настройки необходимо перезапустить процесс network. Также можно просто перезагрузить сервер командой sudo reboot.

Установка и настройка ssh сервера в ubuntu

Проверяем (команда ifconfig -a) – настройки применились

Установка и настройка ssh сервера в ubuntu

  • Все готово для OpesnSS, который можно установить из терминала командами
  • $ sudo apt-get install openssh-client
  • $ sudo apt-get install openssh-server
  • Управлять запуском, остановкой и перезапуском SSH-сервера можно с помощью команд
  • $ sudo service ssh stop | start | restart 

По сути доступ по SSH на сервер уже есть. Но для более тонкой настройки существует конфигурационный файл по адресу /etc/ssh/sshd_config. Доступ к конфигам осуществляется только из под рута.

На стороне клиента скачиваем любую программу для подключения по SSH, я рекомендую Putty. В программе останется лишь ввести Ip-адрес сервера и подключиться к нему. При подключении вводим имя и пароль пользователя.

Установка и настройка ssh сервера в ubuntu

Поддержите проект

Друзья, сайт Netcloud каждый день развивается благодаря вашей поддержке. Мы планируем запустить новые рубрики статей, а также некоторые полезные сервисы. 

У вас есть возможность поддержать проект и внести любую сумму, которую посчитаете нужной.

Источник: https://netclo.ru/dostup-po-ssh-na-ubuntu-server/

Установка и настройка SSH Сервера в Линукс

Secure Shell, т. е. SSH – протокол, обеспечивающий защищённые соединения и передачу данных между двумя удалёнными компьютерами. Изначально создавался на замену таким системам как rlogin и rcp.

Как понятно из полного названия протокола, система SSH позволяет соединяться и управлять удалённым узлом (компьютером, маршрутизатором и т. д.), при этом защищая весь передаваемый трафик с помощью высоконадёжного шифрования.

SSH широко применяется администраторами серверов для их настройки и управления, да и обычные продвинутые пользователи — владельцы, например, сайтов или виртуальных серверов активно используют SSH для подключения к своей учётной записи на хостинге и использования командной оболочки сервера.

Сразу после окончания разработки система SSH стала активно трансформироваться в закрытый коммерческий продукт в виде версии SSH2. Но благодаря сообществу GNU версии протокола SSH1 и SSH2 были реализованы в виде открытого и свободно распространяемого ПО openSSH. В Linux-системах используется именно этот метапакет.

Метапакет SSH базово включает в себя сервер SSH (sshd) в качестве програмы-демона, а также несколько утилит: ssh – удаленная регистрация и выполнение команд, scp – передача файлов и ssh-keygen – для генерации пар SSH-ключей.

Установка пакетов SSH

Как уже говорилось система ssh в Linux-системах распространяется в виде составного метапакета, поэтому для установки всех требуемых утилит ssh нужно выполнить всего одну команду:
В Ubuntu

$ sudo apt-get install ssh

В CentOS

$ yum -y install openssh-server openssh-clients

После чего начнется процесс установки

Установка и настройка ssh сервера в ubuntu

Как видно, менеджер пакетов сам распознает все зависимые и связанные пакеты и установит их. Также, по завершению установки, автоматически будет запущен SSH-сервер в режиме демона. Это можно проверить командой:
$ systemctl status sshd
или:

$ service sshd status даст тот же вывод. Теперь сервер работает с базовыми настройками по-умолчанию.

Установка и настройка ssh сервера в ubuntu

Настройка SSH

Режим работы SSH-сервера с настройками по-умолчанию хоть и является вполне работоспособным для небольших частных сетей, всё же нуждается в задании некоторых важных параметров для использования на высоконадёжных публичных серверах. Настройки демона хранятся в файле /etc/ssh/sshd_config. Посмотреть его можно командой

Читайте также:  Установка сервера терминалов в windows server 2012 r2

cat /etc/ssh/sshd_config

Установка и настройка ssh сервера в ubuntu

В первую очередь следует обратить внимание на следующие параметры: Port, AddressFamily, ListenAddress.

Первый глобально задаёт номер порта, через который будет работать соединение и если оставить его стандартным, т. е. 22, то велика вероятность, что он будет слишком часто сканироваться роботами.

Примечание: для задания активации параметра необходимо раскомментировать соответствующую строку — убрать символ «#» в её начале.

Второй параметр задаёт семейство используемых IP-адресов — IPv4 и IPv6. Если, к примеру, используются только адреса IPv4, то очень рекомендуется установить для параметра

AddressFamily значение inet:
AddressFamily inet

Для адресов семейства IPv6 используется значение inet6.
Параметр ListenAddress позволяет задавать порты для отдельных сетевых интерфейсов:

Источник: https://ITProffi.ru/ustanovka-i-nastrojka-servera-ssh-v-linux/

Установка и настройка SSH — Ubuntu

Установка и настройка ssh сервера в ubuntu

» Вы начинающий админ и хотите, например, поднять свой веб сервер. Идете в интернет, находите подходящую Вам статью и вперед! Давайте обратим внимание на один Важный момент, практически во всех этих статьях дается минимум команд для запуска необходимых служб и сервисов. Хорошо — заработало! А все ли Вы сделали для того, чтобы работать не перестало? Используете SSH через интернет? Почему никто в своих статьях не освещает проблем, которые могут получить новоиспеченные админы с таким подходом к настройке сервера, ведь именно для новичков и написаны статьи. Для того, чтобы Вы вовремя обратили внимание на вопрос безопасности, я обязательно буду делать пометки и ссылки в своих статьях на данный материал. Предупрежден – вооружен! «

Итак, SSH (secure shell) – безопасный сервер терминалов, предоставляет удаленный доступ к системе. Безопасный, т.к. весь трафик между клиентом и сервером шифруется.

А так ли он безопасен с настройками по умолчанию? Если Вы имеете сервер с возможностью подключения по SSH через интернет, обязательно найдутся желающие подобрать пароль для входа.

Думаю, не стоит объяснять, что возможный злоумышленник сможет получить практически неограниченный доступ к системе.

  • Во всех современных дистрибутивах Ubuntu разработчики пытаются повысить уровень безопасности при стандартных параметрах, но этого не всегда бывает достаточно, а иногда мы сами выбираем неправильную концепцию и совершаем ошибки.
  • Установка SSH сервера в Ubuntu.
  • Установка SSH сервера в Ubuntu выполняется следующей командой:

sudo apt-get install ssh openssh-server

После установки SSH сервер автоматически прописывается в автозагрузку. Управлять его запуском, остановкой или перезапуском можно с помощью команд:

sudo service ssh stop | start | restart

Основной файл конфигурации SSH — сервера — файл /etc/ssh/sshd_config, доступный для чтения или редактирования только супер пользователю (root). Для применения изменений необходимо перезапустить ssh-сервер .

  1. Настройки безопасности SSH сервера.
  2. Протокол по умолчанию.
  3. Опять же в современных дистрибутивах по умолчанию реализуется протокол SSH2. Если в Вашем случае указано нечто вроде:

Protocol 2,1

Необходимо оставить только 2:

Protocol 2

  • Использование небезопасного протокола SSH1 не рекомендуется.
  • Авторизация супер пользователя root.
  • Правильнее будет авторизоваться под пользовательской учетной записью и повышать свои привилегии с помощью команды sudo su, либо использовать sudo.
  • По умолчанию в последних релизах Ubuntu, доступ пользователя root  через SSH ограничен.

PermitRootLogin without-password

Позволяет авторизоваться пользователю root по ключам, при этом авторизацию по паролю запрещает.

Я рекомендую Вам изменить параметр на no:

PermitRootLogin no

С такими настройками пользователь root  не сможет авторизоваться по SSH.

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

Еще немного о root  в Ubuntu, созданный по умолчанию пользователь (при установке системы) может решать все административные задачи через sudo. Активировать пользователя root для доступа к системе мне кажется не обоснованным решением.

Предоставление доступа только указанным пользователям или группам.

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

AllowUsers user1 user2

Также Вы можете указать необходимую группу, например administrators:

AllowGroups administrators

Запретите доступ с «пустыми» паролями.

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

PermitEmptyPasswords no

Изменение стандартного порта.

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

Мы уже исключили самое известное имя пользователя из базы возможного злоумышленника (root) и разрешили доступ только определенным пользователям, теперь сократим количество возможных атак (боты, ищущие уязвимости на стандартных портах), изменив порт, используемый по умолчанию (новый порт должен быть свободен!).

Port 22

Изменим, к примеру, на:

Port 2220

Стоит понимать, что изменение порта никак не поможет Вам при целенаправленной атаке brute-force (подбор пароля). Злоумышленник может, например, пройтись сканером портов по IP адресу, на котором распложен Ваш сервер, в результате он получит список всех открытых портов.

Также помните, что теперь для подключения к серверу помимо IP адреса Вам нужно указать и номер порта.

Авторизация на основе SSH2 RSA – ключей.

Действительно рабочим вариантом защиты от перебора является использование для аутентификации SSH2 RSA-ключей.  При таком способе пользователь генерирует пару ключей, из которой один ключ является секретным, а другой публичным.

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

Логика проста, не используете для авторизации пароль – подбирать нечего!

Заходим в систему под тем пользователем, которому будем настраивать доступ по SSH к серверу.

Сгенерируем RSA ключ длинной 4096, Вам будет предложено указать место хранения, оставим по умолчанию (/home/UserName/.ssh/id_rsa), также будет предложено задать пароль на создаваемый ключ. Если пароль не указывать, то во время аутентификации на сервере по сертификату вводить его не придется, это менее надежно. Рекомендую Вам указать пароль:

ssh-keygen -t rsa -b 4096

  1. В указанной директории будет создана пара ключей:
  2. id_rsa.pub — публичный
  3. id_rsa – приватный
  4. Проверим, созданы ли файлы:

cd ~/.ssh
ls -al

Установим права на папку и файлы:

sudo chmod 0700 ~/.ssh/
sudo chmod 0600 ~/.ssh/id*

Приватный ключ необходимо передать клиенту защищенным образом и удалить с сервера во избежание компрометации ключей.

Ключ id_rsa передается клиенту:

/home/UserName/.ssh/id_rsa

После чего удаляется с сервера:

sudo rm /home/UserName/.ssh/id_rsa

Создадим файл authorized_keys (находимся в системе под тем же пользователем “UserName”, для которого создавался сертификат) и скопируем в него содержимое файла id_rsa.pubопределим владельца и выставим права на директорию и файл.

cd ~/.ssh
sudo touch authorized_keys
sudo chown UserName:UserName authorized_keys
sudo cat id_rsa.pub >> authorized_keys
sudo chmod 0700 ~/.ssh/
sudo chmod 0600 ~/.ssh/authorized_keys

Проверим, что текст скопировался:

sudo cat /home/UserName/.ssh/authorized_keys

Если текст успешно скопирован, можно удалить публичный ключ:

sudo rm /home/UserName/.ssh/id_rsa.pub

Включаем авторизацию по ключам:

sudo nano /etc/ssh/sshd_config

Необходимо раскоментировать строки и выставить параметры следующим образом:

# разрешаем авторизацию при помощи ключей
PubkeyAuthentication yes

# Путь, где будут находиться ключи, с которыми можно соединяться для каждого пользователя свой файл в его директории.
AuthorizedKeysFile %h/.ssh/authorized_keys

Перезапустим SSH сервер:

sudo service ssh restart

После того, как Вы сформировали сертификаты для всех пользователей (кому необходим доступ по SSH), рекомендую Вам отключить аутентификацию по паролю, отредактировав все тот же файл /etc/ssh/sshd_config

Внимание перед отключением аутентификации по паролю убедитесь в возможности доступа по ключу

PasswordAuthentication no
Подключение к SSH серверу через PuTTY, используя сертификат.

  • Для начала необходимо выполнить конвертацию приватного ключа (ключ пользователя UserName), который ранее мы забрали с сервера.
  • Для этого нам потребуется программа PuTTYgen.
  • Загружаем файл приватного ключа «Conversions — Import Key«.
  • Если Вы установили, пароль вводим его.

Выбираем «Save private key» и сохраняем полученный ppk файл. Хранить его стоит в месте, где он не сможет быть скомпрометирован.

  1. Открываем программу PuTTY  и настраиваем соединение:
  2. Session — Host Name (or IP Address)  IP адрес хоста, на котором настраивался SSH Сервер;
  3. Session — Port Порт, указанный в настройках SSH сервера;
  4. SessionSaved Session Название сессии (соединения);
  5. Connection — Data — Autologin username Имя пользователя;
  6. Connection — SSH — Auth — Private key file for authentication Путь к ppk файлу;
  7. Session — Save Сохраняем сессию;
  8. Session — Saved Session (выбираем нашу сессию) — LoadOpen — Сессия должна запуститься;
  9. Вводим пароль и нажимаем Enter, после этого попадаем в систему.
Читайте также:  Linksys wrt54gl: обзор, настройка и прошивка

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

Для того, чтобы закрыть доступ пользователю UserName к Хосту по сертификату, перейдем в папку где хранится его сертификат:

cd ~/.ssh

Удалим файл его публичного сертификат authorized_key с сервера OpenSSH, если же вы неосмотрительно не удаляли файлы id_rsa.pub и id_rsa, удалите их. Просматриваем содержимое каталога коммандой «ls».

Удаляем необходимые файлы:

sudo rm authorized_key id_rsa.pub id_rsa

Также хорошим тоном будет ограничение времени на ввод данных для авторизации, ну и таймаут при отсутствии активности.

Изменение времени ожидания авторизации.

При авторизации по SSH у Вас есть 2 минуты, чтобы ввести логин и пароль. Если вы этого не сделаете, то соединение с сервером будет разорвано.

В примере ниже это время ограничено до 30 секунд:

LoginGraceTime 30

Таймаут при отсутствии активности соединения.

Автоматическое отключение соединения после определенного времени, в течение которого зафиксировано бездействие в консоли.

ClientAliveCountMax – Параметр указывает на полное количество сообщений, отсылаемых ssh-сервером для распознавания активности ssh-клиента. По умолчанию это 3.

ClientAliveInterval – Параметр указывает на время ожидания в секундах. По истечению ssh-сервер отошлет сообщение-запрос клиенту. По умолчанию значение этого параметра – 0. Сервер не отсылает сообщение для проверки.

Отключение ssh-клиента автоматически после 5 минут (300 секунд):

ClientAliveInterval 300
ClientAliveCountMax 0

Источник: https://a-rm.ru/materials/unix-servera/ustanovka-i-nastroyka-ssh-ubuntu

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

Установка и настройка ssh сервера в ubuntu Для установки 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 на любой другой, рекомендуется для защиты от интернет атак. Также для того чтобы OpenSSH слушал только определенные ip адресса, допустим 192.168.0.50, 192.168.0.51 на порту 777,  то просто добавьте следующие строчки:

Port 777
ListenAddress 192.168.0.50
ListenAddress 192.168.0.51

Используйте только второй протокол SSH, проверьте, что подобная строка имеет место: Также, для большей безопасности, рекомендуется в строке PermitRootLogin заменить yes на no, запретив тем самым вход по ssh используя root: Дать доступ к системе через SSH только ограниченным пользователям: root, pi Ограничить доступ через SSH для пользователей: test test2 test3

DenyUsers test test2 test3

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

ClientAliveInterval 600
ClientAliveCountMax 0

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

HostbasedAuthentication no

Включите предупреждающий баннер отредактировав следующую строку и создания соотв. файла: Можно запретить удаленный доступ для юзеров с пустыми паролями: Сохраняйте логи, удостоверьтесь что директива LogLevel имеет значение INFO или DEBUG
Перезапуск сервера 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

Источник: http://vswebschool.blogspot.com/2015/05/openssh-linux.html

Как установить и настроить сервер OpenSSH на Ubuntu 16.04

В этой статье мы покажем вам, как установить, настроить и использовать OpenSSH на Ubuntu 16.04.

SSH (Secure Shell) является протоколом, который позволяет получить надежный доступ к удаленной машине в то время как OpenSSH представляет собой набор инструментов на основе протокола SSH.

Сегодня мы покажем вам, как установить и настроить OpenSSH на Linux VPS с помощью Ubuntu 16.04 в качестве операционной системы.

Установка OpenSSH на Ubuntu 16.04

Во-первых, давайте установим OpenSSH. Обновите индексы пакетов с помощью следующей команды:

sudo apt-get update

Для установки приложения сервера OpenSSH, а также других связанных пакетов используют следующую команду:

sudo apt-get install openssh-server

Обратите внимание, что пакет сервера OpenSSH может быть уже установлен в вашей системе, как часть процесса первоначальной установки сервера. Кроме того, вы можете установить клиентское приложение OpenSSH с помощью следующей команды:

sudo apt-get install openssh-client

Настройка OpenSSH на Ubuntu 16.04

Перед внесением каких – либо изменений в конфигурации OpenSSH, хорошо знать, как управлять услугой OpenSSH на вашем Ubuntu VPS. Для запуска службы вы можете использовать следующую команду:

sudo systemctl start sshd.service

Чтобы остановить службу, вы можете использовать:

sudo systemctl stop sshd.service

Чтобы перезапустить службу, вы можете использовать:

sudo systemctl restart sshd.service

Чтобы проверить состояние службы вы можете использовать:

sudo systemctl status sshd.service

Чтобы включить службу на время загрузки системы вы можете использовать:

sudo systemctl enable sshd.service

Чтобы отключить службу на время загрузки системы вы можете использовать:

sudo systemctl disable sshd.service

После внесения каких-либо изменений в конфигурации OpenSSH вам необходимо перезапустить службу, чтобы изменения вступили в силу.

Основной конфигурационный файл для приложения сервера OpenSSH это /etc/ssh/sshd_config. Убедитесь, что вы создали резервную копию исходной конфигурации перед внесением каких – либо изменений:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig

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

Port 22

Измените ее на что-то другое. Например 2022

Port 2022

Сохраните файл и закройте его. Затем перезапустите службу, чтобы изменения вступили в силу.

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

Безопасный OpenSSH на Ubuntu 16.04

Одним из рекомендуемых способов защиты сервера при использовании OpenSSH, это отключить логин Root . Во- первых, создайте нового пользователя SUDO на сервере Ubuntu, а затем отредактируйте конфигурационный файл сервера OpenSSH. Найдите следующую строку:

#PermitRootLogin yes

и измените его на:

PermitRootLogin no

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

Чтобы защитить сервер, вы еще можете отключить проверку пароля и настроить SSH вход с использованием ключей SSH. Кроме того, вы можете защитить SSH с помощью двухфакторной проверки подлинности.

Дополнительные опции конфигурации вы можете проверить с помощью страницы man:

man sshd_config

или вы можете посетить страницы вручную OpenSSH на https://www.openssh.com/manual.html.

Источник: https://andreyex.ru/ubuntu/kak-ustanovit-i-nastroit-server-openssh-na-ubuntu-16-04

Ссылка на основную публикацию
Adblock
detector