반응형

웹사이트에 IP 주소로 접속하려고 할 때 서버가 이를 차단하는 이유는 주로 보안, 성능, 그리고 운영 관리와 관련이 있습니다. 아래에서 이를 3000자 정도로 자세히 설명하겠습니다.


1. 도메인 기반 호스팅

현대의 웹 서버는 일반적으로 도메인 기반 가상 호스팅(Virtual Hosting) 방식을 사용합니다. 이 방식에서는 한 IP 주소에 여러 도메인을 연결하여 운영합니다.

1.1. 가상 호스팅과 Host 헤더

  • 클라이언트(사용자 브라우저)가 웹 서버에 요청을 보낼 때, 요청 헤더의 Host 필드를 통해 접속하려는 도메인을 서버에 전달합니다.
  • 예를 들어, 사용자가 https://example.com에 접속하면 브라우저는 요청 헤더에 다음과 같은 내용을 포함합니다:
    GET / HTTP/1.1 Host: example.com
  • 서버는 Host 헤더를 확인하여 어떤 도메인에 대한 요청인지 식별한 뒤, 해당 도메인의 콘텐츠를 반환합니다.

1.2. IP 주소로 접속 시 문제

  • IP 주소로 직접 접속하면 요청에 Host 헤더가 도메인이 아니라 IP 주소로 표시됩니다:
     
    GET / HTTP/1.1 Host: 123.456.78.90
  • 서버는 이 요청을 해석할 도메인을 찾지 못하거나, 기본 설정으로 특정 도메인만 반환하도록 구성되어 있을 수 있습니다. 따라서 IP 주소 요청은 차단되거나 빈 응답을 받을 가능성이 높습니다.

2. SSL/TLS 인증서와 도메인

HTTPS를 사용하는 사이트는 SSL/TLS 인증서를 통해 통신을 암호화합니다.

2.1. 인증서와 도메인 이름 매칭

  • SSL/TLS 인증서는 특정 도메인 이름과 연결되어 있습니다. 브라우저는 접속 시 서버가 제공하는 인증서를 검사하여 요청한 도메인과 인증서의 Common Name(CN) 또는 Subject Alternative Name(SAN) 필드가 일치하는지 확인합니다.
  • IP 주소로 접속할 경우, 요청한 IP가 인증서에 포함되어 있지 않다면 브라우저는 "인증서 이름 불일치" 오류를 표시하며 연결을 거부할 수 있습니다.

2.2. 보안 위협 방지

  • IP 주소로 접속을 허용하면 공격자가 인증서를 무력화하거나 피싱 공격을 시도할 가능성이 높아집니다. 따라서 서버 관리자는 이러한 접속을 차단하여 보안을 강화합니다.

3. 보안상의 이유

IP 주소로 접속을 차단하는 또 다른 이유는 웹 애플리케이션 보안을 강화하기 위함입니다.

3.1. 도메인 이름을 통한 방어

  • 대부분의 방화벽(Web Application Firewall, WAF)이나 보안 솔루션은 도메인 이름을 기반으로 트래픽을 필터링합니다.
  • IP 주소로 접속을 허용하면 보안 솔루션을 우회하거나 직접적인 공격을 시도할 가능성이 높아집니다.

3.2. DDoS 및 크롤링 방지

  • IP 주소를 직접 노출하면 악의적인 사용자나 봇이 대규모로 요청을 보내 DDoS(Distributed Denial of Service) 공격을 유발할 수 있습니다.
  • 또한, IP 기반 접속은 웹 스크래핑 및 데이터 크롤링을 더 쉽게 만듭니다. 이를 방지하기 위해 도메인 이름을 통해서만 접속을 허용하는 경우가 많습니다.

4. 운영 관리 측면

4.1. 리버스 프록시와 로드 밸런싱

  • 대규모 웹사이트는 단일 서버가 아닌 여러 대의 서버로 구성됩니다. 로드 밸런서가 들어간 환경에서는 클라이언트 요청이 IP 주소로 들어올 경우 요청을 적절히 라우팅할 수 없습니다.
  • 리버스 프록시나 CDN(Content Delivery Network)도 도메인 이름을 기반으로 설정되는 경우가 많아, IP 주소로 접속하면 제대로 동작하지 않을 수 있습니다.

4.2. 멀티 IP 환경

  • 하나의 도메인이 여러 IP 주소와 연결될 수 있습니다(예: DNS 라운드 로빈 방식). 사용자가 특정 IP 주소로 접속하면 해당 IP가 특정 서버에만 연결되어 부하 분산이 비효율적으로 이루어질 가능성이 있습니다.
  • 서버 관리자는 이를 방지하기 위해 IP 기반 요청을 차단하거나 제한합니다.

5. IP 주소 노출 방지

5.1. 개인정보 및 위치 보호

  • IP 주소로 접속을 허용하면 서버의 물리적 위치와 네트워크 구성 정보가 노출될 수 있습니다. 이는 해커가 서버를 공격하기 위해 사용할 정보를 제공하게 됩니다.
  • 도메인 이름을 사용하면 Cloudflare 같은 서비스를 통해 IP 주소를 숨길 수 있어 보안이 강화됩니다.

5.2. 공인 IP 주소 제한

  • 공인 IP 주소는 제한된 자원이며, 추가 IP를 확보하는 데 비용이 들기 때문에 일반적으로 여러 도메인을 하나의 IP 주소에 공유하는 방식이 선호됩니다.
  • IP 기반 요청은 이런 정책을 위반할 가능성이 있어 제한됩니다.

6. 결론

웹사이트가 IP 주소로 접속을 막는 이유는 주로 다음과 같습니다:

  1. 도메인 기반 가상 호스팅 환경에서 IP 주소 요청을 처리하기 어렵다.
  2. SSL/TLS 인증서와 도메인 이름 매칭이 이루어지지 않아 보안 문제가 발생한다.
  3. IP 주소 노출로 인한 DDoS 공격, 크롤링, 피싱 등의 보안 위협을 방지한다.
  4. 부하 분산과 멀티 서버 환경에서 효율성을 유지하기 위해 IP 요청을 제한한다.
  5. 서버의 물리적 위치와 네트워크 구성을 보호하기 위해 IP 주소를 숨긴다.

IP 주소로 접속을 차단함으로써 보안과 성능, 그리고 운영 효율성을 동시에 유지할 수 있는 장점이 있습니다. 이러한 이유로 대부분의 서버는 도메인을 통한 접속만 허용하는 설정을 기본으로 사용합니다.

반응형
블로그 이미지

우물 밖 개구리.

우물 밖 개구리의 블로그입니다.

,