[IT Trend]/Network

[펌] 리눅스에 nessus서버를 구축하여 윈도우에서 스캐닝

하늘을닮은호수M 2005. 3. 17. 12:00
반응형

1. 개요

Nessus는 http://www.nessus.org에서 무료로 다운받아 사용할 수 있는 보안취약점 scanner로 local과 remote의 컴퓨터 취약점을 찾아주는, 상용툴과 견주어도 손색이 없을 정도로 알려진 취약점을 찾는데 뛰어난 도구이다. 사람들이 어떤 보안툴을 선호하는지 알아보기 위해 2000년 5월과 6월에 1200명의 Nmap사용자들을 대상으로 선호하는 보안툴 중 5개의 툴(Nmap은 제외하고)을 택하도록 하는 설문조사를 해본 결과 Nessus가 1위를 차지할 정도로 Nessus는 보안 취약점 점검이 강력하다. Nessus는 Renaud Deraison에 의해 만들어지기 시작하여 1998년 4월에 처음 버전에 발표되었고, 2000년 3월 현재에는 1.0.7a가 발표되었으며 현재는 2.0이 안정버전이다.Nessus의 특성을 살펴보면 다음과 같다. ·Nessus는 자유롭게 사용할 수 있고, up-to-date가 간편하다. GNU General Public License(GPL)하에 모든 사람이 자유롭게 읽고 code를 수정할 수 있다. ·sever/client구조로 동작한다. server daemon인 nessusd는 보통 UNIX machine(Linux, *BSD, Solaris)에서 수행되어 야 하고 client는 Windows 95/98/NT 다른 UNIX컴퓨터로 수행될 수 있다. (GIMP가 설치되어 있어야만 함.) ·nmap과 gtk를 기반으로 한다. Nessus는 nmap보다 더욱 정교하고 GUI환경을 제공하여 쉽게 사용할수 있다. ·여러가지 plug-in을 이용해 자세한 부분까지 점검할 수 있고 plug-in 업데이트도 간단히 할수 있다. Nessus는 18개의 family, 620개의 library를 제공해 자세한 부분까지 점검해줄 수 있게 하고 간단히 plug-in을 업데이트 할 수 있는 유틸리티를 제공한다. 모든 설치가 끝나면 /usr/local/sbin/nessus-update-plugins파일이 생기는데 root권한으로 이 파일을 실행하면 이 유틸리티가 알아서 모든 plugin을 받아서 설치해준다. ·결과 보고서를 HTML, ASCII등 여러 가지 형태로 레포팅 해준다. 

2. Nessus의 보안 취약점 점검 항목

Nessus의 보안 점검은 plug-in항목을 통해 이루어지는데 2001년 3월 현재 18개의 family, 620개의 library를 제공한다. 이러한 plug-in family들은 넓고 다양하게 security hole에 대해 test 할 수 있게 한다. 예를 들어 Backdoors family는 BackOrifice, NetBus, SubSeven, trin00등 26개의 항목이 running되는지 점검해준다. Nessus에서 제공하는 plug- in 항목을 살펴보면 다음과 같다. 
[ 보안 취약점 점검 항목 ]

3. Nessus설치

Nessus는 server-client 구조로 동작되는데, UNIX계열에서는 Nessus서버를 구축할 수 있지만 Win32계열에서는 Nessus서버를 구축할 수 없고, 클라이언트를 설치하여 Nessus서버에 접속하여 실행할 수 있다. 

[ nessus.org ]

Nessus는 http://www.nessus.org/에서 다운받아 설치할 수 있는데, ·Posix download page : Unix계열의 시스템 (Solaris, FreeBSD, GNU/Linux등) ·Win32 download page : Microsoft Windows 사용자들 ·Java download page : 자바기반 Nessus클라이언트 설치시 위의 세가지 경우중 자신에게 맞는 Nessus를 다운받아 설치하면 된다. Nessus서버 설치방법은 다음과 같다. Nessus서버를 설치하기 위해서는 아래의 사전도구들이 설치되어 있어야 한다. ·GTK : GTK는 GIMP를 만들기 위한 툴킷으로 Nessus 클라이언트를 사용하기 위해서는 사전에 설치되어야 한다. 다운받을 수 있는 곳 : ftp://ftp.gimp.org/pub/gtk/v1.2 ·Nmap : Nmap는 현재 가장 많이 쓰이고 있는 뛰어난 포트 스캐너(port scanner)로 다양한 스캐닝을 제공한다. 다운받을 수 있는 곳 : http://www.insecure.org/nmap/ ·m4 : gmp library가 설치되어 있으면 선택사항으로 libgmp가 설치되어 있으면 필요없다. 다운받을수 있는 곳 : ftp.gnu.org/pub/gnu/m4 2004년 현재 안정적으로 나온 Nessus 버전은 2.0.10으로 다음 4개의 file을 다운받아 compile해야 한다. - nessus-libraries - libnasl - nessus-core - nessus-plugins 사이트에서 다운로드 받을 수 있지만 쉽게 하기 위해 콘솔에서 다음과 같이 해준다.그러면 바로 nessus파일이 있는 디렉토리로 접속된다.]#ncftp ftp://ftp.ayamura.org/pub/nessus/nessus-2.0.10a/src/ .......Guest login ok, access restrictions apply.Logging in...  Logged in to ftp.ayamura.org.    Current remote directory is /pub/nessus/nessus-2.0.10a/src.ncftp ...sus/nessus-2.0.10a/src > ls <----리스트를 보기 위해 ls를 입력한다.MD5                                  nessus-core-2.0.10a.tar.gz              nessus-plugins-2.0.10a.tar.gzlibnasl-2.0.10a.tar.gz       nessus-libraries-2.0.10a.tar.gzncftp ...sus/nessus-2.0.10a/src > get * <---모든 파일을 내려받기 위해 get *을 입력한다.MD5:                                                                   509.00 B    2.58 kB/s  libnasl-2.0.10a.tar.gz:                                      335.01 kB  323.42 kB/s  nessus-core-2.0.10a.tar.gz:                             634.27 kB  340.01 kB/s  nessus-libraries-2.0.10a.tar.gz:                       408.56 kB  339.55 kB/s  nessus-plugins-2.0.10a.tar.gz:                           1.38 MB  359.95 kB/s  ncftp ...sus/nessus-2.0.10a/src > exit <---ftp를 종료한다.터미널에서 ls -l를 입력하여 파일이 존재하는지 확인한다.]#ls -l-rw-r--r--    1 root     root       649493  1월 22 20:24 nessus-core-2.0.10a.tar.gz-rw-r--r--    1 root     root       418370  1월 22 20:24 nessus-libraries-2.0.10a.tar.gz-rw-r--r--    1 root     root      1443420 1월 22 20:24 nessus-plugins-2.0.10a.tar.gz-rw-r--r--    1 root     root       343047  1월 22 20:24 libnasl-2.0.10a.tar.gz모두 압축을 풀어준다.]# tar zxvf nessus-core-2.0.10a.tar.gz위처럼 4개의 파일들에 대하여 압축을 풀어준다.A. 컴파일

[root@chtla Nessus]# cd nessus-libraries[root@chtla nessus-libraries]# ./configure[root@chtla nessus-libraries]# make[root@chtla nessus-libraries]# make install[root@chtla nessus-libraries]# echo "/usr/local/lib" >> /etc/ld.so.conf [root@chtla nessus-libraries]# ldconfig[root@chtla nessus-libraries]# ldconfig -v | grep /usr/local/lib <==이렇게 하여 터미널에 출력되면 성공[root@chtla Nessus]# cd libnasl[root@chtla Nessus]# ./configure[root@chtla Nessus]# make[root@chtla Nessus]# make install[root@chtla Nessus]# echo "/usr/local/bin" >> /etc/ld.so.conf [root@chtla Nessus]# ldconfig[root@chtla Nessus]# ldconfig -v | grep /usr/local/bin <==이렇게 하여 터미널에 출력되면 성공[root@chtla Nessus]# cd nessus-core[root@chtla nessus-core]# ./cofigure --disable-gtk <==--disable-gtk는 서버로 설치할 경우 필요가 없다. 하지만 클라이언트로도 이용하려면 이러한 옵션을 제거하고 컴파일 하면 된다.[root@chtla nessus-core]# make[root@chtla nessus-core]# make install[root@chtla nessus-core]# echo "/usr/local/sbin" >> /etc/ld.so.conf[root@chtla nessus-core]# ldconfig[root@chtla nessus-core]# ldconfig -v | grep /usr/local/sbin <==이렇게 하여 터미널에 출력되면 성공[root@chtla Nessus]# cd nessus-plugins[root@chtla nessus-plugins]# ./configure[root@chtla nessus-plugins]# make[root@chtla nessus-plugins]# make installnessusd서버는 사용자들의 database를 가지고 있고, /usr/local/sbin밑의 nessus-adduser utility를 통해 새로운 사용자를 추가 할 수 있다.[root@chtla nessus-plugins]# ll /usr/local/sbin/nessus*-rwxr-xr-x 1 root root 6422 6월 19 17:55 /usr/local/sbin/nessus-adduser*-rwxr-xr-x 1 root root 10924 6월 19 17:55 /usr/local/sbin/nessus-mkcert*-rwxr-xr-x 1 root root 1106 6월 19 17:55 /usr/local/sbin/nessus-rmuser*-r-xr-xr-x 1 root root 5162 6월 19 17:59 /usr/local/sbin/nessus-update-plugins*-rwxr-xr-x 1 root root 477458 6월 19 17:55 /usr/local/sbin/nessusd*[root@chtla root]#nessus-adduser실행시 에러가 발생하면..# vi /etc/ld.so.conf/usr/local/lib <==== 이것이 삽입하고# ldconfig -v <=== 삽입 되어 있어도 에러 발생시에는 실행 시킨다..[root@chtla root]# nessus-adduserUsing /var/tmp as a temporary file holderAdd a new nessusd user----------------------Login : testAuthentication (pass/cert) [pass] : pass <== 패스워드 입력시 pass를 입력한다..Login password : testUser rules----------nessusd has a rules system which allows you to restrict the hoststhat test has the right to test. For instance, you may wanthim to be able to scan his own host only.Please see the nessus-adduser(8) man page for the rules syntaxEnter the rules for this user, and hit ctrl-D once you are done :(the user can have an empty rules set)Login : testPassword : testDN :Rules :Is that ok ? (y/n) [y] yuser added.이로써 사용자가 추가된 것이다...[root@chtla sbin]# ./nessus-mkcert <====이것부터 실행한다../usr/local/var/nessus/CA created/usr/local/com/nessus/CA created-------------------------------------------------------------------------------Creation of the Nessus SSL Certificate-------------------------------------------------------------------------------This script will now ask you the relevant information to create the SSLcertificate of Nessus. Note that this information will *NOT* be sent toanybody (everything stays local), but anyone with the ability to connect to yourNessus daemon will be able to retrieve this information.CA certificate life time in days [1460]: 1460 <=== CA 증명서가 하루에 살 시간(디폴트로 준다.)Server certificate life time in days [365]: 365 <== 서버 증명서 살 날짜Your country (two letter code) [FR]: krYour state or province name [none]: noneYour location (e.g. town) [Paris]: daejeonYour organization [Nessus Users United]: personal-------------------------------------------------------------------------------Creation of the Nessus SSL Certificate-------------------------------------------------------------------------------Congratulations. Your server certificate was properly created./usr/local/etc/nessus/nessusd.conf updatedThe following files were created :. Certification authority :Certificate = /usr/local/com/nessus/CA/cacert.pemPrivate key = /usr/local/var/nessus/CA/cakey.pem. Nessus Server :Certificate = /usr/local/com/nessus/CA/servercert.pemPrivate key = /usr/local/var/nessus/CA/serverkey.pemPress [ENTER] to exit[root@chtla root]# nessusd -D <====== nessusd 데몬 실행..

4. 클라이언트 NessusW설치

이로써 서버는 설치가 되었는데.. client 용은 NessusWX를 설치한다.remote host is not using or is tcpwrapped <== 버전 차이가 인해 에러로 보임현재 NessusWX 최신 버전은 1.4.4 이다.[다운로드]http://nessuswx.nessus.org/archive/nessuswx-1.4.4-install.exe설치후 NessusWX 를 실행한후..connection : 서버의 아이피와 접속할 아이디(nessus-adduser로 생성된 아이디)와 패스워드를 입력할수 있다.

[ 상단 메뉴바의 Communications의 Connect ]
Session -> New 에서 session을 create 한다.. <== 이것은 스캔(취약점)할 서버를 정보를 담게 된다.create 하면 Session Properties 라는 새창이 뜨는데..target : 스캔할 서버를 add 시킨다.

[ 메뉴바의 Session에서 New로 생성한 후 스캔할 사이트의 아이피나 도메인을 입력 ]
scan options : 스캔할 시작 포트와 끝 포트, option등 스캔할 포트에 관한 옵션을 설정할수 있다.plugins : 보안 취약점은 점검할 항목들을 plugin 형태로 제공하고 있다.use session-specific plugin set 를 선택한후 select plugins 클릭하면 plugin 목록이 보이는데.. 이곳에서 enable all을 클릭하면.. 933 개의 plugin 이 선택된 것을 볼수 있을 것이다.comments : 주석이나 설명을 넣어 두는 곳이다.설정이 끝나 session 이 생성되었으면.. 해당 session을 더블 클릭하면.. 해당 서버에 접속을 하게 된다..접속을 하게 되면.. execute session이 뜨는데.. enable session saving (해당 결과를 저장할수 있게..) 을 클릭한후 execute 를 클릭하면.. 해당 서버를 스캔하게 된다..(933 개의 모든 plugin 을 선택한후 스캔을 해 보니.. 약 15분이라는 시간이 소요 되었다..)모든 스캔이 끝나면.. Manage Session Results 창에 새로이 스캔된 결과이 보이게 되는데..view : 해당 결과는 각 데몬별(?)로 볼수 있다.Report : 해당 결과를 txt,html,pdf 파일로 저장해 볼수 있다.. (html을 생성할 경우 에러가 발생하는데.. 결과물은 정상적으로 생성이 된다.. 저장할 경로를 변경후 이름을 주고 저장하면 에러 없이 저장이 될것이다..)

[ 스캔한 결과를 html로 저장 ]
이제 결과를 보면.. 해당 서버의 취약점등을 한번에 볼수 있을것이다..(패치나 업그레이드시 다운 받을수 잇는 사이트까지 알려준다..)모든 체크가 끝난후 nessusd -D 프로세스는 죽여라.( 체크시에만 필요한 것이니.. 채크후에는 필요가 없다.)
반응형