AWS — Группы безопасности не открывают порты

#linux #amazon-web-services #networking #amazon-ec2 #aws-security-group

#linux #amazon-веб-сервисы #сеть #amazon-ec2 #aws-security-group

Вопрос:

Я создал Linux t3a.nano EC2 на AWS, я ничего не делал с экземпляром, кроме как запустить его и подключиться к нему через SSH.

Я хотел бы открыть 2 порта, порт 80 и 3000, для этого я создал группу безопасности и добавил оба порта в правила входящих сообщений.

введите описание изображения здесь

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

Я запускаю эту команду, чтобы перечислить порты: sudo netstat -antp | fgrep LISTEN

введите описание изображения здесь

Другие шаги, которые я пробовал:

  1. Проверьте мой ACL, приложу изображение конфигурации ниже, ничего не изменилось, все выглядит нормально.
  2. Проверено, что экземпляр использует правильную группу безопасности.
  3. Остановил и запустил экземпляр.
  4. Создал эластичный IP-адрес и связал его с экземпляром, чтобы иметь постоянный общедоступный IP-адрес.

введите описание изображения здесь
введите описание изображения здесь
введите описание изображения здесь

Есть предложения о том, какие шаги я мог пропустить?

Комментарии:

1. SGS существуют для фильтрации трафика в / из ваших инстансов (например, брандмауэр). Внутри вашего экземпляра это полностью зависит от программы, которую вы будете запускать для прослушивания определенного порта. Например, вы можете запустить Nginx для прослушивания на порту 80, sshd для прослушивания на порту 22, и если эти порты разрешены в SGS, то трафик будет перенаправляться на ваш экземпляр, в противном случае он не будет

2. Спасибо, Оли, твой комментарий был действительно полезен, я запустил сервер узлов и смог получить доступ к порту 3000.

Ответ №1:

Вы проверяете порты изнутри экземпляра. Группы безопасности (SGS) работают вне вашего экземпляра.

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

введите описание изображения здесь

Чтобы открывать / блокировать порты на самом экземпляре, вы должны использовать обычный брандмауэр, такой как ufw . По умолчанию все порты в экземпляре будут открыты, по крайней мере, при использовании Amazon Linux 2 или Ubuntu .

Следовательно, при вашей настройке входящий трафик для pots 22, 3000 и 80 будет разрешен экземпляру.

Комментарии:

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

Ответ №2:

Обновление — Ответ

Я добрался до этого момента благодаря комментариям выше!

Я хотел открыть порт 3000 для размещения веб-службы, поэтому я выполнил все шаги по моему первоначальному вопросу, шаг, которого мне не хватало, — запустить сервер, чтобы что-то сделать на порту 3000. После того, как я запустил node, я смог увидеть, что порт открыт внутренне, и смог отправлять запросы к этому порту.

Группа безопасности остается прежней, но теперь, если я перечислю порты, вот что я получу: sudo netstat -antp | fgrep LISTEN

введите описание изображения здесь