서버/Linux III 2016. 3. 14. 15:17
Linux III - 05. 리눅스 서비스 운영 방식(Standalone & xinetd)
login as: root
root@192.168.1.100's password:
Last login: Mon Mar 14 15:03:45 2016 from 192.168.1.1
[root@main /root]#
login as: root
root@192.168.1.101's password:
Last login: Mon Mar 14 10:43:51 2016 from 192.168.1.1
[root@clone1 /root]#
1. 서비스 운영 방식 2가지 유형
Standalone |
- 부팅될때 자동으로 실행되는 서비스들이 사용함 - 서버는 서비스 데몬을 준비한 상태로 운영함 - 서비스가 메모리에 항상 상주해야함 - 응답 속도가 빠르다. - '/etc/init.d' 스크립트 파일을 참조함 - 서비스 요청이 많은 경우 효율적이다. - Ex) sendmail, apache, mysql , name server, nfs |
Xinetd |
- 서버는 클라이언트 연결시에만 서비스를 활성화하여 운영함 - 클라이언트 연결시에만 서비스가 메모리에 상주함 - 응답 속도가 standalone 보다 느리다. - '/etc/xinetd.d' 파일을 참조함 - 서비스 요청이 적은 경우 효율적이다. - Ex) telnet, pop3, finger |
2. Standalone 방식
클라이언트가 서버에게 서비스 요청을 하기 이전에 서버에서 해당 서버가 반드시 실행중인 상태가 되어야 한다. 즉, 데몬이 떠 있으면서 서비스하는 방식을 의미한다.
대부분의 서비스들은 Standalone 방식으로 운영되며, 이 방식으로 운영되는 서비스들은 다음과 같이 '/etc/init.d' 디렉토리에 있는 스크립트 파일로 관리한다.
[root@main /root]# ls /etc/init.d
Standalone 방식을 사용하는 서비스 : sendmail, apache, mysql , name server, nfs 기타 등등
Ex) httpd 서비스 확인
- httpd 데몬 확인 및 httpd 데몬 서비스 시작
[root@main /root]# pgrep -lf httpd
[root@main /root]# service httpd restart
httpd 를 정지 중: [ OK ]
httpd (을)를 시작 중: httpd: Could not reliably determine the server's fully qualified domain name, using 172.20.1.1 for ServerName
[ OK ]
[root@main /root]# pgrep -lf httpd
3233 /usr/sbin/httpd
3236 /usr/sbin/httpd
3237 /usr/sbin/httpd
3238 /usr/sbin/httpd
3239 /usr/sbin/httpd
3240 /usr/sbin/httpd
3241 /usr/sbin/httpd
3242 /usr/sbin/httpd
3243 /usr/sbin/httpd
- httpd 데몬 동작 확인
Xwindow -> 터미널 실행 -> firefox & -> http://172.20.1.1 접속 확인
- httpd 데몬 서비스 정지
[root@main /root]# service httpd stop
httpd 를 정지 중: [ OK ]
[root@main /root]# pgrep -lf httpd
- httpd 데몬 동작 확인
Xwindow -> 터미널 실행 -> firefox & -> http://172.20.1.1 접속 확인
3. xinet 방식
클라이언트가 서버에게 요청시 서버에서 자동으로 서비스가 활성화된다. 즉, Standalone 방식처럼 서버에 데몬이 떠있는 것이 아니라, 클라이언트 요청을 수신하면 해당 서비스가 자동으로 실행되는 방식을 의미한다.
관리자가 서버에서 서비스를 올리거나 내리는 작업을 할 필요 없으며, 서비스가 항상 메모리를 점유하지 않기 때문에 메모리 사용도 효율적으로 운영된다.
이 방식으로 운영되는 서비스들은 다음과 같이 '/etc/xinetd.d' 디렉토리에 있는 파일로 관리한다.
[root@main /root]# pgrep -fl xinetd
3314 xinetd -stayalive -pidfile /var/run/xinetd.pid
[root@main /root]# ls /etc/xinetd.d/
xinet 방식을 사용하는 서비스 : telnet, pop3, finger
Ex) Telnet 서비스 확인
- main은 텔넷 클리이언트가 접속되면, '/usr/sbin/in.telnetd' 텔넷 서비스를 메모리에 올려 텔넷 접속을 허용한다.
[root@main /root]# ls /usr/sbin/in.telnetd
/usr/sbin/in.telnetd
[root@main /root]# pgrep -fl in.telnetd 텔넷은 xinetd 방식이기 때문에 평상시 메모리에 올라가 있지 않는 상태이다.
[root@main /root]#
- clone1은 '/etc/services' 파일에서 텔넷 포트 번호를 검색한다.
- 또한, 'etc/hosts' 파일에서 IP 주소를 검색하여 main으로 텔넷 접속을 실시한다.
[root@clone1 /root]# grep -w 23 /etc/services
telnet 23/tcp
telnet 23/udp
[root@clone1 /root]# grep -w main /etc/hosts
172.20.1.1 main main.com
[root@clone1 /root]#
[root@clone1 /root]# telnet main
Trying 172.20.1.1...
Connected to main.
Escape character is '^]'.
CentOS release 6.6 (Final)
Kernel 2.6.32-504.el6.x86_64 on an x86_64
login:
- main에서 실행중인 xinetd는 '/etc/services' 파일을 검색하여 클라이언트가 요청한 포트 번호를 확인한다.
- 포트 번호를 확인한 이후 해당 서비스 설정 사항을 확인한다.
[root@main /root]# grep -w 23 /etc/services
telnet 23/tcp
telnet 23/udp
- main는 '/etc/xinetd.conf' 파일을 참조한다.
- 만약, '/etc/xinetd.conf' 파일에 'includedir'이 있으면 '/etc/xinetd.d' 디렉토리 안에 있는 모든 파일을 참조한다.
- 그럼 main는 모든 파일 중에 서비스 이름이 'telnet'인 파일을 찾아서 xinetd 데몬 텔넷 서버를 실행한다.
[root@main /root]# grep includedir /etc/xinetd.conf (#cat /etc/xinetd.conf | grep includedir)
includedir /etc/xinetd.d
[root@main /root]# ls /etc/xinetd.d
chargen-dgram daytime-stream echo-dgram tcpmux-server time-stream
chargen-stream discard-dgram echo-stream telnet
daytime-dgram discard-stream rsync time-dgram
- 이때, '/etc/xinetd.d/telnet' 파일에 disable 이 'no'로 되어 있어야지만, 텔넷 접속을 허용 한다.
[root@main /root]# cat /etc/xinetd.d/telnet
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}
- 만약, 'yes'로 되어있다면, vi 편집기를 이용하여 'no'로 수정한 다음, 'service xinetd restart'를 실시한다.
[root@main /root]# service xinetd restart
xinetd 를 정지 중: [ OK ]
xinetd (을)를 시작 중: [ OK ]
- main은 xinetd에 의해서 텔넷 서비스 설정 파일을 이용하여 서버 옵션 설정값을 확인하여 서비스를 실행한다.
[root@main /root]# ls /usr/sbin/in.telnetd
/usr/sbin/in.telnetd
[root@main /root]# pgrep -fl in.telnetd
3553 in.telnetd: clone1
- clone1이 main으로 'in.telnetd'로 로그인한다.
[root@clone1 /root]#
[root@clone1 /root]# telnet main
Trying 172.20.1.1...
Connected to main.
Escape character is '^]'.
CentOS release 6.6 (Final)
Kernel 2.6.32-504.el6.x86_64 on an x86_64
login: user1
Password: centos
Last login: Tue Mar 15 11:25:47 from clone1
[user1@main /home/user1]$
- clone1에서 텔넷 접속을 해지한다.
[user1@main /home/user1]$ exit
logout
Connection closed by foreign host.
[root@clone1 /root]#
- clone1이 텔넷 접속을 해지하면, main은 메모리에 올라간 telnetd 서비스를 비활성화시킨다.
[root@main /root]# pgrep -fl in.telnetd
[root@main /root]#
4. xinetd 방식 특징
xinetd는 예전 inetd 방식에서 다음과 같은 기능이 추가되었다.
- TCP, UDP, RPC 서비스에 대한 접근 제어가 가능하다.
- 서비스 운영시간을 정해두고 특정 시간에만 접속 및 연결이 가능하다.
- 서비스 접속 기록 형태를 세부적으로 설정할 수 있다.
- 일부 DOS 공격을 방어할수 있도록 구동되는 데몬 갯수를 제한할 수 있다.
[root@main /root]# vi /etc/xinetd.d/telnet
1 # default: on : q! |
5. standalone & xinetd 서비스 목록 확인
[root@main /root]# 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:해제
atd 0:해제 1:해제 2:해제 3:활성 4:활성 5:활성 6:해제
auditd 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
autofs 0:해제 1:해제 2:해제 3:활성 4:활성 5:활성 6:해제
blk-availability 0:해제 1:활성 2:활성 3:활성 4:활성 5:활성 6:해제
bluetooth 0:해제 1:해제 2:해제 3:활성 4:활성 5:활성 6:해제
certmonger 0:해제 1:해제 2:해제 3:활성 4:활성 5:활성 6:해제
cpuspeed 0:해제 1:활성 2:활성 3:활성 4:활성 5:활성 6:해제
crond 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
cups 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
dnsmasq 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
dovecot 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
firstboot 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
haldaemon 0:해제 1:해제 2:해제 3:활성 4:활성 5:활성 6:해제
htcacheclean 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
httpd 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
ip6tables 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
ipsec 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
iptables 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
irqbalance 0:해제 1:해제 2:해제 3:활성 4:활성 5:활성 6:해제
kdump 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
lvm2-monitor 0:해제 1:활성 2:활성 3:활성 4:활성 5:활성 6:해제
mcelogd 0:해제 1:해제 2:해제 3:활성 4:해제 5:활성 6:해제
mdmonitor 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
messagebus 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
mysqld 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
netconsole 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
netfs 0:해제 1:해제 2:해제 3:활성 4:활성 5:활성 6:해제
network 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
nfs 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
nfslock 0:해제 1:해제 2:해제 3:활성 4:활성 5:활성 6:해제
nmb 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
ntpd 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
ntpdate 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
oddjobd 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
openct 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
pcscd 0:해제 1:해제 2:해제 3:활성 4:활성 5:활성 6:해제
portreserve 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
postfix 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
psacct 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
quota_nld 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
rdisc 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
restorecond 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
rngd 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
rpcbind 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
rpcgssd 0:해제 1:해제 2:해제 3:활성 4:활성 5:활성 6:해제
rpcsvcgssd 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
rsyslog 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
saslauthd 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
smartd 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
smb 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
spamassassin 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
spice-vdagentd 0:해제 1:해제 2:해제 3:해제 4:해제 5:활성 6:해제
sshd 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
sssd 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
svnserve 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
sysstat 0:해제 1:활성 2:활성 3:활성 4:활성 5:활성 6:해제
udev-post 0:해제 1:활성 2:활성 3:활성 4:활성 5:활성 6:해제
vmware-tools 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
vmware-tools-thinprint 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
vsftpd 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
wdaemon 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
winbind 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
wpa_supplicant 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
xinetd 0:해제 1:해제 2:해제 3:활성 4:활성 5:활성 6:해제
ypbind 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
xinetd 기반의 서비스:
chargen-dgram: 해제
chargen-stream: 해제
daytime-dgram: 해제
daytime-stream: 해제
discard-dgram: 해제
discard-stream: 해제
echo-dgram: 해제
echo-stream: 해제
rsync: 해제
tcpmux-server: 해제
telnet: 활성
time-dgram: 해제
time-stream: 해제
6. 'setup' 메뉴를 이용한 서비스 활성화 및 해지
[root@main /root]# setup
시스템 서비스 -> 엔터
서비스 목록 확인 및 설정/해지 가능 -> 취소 -> 엔터
종료 -> 엔터
'서버 > Linux III' 카테고리의 다른 글
Linux III - 07. FTP 서버(vsftpd) (0) | 2016.03.16 |
---|---|
Linux III - 06. FTP 클라이언트 (0) | 2016.03.15 |
Linux III - 04. 방화벽 해지하는 방법 (0) | 2016.03.14 |
Linux III - 03. main 서버 클론 및 IP 주소 & Telnet 설정 (0) | 2016.03.10 |
Linux III - 02. 리눅스 네트워크 설정 (0) | 2016.03.09 |