Назад | Перейти на главную страницу

Блокировать общедоступные IP-адреса, маршрутизируемые через обратный прокси

Я настроил свой маршрутизатор для переадресации трафика с определенного порта на сервер, действующий как обратный прокси. Сервер основан на CentOS 7 с Apache 2.4.6. Один из моих внутренних серверов также основан на CentOS и работает с экземпляром ownCloud.

Моя цель - заблокировать общедоступные IP-адреса с использованием fail2ban, которые имеют несколько попыток ввода неверного пароля (грубая сила). Чтобы это произошло, я обязательно пропустил общедоступные IP-адреса с использованием X-Forwarded-For- с обратного прокси-сервера на сервер ownCloud. По статусу fail2ban я также вижу, что действительно общедоступные IP-адреса с несколькими попытками ввода неверного пароля заблокированы.

Но ... Поскольку трафик проходит от обратного прокси (а не напрямую из внешнего мира), общедоступные IP-адреса, даже если они заблокированы на сервере ownCloud, по-прежнему будут иметь доступ к серверу ownCloud.

Есть ли способ заблокировать такие общедоступные IP-адреса в приведенной выше настройке? Если я не ошибаюсь, это возможно в обратных прокси NGINX, добавив "set_real_ip_from rev.proxy.ip.add.", Но я не нашел ничего, связанного с apache.

Конфигурация моего прокси, если она нужна

    ServerName my.domain.com

    SSLEngine On
    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
    SSLProtocol -All +TLSv1.2
    SSLHonorCipherOrder On
    SSLProxyEngine On
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off

    ProxyRequests Off
    ProxyPreserveHost On

    SSLCertificateFile /etc/letsencrypt/live/my.domain.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/my.domain.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/my.domain.com/chain.pem

    Header always set Strict-Transport-Security "max-age=15552000; includeSubdomains;"
    Header always set X-Frame-Options DENY
    Header set X-Content-Type-Options "nosniff"

    ProxyPass https://backend.ip/
    ProxyPassReverse https://backend.ip/