강좌
클라우드/리눅스에 관한 강좌입니다.
해킹&보안 분류

브리지(bridge) 방화벽 설치

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

브리지(bridge) 방화벽 설치

 

 

 

 

브리지 방화벽의 구조는 NAT와 같이 보호하고자 하는 서버의 앞단에 설치되어 패킷을 필터링한다.

 

 

 

 

하지만 NAT처럼 IP를 변환하거나 NAT 테이블을 설정할 필요 없이 간단하게 사용이 가능한데, 쉽게 생각하면 서버의 앞단에 설치되는 스위치, 그 중에서 패킷 필터링이 제공되는 스위치라고 생각하면 된다.

 

 

 

 

 

 

브리지 방화벽의 기본 룰은 앞에서 설명한 iptables 문법과 동일하고 구조도 동일하다.

 

 

 

 

다만, 리눅스 서버를 브리지와 같은 형태로 구성하려면 일단 NAT와 같이 이더넷 카드가 2개 이상 있어야 하고, 방화벽에는 IP를 설정하지 않아도 무방하다.

 

 

 

 

왜냐하면 브리지는 NAT와 달리 스위치 형태로 설치되므로 패킷을 라우팅 하는 절차가 필요 없고, 비록 IP를 설정하였다 하더라도 외부에서 방화벽에 접속할 때만 필요하고 이외에는 의미가 없기 때문이다.

 

 

 

 

따라서 외부에서 traceroute를 해도 브리지 방화벽의 IP는 경로에 보이지 않는다.

 

 

 

 

이렇듯 패킷을 통과시키는 브리지 형태로 구성하려면 커널에서 브리지 지원 메뉴(802.1d Ethernet Bridging)만 선택하여 재 컴파일하면 되지만 단순히 패킷을 통과시키는 브리지 기능 외에 방화벽과 같이 패킷을 필터링하는 기능을 이용하려면 커널 2.4의 경우 별도의 커널 패치를 하여야 하고 2.6에서는 별도의 커널메뉴를 선택하여야 한다.

 

* 커널패치 작업

 

커널 2.6에서는 기본적으로 브리지 필터링 메뉴를 지원하고 있지만 커널 2.4에서는 별도의 커널 패치를 하여야 한다.

 

 

 

 

커널 패치를 하기 위해서 bridge-nf 파일을 다운로드 하여야 하는데, 패치 파일은 아래의 주소에서 다운로드 하기 바란다.

 

 

 

 

 

이전에는 http://bridge.sourceforge.net/에서 제공되었지만 현재는 더 이상의 업그레이드 및 개발이 중단되었고, 대신 http://ebtables.sourceforge.net/에서 계속 개발되고 있다.

 

 

 

 

 

321b99fa8ee3480b928de5ca587af27b_1686718978_9602.png
 

ebtables 홈페이지


 

 

위 주소에서 자신의 커널 버전에 맞는 패치 파일인 ebtables-brnf-3_vs_2.4.xx.diff.gz 파일을 다운로드한 후 이 파일을 /usr/src/linux/ 디렉토리로 이동하여 gzip -d 압축해제 후 패치 하도록 한다.

 

 

 

 

 

 

 

[root@firewall linux]# gzip -d ebtables-brnf-x_vs_2.4.xx.diff.gz

[root@firewall linux]# patch -p1 < ebtables-brnf-x_vs_2.4.xx.diff

 

이후 “make menuconfig”를 실행한 후 아래와 같이 두 메뉴를 선택하도록 한다.

 

Networking options --->

[*]802.1d Ethernet Bridging

[*] Bridge: ebtables

위 두 옵션만 선택하면 되고 하위의 옵션은 선택하지 않아도 된다.

 

일부 하위 버전의 커널에서는 Bridge: ebtables 대신 netfilter (firewalling) support으로 보이기도 한다.

 

 

 

 

여기에서 “802.1d Ethernet Bridging”은 애초부터 커널 소스에서 제공하던 이더넷 브리징 기능이었고, 커널 패치를 하면 Bridge: ebtables 또는 netfilter (firewalling) support가 추가되는 것이다.

 

 

 

 

만약 “802.1d Ethernet Bridging”를 선택한 후 커널 메뉴에 Bridge: ebtables 또는 netfilter (firewalling) support 메뉴가 추가되지 않았다면 패치가 잘못된 것이므로 패치 여부를 다시 확인해 보기 바란다.

 

 

 

 

 

그리고 여기에서 한 가지 주의해야 할 것이 있다.

 

 

 

 

만약 “[*] Network packet filtering (replaces ipchains)” 메뉴 밑에 있는 “[ ] Network packet filtering debugging”를 선택하였을 경우에는 패킷이 필터링 될 때마다 발생하는 debug 메시지로 인하여 불필요한 부하를 유발할 수 있으므로 반드시 선택하지 않는 것이 좋다.

 

 

 

 

이와 같이 커널 컴파일 후 재부팅을 하여 새롭게 패치한 커널로 부팅하면 브리지를 사용할 수 있는 준비가 된 셈이다.

 

 

 

 

다음으로는 방화벽을 사용하기 위해 iptables가 필요한 것처럼 브리지를 사용하기 위한 관리 프로그램인 brctl을 설치할 차례이다.

 

 

 

 

 

이는 http://sourceforge.net/project/showfiles.php?group_id=26089에서 소스코드를 다운로드하거나 http://rpmfind.net/에서 bridge-utils로 검색하여 rpm으로 설치해도 된다.

 

 

 

 

만약 소스로 설치할 때에는 압축 해제 후 make로 컴파일하면 brctl/ 디렉토리에 brctl 실행파일이 생성되는데 이 파일을 /sbin/으로 옮기도록 한다.

 

 

 

 

 

 

[root@firewall src]# tar zxvfp bridge-utils-x.x.x.tar.gz

[root@firewall src]# cd bridge-utils-x.x.x

[root@firewall bridge-utils-x.x.x]# make

[root@firewall bridge-utils-x.x.x]# mv brctl/brctl /sbin/

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,854 개
  • 현재 접속자 :  130 명