[보안] GNU/Linux Bridge 설비를 이용한 Firewall 구축하기 Mini-HOWTO

GNU/Linux Bridge 설비를 이용한 Firewall 구축하기 Mini-HOWTO

작성자: 정정화(jhjung@wyzsoft.com)

작성일: 2000년 6월 19일 17시 50분

대상: 기존 네트워크 환경에 전혀 수정을 가하지 않은채로 방화벽 설비를

사용할 분들

참고 문서: Firewall HOWTO , Linux Real IP Forward/Firewall Machine 구축기

0. 저작권 GPL을 따른다.

1. 들어가기 앞서

기존 본인이 쓴 Linux Real IP Forward/Firewall Machine 구축기는 물론

잘 작동하지

만 라우터에 대한 직접적인 수정을 요구하는 부분이 있어 라우터에 대한 이해

없이는 잘 설정을 못하시는 분들이 많아 방법을 고심하던중 리눅스의 브리지

설비를 이용한 투명한(transparent) 방식의 Firewall을 소개하기에 이르렀다 🙂

2. 요구사항 – Linux Real IP Forward/Firewall Machine 구축기와 같음 –

그러나 윗작업보다는 약간 설정할 부분이 많기 때문에 담배 한갑 더 추가

3. 본인의 장비 및 환경

– Router: CISCO 4500M + 1 Fastethernet module  + 2 serial module –

Linux1: Intel pentium III 600 + 256M ram + 12G HDD – NIC: 3com 905  ,

905b – HUB: Intel 405T standalone switch HUB * 3 – IP대역: 211.50.38.0/25

(255.255.255.128) – 디스 한보루 + 불티나 라이터(지포는 잃어버렸음. 새로

사줄 여자분 환영) – Network Bandwidth: T1 – GNU/Linux kernel 2.2.5(커널

버전이 낮은 이유가 있음) – Redhat linux 6.2

4. 여전한 닭질의 시작

저번에 만들어 두었던 크로스 케이블을 버릴 필요는 없다. 이번에도 역시

써야되니까

      Cross        

+—+       +—+    +—+ ———— PC

|   |——-|   |— |   | ———— PC

|   |       |   |    |   | ———— PC

+—+       +—+    +—+ ———— PC

Router      Linux      Hub

            box

[그림.1] Linux Box가 추가된 상태

http://ac2i.tzo.com/bridge_filter/ 에서 브리지 필터를 다운 받은후

커널에 패치한다. 2.2.5 기준이기 때문에 상위 버전에서 패치하려면 수작업이

필요할 것이다. 본인은 귀찮아서 커널을 2.2.5로 낮추었다 :))) 커널 컴파일

옵션에서 네트워크에 관련된 옵션은 잘 선택해야된다. 그리고 절대적으로

*BRIDGE* 부분은 무조건 enable시킨다.  제대로 컴파일을 하고 재부팅을 한

후 ipchains -L 을 쳐보면 bridgein 이라는 Chain 하나가 더 생성된 것을

볼 수 있다. 이제 커널에 bridgein, input, forward, output 네개의 기본

체인이 적재된것이다. 그리고 모든 방화벽에 관련된 룰설정은 bridgein에서만

작동한다. 참고로 브리지에 붙은 NIC는 IP를 부여하지 않는게 원칙이지만

외부에서 관리할 경우를 생각해서 IP를 줄 수 있다. 중요한 것은 두 NIC에

대해서 promisc모드와 arp 모드를 켜는 것이다. promisc 모드를 켜지 않으면

브리지가 작동하지 않는다 arp는 arp_proxy를 위해서 켜는 것이다.

ex) ifconfig ethx promisc arp

그리고 브리지 자체를 설정하기 위해서는 bridge config 툴을 받아야 한다.

ftp.tux.org/people/alan-cox/BRCFG.tgz를 받아서 컴파일 한다.

컴파일 후 brcfg를 적당한 곳에 카피한 후(/usr/sbin 정도) 다음 명령을

실행한다.  brcfg -ena brcfg -port 1 -ena brcfg -port 2 -ena

브리지가 잘 작동하는것이 보일 것이다. 이 시점부터는 리눅스는 브리지로

작동하기 때문에 ipchains 로 bridgein 에 룰만 설정하면 방화벽으로서의

역할을 충실히 수행한다. 참고로 bridgein 에 대해서는 현재 REJECT 룰은 걸

수 없다. DENY와 ACCEPT만 가능하다. 조만간 패치가 될 것으로 보인다. 가끔

arp를 못 알아내는 경우가 생기는데 /proc/sys/net/ipv4/conf/all/proxy_arp

의 내용을 1로 바꿔서 arp_proxy 가 작동하게 하면 별 문제가 없을 것이다.

5. 요약

-커널 패치(bridge filter) -커널 컴파일(bridge option ‘Y’) -ifconfig

ethx promisc arp -brcfg -ena -brcfg -port 1 -ena -brcfg -port 2 -ena

-tcpdump 등으로 작동 확인 *브리지 자체는 데이터 링크에서 작동하기

때문에 상위 레이어에서 무슨일이 일어나던 상관하지 않는다. 즉 TCP/IP/ICMP

프로토콜 이외에도 본인의 능력여하에 따라서 다른 프로토콜 역시 제어할 수

있다. 이것은 이 문서를 읽는 분들의 과제로 남긴다.

6. 사용후기

기존 IP 포워딩에서 문제였던 라우터를 더이상 신경쓸필요가

없다. 결론은 무지 편해졌다이다!!!! 날잡고 방화벽 바꾸시길 다들.

6. 질문및 의견

정정화(jhjung@wyzsoft.com) 와이즈소프트 기술개발 연구소 개발3팀/팀장

방화벽/보안기술 개발팀

7. 감사의 말 이번엔 혼자 썼음-_-;

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.