Научитесь использовать SSH для безопасного подключения к своим серверам через Интернет.

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

Вот как использовать SSH для безопасного подключения серверов через Интернет.

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

История SSH

До появления SSH был telnet. Telnet был разработан к концу 1960-х. В то время в организациях было нечто, называемое мейнфреймом. Но возникла проблема с тем, как заставить два мейнфрейма общаться друг с другом в разных офисах. Telnet будет использоваться для решения этой проблемы, предлагая протокол, который приложения и пользователи могут использовать для выполнения функций на этих мейнфреймах.

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

Подпишитесь на мою рассылку здесь.

Как установить и включить SSH на вашем сервере?

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

sudo apt-get update
sudo apt-get upgrade

Когда ваши пакеты и репозиторий будут обновлены, вам необходимо установить демон SSH. Вы можете прочитать мою запись в блоге Что такое демон? чтобы получить представление о том, как работают службы в Linux и других операционных системах, производных от Unix. TLD: демон SSH — это служба, которая обрабатывает ssh-соединения от клиента. Выполните следующую команду, чтобы установить SSHD.

sudo apt-get install sshd

Оттуда вам нужно будет включить службу в вашем Linux и запустить ее при загрузке. Выполните следующие команды, чтобы запустить SSHD.

sudo systemctl enable sshd
sudo systemctl start sshd

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

sudo systemctl status sshd

Установите редактор по вашему выбору. В рамках руководства я буду использовать neovim для редактирования файлов. Используйте следующую команду для установки neovim.

sudo apt-get install neovim

Подпишитесь на мою рассылку здесь.

Вам нужно создать отдельного пользователя без прав администратора

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

sudo useradd [name_of_users]

Следуйте инструкциям, чтобы настроить пользователя без прав администратора. Возможно, вам придется добавить пользователя в файл sudoer, чтобы запросить права администратора.



Подпишитесь на мою рассылку здесь.

Как настроить закрытый ключ SSH?

Следуйте инструкциям, чтобы настроить пользователя без прав администратора. Возможно, вам придется добавить пользователя в файл sudoer, чтобы запросить права администратора.

sudo ssh-keygen

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

sudo ssh-copy-id -i [public_key] [username]@[ip_address/domain_name]

Вам будет предложено ввести пароль.

Подпишитесь на мою рассылку здесь.

Как безопасно настроить файл конфигурации?

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

nvim /etc/sshd/sshd_config

Следуйте следующему руководству, чтобы защитить службу SSHD в файле конфигурации.



Подпишитесь на мою рассылку здесь.

Как псевдоним вашего SSH-соединения?

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

nvim ~/.ssh/config

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

sudo ssh -i [private_key_file] [username]@[ip_address/domain_name]

Вы можете запустить

sudo ssh [alias]

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

Host [alias]
  HostName [ip_address/domain_name]
  ForwardX11 [yes/no]
  Compression [yes/no]
  Ciphers [cipher_type]
  User [username]
  IdentityFile [private_key_file]
  PreferredAuthentication publickey

Вот что делают некоторые параметры?

  • FowardX11, в основном, позволяет вам пересылать графический интерфейс
  • Сжатие, не очень полезное для отправки текста туда и обратно. Однако это очень полезно для потоковой передачи с графическим интерфейсом.
  • Шифры, как будет происходить шифрование

Подпишитесь на мою рассылку здесь.

Настройка брандмауэров

Настроить брандмауэр в системах на основе Debian довольно просто. Вам нужно использовать универсальный брандмауэр или UFW. Вы можете установить его с помощью следующей команды.

sudo apt-get install ufw

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



Подпишитесь на мою рассылку здесь.

Как использовать SSH для передачи файлов?

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

Существует пакет ssh, который поставляется с утилитой SCP. Эта утилита позволяет подключать файлы для передачи с одной машины на другую с помощью SSH.

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

sudo scp [your_machine_path] [alias]:/[transfer_location] 

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

sudo scp [alias]:/[file_path] [save_to_path]

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

sudo scp -3 [machine_a]:/[file_path] [machine_b]:/[save_to_path]

Подпишитесь на мою рассылку здесь.

Похожий контент: