보안공학연구논문지 제 권제 호 년 월 리눅스방화벽에관한연구 배유미 정성재 요약 서버운영체제인 를기반으로탄생한리눅스 는다양한서비스와많은사용자들이접속한다 사용자가많아지면서원치않는접속이발생하게되고 이러한접속은시스템의트래픽을유발하게된다 리눅스에서는접속제한을하기위해 를비롯하여 및 사용하였고 현재는 를이용하여패킷필터링및방화벽기능을수행하고있다 최근의 는방화벽기능이외에다양한기능을보유하고있으며 관련응용프로그램들과융합하여상용방화벽프로그램에필적할만한성능을보이고있다 본논문에서는리눅스방화벽프로그램인 를분석하여비용부담없는보안시스템구축방안에대해연구하고자한다 핵심어 리눅스 방화벽 서버 정보보호 Abstract Linux is based on Unix operating system has variety of Services and has connected by many users. Unnecessarily connections have occurred by many users, these connections cause traffic of system. Linux used TCP Wrapper, ipfwadm and ipchains for connection limit, but now use iptables for packet filtering and firewall function. Recently iptables has variety of functions including firewall function, has been showing equal ability compared to commercial firewall program by integrating with applications. In this paper we analyze iptables is linux firewall program and study ways to build cost effective secure system. Keywords : Linux, Firewall, iptables, Server, Information Security 접수일 (2011년08 월28일 ), 심사의뢰일 (2011년08 월29일 ), 심사완료일 (1차:2011 년09월15 일, 2차 :2011년09 월25일 ) 게재일 (2011년10 월31일 ) 대전시대덕구오정동 한남대학교컴퓨터공학과박사과정 교신저자 대전시중구대사동 청운빌딩 층 주 스컴씨엔에스 599
리눅스방화벽에관한연구 서론 오픈소스운영체제인리눅스는서버운영체제인 를모태로탄생하여서버 로많이사용되고있다 서버는사용자들의접속을허가하는구조로운영되지만원치않는접속자가발생할수있고 이러한접속들은서버의트래픽을발생하게된다 따라서 서버에서사용자의접속제한은필수라고볼수있다 리눅스도등장했을무렵초기부터접속제한을위해 에서사용하던 를비롯하여 리눅스커널 버전에서는 의 커널 버전에서는 커널 버전에서는 커널 버전이후로는 를사용하고있다 단순히공개용운영체제위의공개용방화벽프로그램이라고생각되던이러한프로그램들이현재 에이르러서는상용방화벽프로그램과필적할만성능과최신기능을보유하게되었다 따라서 본논문에서는리눅스방화벽의역사를분석하고 가장최신버전의방화벽프로그램인 를파악하여비용부담없이상용방화벽및침입탐지시스템에필적할만한보안시스템구축방안에대해연구하고자한다 관련연구 리눅스와방화벽의역사 오픈소스운영체제인리눅스는 운영체제를기반으로만들어져초기에는주로서버로사용되었다 등 운영체제에서실행되었던다양한서비스를비용부담없이사용할수있다는장점으로리눅스를사용하게되었고 현재까지도서버시장에서상당히높은비율의점유율을보이고있다 리눅스가 처럼서버로주로사용되어운영중인서비스별사용자제한이필요하였고 초기에사용하던방법이 이다 는 라는데몬이여러서비스를관리하는슈퍼데몬인 에의하여수행되는서비스들의접근을제어하도록하는프로그램이다 즉시스템에접속을허락한호스트만접속할수있도록한다거나 또는원하지않는호스트의접근을막도록해주는접근제어를담당하였다 그러나 는 에의해서수행되는서비스들만을제어하였고 대상도단순히호스트만가능했기때문에상당히제약이많았다 리눅스가공개용운영체제이고비용부담없이사용할수있다는특성으로인해많은응용프로그램들이포함되었고 패킷필터링 및방화벽역할을하는프로그램도서버의특 성상필수적으로포함되었다 리눅스가서버운영체제로서인정받기시작한것이커널 기준으로 버전부터인데 이버전에는 이라는도구로서패킷필터링및방화벽을제어하였고 버전부터는 라는도구를사용하였다 과 는패킷제어를통한차단 하나의공인 주소를이용하여다수의시스템이인터넷을사용할수있는 600
보안공학연구논문지 제 권제 호 년 월 기능등을제공하였으나 간단한방화벽의역할을수행할뿐만족할만한수준은아니었다 년 월에리눅스커널 버전이배포되면서 및 보다더강력한방화벽프로그램을리눅스의일부분으로포함시켰는데 이프로그램이 이다 방화벽은넷필터프로젝트 에서개발된것으로초기에는 의기능적확장형태로선보였으나 시간이지나면서상용방화벽에필적한만큼의기능을가진강력한방화벽으로발전하였다 년현재리눅스커널 버전에서도변함없이커널에포함되어패킷필터링및방화벽역할을수행하고있다 와 는 에서사용하는접근제어방법으로텍스트파일인 및 등 개의파일에설정하여사용하기는용이하나 제어가되는서비스들이 라는슈퍼데몬에의해관리되는것으로만한정되었고단순호스트를대상으로만가능했기때문에세밀한제어는불가능하였다 이러한문제점을보완하기위해리눅스커널 버전에서사용한방화벽프로그램이 이다 은원래 계열에서사용하던 를기반으로만들어진것으로기존의서비스별로제어를하는것뿐만아니라 패킷들이들어오거나나가는것을관리할수있다 특정 주소나일정영역의 주소대역을지정할수있으며 허용하는포트도지정하고특정프로토콜과조합하여사용할수도있다 는 와비교하여네트워크패킷을기준으로제어를했기때문에더세밀한제어가가능하였고 현재의방화벽의틀을잡는기준이되었다 리눅스커널 버전에등장한 는커널 버전에서사용한 을다시작성해서만든것으로논리적인 개의사슬 을사용해서체계적으로만들었다 기존의 은옵션을지정하여들어오는패킷 나가는패킷 매스커레이딩 패킷으로나누어설정하는형태였지만 는체계적인정책설정을위해 이라는사슬을만들어해당사슬에정책 을설정하는형태이다 기본적인사슬인 이외에사용자가직접사슬을정의하여사용할수있도록하였다 601
리눅스방화벽에관한연구 표 의사슬 사슬명 역할 리눅스시스템을향해들어오는패킷들이거치는사슬 리눅스시스템을거쳐 사슬로향하는사슬로공인 를공유하여사용하는매스커레이딩 정책을내릴때사용하는사슬 리눅스시스템을거쳐나가는패킷들이들어가는사슬 그림 의사슬구조 리눅스방화벽 의개요 리눅스커널 버전부터사용되는 는 의사슬구조를그대로승계했지만 계층구조의테이블 을만들어사용하여이름을 라명명하였다 와거의유사하게사슬에정책을설정하여사용하지만 기능과역할을강화하기위해테이블로확장하여테이블별로각각의사슬을지정하고해당사슬에정책을설정하도록되어있다 는패킷필터링을직접적으로수행하지않고 커널에있는넷필터 라는모듈이필터링을수행한다 넷필터는리눅스가제공하는모든종류의패킷필터링과맹글링 도구로네트워크스택으로함수를후킹 하는데사용할수있는커널내부의프레임워크이다 602
보안공학연구논문지 제 권제 호 년 월 는패킷에대한필터링을수행하게설계된함수를네트워크스택으로후킹하기위해넷필 터프레임워크를사용한다 즉넷필터는 가방화벽기능을구현할수있게프레임워크를 제공한다고보면된다 의구조 리눅스커널내부에서구현되어응용프로그램에서구현되는다른방화벽프로그램에비해빠르고강력하게 패킷에대한제어가가능하고 내부의트래픽도덜발생시킨다 를이용하여정책을설정하여들어와서는안되는패킷을차단하고 통과하는패킷은목적지로전송하거나로컬네트워크의요구사항에따라적용된다 의정책은정렬된규칙집합으로부터생성되고 규칙은특정분류의패킷에대해취해야할조치를커널에게알려준다 하나의 규칙은테이블내에있는하나의사슬에적용된다 의사슬은순서대로공통적인특징을공유하는패킷들과비교되는규칙모임이라고볼수있다 는 와같은 개의테이블이있다 는 의기본테이블로패킷필터링을담당한다 이전프로그램들은 테이블만가지고사용했다고보면된다 테이블은 의약자처럼 의주소를변환시키는역할을수행한다 의 사슬역할을확장한것으로한개의공인 주소를가지고여러대의컴퓨터를사용하거나 하나의공인 주소를가지고여러대의서버를운영하고자할때주로사용한다 은패킷데이터를변경하는특수규칙을적용하는테이블로성능향상을위한 를설정하고 는넷필터의연결추적하위시스템과독립적으로동작해야하는규칙을설정하는테이블이다 각테이블은자신만의고유한사슬집합을가지고있지만 사용자가 나 와같은공통태그와관련된규칙집합을만들기위해사용자정의체인을생성할수있다 다음의표 는테이블에존재하는사슬의목록이다 [ 표 2] 테이블과사슬 [Table 2] Table & Chain 사슬 테이블 603
리눅스방화벽에관한연구 방화벽및패킷필터링은 테이블의 개의사슬에정책을설정하면되는데 각사슬별역 할은아래의표 과같다 [ 표 3] Filter 테이블의사슬 [Table 3] Chain of Filter Table 사슬 기능 패킷필터링및방화벽관련정책들을설정하는사슬로실제적인접근통제를담당하는역할을수행 커널내부에서라우팅계상을마친후로컬리눅스시스템이목적지인패킷 즉로컬소켓이목적지인패킷 에적용 다른시스템으로접근을차단할때사용하는사슬로리눅스시스템자체가생성하는패킷을제어하는사슬 리눅스시스템을통과하는패킷을관리하는사슬로한네트워크를다른네트워크와연결하기위해 방화벽을사용해서두네트워크간의패킷이방화벽을통과하는경우에사용되고 기반으로하나의공인 를여러대의사설 를사용하는시스템들을공유해서사용할경우사설 를사용하는시스템의접근제어정책을내릴때도사용 일반적인방화벽역할을수행하는시스템은보통 및 테이블을주로사용된다 특히 테이블의 과 사슬은커널내부에서 라우팅계산을수행하 기전과후에패킷헤더를수정하기위해사용한다 타겟 과매치 그림 의패킷흐름 는매치와타켓이라는것이있는데 타겟이란 에서패킷이규칙과일치할때취 하는동작을말하고 매치는규칙을따르는패킷을어떻게처리할지를알려준다 매치는 604
보안공학연구논문지 제 권제 호 년 월 가규칙타겟에의해명시되는동작에따라패킷을처리하기위해서만족해야하는조건들이다 예를들어 패킷에만적용하려면 매치를사용해서적용시키면된다 각매치는 명령행에서명시되고 일반적인방화벽에서많이사용되는매치는다음의표 와같고 주요타켓은표 와같다 표 의주요매치 기능출발지 주소나네트워크와매칭목적지 주소나네트워크와매칭특정프로토콜과매칭입력인터페이스와매칭출력인터페이스와매칭연결상태와매칭특정한패턴과매칭커널메모리내의규칙과연계되는최대 바이트의주석 표 의주요타겟 기능 패킷을허가하는것으로본래라우팅대로진행 패킷을거부하는것으로더이상어떤처리도수행되지않고버림 패킷을 에전달하여기록 일반적으로 에저장 패킷을버리고동시에적장할응답패킷을전달 예를들면 인경우 재설정 패킷 인경우 포트도달불가 메시지를전송 호출사슬내에서패킷처리를계속진행 넷필터컴파일옵션 는커널모듈과사용자용관리프로그램등두개의기본적인컴포넌트로구성되어서 를사용하려면리눅스커널과사용자바이너리를모두컴파일하고설치해야한다 또한커널소스코드는다수의넷필터하위시스템을포함하는데 리눅스커널 버전과커널 초기버전에서는넷필터컴파일이기본적으로비활성화된상태로배포되었으나 최근의 버전에서는커널재컴파일없이 정책을이용해서패킷필터링을할수있다 그러나 아직도일부기능은기본적으로비활성화된상태에서배포되므로 해당기능을사용하려면설치된리눅스의커널 605
리눅스방화벽에관한연구 디렉토리로이동한뒤에 명령어를입력하여재컴파일이필요하다 커널버전에서넷필터컴파일옵션은 에서 및 항목에서활성화시켜야한다 해당설정을이용하면상용방화벽프로그램과비교해도손색이없을정도의성능을발휘할수있다 다음의표 활성화시켜야할주요옵션을나열한것이다 표 필수적인넷필터컴파일옵션 정책설정과저장 를이용하여패킷필터링을하거나 설정등을하려면리눅스쉘명령행에직접입력해야한다 의옵션이나사용법을숙지하지못하면매우어렵고 정책을저장하지않으면재부팅시에반영되지않는다 물론리눅스벤더 에따라저장하고재부팅시반영되도록하는스크립트를제공하고있지만 원칙적으로는 에서제공되는 와 를이용해야한다 는실행중인정책의모든 규칙을사람이읽을수있는형태로저장하여파일을생성하고 는 로저장된파일에나열된규칙을실행중인커널내부에서활성화시키는역할을한다 프로그램을한번만실행하면전체 정책을커널에재생성할수있어 프로그램을여러번실행하는불편함을없앨수있다 다음의표 은 의정책을저장하고 다시적용시키는방법이 606
보안공학연구논문지 제 권제 호 년 월 다 표 의정책저장과적용 # iptables-save > /root/firewall.sh # iptables-restore < /root/firewall.sh 연관프로젝트 는 년 월커널 버전에포함된뒤로 년이상흐르면서리눅스방화벽으로서상용방화벽프로그램에필적한만한기능과성능을보유하게되었다 그러나 최근의방화벽기술의경향은침입탐지분야의애플리케이션계층검사기술을방화벽이오랜기간해왔던네트워크트래픽필터링과결합하는것이다 도공격탐지와방지에대한유효성을극대화시키는여러가지프로젝트들이등장하게되었다 다음표 은 와관련된 공개라이선스 하에운영되는오픈소스프로젝트이다 표 관련오픈소스프로젝트 프로젝트명 기능 로그분석기와능동적응답도구 규칙으로등가의 규칙을변환하는스크립트 에대한단일패킷권한부여 의구현 결론및향후연구과제 는리눅스커널 버전부터포함되고 오랜시간이흐르면서상용방화벽프로그램에뒤지지않는성능을발휘하고있다 또한최근방화벽기술의경향은네트워크트래픽필터링과침입탐지분야의애플리케이션계층검사기술의결합인데 는해당기능을사용할수있는 등많은응용프로그램을가지고있다 이러한응용프로그램을이용하면 는패킷필터링기능뿐만아니라 공격의탐지와방지등도가능하게된다 본논문에서제시된내용을토대로 의기능과관련기술들을융합하면 아직까지는텍스트기반의명령어형태로입력해야한다는단점은있지만비용부담없이상용방화벽및침입탐지시스템에필적할보안시스템을구축할수있으리라여겨진다 향후연구과제로는 의방화벽기능이외의활용방안을모색해보고 아울러네트워크계층에서의공격과방어에활용할수있는기술을직접 607
리눅스방화벽에관한연구 구현해보고자한다 참고문헌 [1] Venema, W., TCP WRAPPER:Network Monitoring, Access Control and Booby Traps, UNIX SECURITY WORKSHOP, Vol. 3, No -, 1992. [2] Linux Documentation Project, http://tldp.org/howto/firewall-howto-7.html [3] Bill McCarty, Red Hat Linux Firewalls, Wiley, 2003 [4] Gregor N. Purdy, Linux iptables Pocket Reference,O Reilly, 2004 [5] Steve Suehring, Robert Ziegler, Linux Firewalls (3RD Edition), Novell, 2004 [6] 정성재, 리눅스 iptables 를이용한다중서버통합보안시스템설계및구현, 한남대학교대학원석사논문, pp. 3-10, 2003 년 8 월. [7] Netfilter Project, http://www.netfilter.org/ [8] Michael Rash, Linux Firewalls: Attack Detection and Response with iptables, psad, and fwsnort, William Pollock, 2007 [9] CipherDyne, http://www.cipherdyne.org/ 608
보안공학연구논문지 제 권제 호 년 월 저자소개 배유미 년 월 한남대학교컴퓨터멀티미디어과졸업 공학사 년 월 한남대학교정보기술학과졸업 공학석사 년 월 현재 한남대학교컴퓨터공학과박사과정관심분야 리눅스 정보보호 서버가상화 멀티미디어 웹디자인등 정성재 년 월 한남대학교컴퓨터공학과졸업 공학사 년 월 한남대학교컴퓨터공학과졸업 공학석사 년 월 한남대학교컴퓨터공학과졸업 공학박사 년 월 년 월 한남대학교국제 교육센터전임강사 년 월 현재 주 스컴씨엔에스부장관심분야 리눅스 정보보호 서버가상화 운영체제 클라우드컴퓨팅 서버최적화 부하분산등 609
리눅스방화벽에관한연구 610