AWS EC2 блокирует все HTTP-порты

#amazon-web-services #amazon-ec2 #firewall

#amazon-веб-сервисы #amazon-ec2 #брандмауэр

Вопрос:

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

Как ни странно, никаких изменений не было внесено, но теперь все HTTP-порты заблокированы, 80, 443 и 8080. В настоящее время я разрешил весь трафик из всех источников, и он по-прежнему блокирует эти порты.

Определение группы безопасности AWS

Порт SSH работает, и когда я подключаюсь к ssh и тестирую, используя wget такие

wget -O - http://localhost — работает

wget -O - http://private-ip — работает

wget -O - http://public-ip — нет запросов

wget -O - http://my-domain — нет запросов

Более того, если я запускаю nginx или какой-либо другой http-сервер на каком-либо порту, отличном от 80 , 443 , 8080 , я получаю запросы как с общедоступного IP, так и с моего домена.

ufw отключен, а iptables пусты

 sudo ufw status
Status: inactive


sudo iptables -t nat -vnL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination                                                    
    
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination                                                    
    
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination                                                    
    
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination   


wget -O - http://localhost
--2020-11-11 16:08:54--  http://localhost/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:80... connected.
HTTP request sent, awaiting response... 200 OK

wget -O - http://private-ip
--2020-11-11 16:09:19--  http://private-ip/
Connecting to private-ip:80... connected.
HTTP request sent, awaiting response... 200 OK

wget -O - http://public-ip
--2020-11-11 16:10:11--  http://public-ip/
Connecting to public-ip:80...
  

HTTP-сервер на порту 81 работает.

HTTP-сервер на порту 81 работает

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

1. Вы проверили с консоли правильность общедоступного IP-адреса?

2. @ChrisWilliams да, когда я настраиваю http-сервер на порт, отличный от 80, 443, 8080, он работает. Просто эти порты каким-то образом заблокированы.

3. Действительно ли запущены и запущены процессы веб-сервера, которые должны прослушивать 80, 443 и 8080? Есть ли у них какие-либо журналы, которые помогают диагностировать ситуацию?

4. @jarmond да, они запущены и работают. В случае с nginx я проверял access.log, но никаких запросов не поступало. Если я протестирую с использованием другого http-сервера, как в последнем примере изображения, SimpleHTTPServer, он также не получает никаких запросов на порт 80. Но если я настрою его на прослушивание порта 81, все будет работать нормально (см. Последнее изображение)

5. Мне бы не хотелось просто говорить «перезагрузка», потому что вы потеряете потенциально ценную диагностику проблемы. У меня возникнет соблазн использовать маршрут захвата пакетов как на клиенте, так и на сервере.

Ответ №1:

Мне удалось решить проблему. Поскольку WP был размещен на instance, он получил несколько вредоносных скриптов, а некоторые другие сайты сообщили нам о ec2-злоупотреблении, поэтому AWS заблокировал эти порты.

Не уверен, как это не было указано где-то на консоли AWS? Похоже, что эта информация доступна только в том случае, если клиент имеет платную поддержку.