서버 개요

otto_dev·2022년 8월 4일
0

서버

목록 보기
2/2
post-thumbnail

클라이언트-서버 모델

클라이언트와 서버 간에 작업을 분리해주는 분산 애플리케이션 구조이자 네트워크 아키텍처.

클라이언트(Client)

  • 서비스 요청자.
  • 서비스를 요청하는 사용자, 기기 또는 서비스를 요청하는 소프트웨어.
    ex) 웹 브라우저(크롬, 파이어폭스), 스마트폰 앱(카카오톡, 유튜브) 등

서버(Server)

  • 서비스 자원 제공자.
  • 서비스 자원을 제공하는 기기 또는 기기 내 설치되어 있는 소프트웨어
    ex) 웹 서버(Apache, IIS, Nginx),

물리 서버 / 논리 서버

물리적 서버

  • 컴퓨터 자체

논리적 서버

  • 물리 서버 내 가동되는 소프트웨어

1개의 물리적 서버에 1개 또는 여러 개의 논리적 서버를 둘 수도 있다.
ex) 1개의 pc 내의 DB서버, 메일서버 등.

웹 서버 / 웹 어플리케이션 서버(WAS)

웹 서버(Web Server)

  • client의 요청을 받아 대한 정적 컨텐츠(static content)를 제공.
    주로 HTML, CSS, JS, image 파일.
  • 동적인 부분은 WAS에 요청.
  • Apache, Nginx, IIS, WebtoB 등

웹 어플리케이션 서버(WAS: Web Application Server)

  • 동적 컨텐츠(dynamic content) 및 정보 처리를 제공.
    ex) DB 조회, 검색, 사용자 인증 등.
  • Tomcat, WebSphere, WebLogic 등

분리 이유

  • 서버 부하 방지.
  • 물리적 분리를 통한 보안 강화
  • 여러 WAS 연결 및 다양한 서비스 제공 가능.

DMZ 구간 (private subnet)

DMZ

  • 외부에 서비스를 제공해야 할 때 내부 자원을 보호하기 위해 내부 네트워크와 분리시킨 공간.
  • 외부 사용자가 회사 내부 서버에 직접 접속하지 못하도록 완충 역할.
  • 웹 서버, 메일 서버, FTP 서버, DNS 서버 등 Well Known 포트를 사용하는 서비스가 위치.
  • SELinux 나 리눅스 방화벽등을 설치해서 추가로 보호해야 하는 것이 좋음.
  • 웹 서버는 WAS 에 대해 reverse proxy 와 static content 제공의 역할만 하도록 설정하는 것을 권장
  • DMZ 내의 모든 서버에는 gcc 컴파일러, gdb 등 개발과 디버깅 도구를 절대 설치하지 않는 것이 좋으며 사용하지 않는 서비스는 삭제하여 최대한 가볍고 기능이 적게 하는 것이 좋습니다.

private 영역

외부에서 직접 연결할 필요가 없는 내부 서버를 위치시키는 영역, WAS나 내부 관리 서버를 둔다.

protected 영역

외부 인터넷 연결도 차단하며, 민감한 개인정보를 보관하는 DBMS 시스템이나 금융정보를 처리하는 응용 서비스 서버 등을 둔다.

영역 내 서버 업데이트 방법

인터넷을 통한 업데이트 및 패치가 불가능
1) 내부 시스템용 전용 업데이트 서버 구성
2) 업데이트 서버만 연결이 가능하도록 설정. (더 실용적)

프록시 서버

서버와 클라이언트 사이에서 통신을 대신하여 중계 기능을 하는 서버.

Proxy: 대리, 대리인

포워드 프록시 서버

  • 클라이언트 대신 인터넷을 통해 서버에 요청을 보내고 결과를 반환해주는 프록시 서버
  • 클라이언트의 요청이 이미 프록시 서버의 cache에 있는 경우 바로 반환 하여 성능 향상
  • 클라이언트 대신 인터넷에 연결되기 때문의 클라이언트의 IP를 숨길 수 있음(클라이언트 보호)

리버스 프록시 서버

  • WAS의 IP주소를 노출하지 않을 수 있음 (서버 보호)
  • DDoS 공격 완화(원본 웹 서버 대신 프록시 서버가 타겟이 됨)
  • 트래픽 필터링(사용자 인증 및 SSL 암호화)
  • 로드 밸런싱을 통해 서버 부하 분산 가능.
  • DMZ 구간에 위치

참고문헌

  1. 물리서버와 논리서버 차이 (heeestorys)
  2. Forward Proxy, Reverse Proxy 정의와 차이점 (뱀귤 블로그)
  3. What is a Reverse Proxy Server? Learn How they Protect You (UpGuard Blog)
  4. 클라이언트 서버 모델 (위키백과)
  5. [Network]Proxy Server는 뭘까요? (주사위를 던져버렸다)
  6. [웹] 웹서버, WAS의 물리적 분리 (Devmin)
  7. 네트워크 분할 - web service hardening (lesstif)
profile
공부 및 아카이브용 계정

0개의 댓글