본문 바로가기

자격증/리눅스 마스터 1급

Part3) 네트워크 및 서비스의 활용 - 네트워크 서비스 | 기타 서비스

VII. 기타 서비스


수퍼데몬 관리(설치 및 설정)

1) 수퍼데몬의 정의

*수퍼데몬이란?
여러 데몬을 관리하는 수퍼데몬으로 서버 프로세스로 시스템이 살아있는 동안 항상 백그라운드 프로세스 상태로 존재한다.

리눅스에서 사용되는 2가지 서비스

 구분 

 Xinetd 

 Standalone 

 의미 

 xinetd 수퍼데몬에 의해 제어되는 서비스들의 데몬

 독립적으로 실행되는 서비스들의 데몬 

 실행방법 

 필요할 때 xinetd에 의해 수행 

 독립적인 서비스를 위하여 항상 독립적으로 수행 

 데몬상주 여부 

 xinetd에 의해 불려진 후 서비스 완료 후에는 자동 종료 됨 

 독립적인 서비스를 위하여 항상 메모리에 독립데몬으로 상주해 있음 

 실행속도 

 독립방식에 비해 상대적으로 느림 

 xinetd방식에 비해 상대적으로 빠름 

 자원사용 

 시스템자원 사용이 효율적임(자원사용 적음) 

 xinetd방식에 비해 자원사용이 비효율적임(자원 사용 많음) 

 기타 

 "/etc/xinetd.d/서비스명"으로 된 제어파일 존재 

 대부분 "/etc/rc.d/init.d/서비스명"등과 같은 파일명으로 존재 

 접근제어

 tcp_wrapper에 의해 접근제어됨 

 tcp_wrapper와는 무관하지만 자체 설정파일에 의해 접근제어를 할 수 도 있음 

 로깅

 /etc/syslog.conf파일의 설정에 따름. 대부분 "/var/log/파일"에 로깅 됨

 참고

 독립적으로 실행되는 데몬들도 xinetd 환경으로 변경할 수 있으며, 반대로 xinetd환경에서 서비스되는 데몬들도 독립적인 실행모드로 변경할 수 있다.

 sshd, vsftpd와 같이 독립서비스지만, libwrap 라이브러리를 사용한 경우 tcp_wrapper를 이용하여 접근제어 할 수 있다.

 예시

 Telnet서버(telnetd), Rsync서버(rsync), POP3서버(ipop3d)

 웹 서버(httpd), db서버(mysqld), 메일서버(sendmail), DNS서버(named) 


xinetd의 기능 - ('Dos공격'의 위험을 감소하기 위해 제공)

TCP, UDP와 RPC 서비스들에 대한 접근 제어
타임 세그먼트에 기초한 접근 제어
접속 성공 또는 실패에 대한 완전한 로깅
서비스 공격에 대한 효과적인 억제
동시에 작동하는 동일 유형 서버 수에 대한 제한
총 서버 수에 대한 제한
로그 파일 크기에 대한 제한
특정 인터페이스로의 서비스 바인딩

2) 수퍼데몬의 작동구조

*Telnet서비스 제공 예시

①Server의 Telnet설정파일 수정(/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   #◀◀◀수정
}
▲Server는 xinetd 설정 중 telnet 설정파일(/etc/xinetd.d/telnet)을 수정하여 다음과 같이 telnet서비스를 활성화 시킨다.

②Client 접속
root@bjkim:~# telnet 192.168.0.129
Trying 192.168.0.129...
Connected to 192.168.0.129.
Escape character is '^]'.
CentOS release 6.4 (Final)
Kernel 2.6.32-358.el6.i686 on an i686
▲telnet(TCP/23)을 이용하여 서버에 연결 요청

③Server에서 접근제어 확인
•서버는 /etc/resolv.conf, /etc/host.conf, /etc/hosts 등을 설정값에 따라 질이 한 후, 질의 된 도메인은 tcp_wrapper의 호스트 부분 및 로그를 남길 때 필요한 호스트로 활용하며, 만약 질의되지 않을 시엔 IP를 그대로 활용한다. 다음으로 /etc/hosts.allow파일과 /etc/hosts.deny파일을 읽어 접근 제어를 확인하고 허용이 된다면 다음 단계로 넘어간다.

④Client login
위의 ''단계에서 허용이 되면 /etc/xinetd.d/telnet의 설정에 따라 /usr/sbin/in.telnetd 프로그램을 실행 시킨다. 그 후 in.telnetd 프로그램은 클라이언트에서 입력하는 부분을 수신하는 중간 역할을 한다.


3) 수퍼데몬의 활용분야

*디스크 용량을 확이하는 'df'명령을 xinetd을 이용하여 인터넷 서비스 구현하기

[1] 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
   server = /bin/df
   log_on_failure += USERID
   disable = no 
}
▲server 부분을 '/bin/df'로 수정


[2] xinetd서비스 재시작
# root@bjkim:~# service xinetd restart
xinetd 를 정지 중:                  [ OK ]
xinetd (을)를 시작 중:              [ OK ]

[3] telnet으로 디스크 용량 확인
root@bjkim:~# telnet localhost
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
Filesystem        IK-blocks      Used  Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                    6030784   4487984    1231504 79%  /
/dev/hda1/           101086     38191      57676 40%  /boot
tmpfs                442140         0     442140  0%  /dev/shm
/dev/hdb1          10317828   6056232    3737480 62%  /usr/local
none                 442140       104     442036  1%  /var/lib/xenstored
Connection closed by foreign host.
▲위 예제와 같은 결과를 얻어내기 위해서 standalone모드로 개발 시엔 엄청 힘들다.


(4) 수퍼데몬의 설정 및 고급활용(Trouble shooting)

①기본 설정 파일 - '/etc/xinetd.conf'
root@bjkim:~# cat /etc/xinetd.conf
#
# This is the master xinetd configuration file. Settings in the
# default section will be inherited by all service configurations
# unless explicitly overridden in the service configuration. See
# xinetd.conf in the man pages for a more detailed explanation of
# these attributes.

defaults
{
# The next two items are intended to be a quick access place to
# temporarily enable or disable services.
#
#	enabled		=
#	disabled	=

# Define general logging characteristics.
	log_type	= SYSLOG daemon info 
	log_on_failure	= HOST
	log_on_success	= PID HOST DURATION EXIT

# Define access restriction defaults
#
#	no_access	=
#	only_from	=
#	max_load	= 0
	cps		= 50 10
	instances	= 50
	per_source	= 10

# Address and networking defaults
#
#	bind		=
#	mdns		= yes
	v6only		= no

# setup environmental attributes
#
#	passenv		=
	groups		= yes
	umask		= 002

# Generally, banners are not used. This sets up their global defaults
#
#	banner		=
#	banner_fail	=
#	banner_success	=
}

includedir /etc/xinetd.d

 옵션 

 의미 

 log_type = SYSLOG daemon info

 syslogd를 사용하여 로그를 남기며, 선택자는 daemon이름과 로그 레벨은 info로 한다.

 log_on_failure = HOST 

 서버데몬을 실행 시킬 수 없을 때에는 Client에 대한 정보만 남긴다. 

 log_on_success = PID HOST DURATION EXIT 

 서버데몬 실행 성공 시 남길 로그 내용이다. 

 cps = 50 10 

 50회/초 이상 접속시 10초간 서비스를 비활성화 시킨다. (서버 자원 고갈 방지) 

 instances = 50 

 동시에 실행할 수 있는 서버데몬 수 50개로 설정한다. 

 per_source = 10 

 동일 호스트에서 동시 접속할 수 있는 최대의 수는 10개이다. 

 v6only = no 

 IPv6전용관련 설정이다. 

 groups = yes

 서버데몬 실행 시 user지시자로 정의한 사용자가 속한 그룹권한을 가진다. (no시 기본 그룹)

 umask = 002

 umask 002로 설정한다.


②서비스 설정 파일 - '/etc/xinetd.d/서비스명'

*only_from 속성

 only_from = 192.168.0.0/24 192.168.1.1

 클라이언트 IP가 '192.168.0.0/24'와 '192.168.1.1'일경우 에만 접속 허용

 only_from -= 192.168.0.0/24 

 설정된 only_from에서 192.168.0.0/24를 뺌 

 only_from += 222.97.189.1 

 설정된 only_from에서 222.97.189.1을 더함 

 결론적으로 only_from 옵션은 'only_from = 192.168.1.1 222.97.189.1'이 된다. 



PROXY 관리

1) PROXY서버의 정의


*프록시 서버란?
•클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 응용 프로그램을 가리킨다.
•서버와 클라이언트 사이에서 중계기로서 대리로 통신을 수행하는기능을 가리켜 '프록시', 그 중계 기능을 하는 것을 '프록시 서버'라고 부른다.
(역프록시: 웹서버를 위한 프록시로 웹서버의 내용을 캐시한다.)

장점
•프록시 서버에 요청된 내용과 응답된 결과를 캐시에 저장하여 캐시 안에 있는 정보를 요구하는 요청에 대해서는 저장된 내용으로 응답하는데, 이렇게 하면 원격 서버에 접속하여 데이터를 가져올 필요가 없게 됨으로써 '전송시간 및 트래픽'을 절약할 수 있게 된다.

2) PROXY서버의 작동구조


①일반적인 프록시

•프록시 서버와 사용자 PC는 아무런 연관이 없이 구성되며, 사용자 PC의 웹브라우저에서 Proxy 설정을 해야 연동되게 된다.



[1] 사용자 PC의 웹 브라우저에 proxy 서버 설정을 하는데, 이 때 proxy서버 IP와 포트 정보를 입력하고 proxy서버를 이용하게 설정한다. 사용자 PC에서 웹브라우저 주소창에 http://www.sulinux.net을 입력한다.

[2] 사용자 PC는 proxy 설정에 따라 프록시 서버에, 웹브라우저에서 입력한 URL에 대한 응답요청을 하게 된다.

[3] 프록시 서버는 사용자 PC에서 요청한 URL에 대한 캐시값이 있는지 조사하고 있따면 저장된 응답값을 사용자 PC에 응답하게 된다. 만약 캐시에 없다면 인터넷을 통해 해당 웹서버에 접속하여 응답을 받아 캐시에 저장하고 사용자 PC에 응답하게 된다.




②투명 프록시

PC사용자가 웹브라우저에 Proxy설정을 해야 하는 번거로움 덜어주고, 사용자의 요청을 방화벽에 의해서 프록시 서버를 통하도록 포워딩한다.



[1] 사용자 PC의 웹브라우저 주소창에 http://www.sulinux.net을 입력한다.

[2] 사용자 PC는 인터넷에 접속하기 위해 브릿지로 구성된 프록시 서버를 거치게된다. 프록시 서버에 설정된 iptables의 룰에 따라 목적지 프로토콜 및 포트가 TCP/80인 패킷은 프록시 서버로 보내게 된다.

[3] 프록시 서버는 사용자 PC에서 요청한 URL에 대한 캐시값이 있는지 조사하고 있다면 저장된 응답값을 사용자 PC에 응답하고, 없다면 인터넷을 통해 해당 웹 서버에 접속하여 응답을 받아와 캐시에 저장한 후 사용자 PC에 응답한다.



③역 프록시(Reverse-proxy)

•'웹 서버 가속(webserver acceleration)'이라고도 부르며, 이를 이용하면 웹서버의 부하를 줄이고, 사용자 요청으로 생성된 컨텐츠를 저장하기 때문에 웹컨텐츠를 생성하기 위해 접속하는 DB서버의 부하 또는 줄여준다.




[1] 사용자 PC의 웹 브라우저 주소창에 http://www.sulinux.net을 입력한다.

[2] 사용자 PC는 웹사이트에 접속하기 위해 프록시 서버에 접속하여 웹브라우저에서 입력한 URL에 대한 응답요청을 하게 된다.

[3] 프록시 서버는 사용자 PC에서 요청한 URL에 대한 캐시값이 있는지 조사하고 있다면 저장된 응답값을 사용자 PC에 응답하고, 만약 없다면 웹서버에 접속하여 응답을 받아와 캐시에 저장한 후 사용자 PC에 응답하게 된다.



3) PROXY서버의 활용분야


활용 예

•회사 내 프록시 서버를 두어 인터넷 회선 트래픽 줄이기

•프록시 서버의 로그를 활용해 인터넷 사용률 기록 및 감시

•프록시 서버를 이용해 유해사이트 차단 및 네트워크 서비스나 콘텐츠로의 접근 정책을 적용

•프록시 서버를 이용해 기업의 소중한 데이터가 외부로 유출되는 것을 방지하기 위해 컨텐츠 필터링 및 검사

•웹으로 배포되는 악성코드 및 바이러스를 필터링

•역 프록시 서버를 활용해 동적 컨텐츠 생산에 있어 WEB 서버 및 WAS, DB서버의 부하를 최소화시키는 기능을 활용

•해외에 있는 사용자에게 프록시 정보를 주어 좁속하도록 하여 지역 제한을 우회


악용

•프록시 서버를 이용해 보안 및 통제를 우회

•바이러스 및 악성루머 전파, 다른 정보를 빼낼 목적으로 사용

•해커들이 IP추적을 당하지 않을 목적으로 사용



4) PROXY서버 설정 및 고급활용(Trouble shooting)


①Squid 설치

root@bjkim:~# yum install squid


②Squid 설정


[1] 일반적인 프록시 서버 설정 - '/etc/squid/squid.conf'

http_port 3128
cache_mem 2048 MB
cache_dir ufs /var/spool/squid 102400 512 1024
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
acl our_networks src 192.168.0.0/24
http_access allow our_networks

 옵션

의미 

 http_port 3128

 Squid의 웹에 대한 프록시 포트를 지정

 cache_mem 2048 MB

 캐시 메모리를 설정 (메모리가 많으면 좋은 성능을 냄) 

 cache_dir ufs /var/spool/squid 102400 512 1024

 캐시된 내용을 저장할 디렉터리 관련 설정 

 access_log /var/log/squid/access.log squid

 접근로그 저장소 및 포멧, 지정 

 cache_log /var/log/squid/cache.log

 캐시로그 파일을 지정 

 acl our_networks src 192.168.0.0/24

 네트워크 허용리스트(acl)

 http_access allow our_networks

 웹 프로깃 허용 여부 설정 



[2] 투명 프록시 서버 설정

http_port 3128 transparent
cache_mem 2048 MB
cache_dir ufs /var/spool/squid 102400 512 1024
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
acl our_networks src 192.168.0.0/24
http_access allow our_networks

▲일반 프록시 설정에서 'http-port' 설정 항목에 transparent(투명) 옵션만 추가됨



- iptables설정 - 투명 프록시 설정은 iptables의 도움을 받아야 함

iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -m tcp --dport 80 0n REDIRECT --to-ports 3128


[3] 역 프록시 서버 설정

http_port 80 accel
cache_peer 222.97.189.2 parent 80 0 no-query originserver round-robin
cache_mem 2048 MB
cache_dir ufs /var/spool/squid 102400 512 1024
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
http_access allow all


 옵션

 의미 

 http_port 80 accel

 웹 기본포트 프록시를 지정 후 accel은 역프록시 모드인 Accelerator를 의미

 cache_peer 옵션

 웹서버 IP: 222.97.189.2

 캐시서버관계: parent

 포트: 80 / ICP 포트: 0 / no-query 옵션으로 ICP를 안보냄

 리얼 웹서버 가속: originserver

 원본서버가 여러개 일 경우 방식: round-robin



③Squid 시작과 종료


[1] Squid 데몬 재시작
root@bjkim:~ # service squid restart

[2] Squid 동작 상태 확인
root@bjkim:~ # service squid status
squid (pid 20707)를 실행 중...




DHCP 관리

1) DHCP서버의 정의


*DHCP 서버란?

동적으로 호스트 IP를 관리하는 단순한 응용계층 프로토콜로, IP 주소 및 관련된 기타 구성 세부 정보를 네트워크의 DHCP를 사용하여 클라이언트에게 동적으로 할당하고 관리한다.


2) DHCP서버의 작동구조




①IP Lease Request(Host → DHCP 서버)

•TCP/IP 정보를 할당받지 못한 Host는 시스템 시작 또는 dhcp클라이언트 프로그램 재시작시 TCP/IP부분을 초기화 한다. IP가 할당된 상태가 아니기 때문에 DHCP서버와 통신하기 위해 NULL IP 주소를 할당한 후, 소스 주소를 0.0.0.0으로 하고 목적지 주소는 브로드캐스트 주소인 255.255.255.255로 하여 자신의 MAC주소 및 호스트네임을 포함해 DHCPDISCOVER 메시지 형태로 브로드캐스팅한다.


②IP Lease Offer(DHCP 서버 → Host)

•Host가 보낸 Requset메세지를 DHCP서버는 DHCPDISCOVER 메세지에 대한 응답으로 DHCPOFFER 메세지로 응답한다. 이 내용엔 Host의 MAC주소, IP주소, 서브넷 마스크, 임대기간, DHCP서버 IP 주소가 포함되어 있고, 이 역시 브로드캐스팅한다.


③IP Lease Selection(Host → DHCP 서버)

•Host는 DHCP서버로부터 DHCPOFFER 메세지를 받게 되는데, 만일 여러개의 DHCP서버가 있다면 제일 먼저 도착하는 DHCPOFFER메세지를 채택한다. 그 이후 Host는 DHCP서버에게 DHCPREQUEST 메세지를 브로드캐스트 하는데, 여기엔 DHCP 서버 IP 및 클라이언트가 사용하게 될 IP 주소가 포함되어 있다.


④IP Lease Acknowledgment(DHCP 서버 → Host)

DHCPREQUEST메세지를 받은 DHCP서버는 Host에게 DHCPACK 메세지를 브로드캐스트한다.


⑤IP 설정

•DHCP서버로 부터 DHCPACK메세지를 받게 되면 Host는 할당 받은 TCP/IP설정 정보를 Host에 설정한다.



3) DHCP서버의 활용분야


•ISP(Internet service provider)에서 효율적으로 IP관리를 위해 사용하는데, xDSL, HFC, 광랜 등의 거의 모든 서비스에서 DHCP서버를 사용하여 동적으로 IP를 할닫하여 가입자 수보다 적은 IP 주소로 서비스가 가능하다.

•인터넷공유기에 포함되어 인터넷 IP를 공유하는 PC들의 사설 IP를 자동으로 할당해주는 역할을 한다.

•DHCP서버와 DNS를 연동하여 호스트네임 기반에 IP를 자동할당하여 클리스터등 많은 Host를 필요로 하는 곳에서 Host의 TCP/IP 정보를 효율적으로 관리할 수 있다.



4) DHCP서버 설정 및 고급활용(Trouble shooting)


①DHCP 서버 설치

root@bjkim:~# yum install dhcp


②DHCP 서버 설정


[1] DHCP 설정 파일 - '/etc/dhcpd.conf→/usr/share/doc/dhcp-[version]/dhcpd.conf.sample'

root@bjkim:~# cat /etc/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
#   see 'man 5 dhcpd.conf'
#

▲'/etc/dhcpd.conf' 에 들어 가면 '/usr/shar/doc/dhcp-[version]/dhcpd.conf.sample' 경로로 안내한다.


-전역 설정과 subnet, group 등으로 감싸고 있는 지역설정이 있다.


 옵션

 의미 

 ddns-update-style interim;

 DHCP서버와 DNS서버를 연동 시 업데이트 스타일을 정의 (ad-hoc | interim | none)

 ignore client-updates;  

 클라이언트가 업데이트 하는 것을 무시 

 subnet 192.168.0.0 netmask 255.255.255.0 {

 ..............

 } 

  192.168.0.0 IP에 서브넷 마스크 255.255.255.0 대역대인 네트워크에 대한 설정 

 option router   192.168.0.1;

 option subnet-mask    255.255.255.0;

 DHCP 클라이언트가 받아갈 정보들 (게이트웨이, 서브넷 마스크 정보) 

 option nis-domain                "domain.org";

 option domain-name            "domain.org";

 option domain-name-servers  192.168.1.1; 

 DHCP 클라이언트가 받아갈 정보들 (NIS도메인, 도메인 네임, 도메인 네임 서버 정보)

 option time-offset    -18000 

 DHCP 클라이언트가 받아갈 시간 정보 

 range dynamic-bootp 192.168.0.128 192.168.0.254; 

 동적으로 할당된 IP 주소 범위는 192.168.0.128 ~ 192.168.0.254로 설정 

 default-lease-time 21600; 

 DHCP 클라이언트에서 임대하는 시간(초단위) 

 max-lease-time 43200;

 최대 임대 가능한 시간(초단위) 

 host ns {

       next-server sulinux.sulinux.net;

       hardware ethernet 12:34:56:78:AB:CD;

       fixed-address 207.175.42.254;

 }

 "ns" 호스트에 대해 고정 IP를 할당 



③DHCP 시작과 종료


[1] dhcpd 데몬 재시작
root@bjkim:~ # service dhcpd restart
[2] dhcpd 동작 상태 확인
root@bjkim:~ # service dhcpd status
dhcpd (pid 20707)를 실행 중...


VNC 관리

1) VNC서버의 정의


*VNC 서버란?

•1990년 후반 AT&T 영국 캠브리지 연구소에서 원격 데스크탑 제어 시스템인 VNC를 개발하였다. 최근 가상화 환경에서 게스트 OS의 화면을 VNC를 이용하여 제어하는 용도로 사용했으며, RDP처럼 연결 상태에 의존적이지 않고 비트맵 기반의 프로토콜이다.

•대부분의 OS에서 사용이 가능하며, 설치가 간편하여 특별한 설정 없이 이용이 가능하다.


2VNC서버의 작동구조


①VNC 구성


•VNC 서버: 머신의 스크린을 공유하기 위해 설치되는 프로그램으로, 서버는 VNC 클라이언트로 부터 키보드, 마우스 등을 통제받는다.

•VNC 클라이언트: VNC서버와 연결하고 화면을 보여주며, VNC 서버의 키보드, 마우스 등을 컨트롤한다.

•VNC 프로토콜: VNC프로토콜은 아주 간단한 RFB(remote frame buffer)프로토콜이다.



②VNC 기본적인 동작


VC는 물리적인 디스플레이를 필요로 하지 않으며, VNC 서버를 실행하게 되면 TCP 5900포트를 리스닝 하게 된다. 기본적으로 VNC는 TCP 포트 5900+N을 사용하며 N은 디스플레이 번호이다. 구현에 따라 5800대에 연결할 수 도 있다.

(리스닝모드의 장점: 서버의 방화벽에서 VNC포트를 오픈하지 않아도 되며 서버를 관리하는 사람이 비전문가여도 쉽게 VNC 연결을 할 수 있다.)



3) VNC서버의 활용분야


활용 예

•크로스플랫폼간의 데스크탑 공유 (원격제어)

•회의를 위한 화면 공유

•모바일 기기에서 다양한 장비 제어

•가상화 게스트 OS 제어

•기타 다양한 장비의 GUI 환경 제공 및 제어


4) VNC서버 설정 및 고급활용(Trouble shooting)


①VNC서버 설치

root@bjkim:~ # yum install vnc-server


②VNC서버 설정


[1] 세션 공유 방법


-원격 데스크탑에서 '원격 데스크탑 기본 설정'을 샐행해 원격 접속 시 사용할 암호를 입력한 후에, 클라이언트에서 vncviewer를 실행한다. 그리고 VNC서버에 접속을 시도한다.



[2] 독립 세션 접속 방법


-VNC설정파일인 '/etc/sysconfig/vncservers'을 편집기로 열어 수정해준다.

#VNCSERVER="2:myusername"
VNCSERVER="2:bjkim"

▲앞의 '2'의미는 display 번호이다.


#/etc/rc.d/init.d/vncserver restart(서비스 동작) + # vncpasswd(암호생성) = # vncserver(합친 것)



③VNC서버 시작과 종료


[1] VNC 데몬 재시작

root@bjkim:~ # service vncserver restart

[2] VNC 동작 상태 확인
root@bjkim:~ # service vncserver status
Xvnc (pid 16353)를 실행 중...



NTP 관리

1) NTP서버의 정의


*NTP 서버란?

•패킷교환, 가변 지연 데이터 네트워크를 통해 컴퓨터 시스템 간의 시간 동기화를 위한 네트워킹 프로토콜이다. NTP보다 심플하게 구현된 SNTP이 있으며 이는 높은 시간정확도를 필요로 하지않는 임베디드 장치와 응용프로그램에서 사용된다.

•가장 오래된 인터넷 프로토콜 중 하나로, 미국 델라웨어 대학의 데이비드 밀슨에 의해 처음 개발 되었다.

•UTC(Coordinated Universal Time)를 제공하며, UDP 포트 123을 사용한다.


2) NTP서버의 작동구조


*계급(Stratum)

•클럭소스 수준의 계층 적이고, 반 계층화된 시스템을 사용한다. 각 계층 구조의 각 수준은 계급(Stratum)이라 하며 최상단이 0이다. 이 계급 수준은 레퍼런스 시계에서의 거리를 정의하고 계층구조의 순환 종속성을 방지하기 위해 존재 한다. 이 계급이 품질이나 신뢰성을 표시하지는 않는다.



[1] 계급0: 원자 시계, GPS 시계 또는 다른 무선 시계 같은 장치로, 전통적으로 네트워크에는 연결되어 있지 않으며 대신 로컬로 컴퓨터에 연결되어 있다.


[2] 계급1: 계급0 장치에 연결된 컴퓨터로, NTP를 통해 계급2 서버의 타이밍 요청에 대한 서버역할을 한다. (계급1부터 타임서버라 함)


[3] 계급2: 계급1 NTP서버에 요청을 보낼 컴퓨터로, 계급2 컴퓨터는 계급1의 NTP서버를 참조하고 NTP 알고리즘을 통해 최상의 샘플데이터를 가져오거나 잘못된 계급1 NTP서버를 제거한다. 그리고 계급2의 NTP서버는 계급3의 요청을 처리한다.


[4] 계급3: 계급2의 서버와 동일하게 동작하고, 계급 4의 컴퓨터 요청을 처리한다.


※ 버전에 따라 256계급을 지원하지만, 대부분 16계급까지만 사용된다.



3) NTP서버의 활용분야


활용 예

•인터넷 서비스를 제공하는 서버 시간동기화

•GPS교란을 대비한 군사용 장비 시간동기화

•인터넷 전화기 시간동기화

•인터넷 TV 시간동기화

•클러스터 서버의 시간동기화

•개인용 컴퓨터의 시간동기화

•여러 장치들의 시간동기화



4) NTP서버 설정 및 고급활용(Trouble shooting)



①NTP서버 설치

root@bjkim:~ # yum install ntp


②NTP서버 설정


[1] NTP 환경 설정 파일 - '/etc/ntp.conf'

NTP서버는 NTP 클라이언트부터 요청을 받아 시간 정보를 응답할 NTP 서버역할과, NTP서버들로 부터 시간정보를 요청하여 받아올 NTP클라이언트 역할을 한다. 이와 같은 설정을 'ntp.conf'파일에 설정한다.


 옵션 

 의미 

 restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap 

 NTP 서버요청을 허용할 네트워크 대역 설정[192.168.0.x 서버 NTP요청 허용] 

 server 3.kr.pool.ntp.org
 server 1.asia.pool.ntp.org

 server 0.asia.pool.ntp.org

 상위 계급에서 시간정보 가져 올 사이트 설정[서버,클라이언트 모두 설정] 




③NTP서버 시작과 종료


[1] NTP 데몬 재시작

root@bjkim:~ # service ntpd restart

[2] NTP 동작 상태 확인
root@bjkim:~ # service ntpd status
ntpd (pid 17538)를 실행 중...


④NTP 클라이언트


[1]ntpq 명령어

root@bjkim:~# ntpq -p

▲NTP 서버들의 상태 확인


[2]ntpdate 명령어

root@bjkim:~# ntpdate 192.168.0.129
17 Aug 20:32:16 ntpdate[7670]: step time server 192.168.0.129 offset 1.739415 sec

▲원격지의 NTP서버에 접속하여 직접 시간을 동기화 할 수 있다.