2016-08-10 2 views
-1

У меня есть простой VPC на Amazon EC2 с двумя экземплярами: SFTP-сервер и веб-сервер. Я хочу направить входящий трафик из Интернета на порт 22 на SFTP-сервер и порты 80 и 443 на веб-сервер.Перенос портов в экземпляры с использованием Amazon VPC

У меня возникли проблемы с поиском, как это сделать. Это чрезвычайно просто со всеми аппаратными маршрутизаторами, которые я когда-либо использовал.

Может ли кто-нибудь указать мне на документацию/примеры/или просто рассказать мне, как это сделать?

Редактировать: Мне было не ясно, что я хочу, чтобы удаленные хосты могли сделать запрос на один IP-адрес, но на разных портах, и иметь разные порты, перенаправленные в разные экземпляры; У меня уже установлены группы безопасности, поэтому я могу принимать трафик на общедоступные IP-адреса каждого экземпляра.

ответ

1

Ниже приведены шаги, которые необходимо выполнить для достижения вашего варианта использования.

  1. Как вы сказали оба сервера в VPC вам необходимо убедиться, что они находятся в подсеть с Интернет-шлюзом прикрепленным к нему . (Это может быть достигнуто в частной подсети тоже, но станет более сложным процесс для вас) для получения дополнительной информации посетите этот https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario1.html

  2. EC2 сервер 1 для SFTP вам необходимо открыть SSH порта 22 в группе безопасности, добавив IP-адрес или открыт для мирового господства. Затем вы можете использовать SFTP, используя ваш предпочтительный SFTP-клиент.

  3. EC2 Server 2 для портов 80 и 443. вам необходимо добавить два правила в группу безопасности для вашего экземпляра. Проверьте снимок экрана. Как только это будет сделано, вы сможете маршрутизировать http-трафик через порты 80 и 443.

Дополнительная информация о группах безопасности приведена здесь.

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html

enter image description here

Об Edit. Вы должны запустить экземпляр перед экземпляром.

Добавьте HTTP-прокси в этот новый созданный экземпляр. И тогда перенаправление портов должно быть достигнуто с использованием IP-таблиц. Проверьте приведенную ниже таблицу IP-таблиц, которую необходимо добавить на этот сервер. Скажем, ваш HTTP-прокси-сервер - это сервер 1. Сервер порта 22 - это сервер 2, а порты 80 и 443 - сервер 3. Таким образом, IP-таблицы сервера 1 будут иметь ниже правил.

#!/bin/sh 

    echo 1 > /proc/sys/net/ipv4/ip_forward 

    iptables -F 
    iptables -t nat -F 
    iptables -X 

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination <Server3-IP>:80 

    iptables -t nat -A POSTROUTING -p tcp -d <Server3-IP> --dport 80 -j SNAT --to-source <Server1-IP> 

    iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination <Server2-IP>:80 

    iptables -t nat -A POSTROUTING -p tcp -d <Server2-IP> --dport 22 -j SNAT --to-source <Server1-IP> 

    iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination <Server3-IP>:80 

    iptables -t nat -A POSTROUTING -p tcp -d <Server3-IP> --dport 443 -j SNAT --to-source <Server1-IP> 
+0

Я понимаю, как я могу настроить безопасность групп, чтобы разрешить доступ к отдельным общедоступным IP-адресам экземпляров. Я хочу, чтобы иметь возможность маршрутизировать запрос на один IP-адрес (IP-адрес моего интернет-шлюза?), Скажем, 1.2.3.4, но 1.2.3.4:22 переходит к одному экземпляру, 1.2.3.4:80 переходит к другому , – juacala

+1

Если вы хотите, чтобы они использовали одно и то же имя DNS, вам необходимо настроить экземпляр, запускающий haproxy или squid или т. П., Чтобы маршрутизировать трафик на требуемый экземпляр бэкэнд в соответствии с портом. –

+0

Этот ответ не решает желаемый вариант использования OP для одного IP-адреса для всех 3 портов. –

0

На сегодняшний день, Amazon Elastic Load балансиры имеют новый режим «Application Load» Балансировщика, который поддерживает запросы маршрутизации в различных случаях EC2 на основе таких вещей, как путь HTTP, и порт.

Чтобы установить это, выполните следующие действия:

  1. Создать новую ELB, используя новый режим "Application Load" Балансировщика.
  2. Создайте одну целевую группу для порта 22.
  3. Добавьте экземпляры EC2, которые будут целевыми группами SSH для этой целевой группы.
  4. Создайте еще одну целевую группу для портов 80 и 443.
  5. Добавьте в эту целевую группу экземпляры EC2, которые будут объектами HTTP/HTTP.

Используя эту систему, SSH запросы к ELB будут направлены на экземпляр SSH и HTTP/HTTPS запросы к ELB будут направлены на веб-серверах

+0

спасибо. Я буду отмечать это как ответ, так как он не требует запуска дополнительного экземпляра. – juacala

+0

@juacala. Используя этот балансировщик нагрузки приложения, вы не можете отправить запрос SSH через этот балансировщик нагрузки только для запросов HTTP и HTTPS. А также вы не сможете использовать один IP-адрес, поскольку IP-адрес Load Blancers не является статическим, они динамичны. – error2007s

+0

ELB (и теперь ALB) используется не только для соединений HTTP и HTTPS. ELB может обрабатывать любое TCP/IP-соединение (следовательно, прослушиватель TCP). Многие используют его для SSH. И хотя он не может использовать один статический IP-адрес, он использует единственную конечную точку CNAMEable или ALIASable. –

Смежные вопросы