SSH доступ для Ubuntu
Развитие сетевой безопасности не стоит на месте, как и методы взлома протоколов. Очень важно использовать шифрованное, безопасное соединение при работе на удаленных устройствах. Если не следить за защитой и безопасностью, есть большая вероятность, что вас взломают и украдут важные данные с сервера. Чтобы этого не случилось, нужно использовать SSH доступ. В данной статье рассмотрим, что это такое и как настроить и установить это на Ubuntu.
Содержание
Что из себя представляют сети SSH на Ubuntu
SSH — это ответ на слабину telnet-протокола, который раньше активно использовали в Ubuntu и Windows. Если пользователь использует такие сети сейчас, то он практически наверняка будет взломан извне путем подставки IP и другими методами. В итоге, логи будут украдены вместе с важной информацией, размещенной на сервере. А если еще и неправильно задать права пользователям, то злоумышленники смогут внести изменения на удаленной основе: удалить файлы или установить вирусы.
Потому-то и появился сетевой протокол SSH — это шифрованное соединение, которое позволяет и читать, и записывать данные, чем сильно отличается от подобных протоколов Ubuntu. SSH используют для подключения к серверу через клиент. То есть на одном ПК установлен SSH-сервер, а на другом — SSH-клиент.
Чтобы подключиться к серверу извне, вам потребуется ввести в Ubuntu специальный запрос с адресом удаленного компьютера.
После этого сервер при помощи файла config укажет способы аутентификации. Потом клиент проходит авторизацию через шифрованное соединение и подключается на сервер. Такое необходимо будет проходить во время каждого сеанса — в этой строгости и заключается преимущества использования в Ubuntu протокола SSH.
Как установить в Ubuntu SSH
Чтобы появилась возможность подключаться по защищенной сети, вам нужно прежде установить сервер и клиент на разные компьютеры. Как правило, пользователи Ubuntu используют программу OpenSSH для работы с этими протоколами. Нет причин, чтобы устанавливать другое ПО, так как для этого есть множество обучающих материалов в Сети.
Чтобы установить OpenSSH, войдите в терминал Убунту и введите строку: sudo apt-get install ssh. Поскольку по умолчанию в каждой Ubuntu уже имеется клиент для SSH-доступа, то по этой команде будет установлен сервер. Далее вам предстоит его настроить, чтобы можно было создать максимально защищенное подключение к локальной сети извне.
Если вас не волнует, что каждый раз при запуске компьютера будет включаться SSH-сервер, то можете не менять этот параметр. В противном случае каждый раз при запуске вы можете вводить через терминал команду загрузки сервера: sudo service ssh start. Но самые главные настройки вам предстоит указать в ключевом файле конфигураций sshd_config. Именно этот файл определяют требования к клиенту для подключения извне к локальной сети. Но проблема в том, что стандартные параметры совсем не обеспечивают безопасность сетевого протокола — их нужно изменить.
Какие определить настройки для SSH
Чтобы доступ был реально безопасным, вам нужно скорректировать некоторую информацию внутри файла config. В частности, вам следует изменить семейство IP, которые будут подключаться к серверу. Ведь вы наверняка знаете какое IP постоянно будет работать с сервером, потом можете через строку AddressFamily inet прописать определенное семейство адресов, которым можно подключаться через протокол.
Кроме того, вам стоит изменить номер порта для подключения. В противном случае через стандартный порт злоумышленники будут пытаться проломить вашу защиту, пользуясь подбором логинов и паролей. Даже если у них ничего не получится, появление постоянных логов может затормозить работу протокола. К примеру, чтобы изменить стандартный порт 22 на 2002, вам стоит указать следующую команду: Port 2002.
Самая большая пробоина в защищенном протоколе SSH — это возможность суперпользователя входить на сервер извне. То есть к локальной сети по умолчанию может подключиться root-пользователь. Root — это суперадминистратор, который имеет максимальный уровень доступа и может изменять по локальной сети на сервере все, что ему вздумается. Дабы не развязывать руки всем пользователям, лучше вообще запретить вход через root — пропишите в строке: PermitRootLogin no.
По умолчанию доступ к локальной сети через протокол SSH стоит самый элементарный — через систему логин/пароль. А такую систему, как известно, очень легко взломать, потому лучше вообще убрать подобную «защиту» при помощи строки PasswordAuthentication no. Но еще большая пробоина, которая может быть в вашем «судне» — это использование старого протокола SSH. Дело в том, что есть всего две версии: SSH1 и 2. Казалось бы, разница между ними только в названии, но на деле эти версии сильно отличаются по уровню безопасности. Доступ SSH1 — это уже не актуально, потому лучше, чтобы в файле config у вас было прописано Protocol 2 для использования новой версии соединения.
Наиболее оптимальный способ для подключения к локальной сети на сервере извне через SSH — это использование публичных ключей. Для активации этой функции в файле config должна быть прописана следующая строка: PubkeyAuthentication yes. Если это так, то прежде чем подключиться, сервер будет сверять публичный ключ, расположенный в специальной папке в клиенте. Если он соответствует, то соединение будет допущено, а если нет, то вы не сможете подключиться. Ключ генерируется при помощи специальных key-генераторов, а в Убунту при помощи определенной строки. Кроме доступа по публичным ключам, вы также сможете настроить фильтрацию пользователей по именам и IP-адресам. То есть не семействам, а по конкретным IP.
Как подключиться к локальной сети извне
Итак, чтобы войти на сервер, который работает посредством локальной сети, через удаленный клиент, вам нужно сначала разобраться с настройками безопасности. Если у вас установлена проверка публичного ключа — это хорошо, но нужно сначала позаботиться о генерации этих ключей. Это нужно сделать на клиентской машине. Для этого через терминал пропишите следующую строку: ssh-keygen -t rsa. После этого Убунту спросит у вас пароль. Если вы планируете использовать различные скрипты, то лучше оставьте поле пустым. Ну, а если начнете вводить пароль, то учтите, что поле будет оставаться пустым — это уже такая опция безопасности в ubuntu.
Теперь, чтобы зайти через клиент на сервер, достаточно будет прописать такую функцию (используется для нестандартного порта, то есть является универсальной): ssh-copy-id -i ~/.ssh/id_rsa.pub «-p port user@server». Ведь подключение к локальной сети или к Интернету сервера бывает невозможным из-за нестандартных портов. Как правило, IP сервера различается для локальной сети и для Интернета, так что учтите эту особенность.