안녕하세요 허언증입니다.
책에 있는 내용을 이해하고 서술 하듯 글을 적어 내려 갑니다. 저도 공부하는 차원에서 정리하는 글 이고 네트워크 과정에서 생략되는 부분도 발생할 수 있기 때문에 부족한 점도 있다는거 인지 하시고 편안하게 읽어주세요!! 역사처럼 물 흐르는식으로 스타일로 글을 작성합니다
chapter05
1. 웹 서버의 설치 장소
2. 방화벽의 원리와 동작
3. 복수 서버에 리퀘스트를 분배한 서버의부하 분실
4. 캐시서버를 이용한 서버의 부하 분산
5. 콘텐츠 배포 서비스
1. 웹서버의 설치장소
앞서 사용자 측에서 (클라이언트PC) 인터넷망으로 패킷이 전송되는 상황을 설명을 했습니다. 이제는 인터넷망에서 서버측으로 패킷이 이동하는 상황에대 설명을 하도록 하겠습니다. 가장 편한 예로 웹서버로 설명을 드리도록 하겠습니다. 제일 첫 번째 순서인 웹서버를 어떻게 구성하느냐? 입니다. 크게 3가지 유형이 있습니다.
첫 번째는 프로바이더에서 바로 사내 라우터에 연결해서 웹서버를 구축하는 방식입니다. 직접 연결방식은 2가지 문제점이 있는데 첫 번째는 IP 부족현상 입니다. IP 부족으로 인해 글로벌주소, 프라이비트 주소를 사용하는데 직접 연결 할 경우 라우터에 IP를 지정을 해줘야 하기 때문에 문제가 생기게 됩니다. 두 번째는 보안상의 이유입니다. 프로바이더에서 다이렉트로 사내 웹서버로 패킷이 넘어가기 때문에 아무런 방어수단이 없는 상태에서 바로 받기 때문에 위험에 노출이 되어 있습니다.
첫 번째의 방식에서 가장 큰 문제는 보안인데, 이를 해결한 방식이 두 번째 방식인 방화벽으로 분리입니다. 방화벽에 조건을 걸어 둔다음 해당 조건에 부합이 되면 패킷을 받는 형식입니다. 방화벽을 토해 1차적으로 걸러지기 때문에 보안이 한 단계 상승한 걸 알 수 있습니다. 또한 글로벌IP주소를 부여하지 않고 프라이비트 주소를 사용을 할 수 있기 때문에 IP측면에서도 효율성이 있습니다. 하지만 액세스 허가한 애플리케이션에 보안적 문제가 있다면 서버로 침투가 가능하기 때문에 완벽히 차단이 된다라고는 볼 수 없습니다.
세 번째 방식은 프로바이더에 데이터 센터라는 곳에 서버를 설치하는 것입니다. 대기업이 아닌 인상 각 회사별 서버는 규모가 크지 않고, 내진설계 및 24시간 관리시 필요한 인력 , 비용이 부족하기 때문에 환경이 열악한 곳이 많습니다. 하지만 프로바이더 측에서 데이터 센터에 서버를 둔다면 해소가 됩니다. 또한 사내에 서버가 설치가 되었다면 더 멀리 가야하지만 프로바이더에만 접근을 하면 통신이 가능 하기 때문에 속도 측면에서도 유리함이 있습니다.
2. 방화벽의 원리와 동작
현재 2,3번의 방법을 많이 사용하는데 그 중에 두 번째의 방식인 방화벽에 대해 설명을 하도록하겠습니다. 예시로 웹서버를 말 했지만, 사실 다양한 종류의 애플리케이션 패킷이 흐르게 됩니다. 패킷별 분류도 해야되며, 해킹으로부터의 문제점도 방어를 해야 하는데 이를 확인 하는 방법이 바로 "패킷 필터링형" 방법입니다.
패킷에는 각 헤더별 MAC헤더, IP헤더, TCP/UDP헤더 ICMP 등이 있습니다. 각 헤더의 정보를 보고 조건을 순차적으로 걸어서 방지하게 됩니다. 좀더 세부적으로 알아볼까요?
인터넷 -> 방화벽 -> 웹서버
우선 인터넷 -> 웹서버로 들어올 때입니다. 송신처는 조건이 없습니다. 보내기만 하면 되니깐요. 통신을 위해 패킷 전송이든 공격을위한 패킷 전송이던 그냥 보내기만 하면 됩니다. 패킷을 받으면 방화벽에선 패킷의 수신처의 IP와 웹서버의 IP가 같은지? 확인을 합니다. 같다면 웹서버로 전송! 아닐 시 무시! 또 다른 조건으로는 포트번호를 부여합니다. 그럼 좀 더 보안측면에서 좋아지겠죠? 1개의 조건 보단 2개의 조건이 더 안전할 테니깐요. 하지만 조건이 많아질 수록 조건 간 영향으로 받을수 있고 그러다 보면 필요한 패킷을 못 받을 상황도 발생하게 됩니다. 처음에 조건을 설정을 할 때 다양한 변수를 고려해서 적절하게 설정해야 합니다!
만약에 출입을 막은 주소가 왔다면 웹서버는 패킷을 못 받게 된다. 그래서 컨트롤 비트를 이용해 액세스 방법이 이뤄집니다.
웹서버 -> 인터넷
만약 최초의 패킷이 웹서버 -> 인터넷으로 간다면 TCP의 컨트롤 비트는 SYN, ACK 이 있는데 SYN = 1 / ACK =0 일 경우 연결이 완료상태이며, 두 번째 패킷부터 통신이 가능합니다. TCP의 경우 SYN,ACK 상태에 따라 즉 3Hand Shake로 어느정도 제어 할 수 있습니다. 하지만 UDP의 경우 웹서버에서 인터넷으로 보낼 땐 따로 제약이 없습니다. 액세스 조건이 없기 때문에 주의해야한다. 패킷을 다 수용하던지 아니면 애플리케이션을 막아야 합니다. 대표적으로 DNS서버가 있습니다.
방화벽으론 다 막을수 없다!!
방화벽은 시점 + 종점을 보고 판단 후 통과 하지만 패킷내부에서 공격이 가능하기 때문이다.
*시점(인터넷) + 종점(웹서버)
그 나마 2가지 해결책은
웹서버 버전을 갱신 하는 것이다. 또 다른 방법은 장치나 소프트웨어로 패킷을 차단 하지만 알려진 거에만 가능함 (여러개의 서버 업데이트를 미룬 상태일 때)
'# Study > [ 성공과 실패를 결정하는 1%의 네트워크원리 ]' 카테고리의 다른 글
[허언증/네트워크] chapter05-② (성공과 실패를 결정하는 1%의 네트워크 원리) (0) | 2020.02.24 |
---|---|
[허언증/네트워크] chapter04-② (성공과 실패를 결정하는 1%의 네트워크 원리) (0) | 2020.02.22 |
[허언증/네트워크] chapter04-① (성공과 실패를 결정하는 1%의 네트워크 원리) (0) | 2020.02.22 |
[허언증/네트워크] chapter03-② (성공과 실패를 결정하는 1%의 네트워크 원리) (0) | 2020.02.17 |
[허언증/네트워크] chapter03-① (성공과 실패를 결정하는 1%의 네트워크 원리) (0) | 2020.02.15 |