강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

▒ 1. LSCP(리눅스 점검 프로젝트)공개 배포 (SSU의 업그레이드 버전) 설치

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문


 리눅스 시스템의 점검을 자동 화 하는 툴인 SSU의 업데이트 버전을 다음과 같이 출시했습니다. 많은 관심 바랍니다.


LSCP(Linux System Check Project)는 리눅스 시스템의 보안, 상태, 리소스를 효율적으로 점검하기 위한 프로그램이다.

lscp1.jpg
 

   인터넷이 발달함에 따라 웹서비스의 비중이 커졌으며 웹서버를 구동하는 OS중 반 이상을 리눅스를 사용하고 있다. 그리하여 리눅스를 사용하는 부류들도 전문 리눅스 사용자에서 일반 사용자로 그 분포가 확산되고 있는 실정이다. 이런 일반 사용자는 시스템을 초기 1회 구축 후 방치하게 되는 경우가 대부분이다. 모든 시스템의 가장 중요한 것이 점검 및 백업이다. 백업은 초기 구축으로 자동화 가능하나 점검 부분은 많은 시스템, 하드웨어, 보안 관련 지식을 필요로 하기 때문에 많은 어려움이 따른다. 이 어려운 시스템 점검 부분은 여러 요소로 나뉘며 보안, 시스템 리소스, 시스템 상태를 효율적이고 쉽게 점검 할 수 있는 솔루션이 필요하다. 시스템 자원 사용률을 조사하여 업그레이드시기를 알려주는 시스템 리소스 분석, 시스템 상태를 파악하여 비정상 프로그램 실행 등을 분석하는 시스템 상태 분석, 시스템 접근 및 포트, 프로세스, 파일등 보안요소를 점검하여 해킹 및 공격여부를 미리 알아 낼 수 있는 보안 점검 기능을 가진 리눅스 시스템 점검 프로그램이 필요하다. 이러한 요구사항에 LSCP는 완벽한 해결책을 제시한다.


1.1.1.1. 주요 기능

  1.1.1.1.1. 보안 점검 기능

    - 백도어, Root소유 SetUid파일, tmp 점검

    - LISTEN port 점검

    - Linux 기본 방화벽 점검

    - 실행 프로세스 점검

    - 하루 동안 변경된 파일 점검

    - chkrootkit 이용한 rootkit 점검

    - 초기 실행 스크립트 점검

    - 중요 파일 속성 및 퍼미션 점검

    - 계정 점검

    - 접속자 점검


  1.1.1.1.2. 리소스 점검 기능

    - 부하, 프로세스, 트래픽, 메모리 점검 (그래프)

    - 디스크 파티션 점검 (그래프)

    - cpu 버전, 가동 시간 점검


  1.1.1.1.3. 시스템 상태 점검 기능

    - 용량큰 파일 점검

    - Mail Queue 점검

    - LOG 파일 점검

    - CRON 설정 점검

    - 사용자 정보


  1.1.1.1.4. 문제점 보고

   - 문제점 보고


  1.1.1.1.5. 월간 리포팅 기능(월간 보고서)

    - 하드웨어 정보점검

    - 소프트웨어 정보 점검

    - 네트워크 정보점검

    - 월간 서버 부하 점검

    - 월간 프로세스 수 변화 점검

    - 월간 트래픽 변화량 점검

    - 월간 메모리 사용량 점검

    - 월간 디스크 사용량 점검

    - 기타 정보 점검

    - 사용자 정보 점검


1.1.1.1. 다운로드

1.1.1.1.1. 다운로드

소스 코드 및 프로그램은 다음 사이트에서 다운로드 할 수 있습니다.

(소스포지에 프로젝트로 등록 완료)

https://sourceforge.net/projects/lscp/


1.1.1.1.2. 기술지원

본 프로그램에 대한 기술지원은 다음 사이트에서 받을 수 있습니다.

( 버그 및 개선점 또한 아래 사이트를 이용하여 제안 바랍니다.)

https://sourceforge.net/tracker/?group_id=260142


1.1.1.2. 설치 전 고려 사항

- 웹서버 : LSCP의 결과는 HTML형태로 출력되지만, 웹 서버는 포함 되어 있지 않다. 그러므로 Apache, tomcat등의 웹서버가 필요하다.

- CRON : LSCP의 주기적인 실행은 CRON의 도움을 받는다.


1.1.1.3. 라이센스

본 LSCP의 라이센스는 GPL을 따르며, 원문은 소스코드의 COPYING 파일을 참고하거나, 웹사이트(http://www.gnu.org/licenses/)를 참고하길 바란다.


1.1.1. LSCP 설치

1.1.1.1. 프로그램 설치

1.1.1.1.1. 프로그램 다운로드

- 프로젝트 사이트 방문 : https://sourceforge.net/projects/lscp/

lscp2.jpg
 

프로젝트 사이트 방문 후 중간에 “Download Now"를 눌러 프로그램을 다운로드 받는다. 그런 다음 LSCP를 설치 할 리눅스 시스템에 업로드 시킨 후 다음 단계에서 설치한다.


1.1.1.1.2. 프로그램 설치

LSCP 설치는 다음과 같이 Unix 표준 설치법에 따라 진행한다.

tar xvfpj lscp-1.0.0.tar.bz2

cd lscp-1.0.0

./configure --prefix=/usr/local/lscp

make

make install

configure 단계에서 '--prefix' 옵션을 주어 /usr/local/lscp 아래에 프로그램을설치한다. (옵션을 주지 않으면, 기본 /usr/local/ 아래에 프로그램이 설치된다.)


1.1.1.2. 프로그램 기본 설정

1.1.1.2.1. 설정파일 편집

LSCP는 2개의 설정파일로 이뤄진다. 설정파일의 위치는 설치시 지정한 디렉토리(본 매뉴얼을 따라 설치했다면, /usr/local/lscp가 된다)아래 conf/디렉토리 안에 존재한다.

설정파일 1 : /usr/local/lscp/conf/lscp.conf

설정파일 2 : /usr/local/lscp/conf/lscp_system_files.conf

설정파일 1 ( lscp.conf )

# This file is lscp configuration file.

# Please keep the following format:

# variable="value"

# Variables and the value = the connection, and must not have spaces.

# 사용할 LSCP 모듈 정의

conf_lscp_modules="resource_graph resource_disk backdoor listen_ports firewall status_bigfiles status_mailqueue status_cron status_users process chkrootkit modify_files init_scripts system_files users login_users resource_version status_logfiles error_report report_hw report_sw report_etc report_net"

## Administrator mail address ( 문제점 발생시 받을 메일 주소 입력 )

conf_admin_mail="관리자메일주소입력"

# min big file size(Mbyte) (큰 파일 검색시 최소 파일 크기)

conf_min_big_file_size=50

# max mailqueue count count ( 최대 메일 큐의 메일 수 )

conf_max_mailqueue_count=200

# Apache configuration file ( Apache 설정파일 및 실행 경로 지정 )

conf_httpd_conf="/usr/local/apache/conf/httpd.conf"

conf_httpd_bin="/usr/local/apache/bin"

## LSCP Result Page security ( 보안 설정 )

conf_htauth=yes

conf_htuser="lscp"

conf_htpasswd="sulinux"

# The list of Draw graph process ( max : 5 process) ( 그래프를 그릴 프로세스 )

conf_graph_process="httpd mysql"

# monitor ethernet device ( 그래프를 그릴 네트웍 디바이스 )

conf_graph_eth_dev="eth0"

# check time ( Minute must has 00,05,10 ... 55) ( 매일 점검 할 시간 )

conf_check_time="07:00"

# Archive period ( 점검 결과를 보관 할 일 수 )

conf_archive_period="60"

# safe process lists ( 문제 없는 프로세스 리스트 정의 )

conf_safe_process="awk uptime lscp_cron"

설정파일 1 ( lscp.conf )은 위의 표와 같은 항목이 있다. 모든 옵션은 ‘변수=”값“’과 같은 형식으로 설정한다. 변수와 값 사이에는 ‘=’ 이외의 공백이 들어가면 작동하지 않는다. (예) a ="b" 또는 a= "b" 는 작동하지 않음)


지시자 정의

conf_lscp_modules

LSCP의 여러 기능을 가진 단위 모듈의 사용 여부를 지정한다. 여러 모듈을 열거 할 수 있으며, 모듈과 모듈 사이에는 공백으로 띄워 구분한다.

예) conf_lscp_modules="resource_graph resource_disk"

conf_admin_mail

LSCP에 의해 시스템을 점검 한 결과 문제점이 발생되면, 메일을 보내게 된다. 이 문제점에 대한 내용을 받을 메일 주소를 입력한다.

예) conf_admin_mail="doly@sulinux.net"

conf_min_big_file_size

LSCP 큰 파일 점검 모듈에서 기준으로 사용할 파일 사이즈이다. 명시한 사이즈 이상인 파일만 리스팅 하게 된다. (단뒤: MByte)

예) conf_min_big_file_size=50

conf_max_mailqueue_count

LSCP 메일 큐 점검 모듈에서 기준으로 사용할 메일 큐에 쌓이 메일 수이다. 명시한 수 이상의 메일이 쌓였을 때 점검 문제점 보고에 출력하고, 메일을 발송하게 된다.

예) conf_max_mailqueue_count=200

conf_httpd_conf

LSCP에서 웹서버 설정 도메인 등을 조사하기 위해 아파치 설정파일(httpd.conf)를 사용한다. 이 httpd.conf파일의 위치를 지정한다.

예) conf_httpd_conf="/usr/local/apache/conf/httpd.conf"

conf_httpd_bin

웹서버(아파치)의 실행프로그램 경로를 지정한다.

예) conf_httpd_bin="/usr/local/apache/bin"

conf_htauth

웹서버(아파치)의 페이지 보안 설정기능을 사용하여 웹페이지 접근을 통제를 할 것인지 여부를 결정한다. ( 입력 값 : yes 또는 no )

예) conf_htauth=yes

conf_htuser

웹서버(아파치)의 페이지 보안 설정기능을 사용한다면(conf_htauth=yes) 인증할 사용자를 설정한다.

예) conf_htuser="lscp"

conf_htpasswd

웹서버(아파치)의 페이지 보안 설정기능을 사용한다면(conf_htauth=yes) 인증할 사용자의 비밀번호를 설정한다.

예) conf_htpasswd="sulinux"

conf_graph_process

LSCP 자원 그래프 모듈에서 프로세스 수를 그래프로 보여준다. 그래프에서 보여줄 프로세스 종류를 선택한다. 프로세스는 여러개 그릴 수 있으며, 공백으로 구분하여 열거한다. (최대 5개)

예) conf_graph_process="httpd mysql"

conf_graph_eth_dev

LSCP 자원 그래프 모듈에서 이더넷 인터페이스에 대한 트래픽을 그래프로 그린다. 리눅스 시스템에는 있는 여러 인터페이스 중 그래프를 그릴 디바이스를 선택하기 위해 본 지시자를 사용한다.

예) conf_graph_eth_dev="eth0"

conf_check_time

LSCP는 cron에 의해 5분에 1회 실행된다. 시스템의 전반적인 상황은 매 분 점검하게 되면, 시스템에 많은 부하를 주게 된다. 시스템 전반적인 점검은 하루에 1회 수행한다. 수행하는 시간을 설정하는 지시자이다.

예) conf_check_time="07:00"

conf_archive_period

LSCP는 매일 전반적으로 시스템을 점검하게 된다. 이 점검 된 결과는 시간이 지나서 필요할 때가 있다. 그렇지만, 너무 많이 남게 되면, 많은 디스크 공간을 필요로 하기 때문에 주기적으로 지워주는 것이 필요하다. 본 지시자를 사용하여 점검 결과를 보관할 기간을 정할 수 있다.

예) conf_archive_period="60"

conf_safe_process

LSCP의 실행 프로세스 점검기능에서 안전한 프로세스가 수상한 프로세스로 오탐하는 경우가 있다. 이러한 경우 안전한 프로세스 명을 넣어 줄 수 있는 지시자이다.

예) conf_safe_process="awk uptime lscp_cron"

설정파일 2 ( lscp_system_files.conf )

# This file is lscp configuration file(system file list for lscp_mod_system_files)

# Please keep the following format:

# /path/files

/bin/chgrp

/bin/chmod

/bin/chown

/bin/cp

/bin/df

## 중간 생략 ##

/usr/bin/passwd

/usr/bin/pstree

/usr/bin/ssh

/usr/bin/top

/usr/bin/w

/usr/bin/wget

/usr/bin/who

/usr/sbin/lsof

/usr/sbin/sendmail

설정파일 2 (lscp_system_files.conf)는 시스템의 중요한 파일을 열거해 ‘중요파일 점검’시 점검하게 될 항목들을 명시한다.

⋇ 설정 변경 후에는 lscp_init 을 실행한다.


1.1.1.1.1. 점검 DB 초기화

LSCP 설치 후 초기에 각 리눅스 시스템의 초기 정보를 저장하게 된다. 다음 명령어를 사용하여 저장한다.

명령어 위치 : 프로그램설치경로/bin/lscp_init

예) /usr/local/lscp/bin/lscp_init

[root@sul2-64bit bin]# ./lscp_init

1. 초기화중 lscp_mod_resource_graph ..... [ 활동 없음 ]

2. 초기화중 lscp_mod_resource_disk ..... [ 확인 ]

3. 초기화중 lscp_mod_backdoor ..... [ 확인 ]

4. 초기화중 lscp_mod_listen_ports ..... [ 확인 ]

5. 초기화중 lscp_mod_firewall ..... [ 확인 ]

6. 초기화중 lscp_mod_status_bigfiles ..... [ 활동 없음 ]

7. 초기화중 lscp_mod_status_mailqueue ..... [ 활동 없음 ]

8. 초기화중 lscp_mod_status_cron ..... [ 활동 없음 ]

9. 초기화중 lscp_mod_status_users ..... [ 활동 없음 ]

10. 초기화중 lscp_mod_process ..... [ 확인 ]

11. 초기화중 lscp_mod_chkrootkit ..... [ 확인 ]

12. 초기화중 lscp_mod_modify_files ..... [ 활동 없음 ]

13. 초기화중 lscp_mod_init_scripts ..... [ 확인 ]

14. 초기화중 lscp_mod_system_files ..... [ 확인 ]

15. 초기화중 lscp_mod_users ..... [ 활동 없음 ]

16. 초기화중 lscp_mod_login_users ..... [ 활동 없음 ]

17. 초기화중 lscp_mod_resource_version ..... [ 활동 없음 ]

18. 초기화중 lscp_mod_status_logfiles ..... [ 활동 없음 ]

19. 초기화중 lscp_mod_error_report ..... [ 활동 없음 ]

20. 초기화중 lscp_mod_report_hw ..... [ 활동 없음 ]

21. 초기화중 lscp_mod_report_sw ..... [ 활동 없음 ]

22. 초기화중 lscp_mod_report_etc ..... [ 활동 없음 ]

23. 초기화중 lscp_mod_report_net ..... [ 활동 없음 ]


1.1.1.1.2. 웹서버 설정

LSCP는 점검 결과를 HTML형태로 출력하며, 웹서버의 도움을 받아 웹으로 보여주게 된다. 웹 서버 설정은 다음과 같이 한다.

아파치(Apache) 웹서버

설정파일(httpd.conf)파일을 열어 다음과 같이 가상호스트에 추가한다.

( Apache 2.2.x의 경우는 extra/httpd-vhosts.conf에 설정한다.)

NameVirtualHost *:80

<VirtualHost *:80>

DocumentRoot /usr/local/lscp/result_html

ServerName lscp.도메인

<Directory /usr/local/lscp/result_html>

AllowOverride AuthConfig

</Directory>

</VirtualHost>

위와 같이 서브 도메인을 할당하여 설정한다.

⋇ 설정 변경 후에는 웹서버를 재시작 한다.

⋇ 웹서버의 종류 및 버전에 따라 설정법은 차이가 있으니, 각 웹서버 매뉴얼을 참조 하기 바란다.


1.1.1. 사용법 ( 점검 결과 확인 )

1.1.1.1. 초기 점검 결과 확인

LSCP 프로그램 설치 후 바로, 결과 페이지를 확인하지는 못한다. 이유는 리눅스 시스템 점검 프로그램이기 때문에 점검을 수행하거나, 정보를 수집하여 보여주기 때문이다. 프로그램 설치 후 5분 이내에 접속하게 되면, 아무런 페이지 및 결과를 확인할 수 없으며, 5분이 지난 후 다음과 같이 확인된다.

1.1.1.1.1. 사용자 인증

LSCP 결과를 아무나보지 못하게 lscp.conf 설정에서 htauth를 사용하게 설정하였다면, 다음과 같은 아이디/비밀번호 입력창이 뜰 것이다.

lscp3.jpg
 

사용자 이름 및 암호를 lscp.conf 설정된 값을 입력하면 다음 화면을 만나게 된다.

1.1.1.1.2. LSCP 메인 화면

LSCP를 처음 설치하고, 결과를 확인하면 다음과 같은 결과를 보게 될 것이다.

lscp4.jpg
 

위 점검 결과는 시스템의 부하만을 볼 수 있으며, 다른 점검결과를 볼 수 없다. 이는 시스템의 전반적 점검이 수행되지 않아서 이며, 좌측 상단의 “점검항목”에 보여지는 명령어를 다음과 같이 수행한다.

[root@sul2-64bit result_html]# cd /usr/local/lscp/bin

[root@sul2-64bit bin]# ./lscp_cron --check

1. 점검중 lscp_mod_resource_graph ..... [ 활동 없음 ]

2. 점검중 lscp_mod_resource_disk ..... [ 확인 ]

3. 점검중 lscp_mod_backdoor ..... [ 확인 ]

4. 점검중 lscp_mod_listen_ports ..... [ 확인 ]

5. 점검중 lscp_mod_firewall ..... [ 확인 ]

6. 점검중 lscp_mod_status_bigfiles ..... [ 확인 ]

7. 점검중 lscp_mod_status_mailqueue ..... [ 확인 ]

8. 점검중 lscp_mod_status_cron ..... [ 확인 ]

9. 점검중 lscp_mod_status_users ..... [ 확인 ]

10. 점검중 lscp_mod_process ..... [ 확인 ]

11. 점검중 lscp_mod_chkrootkit ..... [ 확인 ]

12. 점검중 lscp_mod_modify_files ..... [ 확인 ]

13. 점검중 lscp_mod_init_scripts ..... [ 확인 ]

14. 점검중 lscp_mod_system_files ..... [ 확인 ]

15. 점검중 lscp_mod_users ..... [ 확인 ]

16. 점검중 lscp_mod_login_users ..... [ 확인 ]

17. 점검중 lscp_mod_resource_version ..... [ 확인 ]

18. 점검중 lscp_mod_status_logfiles ..... [ 확인 ]

19. 점검중 lscp_mod_error_report ..... [ 메뉴 생성 안함 ]

20. 점검중 lscp_mod_report_hw ..... [ 메뉴 생성 안함 ]

21. 점검중 lscp_mod_report_sw ..... [ 메뉴 생성 안함 ]

22. 점검중 lscp_mod_report_etc ..... [ 메뉴 생성 안함 ]

23. 점검중 lscp_mod_report_net ..... [ 메뉴 생성 안함 ]

위 명령어 수행 후 다음과 같은 결과를 확인 할 수 있다.

lscp5.jpg
 

위 결과와 같이 좌측 상단에 “점검항목”이 표시되는 것을 확인 할 수 있다.

“월간보고” 기능역시 명령어를 실행 시켜 결과를 확인 할 수 있다.



관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,035 명
  • 현재 강좌수 :  35,798 개
  • 현재 접속자 :  136 명