kkamagi's story

IT, 정보보안, 포렌식, 일상 공유

OS

ntsysv , chkconfig - 리눅스 서비스 관리

까마기 2016. 1. 2. 15:00
728x90
반응형
* Daemon(or Service)
-백그라운드로 실행되면서 사용자의 요청이 있을 경우 요청을 받아 들여 사용자들이 원하는 결과를 보여주기 위해 계속 실행되는 프로그램

* Service Lockdown
필요하지 않거나 보안에 심각한 취약점을 가지고 있는 서비스를 시스템이 부팅할 때 정지시키는 행위

사용 명령어
- ntsysv
- chkconfig

* 시스템에는 여러 종류의 데몬들이 존재하는데 시스템 설치 시 기본적으로 설치되는 데몬들도 있고 관리자의 필요에 따라 설치되고 실행되는 데몬들이 있다.

* 시스템 부팅 시 동작하는 서비스들은 /etc/rc.d/init.d 디렉토리에 존재한다. 물론 runlevel 에 따라서 시작되고 시작되지 않는 서비스들이 있지만 특별한 경우를 제외하고는 대부분이 이 디렉토리에 존재한다.


1. 리눅스 불필요한 서비스 제거

- 리눅스 설치 시 불필요한 서비스를 사용하지 않음으로 해서 시스템의 보안을 위협하는 요인이 되는 서비스들을 중지 할 수 있다. 

- 굳이 사용하지 않는 서비스를 열어둘 필요는 없다. 

내가 현재 되어있는 런레벨만 건드린다.

- 런레벨 5로 부팅을 해서 ntsysv를 수정하면 런레벨 5에만 해당된다.

# ntsysv



 서비스명

 설명

제거여부 

 anacron

 A variation on the crontool

 

 apmd

 Advanced Power Management

 

 atd

 Daemon to the at scheduling tool

 

 autofs

 Automount

 

 cups

 Printing functions

 

 gpm

 Mouse support for text applications

 

 irda

 IrDA support

 

 isdn

 ISDN support

 

 keytable

 Keyboard mapping

 

 kudzu

 Hardware probing

 

 lpd

 Printing daemon

 

 netfs

 Mounts network file systems

 

 nfs

 NFS services

 

 nfslock

 NFS locking services

 

 ntpd

 Network Time Protocol daemon

 

 pcmcia

 PCMCIA support

 

 portmap

 RPC connection support

 

 random

 Snapshots the random state

 

 rawdevices

 Assigns raw devices to block devices

 

 rhnsd

 Red Hat Network daemon

 

 snmpd

 Simple Network Management Protocol (SNMP) support

 

 snmtptrap

 SNMP Trap daemon

 

 sshd

 Secure Shell (SSH) daemon

 

 winbind

 Samba support

 

 xfs

 X Font Server

 

 ypbind

 NIS/YP client support

 




2. chkconfig 
* chkconfig 는 시스템 서비스에 대한 Runlevel을 질의하고 업데이트 하는 명령어로써 
# chkconfig --list     를 실행하면 각각의 런레벨에서 해당 서비스가 어떻게 설정되어 있는지 알려준다. 통상적으로 서버용으로 많이 사용 하는 3번(init 3) 에서 작동하는 서비스에 대한 정보를 보려면 다음과 같이 하면 된다.
--->  # chkconfig --list | grep 3:활성




acpid를 봤으면 
# chkconfig --list | grep acpid

# chkconfig --del acpid
# chkconfig --list | grep acpid
# chkconfig --add acpid
# chkconfig --list | grep acpid
acpid           0:해제  1:해제  2:활성  3:활성  4:활성  5:활성  6:해제


chkconfig로 add 하면 기본적으로 런레벨 2,3,4,5는 활성화가 된다.

# chkconfig --level 4 acpid off
# chkconfig --list | grep acpid
acpid           0:해제  1:해제  2:활성  3:활성  4:해제  5:활성  6:해제



# chkconfig --level 23 acpid off
# chkconfig --list | grep acpid
acpid           0:해제  1:해제  2:해제  3:해제  4:해제  5:활성  6:해제
#

3. service


위의 그림과 같이 나타나며 ntsysv 에서 보였던 서비스들이 나타난다. 

service 명령어는 제어할 때 사용

chkconfig --list

bluetooth 를 가지고 실습

서비스명하고 데몬하고 틀림

# service bluetooth status
hcid가 정지됨
sdpd가 정지됨

# ps -ef | grep bluetooth
root     21414 18849  0 17:35 pts/1    00:00:00 grep bluetooth
# ps -ef | grep hcid
root     21402     1  0 17:34 ?        00:00:00 /usr/sbin/hcid
root     21419 18849  0 17:35 pts/1    00:00:00 grep hcid

----> 리눅스에서 서비스명을 찾고자 할때는
물론 서비스를 관리하는 service CMD 명령어로 제어

/etc/init.d  안에

부팅시

1. init (pid는 1번으로 실행됨)
2. # cd /etc/rc5.d/      (/etc/init.d의 링크파일이다.)
# ls -il
합계 4
230354 lrwxrwxrwx 1 root root 17  4월 30 17:24 K01dnsmasq -> ../init.d/dnsmasq
231082 lrwxrwxrwx 1 root root 24  4월 30 17:24 K02NetworkManager -> ../init.d/NetworkManager
230696 lrwxrwxrwx 1 root root 24  4월 30 17:24 K02avahi-dnsconfd -> ../init.d/avahi-dnsconfd
230852 lrwxrwxrwx 1 root root 17  4월 30 17:24 K02oddjobd -> ../init.d/oddjobd
230538 lrwxrwxrwx 1 root root 16  4월 30 17:24 K05conman -> ../init.d/conman
230304 lrwxrwxrwx 1 root root 19  4월 30 17:24 K05saslauthd -> ../init.d/saslauthd
230428 lrwxrwxrwx 1 root root 17  4월 30 17:24 K05wdaemon -> ../init.d/wdaemon
230583 lrwxrwxrwx 1 root root 16  4월 30 17:24 K10psacct -> ../init.d/psacct
229953 lrwxrwxrwx 1 root root 14  4월 30 17:24 K10tcsd -> ../init.d/tcsd
230259 lrwxrwxrwx 1 root root 15  4월 30 17:24 K15httpd -> ../init.d/httpd
230764 lrwxrwxrwx 1 root root 13  4월 30 17:24 K20nfs -> ../init.d/nfs
230928 lrwxrwxrwx 1 root root 14  4월 30 17:24 K24irda -> ../init.d/irda
230366 lrwxrwxrwx 1 root root 13  4월 30 17:24 K35smb -> ../init.d/smb
231261 lrwxrwxrwx 1 root root 19  4월 30 17:24 K35vncserver -> ../init.d/vncserver
230003 lrwxrwxrwx 1 root root 17  4월 30 17:24 K35winbind -> ../init.d/winbind
231237 lrwxrwxrwx 1 root root 14  4월 30 17:24 K36lisa -> ../init.d/lisa
229551 lrwxrwxrwx 1 root root 16  4월 30 17:24 K50ibmasm -> ../init.d/ibmasm
230217 lrwxrwxrwx 1 root root 20  4월 30 17:24 K50netconsole -> ../init.d/netconsole
230792 lrwxrwxrwx 1 root root 20  4월 30 17:24 K69rpcsvcgssd -> ../init.d/rpcsvcgssd
230270 lrwxrwxrwx 1 root root 16  4월 30 17:24 K73ypbind -> ../init.d/ypbind


/etc/rc.d/init.d/ 가 원본
/etc/init.d (링크된 디렉토리) -> /etc/init.d/ 는  디렉토리 /etc/rc.d/init.d 링크가 되어있다.

==================================================================================

# cd /etc/rc.d/rc3.d



위의 경로로 이동하여 rc3.d에 있는 파일들을 출력해 보았다. 위의 파일들을 보면 앞 단위가 S와 K로 시작되는 것을 알 수 있다.
S는 start로서 부팅 시 작동할 서비스를 말하고, K는 kill의 의미로 작동하지 않을 서비스를 말한다. 
 그리고 S나 K 뒤에 있는 숫자는 실행 될 번호로서 낮은 번호가 먼저 실행된다. 

--> 대표적으로 kill 하여야 하는 서비스에 대해 알아보기
S05apmd : laptop에서 전원관리를 위해 필요하므로 서버에서는 필요가 없다.
S10cups : Common Unix Printing System 으로 서버에는 필요가 없다. (단, Samba 서버 구현 시에는 필요)
S10xntpd : Network time protocol 이다. 사용할 경우가 없으므로 필요없다.
S11portmap : NIS 나 NFS 서비스 이용시 R로 시작되는 서비스에 대한 port를 mapping 시켜주는 서비스로 보안 상 문제가 많으며 필요가 없다. 
S15sound : 서버에서 sound를 서비스 하지 않으므로 필요없다.
S15netfs : nfs client가 nfs server를 마운트 할 때 필요하므로 역시 필요없다.
S20rstatd , S20rusersd , S20rwhod , S20rwalld : R로 시작하는 서비스는 인증과정이 취약하고 Remote에서 실행하는 것이므로 반드시 서비스를 하지 않도록 하여야 한다.
S20bootparamd : 하드나 플로피 등 부팅 수단에 없을 때 이용하는 것이므로 반드시 서비스 하지 않아야 한다. 
S20squid : squid 프록시 서버를 가동하는 설정이므로 사용하지 않는다면 필요없다.
S34yppasswdd : NIS server에서 필요한 설정이므로 필요없다.
S35ypserv : 역시 NIS 에서 필요한 설정이므로 필요없다.
S35dhcpd : dhcp(IP 동적 할당 서비스)에서 필요하므로 일반적으로 필요없다.
S40atd : cron과 같은 서비스인데, cron 서비스를 이용하므로 필요없다.
S45pcmcia : 노트북에서 필요하므로 삭제한다. 
S50snmpd : 원격의 이용자가 트래픽이나 시스템에 대한 정보를 필요로 할 때 사용하는데, 사용한다면 snmp community string을 엄격하게 설정하고 사용하지 않는다면 삭제한다.
S55named : DNS 서비스를 제공한다면 이용하지만 그렇지 않으면 삭제한다. 
S55routed : 라우터가 아닌 이상 일반 서버에서는 삭제한다.
S60lpd : 프린트 서버가 아닌 이상 반드시 삭제한다.
S60mars-new : Netware에서 쓰는 file 이나 printer server 이므로 삭제한다.
S60nfs : NFS server에서 필요하므로 nfs 서비스 하지 않는다면 삭제한다.
S72amd : AutoMount daemon 으로 원격지의 File system을 마운트 할 떄 마다 필요하다. AMD는 전통적으로 보안 취약성이 있으므로 삭제한다.
S80sendmail : sendmail 데몬이다. 메일 서비스를 제공한다면 삭제한다. 
S85httpd : Apache 웹 서버이다. 컴파일하여 설치를 하였을 경우에는 이 부분을 삭제하고 해당 부분을 /etc/rc.d/rc.local 에 추가한다. 
S87ypbind : NIS 를 쓸 때 필요하다. 사용하지 않는다면 삭제한다.
S90xfs : X font server로 , 서버에서는 X-windows 서비스를 하지 않으므로 삭제한다.
S95innd : News server로 news 서비스를 하지 않으므로 삭제한다.
S99linunxconf : 원격지에서 브라우저를 통해 리눅스 시스템의 설정을 변경할 수 있는 것으로 보안상 취약점을 가지고 있으므로 반드시 삭제하여야 한다. 



========================================================
커널파라미터 조정으로 시스템 최적화 방법


# source /etc/profile
# cd /proc/sys     //리눅스의 커널파라미터가 있는 곳.
#

sysctl 은 기본적으로 /proc/sys 를 인식하며 . 를 디렉토리 구분자로 한다.

========================

유명한 백업 솔루션

1. veritas netbackup

2. time navigator  리눅스 쪽에서 많이 사용

3. net worker

스토리지, 백업
--> 고급 기술..


============================================
수퍼블록 찾는 법

e2fsck -b

=========================================

매직키

alt + printscreen 키 + 

============================================


ip alias 기능

물리적 네트워크 카드가 1개 있을때

가상의 네트워크를 추가하여 사용하는 기능??


====================
network bonding 기술


eth1,2,3,4,를 본딩모듈로 인식시킴 -> /etc/sysconfig/network

왜 쓸까?-> 영구적(한쪽 카드가 장애시 문제 없게끔?), 네트워크 카드를 묶어서 다 사용하기 위해??(네트워크 트래픽을 많이 사용하고자 할떄, 웹서버쪽에는 안쓴다.)

========================

BMT (서버 성능 테스트)
서버 구매 전에 성능 테스트

리눅스의 Rsync를 이용


반응형

'OS' 카테고리의 다른 글

Login Time out  (0) 2016.01.02
Boot Loader 암호 설정  (0) 2016.01.02
RPCBIND 란?  (0) 2016.01.02
kipmi0 CPU 100%  (0) 2016.01.02
CentOS 언어셋 변경  (0) 2016.01.02