XFF(2) - 예시 및 고려사항 본문
이번 글에서는 저번 게시글에서 알려드렸던 XFF를 좀더 이해하기 쉽도록 예시들과 각 케이스마다 고려사항에 대해 살펴보겠습니다.
프록시 서버 없이 바로 웹서버로 접근하는 경우
이 경우에는 앞단에 거쳐가는 장비가 없기 때문에 XFF 설정을 따로 추가하지 않더라도 클라이언트의 본래 IP가 식별됩니다. 추가로 해당 케이스는 웹 서버 상단에 IPS나 WAF, DDos 장비 같은 공격을 탐지·방어할 수 있는 장비를 설치하지 않고 클라이언트가 바로 웹 서버로 접근하여 시스템 보안이 취약해지는 구성으로 보통 사용하지는 않는다는 것을 참고바랍니다.
프록시 서버가 하나 이상 존재할 때 XFF 설정이 옳게 적용된 경우
이전 글의 도입부에서 설명드렸듯이 클라이언트와 웹서버 사이에 프록시 서버가 하나 이상 존재하는 구조로 구성되었으며, 클라이언트의 IP를 사용해야하는 시스템을 구축해야한다면 XFF 설정이 필수적으로 적용되어야 합니다. 가장 간단하게 적용하는 방법으로는 그림 2-1과 2-2처럼 최상단에 위치해있는 프록시 서버에서 트래픽을 복호화하고 하단으로는 평문으로 통신하며, 각 서버에 XFF 설정을 적용하는 방법입니다. 이 구성에서도 유의해야할 점이 있습니다. 해당 구성은 클라이언트에서 프록시 서버로 통신하는 동안은 암호화구간을 사용하여 안전하게 통신할 수 있지만, 하단으로 평문 통신하는 동안에는 보안에 취약하기 때문에 각 구간별로 암호화하는 방안도 고려해보아야 합니다. 추가로, 그림 2-2와 같이 여러개의 프록시 서버가 웹서버 상단에 있을 경우에는 각 프록시 장비에 XFF설정을 해주어야지만 클라이언트의 IP가 손실되지 않고 웹서버까지 도달할 수 있다는 점도 참고하시길 바랍니다.
프록시 서버가 하나 이상 존재할 때 XFF 설정이 잘못 적용된 예시
해당 구성에서는 프록시 서버인 LB에서 HTTPS 트래픽을 복호화하지 않고 passthrough하여 하단 서버인 웹서버에서 복호화했으며, LB 장비에 XFF 설정을 적용하지도 않았으므로 웹서버에 XFF 설정을 적용해도 웹로그에는 이전 서버의 사설 IP가 남아있게 됩니다.
위 구성은 그림 3-1과 달리 상단 프록시 서버인 LB에서 HTTPS 트래픽을 복호화 했지만, LB 단에 XFF 설정이 적용하지 않았으므로 LB에서 복호화되었어도 클라이언트 IP가 없는 상태로 웹 서버로 전달되기 때문에 웹로그에는 상단 서버의 사설 IP만 남아있게 됩니다.
마지막으로 웹 서버 상단에 프록시 서버가 여러개 있을 때 XFF 설정이 잘 적용되지 않은 경우를 알려드리겠습니다.
최상단인 LB에서 복호화하지 않고 WAF에서 복호화했으며, 각 프록시 장비에 XFF 설정을 하지 않아서 웹서버에는 클라이언트의 IP가 도달하지 않고 상단 서버인 WAF의 사설 IP만 출력됩니다.
'WEB' 카테고리의 다른 글
XFF(1) - 정의 및 적용방법 (0) | 2024.05.08 |
---|---|
[TS][NGINX] Ubuntu 서버 내 Nginx 설치 후 기동 오류 (0) | 2024.03.14 |