Как подключиться к хосту
Перейти к содержимому

Как подключиться к хосту

  • автор:

Начало работы с Amazon EC2

Эластичное вычислительное облако Amazon (Amazon EC2) – это веб‑сервис, предоставляющий безопасные масштабируемые вычислительные ресурсы в облаке. Amazon EC2 предлагает множество вариантов виртуальной разработки и использования любого приложения. Благодаря таким возможностям быстрое начало работы с EC2 – это легко и просто. На этой странице содержатся ресурсы для начала работы с инстансами EC2.

Step 1

Войдите в аккаунт AWS

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

Благодаря уровню бесплатного пользования AWS вы можете получить 750 ч избранных инстансов EC2 в месяц бесплатно.

Step 2

Запуск инстанса

Выберите наиболее подходящий тип инстанса для рабочей нагрузки. Для первого инстанса рекомендуется выбирать наиболее экономичный тип инстансов общего назначения: t2.micro и образа машины Amazon (AMI): Amazon Linux 2 AMI. Для обоих типов доступен уровень бесплатного пользования.

Чтобы создать виртуальную машину, щелкните Launch Instance (Запустить инстанс) на панели управления Amazon EC2.

Step 3

Настройка инстанса

Ниже приведены некоторые рекомендации по настройке первого инстанса

  • Группа безопасности. Создайте собственные правила брандмауэра или выберите группу безопасности VPC по умолчанию.
  • Хранилище. EC2 предлагает хранилища на основе магнитного диска или SSD. Мы рекомендуем начать с томов Amazon EBS gp2.
  • Для завершения процесса настройки щелкните Launch Instances (Запустить инстансы).

* Примечание. В дальнейшем будет использоваться файл пары ключей (.pem).

Подключение к инстансу

Когда инстанс запущен, к нему можно подключиться и использовать его так же, как обычный компьютер. Существует несколько способов подключения к консоли в зависимости от ОС. Мы рекомендуем использовать EC2 Instance Connect, простой в использовании веб-клиент.

  • Выберите созданный инстанс EC2 и щелкните Connect (Подключиться).
  • Выберите EC2 Instance Connect (Подключить EC2 Instance).
  • Выберите Connect (Подключиться). Откроется окно, которое означает, что вы подключились к своему инстансу.

Завершение работы инстанса

Начать работу с Amazon EC2 можно бесплатно (подробнее), но чтобы избежать дополнительных расходов, работу инстансов рекомендуется прекращать. При этом сам инстанс EC2 и все связанные данные будут удалены.

Выберите нужный инстанс EC2, нажмите «Actions», выберите пункт «Instance State», затем «Terminate».

Учебные пособия

Благодаря этим 10-минутным учебным пособиям и техническим документам вы получите практический опыт.

Amazon EC2

Установка веб-сервера LAMP на Amazon Linux

В этом пошаговом учебном пособии рассказывается, как установить веб‑сервер Apache с поддержкой PHP и MySQL (называемый также веб‑сервером LAMP или стеком LAMP) на инстансе Amazon Linux. Этот сервер можно использовать для хостинга статического веб‑сайта или развертывания динамического приложения на PHP, которое использует базу данных для чтения и записи информации.

Amazon EC2

Разместите блог WordPress на Amazon Linux 2

В этом пошаговом учебном пособии рассказывается, как установить и настроить блог на WordPress на инстансе Amazon Linux, а также обеспечить его безопасную работу. Кроме того, можно за один шаг начать работу с предварительно настроенным образом Bitnami WordPress от компании Bitnami, доступным на торговой площадке AWS.

Amazon EC2

Другие 10‑минутные учебные пособия

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

Amazon Lightsail

Lightsail – это простая в использовании облачная платформа, которая идеально подходит для упрощения рабочих нагрузок, быстрого развертывания и начала работы с AWS. Если вы новичок в облачном пространстве, в Lightsail вы найдете все необходимое для создания приложения или веб-сайта. Предлагается по невысокой цене в виде планов на месяц. Ознакомьтесь с этими Практическими пособиями о Lightsail, чтобы быстро реализовать проекты и развить инфраструктуру AWS. Чтобы сделать правильный выбор между Lightsail и EC2 , ознакомьтесь с параллельным сравнением облачных решений.

Повышение производительности благодаря EC2

Использование EC2 – это только начало упрощения облачных вычислений. Персонализируйте EC2 с помощью сервисов, которые повысят вашу эффективность за счет высокопроизводительного блочного хранилища, инструментов, которые позволяют масштабировать ваше приложение с учетом требований, и отказоустойчивых рабочих нагрузок, тратя до 90 % меньше.

Amazon Elastic Block Store

Amazon Elastic Block Store (EBS) – это простой в использовании, высокопроизводительный сервис, созданный для использования с EC2, обеспечивающий пропускную способность и интенсивность транзакций рабочих нагрузок при любом масштабе.

Автоматическое масштабирование Amazon EC2

Автоматическое масштабирование EC2 обеспечивает доступность приложения на неизменно высоком уровне, автоматическое добавление или удаление инстансов EC2 в соответствии с заданными условиями.

Спотовые инстансы Amazon EC2

Спотовые инстансы Amazon EC2 предлагают свободные вычислительные ресурсы на AWS со значительной скидкой по сравнению со стоимостью инстансов по требованию.

Руководства пользователя и ресурсы

Благодаря гибкости AWS архитектуру приложений можно проектировать по своему усмотрению, какие бы задачи перед вами ни стояли – будь то хостинг веб‑сайта или анализ данных. Чтобы быстро начать работу, воспользуйтесь ресурсами, представленными ниже.

  • Подробнее об уровне бесплатного пользования AWS
  • Начало работы с AWS с помощью SDK
  • Вебинар по началу работы с AWS
  • Запуск инстанса Windows
  • Запуск инстанса Linux
  • Миграция в Amazon EC2
  • Краткое руководство AWS по началу эталонного развертывания. Краткое руководство AWS по началу эталонного развертывания поможет осуществить быстрое развертывание полнофункционального программного обеспечения корпоративного уровня в облаке AWS с соблюдением рекомендаций AWS по обеспечению безопасности и доступности.
  • Центр эталонных архитектурных решений AWS. Здесь представлены стандартные эталонные архитектуры и рекомендации по их использованию.
  • Сеть партнеров AWS: Сеть партнеров AWS представляет собой мощное, постоянно растущее сообщество компаний, которые предлагают широкий выбор продуктов и сервисов на AWS.

Использование Amazon EC2 Instance Connect для доступа к вашим EC2-инстансам по SSH

В июне 2019 года был выпущен Amazon EC2 Instance Connect, новый способ контроля SSH-доступа к вашим EC2-инстансам с использованием AWS Identity and Access Management (IAM). В этом посте мы рассмотрим его подробнее.

Об Amazon EC2 Instance Connect

В то время как инструменты для внедрения «инфраструктуры как кода» (infrastructure as code, IaC), такие как Chef и Puppet, стали распространённым способом для конфигурации серверов, вам всё ещё может иногда потребоваться доступ к инстансам для более тонкой настройки, проверки системных логов или отладки проблем с приложениями. Самый популярный метод подключения к Linux-серверам – это Secure Shell (SSH). Он был создан в 1995 году и сегодня устанавливается по умолчанию практически в каждом дистрибутиве Linux.

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

Кроме того, некоторые организации настраивают бастион-хосты (bastion hosts), которые помогают ограничить доступ по сети к другим серверам благодаря использованию единой точки входа. Они добавляют возможность логирования действий, а также предотвращают неправомерный доступ путём добавления дополнительного сетевого слоя, через который осуществляется SSH-доступ. То есть, другие инстансы доступны для подключения по SSH только из бастион-хоста, а не напрямую. С другой стороны, при использовании бастион-хостов возникают и проблемы, которые необходимо решить. Вам нужно обслуживать установленные SSH-ключи пользователей, осуществлять их ротацию, а также обеспечивать бесперебойную и, что более важно, безопасную работу бастион-хоста.

Amazon EC2 Instance Connect упрощает решение подобных проблем и предоставляет следующие преимущества, чтобы помочь вам улучшить общий уровень безопасности:

  • Централизованный контроль доступа – вы получаете централизованный контроль доступа к вашим EC2-инстансам с возможностью настройки на уровне пользователей и инстансов. Благодаря использованию политик и объектов IAM больше нет необходимости управлять SSH-ключами или передавать их для распространения по серверам.
  • Недолговечные ключи – SSH-ключи не хранятся на самом инстансе и являются эфемерными по своей природе. Инстанс получает к ним доступ только во время подключения от авторизованного пользователя, что упрощает предоставление и отзыв доступа в реальном времени. Это также позволяет вам избежать использования долговечных ключей. Вместо этого вы генерируете одноразовые SSH-ключи каждый раз, когда авторизованный пользователь инициирует подключение, тем самым избегая необходимости отслеживания и обслуживания ключей.
  • Возможности аудита – подключения пользователей с использованием EC2 Instance Connect логируются в AWS CloudTrail, что предоставляет необходимую информацию для аудита запросов на подключение.
  • Повсеместный доступ – с EC2 Instance Connect вы можете продолжать использовать ваш существующий SSH-клиент. Кроме того, вы можете подключаться к инстансам с использованием нового веб-клиента, который находится в консоли EC2. Это помогает избежать изменений в пользовательском опыте и необходимости менять ваши рабочие процессы и утилиты.

Как работает EC2 Instance Connect

Когда на инстансе включена функциональность EC2 Instance Connect, демон SSH (sshd) на нём настраивается с использованием особого скрипта AuthorizedKeysCommand. Этот скрипт изменяет AuthorizedKeysCommand так, чтобы во время процесса аутентификации по SSH публичные ключи читались из метаданных инстанса.

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

Настройка EC2-инстанса для доступа по EC2 Instance Connect

Чтобы начать использовать EC2 Instance Connect, вам нужно в первую очередь настроить существующие инстансы. В настоящий момент EC2 Instance Connect поддерживает Amazon Linux 2 и Ubuntu. Для включения функциональности установите либо RPM, либо Debian-пакет соответственно. В новых инстансах на основе Amazon Linux 2 функциональность EC2 Instance Connect включена по умолчанию, поэтому вы можете подключиться к ним по SSH сразу без какой-либо дополнительной конфигурации.

Для использования функциональности в существующих инстансах сначала осуществите их настройку. В данном примере мы используем инстанс с Amazon Linux 2, запущенный в вашей учётной записи. Шаги, необходимые для настройки Ubuntu, вы можете найти в документации по ссылке Set Up EC2 Instance Connect.

    Подключитесь к инстансу по SSH. В данном примере он использует сравнительно новую версию Amazon Linux 2:

[ec2-user@ip-10-1-0-15 ~]$ uname -srv Linux 4.14.104-95.84.amzn2.x86_64 #1 SMP Fri Jun 21 12:40:53 UTC 2019 
$ sudo yum install ec2-instance-connect Loaded plugins: extras_suggestions, langpacks, priorities, update-motd Resolving Dependencies --> Running transaction check ---> Package ec2-instance-connect.noarch 0:1.1-9.amzn2 will be installed --> Finished Dependency Resolution . Installed: ec2-instance-connect.noarch 0:1.1-9.amzn2 Complete! 

Этот RPM-пакет произведет локальную установку нескольких скриптов и поменяет настройки AuthorizedKeysCommand и AuthorizedKeysCommandUser в файле /etc/ssh/sshd_config. Если вы используете какой-либо инструмент управления конфигурацией для изменения настроек sshd, то сначала установите пакет, а затем добавьте необходимые строки в конфигурацию, как указано в документации.

После установки ec2-instance-connect вы готовы к настройке пользователей и предоставлению им доступа к инстансам.

Настройка пользователей IAM

Вначале необходимо разрешить пользователю IAM отправлять свои SSH-ключи в EC2 Instance Connect. Для этого создайте политику IAM, чтобы вы затем могли назначать её другим пользователям в вашей учетной записи.

  1. В консоли IAM выберите пункт меню Policies и нажмите Create Policy.
  2. На странице Create Policy выберите вкладку JSON и вставьте следующий JSON-документ. Замените $REGION и $ACCOUNTID на соответствующие значения:

В качестве значения параметра ec2:osuser введите ec2-user при использовании Amazon Linux 2. Необходимо корректно указать этот параметр, чтобы метаданные были доступны для правильного SSH-пользователя. Более детальную информацию вы можете найти в документации по ссылке Actions, Resources, and Condition Keys for Amazon EC2 Instance Connect Service.

  1. Нажмите Review Policy.
  2. На странице Review Policy введите название политики, её описание и нажмите Create Policy.
  3. После создания политики вы можете назначить её необходимым объектам IAM. Например, создайте новую группу на странице Groups (я назвал мою группу «HostAdmins»).
  4. На странице Attach Policy во время создания группы выберите только что созданную политику и нажмите Next Step.
  5. Нажмите Create Group.
  6. На странице Groups выберите новую группу и нажмите Group Actions, Add Users to Group.
  7. Выберите одного или нескольких пользователей для добавления в группу и нажмите Add Users.

Теперь ваши пользователи могут использовать EC2 Instance Connect.

Подключение к инстансу с помощью EC2 Instance Connect

После конфигурации инстанса и назначения необходимой политики пользователям, они могут подключиться к инстансам с помощью обычного SSH-клиента, либо напрямую через AWS Management Console.

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

Для подключения с использованием SSH-клиента

  1. Создайте новый приватный и публичный ключи, mynew_key и mynew_key.pub соответственно:
$ ssh-keygen -t rsa -f mynew_key 
$ aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id i-0989ec3292613a4f9 --availability-zone us-east-1f --instance-os-user ec2-user --ssh-public-key file://mynew_key.pub
$ ssh -i mynew_key ec2-user@ec2-34-204-200-76.compute-1.amazonaws.com 

Если по какой-либо причине вы не успеете подключиться за 60 секунд, то увидите следующее сообщение об ошибке:

$ ssh -i mynew_key ec2-user@ec2-34-204-200-76.compute-1.amazonaws.com Permission denied (publickey,gssapi-keyex,gssapi-with-mic). 

В таком случае для подключения по SSH снова запустите команду send-ssh-public-key.

Теперь рассмотрим подключение через консоль.

Для подключения из консоли Amazon EC2

  1. Откройте консоль Amazon EC2.
  2. В меню слева нажмите Instances, а затем выберите инстанс, к которому необходимо подключиться.
  3. Нажмите Connect.
  4. На странице Connect To Your Instance выберите EC2 Instance Connect (browser-based SSH connection), затем нажмите Connect.

Откроется следующее окно терминала. Теперь вы подключены к вашему инстансу по SSH.

Аудит с помощью CloudTrail

Для каждой попытки подключения вы можете увидеть детали соответствующего события. Они включают информацию об ID инстанса, имени пользователя на уровне ОС и публичного ключа. Все эти данные необходимы для подключения по SSH и соответствуют API-вызову SendSSHPublicKey в CloudTrail.

В консоли CloudTrail задайте поиск по событию SendSSHPublicKey.

Если EC2 Instance Connect недавно использовался, то вы увидите записи, соответствующие API-вызовам ваших пользователей для отправки их SSH-ключей на необходимые хосты. Чтобы узнать инстанс, к которому осуществлялось подключение, а также другую полезную для аудита информацию, откройте детали события.

В следующем примере вы можете увидеть JSON-описание события CloudTrail, которое показывает использование команды SendSSHPublicKey:

 < "eventVersion": "1.05", "userIdentity": < "type": "User", "principalId": "1234567890", "arn": "arn:aws:iam:: 1234567890:$USER", "accountId": "1234567890", "accessKeyId": "ABCDEFGHIJK3RFIONTQQ", "userName": "$ACCOUNT_NAME", "sessionContext": < "attributes": < "mfaAuthenticated": "true", "creationDate": "2019-05-07T18:35:18Z" >> >, "eventTime": "2019-06-21T13:58:32Z", "eventSource": "ec2-instance-connect.amazonaws.com", "eventName": "SendSSHPublicKey", "awsRegion": "us-east-1", "sourceIPAddress": "34.204.194.237", "userAgent": "aws-cli/1.15.61 Python/2.7.16 Linux/4.14.77-70.59.amzn1.x86_64 botocore/1.10.60", "requestParameters": < "instanceId": "i-0989ec3292613a4f9", "osUser": "ec2-user", "SSHKey": < "publicKey": "ssh-rsa \\n" > >, "responseElements": null, "requestID": "df1a5fa5-710a-11e9-9a13-cba345085725", "eventID": "070c0ca9-5878-4af9-8eca-6be4158359c4", "eventType": "AwsApiCall", "recipientAccountId": "1234567890" >

Если вы настроили сохранение событий CloudTrail из вашей учетной записи в бакет Amazon S3, то вы можете программно скачать эту информацию и провести её аудит. Дополнительную информацию на эту тему вы можете найти в документации по ссылке Getting and Viewing Your CloudTrail Log Files.

Заключение

EC2 Instance Connect предлагает альтернативу стратегиям, включающим сложное управление SSH-ключами, а также предоставляет преимущества встроенного аудита с использованием CloudTrail. Благодаря интеграции с IAM и метаданными инстанса EC2, вы получаете безопасный способ распространения недолговечных SSH-ключей и контроля доступа с использованием политик IAM.

В разработке находятся дополнительные возможности для EC2 Instance Connect. Компания AWS планирует в будущем запустить авторизацию на основе тэгов, что позволит вам использовать тэги внутри условия политики IAM для контроля доступа. Кроме того, планируется по умолчанию включать EC2 Instance Connect в самых популярных дистрибутивах Linux, как это уже сделано в Amazon Linux 2.

EC2 Instance Connect уже доступен без дополнительной оплаты в регионах US East (Ohio и N. Virginia), US West (N. California и Oregon), Asia Pacific (Mumbai, Seoul, Singapore, Sydney и Tokyo), Canada (Central), EU (Frankfurt, Ireland, London, Paris и Stockholm) и South America (São Paulo).

Как подключиться к удаленному серверу в Linux или Windows по SSH

img

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

  • Secure Shell (SHH) для компьютеров на базе Linux
  • Протокол удаленного рабочего стола (RDP — Remote Desktop Protocol) для компьютеров под управлением Windows

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

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

  • Удаленный компьютер должен быть постоянно включен и быть подключенным к сети
  • Клиентские и серверные приложения должны быть установлены и активированы
  • Вам нужно знать IP-адрес или имя удаленного компьютера, к которому вы хотите подключиться
  • У вас должны быть необходимые полномочия для доступа к удаленному компьютеру
  • Настройки межсетевого экрана должны разрешать удаленное подключение

Что такое SHH?

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

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

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

Как работает SSH?

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

На стороне сервера есть компонент, называемый демоном SSH (SSH daemon — sshd). Он постоянно прослушивает определенный порт TCP/IP для возможных клиентских запросов на подключение. Как только клиент инициирует соединение, демон SSH ответит сообщением о программном обеспечении и версиях протокола, которые он поддерживает, и они обменяются своими идентификационными данными.

Версия протокола SSH по умолчанию для связи сервера SSH и клиента SSH – 2.

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

Так как для установки SSH-соединения требуются как клиентский, так и серверный компоненты, необходимо убедиться, то они установлены на локальном и удаленном компьютерах соответственно. OpenSSH – это инструмент SSH с открытым исходным кодом, который широко используется для дистрибутивов Linux. Установка OpenSSH относительно проста. Для этого требуется доступ к терминалу на сервере и к компьютеру, который вы используете для подключения. Отметим, что в Ubuntu SSH-сервер по умолчанию не установлен.

Как установить клиентскую часть OpenSSH

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

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

  1. Загрузить терминал SSH. Вы можете выполнить поиск по слову «терминал» или нажать CTRL+ALT+T на клавиатуре.
  2. Введите ssh и нажмите Enter.
  3. Если клиент установлен, то вы получите вот такой ответ:
username@host:~$ ssh usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command] username@host:~$

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

  1. Выполните следующую команду, чтобы установить клиент OpenSSH на свой компьютер: sudo apt-get install openssh-client
  2. Введите пароль привилегированного пользователя по запросу
  3. Нажмите Enter, чтобы завершить установку.

Теперь вы можете подключиться по SSH к любому компьютеру с установленным серверным приложением при условии, что у вас есть необходимые привилегии для получения доступа, а также имя хоста или IP-адрес.

Как установить серверную часть OpenSSH

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

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

  1. Откройте терминал на сервере. Вы можете выполнить поиск по слову «терминал» или нажать CTRL+ALT+T на клавиатуре.
  2. Введите ssh localhost и нажмите Enter.
  3. Для систем, в которых не установлен SSH-сервер, ответ будет выглядеть вот так:
username@host:~$ ssh localhost ssh: connect to host localhost port 22: Connection refused username@host:~$

Если это так, что вам необходимо устрановить сервер OpenSSH. Не закрывайте терминал и:

  1. Выполните следующую команду, чтобы установить сервер SSH: sudo apt-get install openssh-server ii
  2. Введите пароль привилегированного пользователя по запросу.
  3. Нажмите Enter или введите Y , чтобы продолжить установку после запроса на свободное место на диске.

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

sudo service ssh status

Ответ в терминале должен выглядеть примерно так, если служба SSH работает правильно:

username@host:-$ sudo service ssh status • ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enab Active: active (running) since Fr 2018-03-12 10:53:44 CET; 1min 22s ago Process: 1174 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCES Main PID: 3165 (sshd)

Еще один способ проверить, правильно ли установлен сервер OpenSSH и будет ли он принимать подключения, — это попробовать снова запустить команду ssh localhost в командной строке терминала. Ответ при первом запуске команды будет примерно следующий:

username@host:~$ ssh localhost The authenticity of host 'localhost (127.0.0.1)' can't be established. ECDSA key fingerprint is SHA256:9jqmhko9Yo1EQAS1QeNy9xKceHFG5F8W6kp7EX9U3Rs. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts. username@host:~$

Введите yes или y , чтобы продолжить.

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

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

sudo nano /etc/ssh/sshd_config

Файл конфигурации откроется в редакторе, который вы выберете. В данном случае мы использовали Nano. Если вам тоже нужно установить Nano, выполните эту команду:

sudo apt-get install nano

Обратите внимание, что службу SSH необходимо перезапускать каждый раз, когда вы вносите какие-либо изменения в файл sshd_config . Это можно сделать, выполнив эту команду:

sudo service ssh restart

Как подключиться через SSH

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

  1. Откройте SSH-терминал на своем компьютере и выполните следующую команду: ssh your_username@host_ip_address . Если имя пользователя на вашем локальном компьютере совпадает с именем на сервере, к которому вы пытаетесь подключиться, вы можете просто ввести: ssh host_ip_address и нажать Enter.
  2. Введите свой пароль и нажмите Enter. Обратите внимание, что вы не получите никакой обратной связи на экране во время набора текста. Если вы вставляете свой пароль, убедитесь, что он хранится в безопасном месте, а не в текстовом файле.
  3. Когда вы подключаетесь к серверу в первый раз, он спросит вас, хотите ли вы продолжить подключение. Просто введите yes и нажмите Enter. Это сообщение появляется только один раз (в первый раз), так как удаленный сервер еще не идентифицирован на вашем локальном компьютере.
  4. Теперь отпечаток ключа ECDSA добавлен, и вы подключены к удаленному серверу.

Если компьютер, к которому вы пытаетесь удаленно подключиться, находится в той же сети, что и локальный компьюетр, то лучше использовать частный IP-адрес вместо общедоступного IP-адреса. В противном случае вам придется использовать только общедоступный IP-адрес. Кроме того, убедитесь, что вы знаете правильный TCP-порт, который OpenSSH прослушивает для запросов на подключение, и что параметры переадресации портов верны. Порт по умолчанию — 22 , если никто не менял конфигурацию в файле sshd_config . Вы также можете просто добавить номер порта после IP-адреса хоста.

Вот пример запроса на подключение с использованием клиента OpenSSH с указанием номера порта:

username@machine:~$ ssh phoenixnap@185.52.53.222 –p7654 phoenixnap@185.52.53.222’s password: The authenticity of host '185.52.53.222 (185.52.53.222)' can't be established. ECDSA key fingerprint is SHA256:9lyrpzo5Yo1EQAS2QeHy9xKceHFH8F8W6kp7EX2O3Ps. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added ' 185.52.53.222' (ECDSA) to the list of known hosts. username@host:~$

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

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

Дальнейшие действия по SSH

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

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

  • Измените TCP-порт по умолчанию, который прослушивает демон SSH. Измените его с 22 на вариант побольше, например, 24596 . Не используйте номер порта, который легко угадать, например, 222 , 2222 или 22222 .
  • Используйте пары ключей SSH для аутентификации при входе в SSH без пароля. Они и безопаснее, и позволяют входить в систему без необходимости использовать пароль. Это быстрее и удобнее.
  • Отключите вход в систему на основе пароля на вашем сервере. Если ваш пароль будет взломан, это исключит возможность его использования для входа на ваши серверы. Прежде чем отключить возможность входа с использованием паролей, важно убедиться, что аутентификация с использованием пар ключей работает корректно.
  • Отключите root-доступ к вашему серверу и используйте обычную учетную запись с помощью команды su – команды для переключения на root-пользователя.

Вы также можете использовать TCP Wrappers для ограничения доступа к определенным IP-адресам или именам хостов. Настройте, какой хост может подключаться с помощью TCP Wrappers, отредактировав файлы /etc/hosts.allow и etc/hosts.deny .

Обратите внимание, что разрешенные хосты определяются через запрещенные хосты. Например, чтобы разрешить SSH-доступ к одному хосту, вам сначала нужно запретить все хосты, добавив следующие две строки в файл etc/hosts.deny :

sshd : ALL ALL : ALL

Затем в файле etc/hosts.allow вам необходимо добавить строку с разрешенными хостами для службы SSH. Это может быть один IP-адрес, диапазон IP-адресов или имя хоста: sshd: 10.10.0.5, LOCAL .

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

VNC через SSH

Для пользователей, привыкших работать в графической среде рабочего стола с системой управления удаленным компьютером (VNC — Virtual Network Computing), есть возможность полностью зашифровать соединения с помощью туннелирования SSH. Чтобы туннелировать соединения VNC через SSH, вам нужно будет запустить эту команду в терминале на вашем компьютере с Linux или UNIX:

$ ssh -L 5901:localhost:5901 -N -f -l username hostname_or_IP

Вот разбор команды выше:

  • ssh : запускает клиентскую программу SSH на вашем локальном компьютере и обеспечивает безопасное подключение к серверу SSH на удаленном компьютере.
  • -L 5901:localhost:5901 : указывает, что локальный порт для клиента на локальном компьютере должен быть переадресован на указанный хост и порт удаленного компьютера. В этом случае локальный порт 5901 на локальном клиенте перенаправляется на тот же порт удаленного сервера.
  • -N : указывает переслать порты, но не выполнять удаленную команду.
  • -f : отправляет SSH в фоновый режим после ввода пароля, непосредственно перед выполнением команды. Затем вы можете свободно использовать терминал для ввода команд на локальном компьютере.
  • -l username: введенное здесь имя пользователя будет использоваться для входа на указанный вами удаленный сервер.
  • hostname_or_IP : это удаленная система с сервером VNC. Примером IP-адреса может быть 172.16.0.5 , а примером имени хоста может быть myserver.somedomain.com .

Вы также можете подключиться к удаленному серверу через SSH- туннель с компьютера с Windows, используя PuTTY. В окне конфигурации PuTTY выполните следующее:

PyTTY

  • Перейдите в Connections (Соединения) -> SSH -> Tunnels (Туннели)
  • В поле Source port (Порт источника) введите 5901
  • В поле Destination (Адресат) введите localhost:5901
  • Запустите сеанс SSH как обычно
  • Подключитесь к серверу с помощью клиента VNC по вашему выбору

Что такое RDP?

Протокол удаленного рабочего стола (RDP — Remote Desktop Protocol) — это протокол, разработанный Microsoft. Он используется для удаленного контроля и управления компьютерами с операционной системой Windows.

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

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

Но у всего есть своя цена. Если вы не используете виртуальную защищенную сеть (VPN — virtual private network), подключение через RDP будет гораздо менее безопасно, чем SSH, потому что вы напрямую подключаетесь к Интернету. Существует множество автоматизированных сценариев, которые постоянно ищут слабые места в вашем соединении, особенно это касается открытых портов, которые используют подключения к удаленному рабочему столу Windows. В этом случае настоятельно рекомендуется иметь сложные и надежные пароли и регулярно их менять. Это не делает соединения RDP более безопасными, но все же делает их менее уязвимыми.

Как работает протокол удаленного рабочего стола?

Подключение к удаленному рабочему столу Windows основано на довольно простой модели клиент-сервер с использованием протокола удаленного рабочего стола (RDP). После его включения серверная служба удаленного рабочего стола Windows начинает прослушивать запросы на подключение через порт 3389 . Всякий раз, когда вы пытаетесь подключиться к серверу Windows, вам нужно будет указать действительное имя пользователя для учетной записи, которую вы используете для удаленного доступа. Получив доступ к серверу, вы сможете управлять приложениями, передавать файлы между двумя компьютерами и практически выполнять любые задачи, которые вы можете выполнять локально с соответствующей учетной записью.

Независимо от того, какая у вас версия операционной системы Windows, вы сможете установить безопасное удаленное подключение к другому компьютеру, поскольку клиент удаленного рабочего стола доступен по умолчанию. Тем не менее, удаленный доступ к компьютеру возможен только в том случае, если он работает под управлением Pro, Enterprise или Server версии операционной системы Windows. Таким образом, можно сделать вывод, что RDP-соединения возможны только между компьютерами с установленной на них ОС Windows.

Как установить RDP-соединение

Для установления подключения к удаленному рабочему столу с другим компьютером по сети необходимо включить службу сервера удаленного рабочего стола Windows. Клиент удаленного рабочего стола интегрирован в системы Windows, готов к работе по умолчанию и не требует специальной настройки, прежде чем вы сможете подключиться к другому компьютеру под управлением Windows. Однако прием подключений к удаленному рабочему столу с других компьютеров по умолчанию отключен во всех версиях ОС Windows.

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

  • Переадресация порта. Если вы не используете VPN, то вам необходимо убедиться, что порты правильно переадресованы на IP-адрес удаленного хоста. Проверьте настройки маршрутизатора, чтобы узнать, направляется ли трафик TCP-порта по умолчанию для протокола удаленного рабочего стола (порт 3389) на IP-адрес сервера, с которым вы хотите установить подключение к удаленному рабочему столу. Обратите внимание, что в этом случае ваш сервер Windows напрямую подключен к Интернету и уязвим.
  • Использование VPN. Это гораздо более безопасный вариант подключения к удаленному рабочему столу. При создании виртуальной защищенной сети на клиентском компьютере вы сможете получить доступ ко всем службам, которые доступны только при использовании локального подключения.
  • Настройки межсетевого экрана. Убедитесь, что межсетевой экран, который вы используете для удаленного компьютера, не блокирует подключение к удаленному рабочему столу. Вам нужно открыть локальный порт для RDP, будь то номер порта по умолчанию или настраиваемый.
Подключение удаленного доступа в версиях Windows 7, 8, 10 и Windows Server

Процедура настройки удаленного рабочего стола и разрешения безопасных удаленных подключений к серверу или ПК с другого компьютера одинакова для всех версий операционных систем Windows. Я перечислю основные шаги для подключения удаленного доступа к нужному компьютеру. Прежде чем начать, убедитесь, что вы учли приведенные выше замечания, которые касаются переадресации портов, настроек VPN и межсетевого экрана.

Шаг 1. Разрешите удаленные подключения

Перейдите в раздел информации о компьютере на том компьютере, на котором вы хотите разрешить удаленные подключения:

  1. Щелкните правой кнопкой мыши Computer (Мой компьютер) или This PC (Этот компьютер) в зависимости от версии ОС Windows.
  2. Щелкните Properties (Свойства).
  3. Нажмите Remote settings (Настройки удаленного доступа) в левой части окна. Remote settings
  4. Щелкните Allow remote connections to this computer (Разрешить удаленные подключения к этому компьютеру). Это должно автоматически добавить исключение межсетевого экрана удаленного рабочего стола. Кроме того, вы можете снять флажок “Allow connections only from computers running Remote Desktop with Network Level Authentication (recommended)” («Разрешить подключения только с компьютеров, на которых запущен удаленный рабочий стол с проверкой подлинности на уровне сети (рекомендуется)») для дополнительной безопасности сеансов RDP. Allow remote connections to this computer
  5. Нажмите Apply (Применить), если вы хотите остаться на вкладке, или ОК, чтобы закрыть ее.
Шаг 2. Добавьте пользователей в список удаленных пользователей.

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

  1. На экране Remote Settings (Настройки удаленного доступа), показанном выше, щелкните Select Users (Выбрать пользователей)
  2. Нажмите Add (Добавить) в поле Remote Desktop Users (Пользователи удаленного рабочего стола).
  3. Появится окно Select users (Выбрать пользователей). Вы можете выбрать местоположение, которое хотите найти, нажав Locations (Местоположения).
  4. В поле Enter the Object Names to Select (Введите имена объектов для выбора) введите имя пользователя и нажмите Check Names (Проверить имена).
  5. Когда вы найдете совпадение, выберите учетную запись пользователя и нажмите OK.
  6. Закройте окно System Properties (Свойства системы), еще раз нажав кнопку ОК.

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

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

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

Шаг 1: Запустите модуль подключения к рабочему столу

На локальном компьютере с ОС Windows найдите приложение Remote Deskrop Connection (Подключение к удаленному рабочему столу). Его можно найти несколькими способами:

  1. Для Windows 7 нажмите Start (Пуск) ->All Programs (Все программы), перейдите в папку Accessories (Стандартные) и нажмите Remote Desktop Connection (Подключение к удаленному рабочему столу). Для Windows 10 нажмите Start (Пуск) и найдите папку Windows Accessories (Стандартные для Windows), где вы также можете найти приложение Remote Desktop Connection (Подключение к удаленному рабочему столу). Remote Desktop Connection
  2. Нажмите Start (Пуск) и введите Remote Desktop Connection (Подключение к удаленному рабочему столу) в строке поиска. Вы получите результаты поиска, как только начнете печатать. Нажмите на приложение, когда оно появится в списке. Remote Desktop Connection
  3. Нажмите клавиши Windows + R на клавиатуре, чтобы открыть окно Run (Выполнить). Введите mstsc в поле Open (Открыть) и нажмите Enter, чтобы запустить клиент удаленного рабочего стола. mstsc
Шаг 2. Введите IP-адрес или имя удаленного хоста.

После запуска приложения Remote Desktop Connection (Подключение к удаленному рабочему столу) откроется окно, в котором вы можете ввести имя или IP-адрес удаленного компьютера, к которому вы хотите получить доступ.

В поле Computer (Компьютер) введите соответствующее имя или IP-адрес и нажмите Connect (Подключиться).

Connect

Примечание. Если порт прослушивания по умолчанию для подключения к удаленному рабочему столу (порт 3389 ) был изменен на удаленном узле на другое значение, вам нужно указать его после IP-адреса.Пример: 174.163.152.141:6200

В зависимости от ситуации вам нужно будет ввести частный или общедоступный IP-адрес удаленного хоста. Вот возможные сценарии:

  • Если клиентский компьютер и удаленный хост подключены к одной и той же локальной сети, вы будете использовать частный IP-адрес хоста для подключения к удаленному рабочему столу.
  • Если вы используете виртуальную защищенную сеть (VPN) на клиентском компьютере для доступа к удаленному хосту, вы будете использовать частный IP-адрес хоста для подключения к удаленному рабочему столу.
  • Если клиентский компьютер подключается к удаленному хосту из другой сети через Интернет без VPN, вы будете использовать общедоступный IP-адрес.
Как найти IP-адрес и имя хоста

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

Чтобы определить частный IP-адрес компьютера:

IPv4 Address

  1. Найдите CMD в меню «Пуск» (start) или нажмите Windows + R на клавиатуре, наберите на клавиатуре CMD и нажмите Enter, чтобы запустить командную строку.
  2. Введите ipconfig в командной строке и нажмите Enter.
  3. Вы увидите частный IP-адрес вашего компьютера в строке IPv4 Address.

Чтобы определить общедоступный IP-адрес компьютера:

  • В веб-браузере перейдите на сайт google.com или воспользуйтесь его панелью поиска.
  • Введите what is my IP (какой у меня IP) или просто my IP (мой IP) и нажмите Enter.
  • В верхней части страницы Google покажет вам общедоступный IP-адрес, который использует ваш компьютер. Если это не работает для вашего региона, вы можете посетить первую веб-страницу в результатах поиска, и она покажет вам IP-адрес. Или можно узнать адрес на нашей страничке.

Чтобы найти имя компьютера:

  1. Щелкните правой кнопкой мыши Computer (Мой компьютер) или This PC (Этот компьютер), в зависимости от используемой версии ОС Windows.
  2. Нажмите Свойства
  3. Вы найдете свое полное имя компьютера в разделе Computer name, domain, and workgroup settings (Имя компьютера, домен и настройки рабочей группы).
Шаг 3. Ввод учетных данных RDP и завершение подключения

После того, как вы нажмете Connect (Подключиться), появится полоса загрузки. Когда компьютер завершит инициацию и настройку удаленного сеанса, вы получите всплывающее окно, которое будет выглядеть примерно вот так:

Ввод учетных данных

  1. Введите пароль для выбранного имени пользователя. При необходимости вы можете использовать другую учетную запись и указать другое имя пользователя и пароль.
  2. Нажмите OK, когда будете готовы, и вы получите предупреждение о сертификате безопасности.
  3. Нажмите Yes (Да), чтобы продолжить.

Примечание. На компьютере с ОС Windows одновременно может быть зарегистрирован только один пользователь. Если кто-то другой использует компьютер, к которому вы пытаетесь получить удаленный доступ, этот пользователь должен отключиться. В таких случаях появится предупреждающее сообщение о входе в систему.

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

Дальнейшие шаги по протоколу удаленного рабочего стола

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

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

  • Используйте встроенный VPN-сервер на вашем компьютере с Windows для дополнительной защиты вашего трафика. Это обеспечит более безопасный доступ к вашему серверу и службам Windows.
  • Установите шифрование клиентского соединения. По умолчанию для этого параметра установлено значение Not configured (Не настроено). Вы можете включить его и установить высокий уровень шифрования для всех взаимодействий между клиентами и серверами хоста сеансов удаленных рабочих столов. Мы не рекомендуем использовать настройку уровня шифрования Client Compatible (Совместимый с клиентом). Если оставить настройку уровня шифрования по умолчанию High (Высокий), принудительно будет использоваться надежное 128-битное шифрование для данных, отправляемых с клиента на сервер и наоборот. Вы можете изменить эту конфигурацию с помощью редактора локальной групповой политики.
  • Используйте двухфакторную аутентификацию с помощью сторонних инструментов.
  • Применяйте правила межсетевого экрана, чтобы ограничить доступ открытых портов RDP к Интернету, особенно если вы используете TCP-порт RDP 3389 , установленный по умолчанию. В Windows есть встроенный межсетевой экран, к которому вы можете получить доступ из панели управления и дополнительно настроить его для ограничения трафика на определенные порты и IP-адреса

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

Заключение

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

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

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

SSH — это сетевой протокол, который обеспечивает безопасный удаленный доступ к операционной системе сервера. Он создает защищенный канал связи между двумя устройствами, позволяет пользователям безопасно подключаться к удаленной ОС и передавать данные. Узнать больше о протоколе SSH вы можете в статье: Что такое SSH.

SSH-туннелирование устанавливает зашифрованное соединение между двумя машинами через незащищенную сеть. Оно позволяет создать защищенный канал между локальным и удаленным узлом, обеспечивая безопасную передачу данных и доступ к ним. SSH-туннелирование также называют пробросом портов. Эта технология подразумевает туннелирование любого порта TCP/IP через SSH. Другими словами, SSH tunnels — это функция, которая позволяет передавать TCP-пакеты с локальной машины на удаленную через SSH-соединение, а также производить трансляцию IP-заголовка во время передачи информации по заранее заданному правилу.

Туннели SSH и VPN значительно отличаются по функциональности. При использовании VPN-туннеля передача информации может производиться в любом направлении. SSH-туннели создают канал связи с одной точкой входа, следовательно, передают информацию только в одном направлении. Кроме того, SSH-туннели работают только с TCP-пакетами — использовать другие протоколы транспортного уровня не получится.

Как создать SSH tunnel

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

Создание SSH-ключей в Linux и MacOS

Чтобы создать SSH-ключи:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *