Настройка NAT/WAF в Amazon AWS

У меня есть следующая проблема:

Я хочу настроить NAT или WAF в следующем сценарии:

Internet->VPC->IGW->Rotuer->Subnet1->EB1
                          ->Subnet2->EB2
                          ->Subnet3->EB3

Короче говоря, мой сценарий таков: VPC, интернет-шлюз, таблица маршрутов (по умолчанию из VPC) и подсети с EB.

Я попробовал несколько шагов, где мне нужно создать другую таблицу маршрутов, установить экземпляр NAT в качестве цели 0.0.0.0/0 во втором и подключить подсети EB к этому; прикрепите подсеть NAT к основной таблице маршрутов, и это, похоже, не работает.

Попытался использовать Amazon AWS scneario 1 пример, это моя текущая конфигурация без полученные результаты.

Чего может не хватать для правильной настройки?

Заранее спасибо.


person Néstor    schedule 18.02.2015    source источник


Ответы (1)


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

Трудно представить свой рабочий процесс таким образом. Но я думаю, что следую:

(Интернет-шлюз AWS VPC) --> Интернет

Ассортимент AWS VPC CIDR включает:

а) общедоступная/частная подсеть №1

b) частная подсеть №2. частная подсеть № 3.. и т. д.

Для типичной настройки достижения требуются следующие сущности Amazon:

1) IGW - интернет-шлюз

2) VPC с диапазоном CIDR, насколько вы хотите. для виртуальных машин, которые вы хотите защитить, но при этом иметь доступ к Интернету, вам нужно, чтобы им были назначены подсети. Подсети должны находиться ВНУТРИ диапазона VPC CIDR. Но не делайте подсеть той же CIDR, что и VPC, если вы это сделаете, то это, по сути, сделает вашу частную подсеть общедоступной, поскольку вы использовали весь диапазон IP-адресов, и в этом случае вы должны назначить ее для IGW, который не то, что вы хотите.

3) Сервер-бастион - что такое сервер-бастион? Это сервер, который вы специально установили для приема входящих интернет-запросов, которые защищают ваши частные подсети. Это может быть сервер, который действует как маршрутизатор или NAT. Это может быть либо

3a) домашняя установка Ubuntu (мой любимый дистрибутив) с переадресацией пакетов iptables и ipv4, или вы можете сделать

3b) шлюз Nat в вашем Amazon VPC или

3c) AMI vpc-nat, который вы можете найти в сообществе AMI. Так что просто выберите, какой метод вы хотите.

4)Создать группу безопасности №1 — создать группу безопасности для Bastion Server. Я обычно называю его «NAT SG» и имею входящий 0.0.0.0/0 и исходящий TCP 80, 443, 22 и т. д., в соответствии с потребностями вашего исходящего порта, определяемыми тем, что вы используете.

5) Группа безопасности №2 — создайте группу безопасности для частной подсети. Это для трафика, который позволит всем в пределах подсети (подсетей) и направить все исходящие не частные данные на 0.0.0.0/0 на сервер-бастион.

Для реализации этого упрощенного концептуального порядка операций вам необходимо сделать:

1) Создайте VPC с диапазоном CIDR (скажем, 10.0.0.0/16).

1.5) создайте интернет-шлюз и назначьте его VPC (10.0.0.0/16)

2) Создайте частные подсети с диапазоном CIDR, который находится в CIDR VPC (10.0.1.0/24, 10.0.2.0/24, 10.0.2.0/24 и т. д.).

3) Создайте общедоступную подсеть, которая будет содержать сервер-бастион или что-то еще, что вы хотите видеть в Интернете. (10.0.254.0/24 (это огромно, позволяя 256 серверов в подсети. Скорее всего, у вас будет только сервер-бастион, потребляющий только 1 сервер, поэтому он, вероятно, автоматически назначит 10.0.254.2)

4) создайте 2 таблицы маршрутизации — одну с именем private и одну с именем public. Для частной таблицы маршрутизации отредактируйте, а затем добавьте новый маршрут для 0.0.0.0/0 к идентификатору сервера-бастиона. Для общедоступной таблицы маршрутизации отредактируйте , затем добавьте новый маршрут для 0.0.0.0/0 в идентификатор интернет-шлюза (см. шаг 1.5).

5) Либо запустите свой собственный сервер и настройте его в качестве маршрутизатора NAT (если вы знаете, как это сделать), либо запустите AMI vpc-nat (amzn-ami-vpc-nat-hvm-2016.03. 0.x86_64-ebs - ami-311a1a5b) является последним, поэтому используйте его. Когда вы создаете экземпляр, выберите общедоступную подсеть, VPC и назначьте ему общедоступный IP-адрес (не ждите и назначьте ему эластичный IP-адрес, вам понадобится общедоступный IP-адрес), выберите группу безопасности «NAT SG» и затем запустите его. После запуска выберите его и выберите Network --> src/dest. проверьте и ОТКЛЮЧИТЕ его. Это позволяет направлять весь трафик. Вам нужен только 1 сервер-бастион, я не утверждаю, что нужно использовать все 3.

6) Запустите свой AMI или пользовательскую виртуальную машину, которую вы хотите сделать частной, и находитесь в частных подсетях (10.0.1.0/24, 10.0.2.0/24, 10.0.3.0/24... и т. д.). И назначьте ему частную группу безопасности, и тот же VPC. Если это Linux или Windows, вы можете создать новый закрытый ключ (pem) для будущего входа в систему. Преобразуйте pem в ppk с помощью puttygen.

Тестирование, чтобы убедиться, что у вас есть подключение к Интернету: сервер-бастион должен иметь доступ к миру; экземпляр ВМ в частной подсети (если маршрутизация была выполнена правильно) должен подключаться к Интернету путем потоковой передачи пакеты правилу 0.0.0.0/0 проходят через сервер-бастион, а сервер-бастион разрешает разрешение и поток в Интернет для исходящих запросов.

Обычно я делаю пинг в гугле, так как они не блокируют ICMP-запросы и достаточно надежны. Итак, подключитесь по ssh к серверу-бастиону, пропингуйте google.com. Если вы получаете IP-адрес, но не можете получить ответ, это означает, что ваш интернет-шлюз или группа безопасности не пропускают весь исходящий трафик 0.0.0.0/0, поэтому дважды проверьте это.

Теперь подключитесь по SSH к частному серверу (при условии, что это Linux) и пропингуйте сервер-бастион (10.0.254.X), и вы сможете получить ответ. Это хороший знак. теперь пропингуйте google.com и посмотрите, получите ли вы ответ. Я надеюсь, что вы делаете. Если вы получаете разрешение DNS, но оно зависает при получении каких-либо ответов, значит, вы забыли отключить проверку Src/Dest на сервере-бастионе. Затем перейдите в консоль ec2, найдите сервер-бастион и выберите, затем действия, сеть и выберите проверку src/dest, подтвердите ОТКЛЮЧИТЬ и сохраните.

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

Надеюсь, это поможет.

Ричард.

person Richard Tang    schedule 27.05.2016
comment
уф, немного поздно для меня, чувак, хе-хе, но все равно спасибо, что нашли время ответить на мой вопрос. В конце концов, мне не нужно было этого делать :\ - person Néstor; 17.06.2016