Брандмауэр AWS [vs] Общий брандмауэр iptables

Сервер 1:
защищен межсетевым экраном iptables.

Сервер 2:
защищен межсетевым экраном Amazon Security Group.

Давайте пингуем какой-нибудь ЗАБЛОКИРОВАННЫЙ (закрытый) (неоткрытый) порт на обоих.

Сервер 1:

nc -w 1 <ip> <port>
Ncat: No route to host.

Сервер 2:

nc -w 1 <ip> <port>
Ncat: Connection timed out.

Почему существует разница?

В чем разница между этими двумя сообщениями об ошибках?
Чем отличается Amazon Firewall ... По сравнению с
iptables firewall?

0
17.02.2017, 00:30
3 ответа

Быстрый ответ, брандмауэр для сервера 1 отклоняет пакеты, а брандмауэр для сервера 2 отбрасывает их.

REJECT: отклонить пакет и уведомить отправителя о том, что мы сделали это, и остановить обработку правил в этой цепочке.

DROP: молча игнорировать пакет и прекратить обработку правил в этой цепочке.

Сервер 1 (iptables) отклоняет пакет и отвечает сообщением о недоступности узла ICMP.

REJECT all -- anywhere anywhere reject-with icmp-host-unreachable

Он говорит, что хост недоступен, как восходящий маршрутизатор, но подразумевает, что сервер активен и доступен, потому что его IP-адрес все еще виден в исходном IP-адресе ответного пакета.

Это правило можно настроить так, чтобы просто отклонить с отказом:

REJECT all -- anywhere anywhere reject-with icmp-host-prohibited

Сервер 2 (брандмауэр Amazon) отбрасывает пакеты, он заставляет клиента повторять попытку подключения до тех пор, пока не будет превышено пороговое время, затем он генерирует сообщение «Время подключения out "сообщение об ошибке.

DROP all -- anywhere anywhere
0
28.01.2020, 02:46

Скорее всего, брандмауэр AWS отбрасывает ICMP-пакет, указывающий, что хост не может быть найден, а брандмауэр iptables никак не реагирует.

См. https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Destination_unreachable.

Преимущества ICMP «unreachable» по сравнению с простой отправкой сброса TCP:

  • он работает так же и для UDP, у которого нет способа сигнализировать о нежелании принимать данные
  • он более честен в Дело AWS, потому что пакет исходит не от хоста, а из инфраструктуры AWS; для создания сброса TCP AWS придется «подделывать» данные от имени защищенного хоста
  • некоторые автоматические сканеры портов могут сдаться без проверки всех портов, если хост недоступен
1
28.01.2020, 02:46

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

Брандмауэр обычно закрывает порт двумя способами. Один из них — закрыть его -, чтобы сделать его заблокированным. Это заставит сервер активно отказываться от входящего соединения. Это, в зависимости от того, как вы тестируете, приведет к сообщениям «Нет маршрута к хосту», «Соединение закрыто внешним хостом» или аналогичным сообщениям, полученным сразу после попытки установить соединение.

Другой способ — просто игнорировать входящие запросы на порт. Заявитель никогда не получает ответа, и время запроса истекает. На некоторых языках это называется «невидимой блокировкой» порта.

0
28.01.2020, 02:46

Теги

Похожие вопросы