HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📖
공부한 책
/
1%의 네트워크 원리
1%의 네트워크 원리
/5장 서버측의 LAN에는 무엇이 있는가?/
방화벽의 원리와 동작

방화벽의 원리와 동작

패킷 필터링형이 주류이다패킷 필터링의 조건 설정 개념패킷의 흐름에 착안하여 패킷 필터링 조건 설정함 ( 수신처 IP 주소, 송신처 IP 주소 )애플리케이션을 한정할 때 포트 번호를 사용컨트롤 비트로 접속 방향을 판단함 — 두번째 조건사내 LAN에 관한 보안방화벽으로 막을 수 없는 공격 — 패킷의 내용이 위험할 때대처법

패킷 필터링형이 주류이다

  • 방화벽의 유형에는 패킷 필터링형, 애플리케이션 게이트웨이형, 서킷 게이트웨이형이 있음
  • 이 중에서 성능, 가격, 사용 편의성 등의 이유로 지금은 패킷 필터링형이 가장 많이 보급되어 있음
💡
패킷 필터링형 방화벽은 수신처 IP 주소, 송신처 IP 주소, 수신처 포트 번호, 송신처 포트 번호, 컨트롤 비트 등으로 패킷을 통과시킬지 판단합니다.
  • ‘패킷 필터링'이라는 구조는 방화벽용의 특별한 구조라고 생각할 것이 아니라 라우터의 패킷 중계 기능 중에서 부가 기능이라고 생각하는 것이 좋음
  • 판정 조건이 복잡해지면 라우터의 명령으로 설정하기가 어려워지고, 패킷을 버린 기록을 남기는 것도 라우터에 크게 부담스러운 작업이기에 전용 하드웨어나 소프트웨어를 사용하는 것임
  • 복잡한 조건 설정이나 버린 패킷의 기록이 필요하지 않으면 패킷 필터링 기능을 가진 라우터를 방화벽으로 사용할 수도 있음

패킷 필터링의 조건 설정 개념

notion image
notion image
  • 주소 변환관 패킷 필터링의 조건 설정에 이용하는 항목(TCP, UDP, ICMP … )
  • 패킷의 헤더에는 통신 동작을 제어하는 제어 정보가 들어있고, 이것을 조사하여 여러 사항을 알 수 있음
  • 위험한 것을 차단하고 그 외는 통과시킨다는 방법이라면 미지의 위험한 패킷을 통과시킬 가능성이 있기에 필요한 것만 선별하여 통과시키는 화이트리스트 방식으로 설정하는 것이 일반적임
notion image
  • 서버에서 기생하며 여기에서 다른 서버에 감염되어 가는 부정 소프트웨어가 있어서 웹 서버에서 인터넷측에 액세스하는 것을 금지함
 

패킷의 흐름에 착안하여 패킷 필터링 조건 설정함 ( 수신처 IP 주소, 송신처 IP 주소 )


  • 인터넷에서 보내오는 패킷은 시작점(송신처 IP 주소 )은 정할 수 없지만, 흐름의 종점( 수신처 IP 주소 )은 웹 서버가 되므로 이것을 조건으로 설정하고 조건에 해당하는 패킷만 통과시킴
  • 송신처 IP 주소를 지정할 수 없는 경우에는 조건 지정하지 않아도 괜찮음 ( 첫번째 조건 )
  • 통신을 하려면 연결을 맺어야 하고, 이 때 서버에서 클라이언트 측에 ACK 가 담겨있는 패킷을 보내야 할 경우도 있으므로 송신처 IP 주소가 웹서버와 같을 때 패킷을 통과시킨다는 조건도 추가해야 함 ( 세번째 조건 )

애플리케이션을 한정할 때 포트 번호를 사용


  • IP 주소로만 한정을 하게 되면 인터넷과 웹 서버 사이를 흐르는 패킷은 전부 통과하여 위험한 상태가 됨 ⇒ 웹 이외의 애플리케이션의 패킷은 전부 차단해야 함
    • 예를 들어 파일 서버가 있다면 네트워크를 통해 파일에 부정 접근을 할 수 있음
  • 애플리케이션을 한정할 때는 TCP 헤더나, UDP 헤더에 기록되어 있는 포트 번호를 조건으로 추가함
    • 수신처 IP 주소가 웹 서버의 주소와 일치하고, 수신처 포트 번호가 80인 패킷 통과 시킨다는 조건
    • 송신처 IP 주소가 웹 서버의 주소와 일치하고, 송신처 포트 번호가 80번인 패킷 통과 시킨다는 조건

컨트롤 비트로 접속 방향을 판단함 — 두번째 조건


  • 위의 두가지 만으로는 웹 서버에서 인터넷측에 액세스하는 동작은 금지할 수 없음
    • 웹의 동작은 TCP 프로토콜을 사용하여 양방향으로 패킷이 흐르므로 단순히 웹 서버에서 인터넷으로 흐르는 패킷을 정지시키면 인터넷에서 웹 서버에 액세스하는 동작도 정지됨
💡
⇒ 패킷이 흐르는 방향이 아닌, 액세스 방향을 판단하여 정지시켜야 함! ⇒ TCP 헤더의 컨트롤 비트
최초의 패킷만 TCP 컨트롤 비트의 SYN 비트가 1 & ACK 비트가 0 임
이를 활용하여 액세스 방향을 판별할 수 있음
  • UDP는 TCP와 달리 접속 단계 동작이 없어서 컨트롤 비트로 액세스 방향 판별할 수 없음. 그래서 UDP인 경우는 패킷 전부 통과시키거나 전부 차단하거나 해야 함

사내 LAN에 관한 보안

  • 위 그림과 같은 구성의 경우 인터넷과 공개 서버용 LAN을 왕래하는 패킷의 조건 뿐 아니라 사내 LAN과 인터넷 또는 사내 LAN과 공개 서버용 LAN에서 왕래하는 패킷의 조건도 설정해야 함
    • 설정 안했을 때 인터넷 측에서 흘러온 패킷이 무조건 사내 LAN 으로 유입되게 됨
  • 패킷 필터링형 방화벽은 주소변환의 기능도 가지고 있으므로 외부에서 사내 LAN으로 접속 불가능해짐

방화벽으로 막을 수 없는 공격 — 패킷의 내용이 위험할 때

  • 시점과 종점만 보고 위험한 패킷을 전부 판단할 수 있는 것은 아님. 웹 서버에 좋지 않은 상태가 있어 특수한 데이터를 포함한 패킷을 받으면 웹 서버가 다운된다는 상황일 때, 방화벽은 그 패킷 그냥 통과시켜버림

대처법


  1. 웹 서버 소프트웨어의 버그를 수정함
      • 버그 중에서 위험성이 높은 것은 정보가 보안 구멍으로 널리 공개되어 버그를 수정하지 않은 새 버전이 배포되는 경우임
      • 보안 구멍 정보를 수집하여 항상 새로운 버전으로 갱신하는 것이 중요함
  1. 패킷의 내용을 조사하여 위험한 데이터가 포함되어 있는 경우 패킷을 차단하도록 장치나 소프트웨어를 방화벽과는 별도로 준비하는 방법임
      • 패킷의 내용이 위험한지는 웹 서버에 버그가 있는지의 여부로 결정되는데, 잠재적인 버그가 숨어있어 발견되지 않은 상황이라면 위험한 패킷을 발견하지 못할 수 있기에 미지의 위험성이 있음