У меня более или менее следующая конфигурация на AWS:
Эластичный балансировщик нагрузки с 3-мя машинами o 3 разных зоны доступности. Моя группа безопасности разрешает 0.0.0.0/0:80, так как это мое приложение rails (nginx, unicorn).
Мне было интересно, есть ли способ запретить доступ к моему приложению на определенный публичный IP-адрес? Я читал документацию по AWS, но поскольку SG "запрещают все", нет способа отказать только один конкретный IP-адрес.
Любые идеи? iptables на 3 машины за балансировщиком нагрузки?
Спасибо!
источник
На самом деле, это не очень хорошее решение, так как удаленный ip (
$remote_addr
в Nginx) будет от loadbalancer Amazon. Запрет, который приведет к тому, что весь перенаправленный трафик будет заблокирован.Вам нужно будет проверить пакеты и найти
X-Forwarded-For
заголовок HTTP , IPtables не поддерживает протоколы.Я остановился на следующем решении 2 непослушных IP-адресов в Nginx
Введя переменную
$client_ip
, просто чтобы я мог также проверить это локально, где нетhttp_x_forwarded_for
доступных ..Немного оффтоп, но для удобства я также добавил этот ip клиента в мои журналы доступа:
Это не красиво, но надеюсь, что это помогает
источник