Apache는 X-Forwarded-For를 완전히 제거합니다.

Apache는 X-Forwarded-For를 완전히 제거합니다.

좋아.. 좀 이상하지만 X-forwarded-for 값을 바꿔야 합니다.

우리는 SAP B1을 사용하고 있으며 여러 가지 이유로 x-forwarded-for에는 하나의 문자열 "https://sap.domain.tld:443"과 해당 값만 포함되어 있어야 합니다. 다른 호스트도 없고 쉼표도 없습니다. 정확히 그렇습니다.

이제 다양한 프록시와 cloudflare를 사용하고 있으므로 SAP B1 Web Access에 액세스하기 위해 제거해야 하는 X-forwarded-for에 일부 값을 추가하고 있습니다. 해당 값을 모두 제거해야 합니다.

다음은 Apache의 구성입니다.

    SSLEngine On
    SSLCertificateFile      /etc/ssl/crt/sap.crt
    SSLCertificateKeyFile /etc/ssl/private/4096.key
    SSLCACertificateFile    /etc/ssl/ca/ca.crt

    SSLProxyEngine On
    SSLProxyCheckPeerCN off
    SSLProxyVerify none
    SSLProxyCheckPeerName off
    SSLProtocol -all +TLSv1.2 +TLSv1.1 +TLSv1
    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA$

    ProxyPreserveHost On
    ProxyVia full
    ProxyPass / https://10.1.1.1:8100/
    ProxyPassReverse / https://10.1.1.1:8100/
    ProxyAddHeaders off
    RequestHeader unset X-forwarded-for
    RequestHeader set X-Forwarded-For "https://sap.domain.tld:443"

추가했지만 ProxyAddHeaders offApache는 여전히 새로운 X-Forwarded-For를 추가합니다. 어떻게 모두 제거할 수 있나요?

답변1

최근에 비슷한 문제가 발생했습니다. 나에게는 (문서에도 불구하고) 컨텍스트 ProxyAddHeaders off에서 작동하지 않는 것으로 나타났습니다 . <VirtualHost>컨텍스트에 지시문을 넣은 후 <Location>Apache는 X-Forwarded-*예상대로 헤더 추가를 중단했습니다.

당신의 모습은 다음과 같을 것입니다 ...

<Location />
    ...
    ProxyPass https://10.1.1.1:8100/
    ProxyPassReverse https://10.1.1.1:8100/
    ProxyAddHeaders off
    RequestHeader unset X-forwarded-for
    RequestHeader set X-Forwarded-For "https://sap.domain.tld:443"
</Location>

관련 정보