방화벽이란 무엇입니까?

1. 방화벽의 개념

방어벽이라고도 불리는 방화벽은 1993년 Check Point의 설립자인 Gil Shwed에 의해 발명되어 국제 인터넷에 도입되었다(US5606668(A) 1993-12-15). 내부 네트워크와 외부 네트워크 사이에 위치하는 네트워크 보안 시스템입니다.

특정 규칙에 따라 전송된 데이터의 통과를 허용하거나 제한하는 정보 보안 보호 시스템입니다.

통과 또는 차단할 액세스 제어 규칙을 기반으로 하는 방화벽.

네트워크 세계에서 방화벽에 의해 필터링되는 통신 데이터를 전달하는 것은 통신 패킷입니다. 네트워크에서 "방화벽"은 인트라넷을 공용 액세스 네트워크(인터넷)와 분리하는 방식을 말하며, 이는 사실상 격리 기술입니다. 방화벽은 두 개의 네트워크가 통신할 때 구현되는 액세스 제어의 규모로, "동의"하는 사람과 데이터는 네트워크에 진입하는 동시에 "동의하지 않는" 사람과 데이터는 차단하여 네트워크에서 해커를 차단할 가능성을 최대화합니다. 네트워크에 액세스하지 못하도록 합니다. 즉, 방화벽을 통과하지 않으면 회사 내부의 사람들이 인터넷에 액세스할 수 없고 인터넷상의 다른 사람들이 회사 내부의 사람들과 통신할 수 없습니다.

 

2. 방화벽의 역사

방화벽은 탄생 이후 XNUMX단계의 개발 단계를 거쳤습니다.

  • 라우터 기반 방화벽
  • 맞춤형 방화벽 도구 세트
  • 범용 운영 체제에 구축된 방화벽
  • 보안 운영 체제가 있는 방화벽

이제 일반적인 방화벽은 NETEYE, NETSCREEN, TALENTIT 등과 같은 보안 운영 체제가 있는 방화벽입니다.

3. 방화벽의 종류

네트워크 수준 방화벽

네트워크 수준 방화벽은 기본 TCP/IP 프로토콜 스택에서 작동하는 IP 패킷 필터로 간주할 수 있습니다. 특정 규칙과 일치하는 패킷만 통과하도록 허용하고 나머지는 방화벽 통과가 금지되도록 열거할 수 있습니다(차단할 수 없는 바이러스 제외). 이러한 규칙은 일반적으로 관리자가 정의하거나 수정할 수 있지만 일부 방화벽 장치는 기본 제공 규칙만 적용할 수 있습니다.

애플리케이션 방화벽

응용 프로그램 방화벽은 브라우저를 사용하거나 FTP를 사용할 때 생성하는 데이터 스트림이 속하는 TCP/IP 스택의 "응용 프로그램 계층"에서 작동합니다. 응용 프로그램 계층 방화벽은 응용 프로그램과 주고받는 모든 패킷을 가로채고 다른 패킷은 차단합니다(일반적으로 단순히 삭제). 이론적으로 이러한 유형의 방화벽은 외부에서 보호된 시스템으로의 데이터 흐름을 완전히 차단할 수 있습니다.

데이터베이스 방화벽

데이터베이스 방화벽은 데이터베이스 프로토콜 분석 및 제어 기술을 기반으로 하는 데이터베이스 보안 시스템입니다. 능동방어메커니즘을 기반으로 데이터베이스 접근 및 행위통제, 위험한 작업차단, 의심행위 감사를 실현합니다. SQL 프로토콜 분석을 통해 데이터베이스 방화벽은 사전 정의된 금지 및 권한 정책에 따라 합법적인 SQL 작업을 통과시키고 불법 및 비준수 작업을 차단하여 데이터베이스의 주변 방어 서클을 형성하고 위험한 SQL에 대한 능동적 예방 및 실시간 감사를 실현합니다. 작업. 데이터베이스 방화벽은 외부로부터의 침입에 대비하여 SQL 인젝션 금지 및 데이터베이스 가상 패치 패키지 기능을 제공합니다.

4. 리눅스 F이레왈l

Linux 방화벽은 엔터프라이즈 애플리케이션에서 매우 유용합니다. 예는 다음과 같습니다.

  • 중소기업과 인터넷 카페는 iptables를 NAT 라우터로 가지고 있으며 비용 절감을 위해 기존 라우터를 대체하는 데 사용할 수 있습니다.
  • IDC 서버실에는 일반적으로 하드웨어 방화벽이 없으며 서버는 IDC 서버 룸은 하드웨어 방화벽 대신 Linux 방화벽을 사용할 수 있습니다.
  • squid와 결합된 iptables는 내부 인터넷 액세스를 위한 투명한 프록시로 사용할 수 있습니다. 기존 프록시는 브라우저에서 프록시 서버 정보를 구성해야 하지만 iptables + squid 투명 프록시는 클라이언트의 요청을 프록시 서버 포트로 리디렉션할 수 있습니다. 클라이언트는 설정을 할 필요가 없으며 프록시의 존재를 느끼지 않습니다.
  • iptables를 엔터프라이즈 NAT 라우터로 사용할 때 iptables 확장을 사용하여 P2P 트래픽을 차단하고 불법 웹 페이지도 차단할 수 있습니다.
  • iptables를 사용하여 외부 IP를 내부 IP에 매핑할 수 있습니다.
  • Iptables는 ping 공격 및 SYN flood와 같은 가벼운 DOS 공격을 쉽게 방지할 수 있습니다.
  • 요약하면 Iptables에는 호스트 방화벽과 NAT 라우터의 두 가지 애플리케이션 모드가 있습니다.

 

5. 방화벽의 기본 원리

아래 그림의 바이트 전송 흐름에 따라 다음과 같은 계층으로 나눌 수 있습니다.

  • 패킷 필터링: 네트워크 계층에서 작동하며 패킷 헤더의 IP 주소, 포트 번호, 프로토콜 유형 및 기타 플래그만 기반으로 패킷 통과를 허용할지 여부를 결정합니다.
  • 응용 프로그램 프록시: 응용 프로그램 계층에서 작동하며 다른 응용 프로그램 프록시를 작성하여 응용 프로그램 계층 데이터의 감지 및 분석을 실현합니다.
  • Stateful 검사: 레이어 2~4에서 작동하며 액세스 제어는 1과 동일하지만 처리 대상은 단일 패킷이 아니지만 전체 연결은 규칙 테이블 및 연결 상태 테이블을 통해 패킷 허용 여부를 포괄적으로 판단합니다. 넘기기.
  • 전체 콘텐츠 검사: 레이어 2~7에서 작동하며 패킷 헤더 정보 및 상태 정보를 분석할 뿐만 아니라 애플리케이션 레이어 프로토콜의 콘텐츠를 복원 및 분석하여 하이브리드 보안 위협을 효과적으로 방지합니다.

비트 흐름

넷필터와 iptables

6. 넷필터와 iptables

Netfilter는 Rusty Russell이 제안한 Linux 2.4 커널 방화벽 프레임워크로, 간단하고 유연하며 보안 전략 응용 프로그램에서 많은 기능을 구현할 수 있습니다. 패킷 필터링, 패킷 처리, IP 마스커레이딩, 투명 프록시, 동적 NAT(네트워크 주소 변환), 사용자 및 MAC(미디어 액세스 제어) 주소 기반 필터링 및 상태 기반 필터링, 패킷 속도 제한 등 Iptables/Netfilter의 규칙은 뛰어난 디자인 아이디어 덕분에 매우 많은 기능을 형성하고 다양한 측면을 다루기 위해 유연하게 결합될 수 있습니다. Netfilter/Iptables 패킷 필터링 시스템은 netfilter를 커널 모듈 구현으로, iptables를 상위 수준 작업을 위한 도구로 사용하여 전체적으로 처리할 수 있습니다. 엄격한 구분 없이 Linux에서 netfilter와 iptables는 모두 Linux 방화벽을 참조하는 것으로 간주할 수 있습니다. 실제로 Iptables는 커널 패킷 필터링을 관리하는 도구이며 커널 패킷 필터링 형식으로 규칙을 구성하는 데 사용할 수 있습니다. 사용자 공간에서 실행됩니다.

 

차이점은 netfilter는 Linux 2.4 커널에 도입된 Netfilter라는 새로운 패킷 필터링 엔진으로, 프로그램이나 파일의 형태가 아닌 Linux 커널의 패킷 필터링 방화벽 내부 구조를 말하며 "커널 상태"에 속합니다. 방화벽 기능 시스템. iptables는 일반적으로 "사용자 상태" 방화벽 관리 시스템의 일부인 /sbin/iptables에 있는 Linux 방화벽을 관리하는 데 사용되는 명령 프로그램을 나타냅니다. iptables는 Linux 2.2 커널에서 ipchains 명령의 더 오래된 형제인 Netfilter를 제어하는 ​​도구입니다. iptables는 Netfilter를 제어하는 ​​도구이며 Linux 2.2 커널에서 ipchains 명령의 더 오래된 형제입니다.

Netfilter가 설정한 규칙은 커널 메모리에 저장되는 반면 iptables는 Netfilter가 내놓은 인터페이스를 통해 커널 메모리에 저장된 XXtables(Netfilter의 구성 테이블)를 수정하는 응용 프로그램 수준 응용 프로그램입니다. 이 XXtables는 테이블, 체인 및 규칙으로 구성됩니다. iptables는 애플리케이션 계층에서 이 규칙 파일을 수정하는 역할을 합니다. 방화벽은 그것과 유사합니다.

iptables와 netfilter의 연결은 무엇입니까?

많은 사람들이 즉시 iptables를 방화벽으로 생각하지만 사실 iptables는 방화벽이 아니며 특정 규칙을 작성하고 작성된 규칙을 netfilter의 규칙 데이터베이스에 저장할 수 있는 소프트웨어 또는 도구일 뿐입니다. 따라서 진정한 "화재 예방"은 iptables가 아니라 Netfilter입니다. netfilter는 XNUMX개의 테이블과 XNUMX개의 체인을 포함하는 커널의 프레임워크이며 이러한 체인에는 많은 규칙이 포함되어 있습니다. 패킷이 비교되는 규칙 이 체인에 정의된 규칙입니다.

다음에서는 Linux 방화벽을 iptables라고 합니다.

iptables와 netfilter의 연결

7. 방화벽의 성능

처리량: 이 메트릭은 네트워크 성능에 직접적인 영향을 미칩니다.

숨어 있음: 입구에서 입력 프레임의 마지막 비트가 도착하고 출구에서 출력 프레임의 첫 번째 비트가 출력되는 사이의 시간 간격입니다.

패킷 손실률: 정상 상태 부하에서 네트워크 장치가 전송해야 하지만 리소스 부족으로 인해 삭제되는 프레임의 비율입니다.

연속: 유휴 상태에서 시작하여 상당한 수의 고정 길이 프레임이 전송 매체의 최소 법적 간격 제한에 도달하는 전송 속도로 전송됩니다. 첫 번째 프레임이 손실되었을 때 전송된 프레임 수입니다.

동시 브라우저 연결: 방화벽을 통과하는 호스트 간 또는 호스트와 방화벽 간에 설정할 수 있는 최대 동시 연결 수입니다.

8. 방화벽의 한계

방화벽은 네트워크 보안을 보호하기 위한 기본적인 장치이지만, 차단하기 쉽지 않은 보안 위협도 있습니다. 우선 방화벽을 통과하지 않거나 방화벽을 우회하지 않는 공격은 방화벽이 차단할 수 없습니다. 예를 들어, 일부 사용자는 보호된 네트워크 내부에서 전화를 걸 수 있는 경우 인터넷에 직접 연결할 수 있습니다. 방화벽은 주로 호스트가 제공하거나 요청하는 서비스에 대한 접근 통제인 패킷 헤더 정보 탐지 및 차단 방식을 기반으로 하며 개방된 포트를 통해 흐르는 유해 트래픽을 차단할 수 없으며 웜이나 해킹 공격에 대한 솔루션이 아니다. 또한 방화벽은 네트워크 내에서 공격이나 남용을 방지하기 어렵습니다.

코멘트 남김

위쪽으로 스크롤