SSH — что это за протокол и как его настроить

загрузка...

Иногда появляется потребность получить доступ к серверу, размещенному на расстоянии и при этом подключенному к сети. К примеру, необходимо зайти в файловый менеджер или в БД, чтобы внести корректировки на сайт. А иногда такая потребность и вовсе не связана с сайтами — пользователю нужно установить программу к себе на компьютер через менеджер, но ПК у него дома, а сам он на работе, потому нужно что-то выдумать хитрое, вроде подключения через proxy. В таком случае используют специальные сетевые протоколы.

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

slide_7

Что из себя представляет SSH

Итак, перейдем к вопросу «Что такое SSH?». Как уже говорилось выше, это сетевой протокол. Он имеет уровень доступа седьмого уровня, потому позволяет вносить изменения на удаленные операционные системы (и читать, и использовать менеджер). В частности, вы сможете управлять ОС, а также пользоваться TCP-тоннелями для передачи данных.

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

Но важно правильно настроить протокол, чтобы получить от него максимальный эффект.

Как установить SSH

загрузка...

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

Установить SSH на компьютер, если у вас стоит Linux, можно используя консоль. Этот протокол уже имеется в дистрибутивах ОС, вам нужно лишь вызвать его менеджер. Для этого откройте консоль и введите следующую строку: sudo apt-get install ssh. После этого сервер будет установлен к вам на компьютер.

How-to-install-ssh-in-Ubuntu-step1

Очень важно правильно настроить файл config. Найти config вы сможете в папке Etc внутри каталога SSH. Изменять config сможет только суперпользователь — то есть тот, у кого есть root права. Именно внутри config прописана защита протокола и именно в config наибольшая уязвимость в работе с SSH. Дело в том, что все пользователи по умолчанию получают права root. То есть просто установить на два компьютера протокол и использовать его, как файловый менеджер, опасно. Ведь кто угодно может проникнуть к вам на сервер, и при это получит права root. Чтобы такого не случилось, вам предстоит изменить настройки config, в частности, особенности присвоения статуса root.

Лучше сразу отключить возможность удаленного соединения для пользователя root. Для этого в config нужно прописать PermitRootLogin no. А по умолчанию там было установлено yes, то есть мало того, что любому присваивался статус root, так еще и аутентификация была отключена. Если вам все же нужен root на удаленной основе, то можете в config вместо no прописать forced-commands-only — это обяжет всех, даже root пользователя использовать публичный ключ.

Вообще, очень странно, что стандартные настройки config позволяют на удаленной основе заходить на сервер пользователям root. Такая оплошность в файле config напрочь аннулирует безопасность SSH connection. Потому вы должны следить, чтобы root не мог подключаться к серверу просто так. И смотрите, не поставьте значение without-password — это позволит суперадминистратору подключиться в SSH без пароля и сверки IP.

Как использовать ssh при помощи публичных ключей

Защита протокола полностью зависит от ваших решений — от того, какие меры безопасности вы выберете. Нужно уметь пользоваться SSH, чтобы был хоть какой-то толк от подобного удаленного подключения. Иначе такой менеджер протоколов ничем не лучше, чем тот же telnet-доступ, в котором куча rsh-дыр для взлома. Особенно важно настроить правильный способ аутентификации, будь то proxy IP или ключ.

По умолчанию, если не менять протокол SSH и его настройки, то защита соединения сводится к сверке IP адресов. Клиент заходит на сервер и запрашивает у него способы подключения. Если в настройках ничего не менялось, то вход будет осуществлен при помощи IP. В ином случае будет использован публичный ключ. А чтобы его создать, необходим для этого специальный менеджер GIT, или генератор ssh-ключей.

GIT необходим для генерации открытого ключа. Автоматически он не создается и пока вы не запустите GIT, не сможете настроить публичную аутентификацию. Найдите примерно такую директиву на компьютере — /.ssh. В ней как раз и хранятся данные о ключах. Вам необходимо проверить, не создан ли уже ключ. В открытом каталоге вы найдете пары файлов, один из которых будет иметь расширение .pub — это и есть публичный ключ. Второй файл — это секретный ключ.

Порой на сервере даже нет папки /.ssh — в таком случае вам нужно и папку создать, и ключи при помощи GIT сгенерировать. На каждой ОС свои особенности создания публичных ключей. Для Windows, обычно, используют специальные программы GIT, а в Linux сгенерировать ключ можно при помощи стандартного пакет ssh-keygen, входящего в состав дистрибутивов протокола.

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

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

Если используете GIT, не забудьте воспользоваться его функцией clone. Строка clone в консоли GIT нужна для копирования репозитория. Функция clone вам понадобится, если вы собрались работать с центральным репозиторием — вам потребуется копия проекта. Для ssh есть своя функция clone, поскольку git работает с различными протоколами. Вам нужно ввести в git строку

clone ssh://user@somehost:port/~user/repository

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

  1. chmod -R 777 /home/iuser/файлы — установка прав на папку.
  2. chmod 777 файл1.txt файл2.txt — установка прав на файлы.
  3. chmod a-rw + расположение файла — этот chmod запретит чтение и запись.
  4. chmod go+r — права для группы.
  5. man chmod — открытие мануала по chmod.

Как безопасно пользоваться SSH login

Порой небезопасно подключаться не через proxy, а через публичные сети. Ведь сервер, к которому вы присоединяетесь, может читать все логи. А там, где логи, там и пароли, а значит вас легко могут обмануть и через логи взломать аккаунты соцсетей, онлайн-банкингов и даже проникнуть в файловый менеджер. Потому убрать уязвимость и скрыть логи, лучше использовать режим proxy в ssh. Чтобы включить proxy, нужно указать его IP адрес. Кроме того, нужно дать команду «использовать proxy». Обычно IP для proxy стандартный — localhost. Вот как примерно будет выглядеть proxy: ssh -D 8080 user@server.

Вам нужно минимизировать уязвимость системы, скрыть логи и научиться пользоваться не только режимом proxy, но и другими особенностями ssh, дабы защитить файловый менеджер и сервер. И тогда вы поймете всю прелесть этого протокола!

Похожие статьи

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here