CS/Network

[CS Network] 방화벽 DNS 캐시 프록시 등 용어 정리

반응형

참고서적 : 성공과 실패를 결정하는 1%의 네트워크 원리

방화벽이 필요한 이유

  • 사내 LAN에 직접 웹 서버를 설치했을 때 문제점 발생
  • IP 주소의 부족
  • 인터넷에서 액세스할 때 패킷을 차단할 수 없다.
  • 따라서 데이터 센터에 방화벽을 설치한다.
    • 데이터 센터는 프로바이더가 전문적으로 운영하고 있는 서버(내진 설계, 24시간 감시)로 고속 회선으로 접속되어있어 액세스 속도가 빠르다.
    • 웹 서버에 액세스하는 패킷을 필터링한다.

방화벽의 원리와 동작

  • 가장 보급화된 패킷 필터링형으로 패킷을 차단하여 방화벽을 구성한다.
  • 패킷 필터링형은 다음과 같이 동작한다.
    • 인터넷에서 웹 서버로 들어오는 패킷의 종점이 웹 서버의 IP 주소(수신처 IP)와 일치하다면 통과시킨다.
    • 수신처 IP 주소만을 가지고 필터링을 했을 때 웹 서버 내의 다른 애플리케이션에 액세스하면 악용을 할 수 있기 때문에 애플리케이션을 구분짓기위해 포트 번호도 필터링 조건으로 추가한다.
    • 웹 서버에서 방화벽에 직접 액세스하는 것을 막아야한다. 이를 위해 TCP 헤더에있는 컨트롤 비트로 패킷의 방향을 검사한다.
      • 컨트롤 비트 내에서 SYN, ACK(최초 SYN:1, ACK:0)를 차단하고 이후부터 SYN:1 ACK:1인 패킷을 통과시킨다. (추후 수정)
  • 즉, ①수신처의 IP 주소, ② 수신처 포트 번호(앱 구분), ③ 컨트롤비트(패킷의 방향)

방화벽으로 막을 수 없는 공격

  • 방화벽은 패킷의 시점과 종점으로만 판단하여 차단하기 때문에 패킷에 특수한 데이터가 포함되어있더라도 통과시킨다.
    • 이를 해결하기 위해 웹 서버 내의 소프트웨어 버그를 고치거나 버그의 내용을 알 경우 해당 패킷을 차단할 수 있도록 별도의 장치나 소프트웨어를 준비한다.

서버의 부하를 분산하는 방법

  • 서버의 부하를 분산하기 위해 여러 대의 웹 서버를 설치하여 웹 서버 한 대가 담당하는 사용자의 수를 줄인다.
  • DNS 서버에 부하 분산 장치(로드 밸런서)를 설치하면 웹 서버에 문제가 발생해도 다른 웹 서버에 리퀘스트 메시지를 보낼 수 있다.

캐시 서버를 이용한 서버의 부하 분산

  • 캐시 서버는 프록시라는 구조를 사용하여 데이터를 캐시에 저장하는 서버이다. 프록시는 웹 서버와 클라이언트 사이에서 웹 서버에 대한 액세스 동작을 중개한다.
  • 캐시 서버내에 데이터가 있는 경우와 없는 경우에 따라 다르게 동작한다.
    • 데이터가 없는 경우
      • URI를 통해 어느 웹 서버에 리퀘스트 메시지를 보낼지 판단하고 웹 서버에서 데이터를 받아 캐시서버에 저장한다. 캐시 서버는 받은 데이터를 클라이언트에 전송한다.
    • 데이터가 있는 경우
      • 캐시 서버 내의 데이터가 변경되었는지 조사하여 변경되지 않았다면 클라이언트에 전송하고 변경되었다면 데이터가 없는 경우와 같게 동작한다.
  • 클라이언트가 웹 서버에 직접 보내는 요청이 줄어들기 때문에 부하가 감소된다.

프록시에 대해서

  • 포워드 프록시 : 클라이언트 측에 캐시 서버를 두는 구조이며 클라이언트측의 부하를 줄이고 브라우저에 대한 설정이 필요하다.
  • 리버스 프록시 : 서버측에 캐시 서버를 두는 구조이며 웹 서버의 부하를 줄인다.
  • 트랜스페어런트 프록시 : 포워드와 리버스 프록시의 장점을 모아둔 것으로 클라이언트나 서버에 서버를 두지않기 때문에 브라우저에서 웹 서버로 리퀘스트 메시지가 흘러가는 길에 트랜스페어런트 프록시를 설치한다.

콘텐츠 배포 서비스

  • 캐시 서버를 놓는 위치에 따른 장점들을 프로바이더와 계약하여 캐시 서버를 클라이언트측의 프로바이더에 두는 방법으로써 제공하는 서비스이다.
반응형