* 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합계 4230354 lrwxrwxrwx 1 root root 17 4월 30 17:24 K01dnsmasq -> ../init.d/dnsmasq231082 lrwxrwxrwx 1 root root 24 4월 30 17:24 K02NetworkManager -> ../init.d/NetworkManager230696 lrwxrwxrwx 1 root root 24 4월 30 17:24 K02avahi-dnsconfd -> ../init.d/avahi-dnsconfd230852 lrwxrwxrwx 1 root root 17 4월 30 17:24 K02oddjobd -> ../init.d/oddjobd230538 lrwxrwxrwx 1 root root 16 4월 30 17:24 K05conman -> ../init.d/conman230304 lrwxrwxrwx 1 root root 19 4월 30 17:24 K05saslauthd -> ../init.d/saslauthd230428 lrwxrwxrwx 1 root root 17 4월 30 17:24 K05wdaemon -> ../init.d/wdaemon230583 lrwxrwxrwx 1 root root 16 4월 30 17:24 K10psacct -> ../init.d/psacct229953 lrwxrwxrwx 1 root root 14 4월 30 17:24 K10tcsd -> ../init.d/tcsd230259 lrwxrwxrwx 1 root root 15 4월 30 17:24 K15httpd -> ../init.d/httpd230764 lrwxrwxrwx 1 root root 13 4월 30 17:24 K20nfs -> ../init.d/nfs230928 lrwxrwxrwx 1 root root 14 4월 30 17:24 K24irda -> ../init.d/irda230366 lrwxrwxrwx 1 root root 13 4월 30 17:24 K35smb -> ../init.d/smb231261 lrwxrwxrwx 1 root root 19 4월 30 17:24 K35vncserver -> ../init.d/vncserver230003 lrwxrwxrwx 1 root root 17 4월 30 17:24 K35winbind -> ../init.d/winbind231237 lrwxrwxrwx 1 root root 14 4월 30 17:24 K36lisa -> ../init.d/lisa229551 lrwxrwxrwx 1 root root 16 4월 30 17:24 K50ibmasm -> ../init.d/ibmasm230217 lrwxrwxrwx 1 root root 20 4월 30 17:24 K50netconsole -> ../init.d/netconsole230792 lrwxrwxrwx 1 root root 20 4월 30 17:24 K69rpcsvcgssd -> ../init.d/rpcsvcgssd230270 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를 이용