#amazon-web-services #amazon-ec2 #firewall
#amazon-веб-сервисы #amazon-ec2 #брандмауэр
Вопрос:
У меня есть несколько веб-сайтов на одном экземпляре EC2, которые до сегодняшнего утра отлично работали как на HTTP, так и на HTTPS. У меня также установлен jenkins на порту 8080.
Как ни странно, никаких изменений не было внесено, но теперь все HTTP-порты заблокированы, 80, 443 и 8080. В настоящее время я разрешил весь трафик из всех источников, и он по-прежнему блокирует эти порты.
Порт 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 работает.
Комментарии:
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? Похоже, что эта информация доступна только в том случае, если клиент имеет платную поддержку.