강좌
클라우드/리눅스에 관한 강좌입니다.
해킹&보안 분류

리눅스마스터1급 : 시스템 보안을 위한 시스템 서비스 관리

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: 시스템 보안을 위한 시스템 서비스 관리

 




 

앞서 설명 했던 부분처럼 시스템 서비스관리가 필요하다 그럼 어떻게 관리를 하는지 알아보도록 하자. 서비스를 관리하기 위해서는 두 가지 방법이 있다.

 

 

 

첫 번째는 시작 스크립트를 수정하여 서비스를 관리하는 방법, 두 번째는 명령어를 이용하여 관리하는 방법이다.

 

 

 

명령어는 주로 2가지를 사용하는데 chkconfig ntsysv 이다.

 

 

 

 

 

먼저 chkconfig에 대해 알아보자.

 

 

 

 

 

 

 

[root@sulinux pam.d]# chkconfig -h

chkconfig 버전 1.3.49.3 - Copyright (C) 1997-2000 Red Hat, Inc.

이 프로그램은 GNU Public License(GPL)하에 자유롭게 재배포될 수 있습니다.

 

 

 

 

 

사용법: chkconfig [--list] [--type <종류>] [이름]

chkconfig --add <이름>

chkconfig --del <이름>

chkconfig --override <이름>

hkconfig [--level <레벨>] [--type <종류>] <이름> <on|off|reset|resetpriorities>

 

 

 

 

 

부팅 시 서비스에 대한 상태를 보기위해서는 아래와 같이 한다.

 

 

 

 

 

 

 

 

 

[root@sulinux pam.d]# chkconfig --list

NetworkManager 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제

abrt-ccpp 0:해제 1:해제 2:해제 3:활성 4:해제 5:활성 6:해제

abrtd 0:해제 1:해제 2:해제 3:활성 4:해제 5:활성 6:해제

acpid 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제

amtu 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제

arptables_jf 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제

arpwatch 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제

atd 0:해제 1:해제 2:해제 3:활성 4:활성 5:활성 6:해제

 

[root@sulinux pam.d]# chkconfig --list atd

atd 0:해제 1:해제 2:해제 3:활성 4:활성 5:활성 6:해제

 

 

 

 

 

 

 

서비스를 추가하고 삭제 하는 방법은 아래와 같다.

 

 

 

 

 

 

 

 

 

[root@sulinux pam.d]# chkconfig --del atd

[root@sulinux pam.d]# chkconfig --list atd

atd 서비스는 chkconfig를 지원하지만 어떠한 런레벨에도 등록되지 않았습니다 ( 'chkconfig --add atd'를 실행하십시오)

[root@sulinux pam.d]#

[root@sulinux pam.d]# chkconfig --add atd

[root@sulinux pam.d]# chkconfig --list atd

atd 0:해제 1:해제 2:해제 3:활성 4:활성 5:활성 6:해제

 

 

 

 

 

 

 

위에서 보는 것처럼 추가 삭제가 가능하지만 /etc/rc.d/init.d 아래에 서비스명으로 된 실행 스크립트가 등록이 되어있어야 한다.

 

 

 

물론 정형화된 형식의 스크립트가 되어야 한다.

 

 

 

 

 

 

 

 

 

#!/bin/bash

#

# chkconfig: 2345 20 80

# description: Saves and restores system entropy pool for \

# higher quality random number generation.

 

### BEGIN INIT INFO

# Provides: foo

# Required-Start: bar

# Defalt-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Description: Foo init script

### END INIT INFO

 

 

 

 

 

 

 

이와 같이 시작을 해야 정상적으로 등록이 가능하다.

 

 

 

 

 

ntsysv에 대해 알아보자.

 

앞서 명령어를 이용하여 서비스에 대한 부분을 관리하는 것을 살펴보았다.

 

 

 

 

 

서비스의 수가 많지 않다면 명령어를 이용하는 것이 보다 빠르고 편할 수도 있지만 전체적으로 서비스를 확인하며, 많은 수의 서비스를 설정하기위해서는 명령어를 이용하는 것보다 직관적으로 확인 하면서 관리는 하는 것이 보다 빠르고 정확하다.

 

 

 

이러한 점을 해결해주는 것이 ntsysv 이다.

 

 

 

아래의 그림처럼 전체적으로 등록된 서비스와 서비스의 설정 상태를 확인하며 각 서비스 들에 대한 설정이 가능하다.

 

 

 

 

ae605a8902fc6a456085638e2d1b5e83_1686797290_5637.png
 

 

 

 

그리고 실제 실행 스크립트를 수정하여 서비스를 관라하는 방법이 있다.

 

 

 

서비스에 등록이 되는 서비스의 경우 /etc/rc.d/init.d/의 디렉토리에 해당서비스의 실행 스크립트가 등록이 된다.

 

 

 

그리고 해당 런레벨에 따라 실행 및 미실행에 대한 설정은 /etc/rc.d/ 아래에 런레벨 별로 rc0.d, rc1.d, rc2.d, rc3.d, rc4.d rc5.d, rc6.d 형태로 시작스크립트를 저장할 디렉토리가 있다.

 

 

 

 

 

 

 

[root@sulinux pam.d]# ls al /etc/rc.d/rc3.d/

...

K99ktune -> ../init.d/ktune

K99oscap-scan -> ../init.d/oscap-scan

K99rngd -> ../init.d/rngd

K99sandbox -> ../init.d/sandbox

S00systemtap -> ../init.d/systemtap

S01sysstat -> ../init.d/sysstat

S02lvm2-monitor -> ../init.d/lvm2-monitor

S05cgconfig -> ../init.d/cgconfig

S07iscsid -> ../init.d/iscsid

S08ip6tables -> ../init.d/ip6tables

S08iptables -> ../init.d/iptables

S09isdn -> ../init.d/isdn

...

 

 

 

 

 

 

 

위에서 보는바와 같이 /etc/rc.d/init.d 실행 스크립트가 /etc/rc.d/rc3.d/(runlevel3)에서 실행 및 미실행 될 서비스에 대한 정의가 있다.

 

 

 

 

S로 시작하는 링크명은 해당 런레벨에서 시작하는 것이고 K로 시작하는 링크는 미실행이 되는 것이다.

 

 

 

 

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  71 명