AWS группы безопасности не работают должным образом - PullRequest
0 голосов
/ 25 апреля 2020

Я не могу понять концепцию AWS "Группы безопасности с состоянием". Я играл с правилами группы безопасности, где я открыл входящий трафик c на порту 80, а в исходящем нет никаких правил.

Outbound rules

Inbound rules

Технически, я понимаю, что когда мы открываем правило входящих, исходящие также автоматически открывается. Когда я go запускаю экземпляр Ec2 и выполняю yum update -y, он зависает. Но когда я добавляю traffi c для всех портов в исходящем, обновление yum работает нормально.

Помогите моему пониманию.

Ответы [ 2 ]

1 голос
/ 25 апреля 2020

Группы безопасности имеют состояние в том смысле, что если трафик c разрешен в одну сторону, то трафик ответа c разрешен в противоположном направлении.

В вашем случае, когда вы запускаете yum update, это требует сначала достичь репо через HTTP (s) на 80-м порту. Поскольку вы не разрешили этот исходящий трафик c, он не сработает. Однако, если бы кто-то запросил ваш экземпляр на 80-м порту, ответ от вашего компьютера прошел бы.

Так что это не «исходящий трафик c разрешен, если я разрешил входящий», вам нужно разрешить любой трафик c на первом месте. В вашем случае это исходящий.

0 голосов
/ 25 апреля 2020

Когда веб-браузер подключается к вашему веб-серверу, в соединении используются два порта: порт 80 на вашем веб-сервере и некоторый эфемерный порт с высоким номером, например 49152 на клиенте. Запрос отправлен с клиента: 49152 на сервер: 80. Эти кортежи ip-address: port называются сокетами. Ответ от веб-сервера должен передаваться с сервера: 80 обратно к клиенту: 49152.

«Состояние» состояния AWS Группы безопасности означает, что некоторое состояние запоминается для последующего использования. Это состояние включает комбинацию клиента: 49152 и сервера: 80 сокетов, которые составляют действительное TCP-соединение. Если запрос получен на сервере: 80 от клиента: 49152, то ответ от клиента: 49152 будет разрешен с сервера: 80, не требуя настройки каких-либо дополнительных правил брандмауэра для исходящих сообщений.

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

EC2 / VP C также имеет концепцию сетевых ACL . Это правила брандмауэра без сохранения состояния. В этом случае как входящие, так и исходящие правила требуются для трафика c в обоих направлениях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...