본문 바로가기

23년 2학기 학교공부/컴퓨터네트워크

[CN] 방화벽(Firewall)

목차

    728x90
    반응형
    SMALL
    2023학년도 2학기 충남대학교 이영석 교수님의 컴퓨터네트워크 수업 정리자료입니다.

     

     

     

     

    📁 방화벽(Firewall)

     

    방화벽이란, 어떤 기관의 내부망을 외부의 큰 인터넷으로부터 고립시켜, 특정 패킷들만 통과하게끔하는 네트워크 상의 벽을 말한다.

     

     

    방화벽을 사용하는 이유는 다음과 같다.

     

    1. 서비스 거부 공격(Denial of Service attack, DoS)을 방어할 수 있다.
      - DoS : 웹사이트 또는 네트워크가 정상적으로 리소스를 처리할 수 없을 정도로 악성 트래픽을 대량으로 보내는 공격을 말한다. 
      - SYN flooding : 일반적으로 TCP 통신을 위해서는 3way handshaking 과정에서 SYN 패킷을 전달해야한다. 이때 정상보다 훨씬 많은 수의 SYN 패킷을 전송하여 과도하게 통신을 시도함으로써 서버에 부하를 주어 제기능을 못하도록 하는 공격을 말한다.
      - DoS 공격의 일종으로 SYN flooding이 있으며, 방화벽을 사용하면 DoS 공격 및 SYN flooding을 방어할 수 있다.

    2. 내부 데이터를 불법적으로 수정 및 접근하는 것을 방어할 수 있다.

    3. 인증된 유저만 네트워크에 접속할 수 있도록 한다.

     

     

     

    방화벽의 종류에는 stateless packet filter, stateful packet filter, application gateways 세가지가 있다.

     

     

    🌱 Stateless packet filtering

    내부 네트워크망에서 외부 인터넷을 접속하려고 할 때 반드시 방화벽을 통과해야한다. 이때 방화벽을 지나가는 모든 패킷에 대해 미리 정의된 규칙에 따라서 방화벽을 통과시킬지 막을지를 검사하는 방법이다.

     

    패킷을 통과시킬지 막을지를 결정하는 규칙은 보통 source IP주소, destination IP주소, TCP/UDP source, destination 포트번호, ICMP 메세지타입, TCP SYN/ACK 비트수 등에 대해 규정되어 있으며, 이런 규칙들을 담은 리스트를 접근제어목록(Access Control LIst, ACL)라고 부른다.

     

    Stateless filtering의 ACL 예시

     

     

    예를 들어 IP protocol field 값이 17이고 source 혹은 destination 포트번호가 23인 들어오고 나가는 데이터그램을 차단한다고 방화벽을 설정하면, 들어오고 나가는 모든 UDP 흐름과 telnet 연결이 차단된다.

     

    또 ACK=0인 TCP 세그먼트를 차단한다고 설정하면, 외부클라이언트가 내부클라이언트에 TCP연결하는 것을 막지만 내부에서 외부에 연결하는것은 허용한다.

     

    아래 표에서 방화벽 정책과 설정에 관한 예시를 더 확인할 수 있다.

     

     

     

     

     

    🌱 Stateful packet filtering

    모든 TCP 연결을 추적한다. 연결 설정 패킷인 SYN과 연결 해제 패킷인 FIN을 추적하여 들어오고 나가는 패킷이 합리적인 패킷인지여부를 결정한다.

     

     

    TCP 연결을 확인해야하기 때문에 ACL에 check connection 컬럼이 추가된다.

     

     

     

     

    🌙 공유기 방화벽 확인

     

    iptables -nL -v

     

    위 명령어로 공유기의 방화벽을 확인할 수 있다.

     

     

     

     

     

    🌱 Application gateways

    IP/TCP/UDP 필드는 물론 application data에대한 패킷을 필터랑한다.

     

    예를 들어 일부 사용자가 외부에서 telnet을 사용할 수 있도록 허락할 수 있다.

     

     

    아래와 같은 과정을 거친다.

    1. 모든 telnet 사용자는 게이트웨이를 통해 telnet을 사용하겠다고 요구한다.
    2. 승인된 사용자의 경우, 게이트웨이가 대상 호스트에 대한 telnet 연결을 설정한다. 이때 게이트웨이는 두 연결 사이의 데이터를 중계한다.
    3. 라우터 필터는 게이트웨이에서 시작되지 않는 모든 telnet 연결을 차단한다.

     

     

    firewalls와 gateway의 한계점

    • IP spoofing을 사용하게 되면, 라우터는 데이터가 해당된 source에서 온 데이터인지 알 방법이 없다.
    • 여러 app에 특별하게 처리할 필요가 있는 경우, 각 app은 자신만의 고유 gateway를 갖는다.
    • 클라이언트 소프트웨어는 웹 브라우저에서 프록시의 IP주소를 설정하는 등 gateway에 접근할 수 있는 방법을 알아야한다.
    • filter는 종종 UDP에 대해 모두 정책을 적용하거나 아무 정책도 적용하지 않는다.
    • 외부와의 의사소통정도와 보안 수준 간의 tradeoff가 발생한다.
    • 고도로 보안되는 사이트들도 여전히 공격받고있다.

     

     

     

     

     

    📁 침입 탐지 시스템(Intrusion detection systems, IDS)

     

    침입탐지 시스템이란 방화벽과 함께 활용되는 네트워크 보안 솔루션으로, 네트워크에서 송수신되는 모든 데이터의 움직임을 감지하는 시스템을 말한다.

     

    패킷 필터링 방식은 TCP/IP 헤더에서만 작동하고, 세션간의 상관관계를 확인하지 않는다.

     

    하지만 IDS는 패킷 내에 알려진 바이러스DB가 있는지 확인하거나, 공격문자열과 패킷의 문자열을 비교해보는 등 패킷의 내용을 확인하는 deep packet inspection을 진행하고, 포트 스캐닝이나 네트워크 매핑, DoS 공격 등을 고려하여 여러 패킷간의 상관관계를 검사한다.

     

     

    IDS를 여러개 사용하면, 서로 다른 장소에서 서로 다른 종류의 확인이 가능하다. (?)

     

     

     

    728x90
    반응형
    LIST