Как использовать AWS VPN для блокировки доступа к вашим серверам – CloudSavvy IT

Если вы хотите запустить сервер в частной подсети, вам нужно будет использовать VPN для подключения к нему. AWS VPN – это управляемая служба OpenVPN, которая может обработать это для вас и позволить вам заблокировать публичный доступ к вашим защищенным экземплярам.
VPN клиента и VPN типа «сеть-сеть»
AWS предлагает два различных типа VPN. Первый и самый простой – это Клиент VPN. Это полностью управляемый эластичный VPN-сервис, основанный на OpenVPN. В сочетании с клиентским устройством с поддержкой OpenVPN это позволяет пользователям получать доступ к вашей инфраструктуре AWS из любого места, как если бы они находились в самой сети.
Это позволяет вашим сотрудникам подключаться напрямую к серверам в частных подсетях, например к серверам баз данных, которые вы не хотели бы оставлять в сети. Вы также можете заблокировать SSH на общедоступных серверах из любой точки, не входящей в локальную подсеть, что разрешит администрирование только пользователям, подключенным к VPN.
Это очень хорошо, и работает довольно хорошо для больших корпоративных рабочих нагрузок, но если у вас есть только несколько человек, нуждающихся в подключении, это может быть довольно дорого. Клиентская VPN имеет две платы – фиксированную плату за каждую VPN, связанную с подсетью, и плату за час для каждого подключенного к ней клиента. Фиксированная плата составляет $ 75 в месяц, а плата за пользователя составляет $ 0,05 в час. При умеренном использовании нескольких человек, вы можете легко набрать более 100 долларов США для клиентской VPN. И, конечно же, вы будете нести все стандартные расходы на передачу данных за перемещение данных в AWS и в Интернет.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Все VPN клиента – это управляемый сервер OpenVPN с открытым исходным кодом. Если у вас есть немного времени, вы можете настроить свой собственный сервер OpenVPN на экземпляре EC2, что будет стоить значительно дешевле. Он довольно легкий, поэтому, если вам кажется, что плата за 75 долларов в месяц вам кажется слишком большой, вы можете запустить ее на t2.micro
экземпляр за долю от цены Client VPN.
Второй VPN, который предлагает AWS, это VPN типа «сеть-сеть». Вместо того, чтобы подключать несколько удаленных клиентов, VPN типа «сеть-сеть» подключает ваш AWS VPC напрямую к локальной сети через безопасный туннель.
Это позволяет вам перемещать локальные приложения в облако и подключать их непосредственно к существующей сети, используя тот же корпоративный брандмауэр, который у вас есть, без изменения способа доступа пользователей к вашим приложениям. В некотором смысле, VPN типа «сеть-сеть» просто безопасно расширяет вашу локальную сеть в облаке, позволяя вам получать доступ к экземплярам EC2 в выбранном VPC, как если бы они были в вашей сети.
VPN Site-to-Site обладает высокой эластичностью и даже поддерживает резервные отказоустойчивые соединения если основной по какой-либо причине теряет связь. Цена также несколько иная – с каждого соединения взимается плата в размере 36 долларов в месяц, но за передачу данных взимается плата в размере 0,09 долларов США сверх стандартной платы за передачу данных AWS.
Настройка VPN клиента
Мы покажем, как настроить Client VPN здесь, так как он наиболее универсален и полезен для людей, не имеющих локального оборудования.
Прежде чем начать, вам нужно будет создать сертификаты для использования сервером и каждым клиентом. Вы можете сгенерировать их с помощью ACM, но для этого необходимо настроить частный центр сертификации, который стоит 400 долларов в месяц. Если вы не хотите платить эту цену, вы можете сгенерировать их, используя easy-rsa
от OpenVPN
, Загрузите и инициализируйте новый центр сертификации:
git clone https://github.com/OpenVPN/easy-rsa.git cd easy-rsa/easyrsa3 ./easyrsa init-pki ./easyrsa build-ca nopass ./easyrsa build-server-full server nopass
Теперь сгенерируйте клиентский сертификат, заменив «client1.domain.tld
С именем клиента и
./easyrsa build-client-full client1.domain.tld nopass
Теперь нам нужно загрузить сертификаты в ACM, чтобы их можно было использовать с Client VPN. Они все расположены в pki
папка, так cd
вон там:
cd pki
и загрузите сертификат сервера с помощью этой довольно громоздкой команды, убедившись, что ваш регион CLI настроен на тот же регион, в котором вы создаете Client VPN:
aws acm import-certificate --certificate file://issued/server.crt --private-key file://private/server.key --certificate-chain file://ca.crt
Вы также можете использовать кнопку «Импортировать сертификат» в ACM, которая позволит вам вставить содержимое каждого файла, но его легче копировать и вставлять. Импортируйте сертификат клиента таким же образом:
aws acm import-certificate --certificate file://issued/client1.domain.tld.crt --private-key file://private/client1.domain.tld.key --certificate-chain file://ca.crt
Теперь вы можете настроить Client VPN. В консоли управления VPC нажмите «Клиентские конечные точки VPN» в разделе «Сеть (VPN)» на боковой панели и создайте новую конечную точку.
Во-первых, вам нужно предоставить VPN блок CIDR, который не используется вашим текущим VPC. Вы можете найти блок вашего VPC на вкладке «Ваши VPC». Например, если вы используете блок по умолчанию 172.31.0.0/16
, вы можете установить клиент VPN на 172.16.0.0/16
, который не перекрывается.
Затем вставьте ARN для вашего основного сертификата сервера (вы можете найти его в консоли ACM), отметьте «Использовать взаимную аутентификацию» и вставьте ARN для клиентских сертификатов. Вы можете использовать этот клиентский сертификат для нескольких пользователей, но если вам нужен более удобный способ управления доступом, вместо этого вы можете использовать проверку подлинности Active Directory с Служба каталогов AWS,
Это все, что требуется, так что нажмите кнопку «Создать». Вам будет выставлен счет, как только он будет создан.
Вы должны будете связать этот VPN с определенным VPC и подсетью. На вкладке «Связи» нажмите «Связать», а затем выберите VPC и подсеть, которую вы хотите использовать.
Если вы используете значения по умолчанию, у вас будет один VPC и несколько подсетей для каждой зоны доступности. Выберите подсеть зоны доступности, которую вы используете в данный момент.
В разделе «Авторизация» вы захотите добавить правило доступа, разрешающее доступ к подсети, с которой вы связали VPN. Это может быть более конкретный блок CIDR или вся подсеть. Если вы используете AD, вы также можете ограничить доступ к определенной группе.
В консоли VPC нажмите «Загрузить конфигурацию клиента». Это загрузит .ovpn
файл, который вы можете использовать в любом клиенте OpenVPN для подключения к VPN. Однако этот файл поступает только из AWS с сертификатом CA сервера, поэтому вам нужно открыть его и вставить в /issued/client1.domain.tld.crt
свидетельство в
блок, а /private/client1.domain.tld.key
ключевой файл в
блок. Ваш .ovpn
файл будет выглядеть примерно так:
клиент Dev Tun прото удп удаленный asdfa.cvpn-endpoint-0dbc42be17e0f2c68.prod.clientvpn.us-east-1.amazonaws.com 443 удаленный случайное имя хост разрешить-повторить бесконечный nobind упорствовать-ключ упорствовать-чан удаленный сервер cert-tls шифр AES-256-GCM глагол 3----- НАЧАТЬ СЕРТИФИКАТ ----- CA KEY ----- КОНЕЦ СЕРТИФИКАТА ----- ----- НАЧАТЬ СЕРТИФИКАТ ----- КЛИЕНТ CRT ФАЙЛ ----- КОНЕЦ СЕРТИФИКАТА ----- ----- НАЧАТЬ ЧАСТНЫЙ КЛЮЧ ----- КЛИЕНТ КЛЮЧЕВОЙ ФАЙЛ ----- КОНЕЦ ЧАСТНОГО КЛЮЧА ----- ренег-сек 0
Вы также хотите добавить случайную строку в «remote cvpn-endpoint-xxxxxx
”, Вот так:
remote asdfa.cvpn-endpoint-xxxxxx....
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)