제목 : 안녕하세요. 주원아빠입니다. 이글은 DNS 서버를구성할때주의해야하는보안상의문제점을짚어보고그에따르는해결책을제시하고자합니다. 이글은경험이부족한제가여러자료를수집하고분석하여작성한글로오류가있을수도있습니다. 오류를발견하시거나, DNS에대한좋은보안방법을알려주시면감사하겠습니다. 주의 : 이글의논점은 Windows 2000 Server 한글판기준으로되어있습니다. 간혹영문화면이있을수도있으니유념하시기바랍니다. 서론 현재 Windows 2000 을사용하는부류에는여러가지가있습니다. 여기에서알려드릴 DNS 서버, 메일서버 ( 예 :EMWAC, Exchange 서버포함 ), FTP 서버등이있으며, Windows 2000의새로운가장중요한기능인액티브디렉터리 ( 이하 AD) 를이용하여회사에서운영하는경우도있을것입니다. 여기서는 AD로승격하지않은독립실행형 (standardalone) 및멤버 (member) 서버에서 DNS 서버를구성할때, 크래커가침입을위한기본적인네트워크구성정보파악, 문제점및해결방안등에대해다룹니다. 또한, 최근의 DoS 취약점과더불어 DNS서버의 DoS에대해서도많은관심이이루어지고있습니다. 현재 Windows 2000에서 DNS서버의 DoS 공격에대한해결책은완벽하게제시되지않았습니다. 다만 Verisign사가이에대한해결책을일환으로보조서버서비스를제공한다고합니다. 이글에서는보안즉방어가주목적이므로어떻게공격하는지에대한글을따로쓰지않습니다. 저한테물어보셔도소용없습니다. 1. NTFS 파티션에 Windows 2000 설치 Windows 2000을설치하는방법중에 FAT32(16) 또는 NTFS5에설치하는두가지방법이있습니다. 하위운영체제와듀얼부팅등을할경우에 FAT 파일시스템으로설치하는경우도있지만, 인터넷상에 DNS서비스를운영하기위한서버에는반드시 NTFS로설치하여야합니 http://www.mcse.co.kr or http://www.ntfaq.co.kr 1
다. 참고로파일시스템상에서 DACL을구현합니다. 즉, 사용자는액세스하려는자원에대해적절한권한을확보해야만합니다. 크래커가침입하더라도적절한권한이없다면별로할일도없을것입니다. 2. 최신의서비스팩설치 현재 Windows 2000에서제공되는서비스팩은 SP1이며 Pre-SP2라고하여임시용여러개의패치로구성된 SP2가제공됩니다. 그리고, SP2가지금베타테스팅이라고하니조금만기다리시면여러분에게제공될것입니다. 최신의서비스팩을설치함으로써이전에발견된취약점해결과개선점을포함하여운영체제를좀더보안성있게해줍니다. 따라서, 모든보안상의패치를 http://windowsupdate.microsoft.com/ 에서다운로드하여설치하는것이좋습니다. 그리고, www.windowsecurity.net에서최신의보안취약점에대해자주방문하여확인하여그에해당하는패치를적용하거나대안책을적용해야합니다. 3. 최소한의서비스로운영 Windows 2000을설치한상태에서서비스 ( 시작-> 관리도구-> 서비스 ) 를시작합니다. 그안에서비스를보면아마수십가지이상이현재동작되고있을것입니다. 서비스는시작유형에따라자동 / 수동실행방법이있고, 현재실행이되고있는지에대한상태에대한정보를제공해줍니다. 아래그림을보면여러가지서비스가실행되고있습니다. http://www.mcse.co.kr or http://www.ntfaq.co.kr 2
제가지금사용하는전용선은 ADSL입니다. 따라서 DHCP Client 서비스가필요합니다. 하지만고정 IP를가지고있는경우 (DNS서버는당연하겠지요 ) 에는이러한서비스가필요없습니다. 또한, 오직 DNS 서버로만운영한다면 IIS, FTP 등에대한서비스도필요가없을것입니다. 그래서, 일단모든서비스의목록을문서로작성하고나서필요없는서비스를하나하나제거해나갑니다. 일단알기쉬운누가봐도뻔한서비스는일단모두중지를시켜나갑니다. 한번에여러개씩하는것이아니라한두개씩합니다. 그러면서시스템이 DNS서버로동작하는데문제점이발생하는가에대해계속이벤트뷰어등을통해확인합니다. 문제가없을때까지최대한많은서비스를중지시키는것이좋습니다. 특히, NetBios부분은보안상문제가많은부분으로앞으로많은취약점이나올것이라예상됩니다. 이쪽부분도또한주의해서없애주시면됩니다. 4. 최소한의사용자및관리자계정유지및암호관리 이내용은엄격히보면 Windows 2000 에대한보안방법이지만 DNS 서버를운영하는데있 http://www.mcse.co.kr or http://www.ntfaq.co.kr 3
어필수적으로적용됩니다. 먼저 DNS 서비스를유지및관리하고자하는계정만을생성하여야합니다. 필요없는계정은모두삭제또는사용중지 ( 계정잠금 ) 을설정합니다. 관리자계정또는그룹에서만적절한권한을설정해줍니다. 또한암호를복잡하게입력하도록로컬보안정책에서 암호는복잡성을만족해야.. 를설정하여줍니다. 5. 원격에서 nslookup 으로 DNS 서버의데이터확인막기 일단 DNS 서버를구성하고제대로동작하는지확인합니다. 제대로동작한다고그대로놔두어서는당연히안됩니다. Nslookup 명령어를통해크래커는 DNS서버에들어있는모든레코드를알아낼수있습니다. 따라서이것부터막아보겠습니다. 예를들어, www.mcse.co.kr 사이트의내부 DNS 정보를보도록하겠습니다. 다음그림을천천히살펴보시면알수있을겁니다. http://www.mcse.co.kr or http://www.ntfaq.co.kr 4
nslookup 명령어를잘모르시는분을위해간단히설명드리겠습니다. set type=ns 부분은보고자하는 DNS정보가네임서버 ( 이하 NS) 라는것을알립니다. 즉, 그다음줄에 mcse.co.kr 을입력했을때에 mcse.co.kr의 NS 정보만을출력합니다. 그리고 server ns.mcse.co.kr 을입력하여 NS의위치를 168.126.63.1에서 ns.mcse.co.kr 로변경합니다. 마지막 ls d mcse.co.kr 은 mcse.co.kr에있는모든레코드정보를출력하는것입니다. 이정보를이용하여크래커는네트워크에 IP가어떻게구성이되어있는지그중취약한것이어느것일지추측하는데사용할수있습니다. 따라서, 이정보를볼수없도록막을필요가있습니다. 막는방법은다음과같습니다. http://www.mcse.co.kr or http://www.ntfaq.co.kr 5
DNS서버의웹사이트의등록정보에보면 영역전송 탭에서체크박스를체크해주고아래에영역을전송할서버를입력하여주면됩니다. 6. 역방향조회영역 역방향조회영역은정방향조회영역의반대개념으로 IP 주소를도메인이름으로해석하여줍니다. 일반적인 DNS 서비스나웹서비스등에서는역방향조회영역이필요하지않습니다. 따라서, 여기서말씀드리는것은최소한의역방향조회레코드인 PTR을남겨두고모두삭제하는것입니다. 삭제하지말하야할것에는반드시 NS의레코드는남아있어야합니다. 없어도상관은없지만매번관리자가 nslookup을통해 NS 설정을체크할때불편함이따릅니다. NS의레코드가없는경우에는 nslookup을실행했을때다음과같은에러메시지가나타납니다. *** can t find server name for address xxx.xxx.xxx.xxx : Non-existent /domain http://www.mcse.co.kr or http://www.ntfaq.co.kr 6
그리고, PTR 레코드는스팸메일등의릴레이를점검하는데사용할수있습니다. 즉, 메일이전송되었을때서버에서온건지아니면다른서버를경유하여온건지확인하기위해 PTR 레코드를쿼리하게됩니다. 그러므로, 메일서버를운영하는경우에는반드시스팸방지유틸을사용하고, 메일교환기 (MX) 레코드가연결된 A 레코드를삭제하지않고남겨두어야합니다. http://www.mcse.co.kr or http://www.ntfaq.co.kr 7