방화벽
방화벽은 미리 정의된 보안 규칙에 기반하여 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템이다.
방화벽은 신뢰할 수 있는 내부 네트워크와 신뢰할 수 없는 외부 네트워크 사이에 장벽을 구성하는 것을 의미한다.
서로 다른 네트워크를 지나는 데이터를 허용하거나 거부하는 하드웨어나 소프트웨어 장치이다.
네트워크 관리자의 입장에서 높은 신뢰도를 갖는 구간은 내부 네트워크 구간이라 하고,
낮은 신뢰도를 갖는 구간을 인터넷 구간 또는 외부 네트워크 구간이라고 한다.
초창기 방화벽은 패킷 자체만을 보고 정책에 따라 허용 또는 거부를 결정했으며, 이 떄의 방화벽을 1세대 방화벽이라 한다.
방화벽 내부에서 상태(세션)을 관리하지 않는 기본 형태의 방화벽이며,
이 방화벽은 특정한 IP를 허용 또는 거부하거나 특정한 포트를 허용/거부하는 용도로 사용된다.
1세대 방화벽인 패킷 필터 방화벽은 몇 가지 단점을 가지고 있었다.
우선 모든 패킷에 대한 정책 적합 여부를 검사하기 때문에 정책이 많아질 수록 처리 속도가 급감한다는 단점이 있었다.
또한 돌아오는 패킷을 허용하는 정책으로 인해 보안이 취약해질 가능성이 있다.
이러한 문제들을 해결하기 위해 패킷 단위의 검사가 아닌 세션 단위의 검사를 하는 2세대 방화벽인 스테이트풀 인스펙션 방화벽이 고안되었다.
기본적인 스테이트풀 검사는 다양한 파생 세션을 모두 처리하지 못하는 경우가 있는데, FTP의 능동적/수동적 데이터 세션 등
복잡한 파생세션을 별도의 정책 추가 없이 모두 처리할 수 있는 확장된 스테이트풀 검사를 하는 방화벽도 있다.
초창기에 네트워크를 기반으로 하던 공격 패턴이 점차 발달하여 일상적인 트래픽과 같은 특성을 가지면서 시스템을 공격하는 형태로 발전했다.
패킷 기반의 방화벽으로는 이러한 공격을 방어하기 어려워짐에 따라 애플리케이션에 어떠한 영향을 미칠지를 분석하는 방화벽으로 발전했다.
3세대 방화벽인 애플리케이션 방화벽은 IPS, WAF, UTM 등으로 불리는 네트워크 장비들이 해당된다
방화벽은 크게 기능과 구성에 따라 패킷 필터, 프록시, 네트워크 주소 변환(NAT)로 나뉜다.
우선 패킷 필터 방식은 패킷을 검사하여 미리 설정된 정책에 맞지 않을 경우 통과시키지 않는, TCP/IP의 네트워크 계층에서 동작하는 방화벽이다.
방화벽 관리자는 보호할 네트워크에 적용할 규칙 또는 정책을 설정해야 하고, 그렇지 않은 경우 기본 정책이 적용된다.
패킷 필터 방식은 커널 레벨에서 수행되고 프록시 방식에 비해 제한된 검사만을 수행하여 더 많은 트래픽을 처리할 수 있다는 장점이 있다.
다만 정책의 수가 많아질 수록 처리 속도가 느려지는 단점이 있다.
프록시 방식은 세션에 포함되어 있는 정보의 유해성을 검사하기 위해 방화벽에서 세션(상태)를 종료하고
새로운 세션(상태)를 형성하는 방식의 방화벽이다.
출발지에서 목적지로 가는 세션을 명시적/암시적으로 가로채서 출발지에서 방화벽으로, 방화벽에서 목적지로 가는 두 세션으로 나눈 다음
다른 세션으로 정보를 넘겨주기 전에 검사를 하는 형태로, 패킷 필터에 비해 방화벽에 많은 부하를 주어서 속도는 느리지만 더 많은 검사가 가능하다.
네트워크 주소 변환(NAT) 방식은 내부 네트워크에서 사용하는 IP 주소와 외부에 드러나는 주소를 다르게 유지하는 것으로,
어느 정도 보안을 유지하는 것과 동시에 IPv4 주소의 고갈을 늦추는 기능을 한다.
부하 분산
부하 분산 또는 로드 밸런싱은 둘 이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게
작업을 나누는 것을 의미하고, 그로써 가용성 및 응답시간을 최적화 시킬 수 있다.
서버 부하 분산은 외부의 사용자로투버 들어오는 다수의 요청들을 서버에게 적절히 배분하여
서버들로 하여금 요청을 처리하게끔 하는 것을 의미한다.
분산 처리는 부하 분산 Network Switch 혹은 소프트웨어가 담당하는데,
즉 외부로부터의 요청을 서버가 직접 받는 것이 아닌 부하 분산 Network Switch 혹은 소프트웨어가 받은 뒤 서버로 분산한다.
이 때 서버 분산을 담당하는 Network Swtich를 L4/ L7 Switch(Layer 4)라고 하며, 클라우드에서는 로드 밸런서라고 한다.
서버 능력을 고려하여 서버의 상황에 맞춰 분산이 이뤄져야하며, 로드 밸런싱 메서드라 한다.
Round robin 방식은 로드 밸런서가 다수의 서버에게 순서대로 요청을 할당하는 방식이다.
Least Connection 방식은 로드밸런서가 서버에 요청을 전달한 뒤,
사용자와 서버가 정상적인 연결을 맺으면 사용자와 서버는 Connection을 생성한다. 로드밸런서 또한 중간자로서
Connection 정보를 갖고 있는데 이 Connection 수 정보를 기반으로 가장 Connection이 적은 서버,
즉 부하가 가장 덜한 서버에서 요청을 전달한다.
Ratio(가중치) 방식은 서버의 처리 능력을 고려하여 할당될 수 있는 각 서버가 가능한 Connection의 비율을 사전에 설정해둔다.
Fastest 방식은 응답속도가 가장 빠른 서버에 우선적으로 할당하는 방식이다.
프록시
프록시란 클라이언트와 서버 사이 통신을 대신 수행하는 것을 의미한다. 프록시 중계 기능을 하는 서버는 프록시 서버(웹 캐시)가 된다.
프록시의 장점으로는 클라이언트 혹은 서버가 다른 네트워크에 간접적인 접속이 가능해 보안, 캐싱을 통한 성능 향상, 트래픽 분산이 있다.
프록시 서버 중 일부는 요청된 내용들을 캐시를 이용하여 저장해둔다. 그렇기 때문에 클라이언트는 데이터를 가져오기 위해
원격 서버로 접속할 필요없이 프록시 서버를 통해 데이터를 가져올 수 있게 되고, 그만큼 성능 향상과 트래픽 분산이 이뤄진다.
캐시 서버는 인터넷 서비스 속도를 높이기 위해 사용자와 가까운 곳에 데이터를 임시 저장하여 빠르게 제공해주는 프록시 서버를 의미한다.
이미지 혹은 동영상 같은 무거운 데이터들은 반복적으로 사용되면서 변경이 적다는 특징을 갖고 있기 때문에,
이러한 데이터를 캐시 서버에 저장함으로써 응답 속도를 빠르게 할 수 있다.
리다이렉트는(Redirect)는 뜻 그대로 다시 요청하는 것인데, 웹 브라우저가 웹 서버에 어떤 URL을 요청했을때
서버가 리다이렉트를 지시하는 특정 HTTP 응답을 통해
웹 브라우저로 하여금 지정된 다른 URL로 재요청하라고 지시하는 것을 말한다.
이 때 웹 브라우저는 클라이언트, 웹 서버는 서버의 역할을 한다.
Today 확인 질문
1. 프록시 서버에 대해 설명해주세요.
: 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 접속할 수 있게 해주는 컴퓨터 시스템 및 응용 프로그램을 의미합니다.
References
성공과 실패를 결정하는 1%의 네트워크 원리
'Dev > CS' 카테고리의 다른 글
[네트워크] Day 11 (0) | 2023.12.30 |
---|---|
[네트워크] Day 9 (0) | 2023.12.16 |
[네트워크] Day 8 (0) | 2023.12.13 |
[네트워크] Day 6 (0) | 2023.12.06 |
[네트워크] Day 5 (0) | 2023.12.03 |
댓글