본문 바로가기

Linux

슈퍼데몬, 프록시, DHCP, VNC, NTP

슈퍼 데몬

 

1) 슈퍼데몬 Super Daemon 개요

 

1. 개념

  • 리눅스의 inetd 방식은 사용자의 요구에 따라 필요한 서비스를 실행하고, 요청을 완료하면 서비스를 종료하여 시스템 자원을 효율적으로 사용. 이와 같이 다른 서비스를 실행 및 관리하는 데몬을 슈퍼 데몬 Super Server Daemon 이라 함.
  • inerd 방식은 standalone 방식과 비교해 사용자 요청에 대한 처리시간이 느리지만,
    다양한 서비스를 제한된 시스템 자원으로 운영하기 효율적임.
  • inetd 방식은 /etc/inetd.conf 설정 파일을 이용해 서비스 사용여부를 지정. 
    접근제어 Access Control 을 위해 TCP Wrapper를 사용

2. standalone 방식과 inetd 방식의 특징 비교

구분 standalone 방식 inetd 방식
특징 서비스 데몬이 미리 실행되어 메모리에 상주하며, 
클라이언트의 요청에 바로 응답.
클라이언트의 요청이 있을경우 xinetd에 의해 실행,
서비스가 완료 후 종료
설정파일 개별 설치되며, /etc/init.d/ 디렉터리에서 관리 /etc/xinet.d/서비스이름 으로 설정파일을 관리
관련 서비스 일반적으로 httpd, mysql, sendmail 등 telnet, rlogin, ftp 등
접근제어 자체적으로 함 tcp_wrapper의 /etc/hosts.allow,
/etc/hosts.deny를 이용해 관리
적용방식 서비스 요청이 빈번하고 빠른 응답 속도가 필요한 경우 적합 비교적 서비스 요청이 많지 않은 서비스에 적합.
관리 편의성이 좋다.

 

3. xinetd의 특징

  • 최신 리눅스 배포판은 inetd를 확장한 xinetd를 사용.
  • yum -y install xinerd 명령으로 설치
  • 기본설정 파일은 /etc/xinetd.conf

# 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

 

주요 기본설정

instances 동시에 서비스 할수있는 서버의 최대수 지정
log_type 로그 기록 방식을 지정하며 SYSLOG, FILE 두가지 형식 지원
log_on_success 서버 시작 및 종료시 기록할 내용 지정
PID, HOST, USERID, EXIT, DURATION 등의 값 조합해 사용
log_on_failure 서버가 시작될 수없거나 접근이 거부되었을때 기록할 내용을 지정.
HOST, USERID, ATTEMPT 등
cps 초당 최대 요청과 이를 초과할 경우 접속 제한 시간을 설정
cps = 25 30 일 경우 초당 요구사항이 25개 이상일 경우 30초 동안 연결 제한.
only_from 이용가능한 원격 호스트 지정
no_access 서비스를 이용할 수 없는 호스트를 지정
per_source 동일한 IP 주소로부터 접속할 수 있는 최대 접속 수를 지정.
enabled 사용할 수 있는 서비스 목록을 서비스명으로 지정
각 서비스 설정에 disable=yes 로 설정된 경우에도 서비스 허가
ex) enabled=telnet
disabled 접근을 금지할 서비스 목록을 서비스명으로 지정.
만일 enabled, disabled 모두 설정된 경우 해당 서비스는 접근할 수 없음.
includedir /etc/xinetd.d 각각의 서비스 설정을 개별 파일에서 지정
이 속성을 이용하면 xinetd.conf에서 해당 서비스를 설정할 수 없음.

 

/etc/xinetd.d/ 디렉터리에 각 서비스들의 설정이 저정된다.

예를 들어 /etc/xinet.d/rsync 는 rsync 서비스의 동작 설정을 담는다.

 

# cat /etc/xinetd.d/rsync 

# default: off

# description: The rsync server is a good addition to an ftp server, as it \

# allows crc checksumming etc.

service rsync

{

disable = yes

flags = IPv6

socket_type     = stream

wait            = no

user            = root

server          = /usr/bin/rsync

server_args     = --daemon

log_on_failure  += USERID

}

 

xinetd 방식 서비스의 주요 설정항목

service 서비스 이름으로 /etc/services 파일에 등록한 서비스 이름
disable 설정한 서비스 사용 여부를 결정해 no 로 설정해야 사용가능
socket_type TCP일 경우 stream, UDP 일 경우 dgram으로 설정
IP로 직접 접근해야 하는 서비스는 raw를 설정.
port 서비스의 포트번호 지정
wait xinetd가 서비스 요청을 받을경우 이후 요청을 즉시 처리할건지 기다릴건지 결정.
no 로 설정하면 즉시 다음 요청을 처리
user 서비스의 실행 권한을 지정
server 서비스 요청을 담당할 데몬 파일의 위치를 절대경로로 지정.
log_on_failure + 혹은 - 를 이용해 /etc/xinet.conf 에서 지정한 log_on_failure 항목을 변경
access_times access_times=06:00-17:00 와 같은 형식으로 서비스 이용가능시간을 지정.
redirect 서비스를 다른 서버로 포워딩 Forwarding 하도록 지정.
ex) redirect = 192.169.10.12
nice 서비스의 우선 순위를 -20~19까지의 값으로 지정.

xinetd 는 자체적으로 접근 제어 기능과 확장된 로깅기능 등을 제공하며, TCP Wrapper를 이용한 접근제어도 가능.

 

2) TCP Wrapper

 

1. TCP Wrapper의 개념

 

  • inetd 데몬에 의해 관리되는 서비스는 TCP Wrapper에 의해 접근 제어를 할수 있음.
  • 데몬 이름은 tcpd
  • /etc/hosts.allow 와  /etc/hosts.deny 설정파일을 이용해 접근 제어를 제공.
  • 접근 허가하는 호스트는 /etc/hosts.allow 에 등록하고
    접근을 거부하는 호스트는 /etc/hosts.deny 에 등록.
  • 설정파일은 hosts.allow -> hosts.deny 순으로 적용.
    따라서 둘의 규칙이 중복되면 hosts.deny 규칙은 무시됨.
    일반적으로 hosts.deny에 접근근지 목록을 지정한 후 hosts.allow 에 허가목록 지정.

2. 설정파일 

 

  • 파일 설정방법은 동일하며 하나의 줄에 하나의 규칙 사용.
    2줄 이상은 '\' 를 이전중의 마지막에 입력
  • 설정형식 [데몬 목록] : [클라이언트 목록] : [셸 명령어]

TCP Wrapper 설정파일의 주요항목

  • 데몬목록
    - 서비스의 실행 데몬 이름을 지정
    - 콤마를 이용해 여러개의 데몬 이름을 지정
    - 함께 사용할 수 있는 예약어는 별도의 표로 설명
  • 클라이언트 목록
    - 접근제어의 대상이 되는 호스트 이름 혹은 IP 주소를 지정
    - [사용자이름@호스트] 형식으로 사용자 함께 지정
    - 콤마를 이용해 여러개의 클라이언트 지정
  • 셸 명령어
    설정한 항목과 일치할 경우 실행할 셸 명령어로 twist방식과 spawn 방식을 사용
    - twist 방식 : 현재 실행중인 프로세스의 실행 이미지를 교체해 실행하는 방식으로 명령의 결과를 클라이언트에 전송.
    - spawn 방식 :  새로운 자식 프로세스를 생성하는 방식. 명령의 결과를 클라이언트에게 전송하지 않음. 

목록 지정을 위한 주요예약어

ALL 데몬목록, 클라이언트 목록 모두에 사용
모든 서비스 데몬 혹은 모든 클라이언트를 의미
LOCAL localhost 와 같이 '.' 을 포함하지 않는 모든 호스트 의미
KNOWN 클라이언트의 IP와 호스트 이름을 알 수 있는 경우
UNKNOWN 클라이언트의 IP와 호스트 이름을 알 수 없는 경우
PARANOID DNS lookup을 이용해 호스트 이름으로 IP 주소를 확인할 수 있을 경우
EXCEPT 예외 항목을 지정

프록시 서비스

 

1) 프록시 Proxy 의 개요

 

1. 프록시의 개념

 

클라이언트와 서버 사이에 위치해, 요청과 응답 과정에서 데이터를 중계하는 역할을 담당

프록시 개념도

 

2. 프록시 사용의 목적

 

일반적으로 서버의 데이터를 캐시하여 인터넷 전송속도를 빠르게 하기위해 사용.

서버의 가용성 availability 향상을 위한 부하분산 load balancing 에 사용가능.

 

사용분야

  • 응답 속도 향상
    클라이언트의 네트워크 위치와 가까운 곳에 프록시 서버를 두고,
    자주 사용하는 서버의 컨텐츠를 저장하여 빠른 응답 속도를 제공.
  • 서버 부하 분산
    다수의 서버를 Server Farm으로 구성한 후 클라이언트의 요청이 있을 시,
    정해준 규칙에 따라 특정 서버에 서비스 요청을 전달.
  • 접근 통제
    프록시 서버에 설정한 접근 통제정책에 따라 클라이언트의 요청을 전달 혹은 제거
  • 악성코드 유입방지
    클라이언트가 요청한 컨텐츠를 전달하기전에 프록시 서버에 설치된 백신 프로그램으로 악성코드 여부 점검.

 

2) 리눅스 프록시 서버 squid

 

1. squid 서버의 특징

 

  • 리눅스에서 사용할 수 있는 대표적인 프록시 서버.
  • GPL을 따르는 오픈소스 소프트웨어이며 캐싱을 통해 http, ftp, gopher 등 서비스의 데이터 응답 속도를 향상시킴
  • 기본 포트로 TCP/3128

2. squid 서버의 설치

 

yum -y install squid 명령으로 패키지를 설치

 

3. squid 서버의 설정

 

/etc/squid/squid.conf 파일을 환경설정파일로 이용

cache_dir [옵션] ex) cache_dir ufs /var/spool/squid 100 16 256
http_port [포트번호] ex) http_port 3128
acl [별칭] src [IP 주소 대역]  acl 구문으로 별칭을 지정한 후, 별칭에 대한 접근 권한을 설정.

ex) acl local src 192.168.10.0/255.255.255.0
http_access allow local
http_access deny all
cache_mem[크기] ex) cache_mem 2048 MB
cache_log[로그 파일경로] 로그파일을 지정

DHCP 서비스

 

1) DHCP (Dynamic Host Configuration Protocol) 서비스의 개요

 

1. DHCP 서비스 특징

 

  • 클라이언트 호스트가 사용할 IP주소, 게이트웨이 주소, 네임 서버 주소들을 자동으로 할당하는 서비스.
  • 제한된 IP 주소 풀을 다수의 클라이언트에게 동적으로 할당하여 IP주소 사용의 효율을 향상시킴.
    이때 DCHP 프로토콜을 이용해 IP 주소의 임대기간을 설정.
  • 저장장치가 없는 호스트에게 IP를 자동으로 부여하고 네트워크 부팅을 지원하기 위해 사용.
    이때 사용하는 프로토콜이 BOOTP
  • UDP 프로토콜과 브로드캐스트 통신 방식을 이용.

2. DHCP 서비스의 설치

 

yum -y install dhcp 로 서비스 설치

 

2) DHCP 서비스 설정

 

1. 서비스 설정 파일

 

DHCP 데몬인 dhcpd는 /etc/dhcp/dhcpd.conf 를 설정 파일로 사용. 

설정 문장 뒤 ';' 이 있어야 함.

로그메시지를 다른곳으로 전달하려면 log-facility 항목을 이용.

특정 호스트에 고정 IP 할당할 경우 fixed-address 항목 이용.

 

dhcpd.conf 주요 설정 항목

range 클라이언트에 할당할 IP 범위를 지정
range dynamic-bootp DHCP 클라이언트와 BOOTP 클라이언트를 함께 지원
option domain-name 도메인 이름을 지정
option domain-name-servers 네임 서버를 지정
option routers 게이트웨이 주소를 지정
option broadcast-address 브로드캐스팅 주소를 지정
default-lease-time 초 second 단위로 임대요청 만료시간을 지정
max-lease-time 초 단위로 클라이언트가 사용할 IP 최대시간을 지정
option subnet-mask 서브넷 마스크를 지정
fixed-address 특정 MAC 주소를 갖는 시스템에 고정적인 IP 주소를 할당

VNC 서비스

 

1) Virtual Network Computing 서비스 개요

 

1. VNC 서비스의 특징

  • 비트맵 이미지 기반의 RFB 프로토콜을 이용하고 GUI 방식으로 원격 컴퓨터에 접속 및 사용하는 기능을 제공.
  • VNC 클라이언트는 VNC 서버의 화면을 전송받아 표시하고 컨트롤 정보를 서버에 전달.
  • 서버는 서버 컴퓨터의 화면을 공유하기 위해 사용. 클라이언트로부터 전달받은 마우스 키보드 신호를 통해 통제.
  • TCP/5900+[디스플레이 번호] 를 기본포트로 사용

2. VNC 서비스의 설치

 

yum -y install tigervnc-server 명령으로 설치

 

2) VNC 서비스의 설정과 실행

 

1. VNC 서버의 접속방법

 

  • 세션 공유 접속
    -로컬과 원격 호스트가 화면, 키보드, 마우드를 공유하는 방식
  • 독립 세션 접속
    - 별도의 세션을 이용해 접속하는 방식.
    /etc/sysconfig/vncservers 에 관련항목 설정.

2. VNC 서비스 설정 파일

 

환경설정 파일은 /etc/sysconfig/vncservers

 

주요설정항목

VNCSERVERS 디스플레이 번호와 접속하는 사용자의 계정을 지정
VNCSERVERARGS[DispNo] 지정한 디스플레이 번호에 대한 연결 옵션을 설정

 

3. VNC 서비스 관련 주요 명령어

vncpasswd VNC 서버에 접근할 때 사용할 패스워드를 설정하는 명령어
/etc/init.d/vncserver VNC 서비스를 시작하는 스크립트 파일
Xvnc vncserver에 의해 실행되는 VNC 서버
vncconfig VNC 서비스의 설정을 관리하고 제어하는 명령어

 

4. VNC 서비스 실행

 

vncpasswd 명령을 실행해 접속시 사용할 패스워드를 설정.

service vncserver start 명령으로 서비스를 실행하고 확인.

 

3) VNC 서비스 사용하기

 

1. VNC 클라이언트 설치

 

yum -y install vnc 혹은 yum -y install tigervnc 명령으로 VNC 클라이언트(뷰어) 설치

 

2. vncviewer 실행과 VNC 접속 정보 입력

 

접속정보는 [VNC 서버 주소] : [디스플레이 번호] 형식 이용

 

3. 원격접속 이용

 

설정한 비밀번호를 입력후, VNC 서버(호스트)를 원격으로 이용.


NTP 서비스

 

1) NTP (Network Time Protocol) 서비스 개요

 

1. NTP 서비스의 특징

 

  • 컴퓨터 간 시간을 동기화하는 NTP 프로토콜을 이용해  NTP 서버와 시간을 동기화
  • 협정세계시 UTC 를 기준으로 시간을 동기화
  • UDP/123 기본포트

2. NTP 계급 구조

  • NTP는 클럭소스 수준의 계층적, 반 계층화된 시스템을 사용하고 이 계층구조의 각 수준을 계급 Stratum 이라 함.
  • 계급수준은 레퍼런스 시계에서 거리를 정의
  • 원자시계 또는 GPS 같은 장치인 0단계부터 가장 낮은 15단계의 계층으로 구성.
    Stratum 16은 비동기 장치 의미.
  • 숫자가 낮은 계급이 높은 계급 보다 더 품질이 우수함.

2) NTP 서비스의 설치와 설정

 

1. 서비스 설치와 실행

$ yum -y install ntp

$service ntpd start

 

2. NTP 서비스의 설정

 

/etc/ntp.conf 설정 파일로 이용.

 

주요 설정 항목

dfiftfile NTP 데몬에 의해 자동 생성되는 driftfile 위치를 지정.
시간 오차 평균값을 저장하여 시간을 정확하게 유지하는 역할
restrict NTP 서버에 접근할 수 있는 클라이언트를 제한.
server NTP 서버를 지정.
keys 대칭키 암호화를 위한 키 파일을 지정.

 

3) NTP 서비스의 명령어

 

1. NTP 서비스 관련 주요 명령어

 

ntpdate ntpdate [서버주소] 명령 옵션으로 원격 서버와 시간을 동기화
-d 옵션을 이용하면 원격 서버와 시간 차이를 확인
ntpq NTP 질의 query 명령어
-p 옵션으로 연결된 서버의 상태를 출력.

 

ntpq  명령어 목록은 help 명령으로 확인

'Linux' 카테고리의 다른 글

가상화 관리 서비스  (0) 2020.10.02
네트워크 보안  (0) 2020.09.28
DNS 관리 서비스  (0) 2020.09.28
메일 관련 서비스  (0) 2020.09.27
파일관련 서비스  (0) 2020.09.27