320x100
320x100

슈퍼데몬
: 다른 데몬의 실행을 제어하는 데몬
: inetd (internet daemon) 방식에서 서비스의 호출을 대기하다가 필요한 서비스를 실행하는 데몬
: 처리속도는 standalone 보다는 느리지만 메모리 효율 측면에서는 유리함
: 서비스가 많은 호스트에서 효율적인 방법이지만, 서비스에 대한 접근 제한을 위해서는 TCP Wrapper가 필요
: 커널 2.4 부터는 xinetd가 이를 수행하는데, TCP Wrapper 없이 접근제한이 가능함





TCP Wrapper
: inetd에 의해 수행되는 서비스들의 접근을 제어하는 프로그램
: 이때 inetd의 슈퍼데몬은 tcpd 임
: /etc/hosts.allow 파일과 /etc/hosts.deny 파일로 접속을 허락할 호스트와 거부할 호스트를 설정
 > 두 파일중 .allow 파일의 우선순위가 높음
 
 
 
 

xinetd 
: TCP wrapper 없이 자체 환경설정 파일을 통해 서비스에 대한 접근 제어 가능
: IP 주소 당 접속 수 제한, 시간대별 서비스 제한, DoS 공격에 대비한 설정 등 제공

 
 

 
서비스 데몬 관련 파일
- /etc/hosts.allow & /etc/hosts.deny
- /etc/xinetd.conf
- /etc/rc.d/init.d/xinetd
- /etc/xinetd.d

 



/etc/hosts.allow & /etc/hosts.deny
: inetd를 통해 서비스를 호출할 때 호스트별로 접근을 허용하고, 거부하는 파일
: 파일 설정 시 \을 통해 여러줄로 연장해야함
: 빈줄이나 #으로 시작되는 줄은 주석으로 취급

- 형식
daemon_list : client_list [: shell_command]

- daemon_list
: 한 개 이상의 데몬 혹은 예약어 사용 가능
: in.telnetd와 같은 실행 데몬명을 기입해야하며, ,를 통해 구분

- client_list
: 한 개 이상의 호스트 이름, ip 주소, 패턴 혹은 예약어 사용 가능

- 예약어 (daemon_list / client_list)
: ALL
 > 모든 서비스 또는 모든 호스트
: LOCAL
 > 같은 도메인에 있는 호스트. . 문자를 포함하지 않는 모든 호스트
: KNOWN
 > 이름이 KNOWN 이거나 호스트나 ip 주소를 알고 있는 호스트
: UNKNOWN
 > 이름이 UNKNOWN이거나 호스트 또는 ip 주소를 모르는 호스트
: PARANOID
 > 호스트명과 IP 주소가 일치하지 않는 호스트
: A EXCEPT B

- shell_command
: 호출되는 서비스의 실행 방법. spawn (자식 프로세스로 실행)과 twist (프로세스 교체)가 있음

- shell_command 확장 옵션
: %a (%A)
 > 클라이언트(서버)의 주소
: %c
 > 클라이언트의 정보. user@address. user@host
: %d
 > 데몬 프로세스의 이름
: %h (%H)
 > 클라이언트(서버)의 호스트명 또는 주소
: %n (%N)
 > 클라이언트(서버)의 호스트명 또는 unknown, paranoid
: %p
 > 데몬의 PID
: %s
 > 서버의 정보. daemon@address. daemon@host
: %u
 > 클라이언트 사용자명 또는 unknown
 
- 예시 (/etc/hosts.allow)
```
ALL : localhost, .2mukee.com
# 로컬 호스트와 .2mukee.com 호스트의 요청에 대해서는 모든 데몬 허용

in.telnetd : 192.168.0.77
# telnet에 대해서 192.168.0.77 호스트 요청에 대해 허용

in.telnetd@192.168.3/24: 192.168.2.
# 192.168.3/24에 대한 telnet 접속은 192.168.2. 대 IP에서의 요청만 허용

sshd : .deragon.com EXCEPT hacker.deragon.com
# hacker.deragon.com 에서의 요청을 제외하고 sshd 접근 허용

ALL EXCEPT vsftpd : .comeve.co.kr EXCEPT boom.comeve.co.kr
# ftp를 제외한 모든 데몬들에 대해 comeve.co.kr에서의 요청을 허용. boom.comeve.co.kr에 대해서는 제외

in.telnetd, vsftpd : 192.168.9., .2mk.or.kr
# telnet과 vsftpd에 대해 192.168.9.와 .2mk.or.kr의 접속을 허용

ALL : someone.2mukee.com : twist (mkdir %h) &
# someone.2mukee.com 호스트가 모든 서비스에 접근 시 접속을 허용하고 디렉터리를 생성

ALL : ALL : DENY
# 위에 설정된 호스트 외에는 모든 서비스에 대한 접근 거부
# /etc/hosts.deny 파일 설정 대신 사용
```





/etc/xinetd.conf
: xinetd 데몬의 전체적인 환경설정 파일. xinetd 데몬에서 관리하는 전체 서비스에 영향

- 형식
op_tion  = value

- log_type
: 로그를 저장할 형태. SYSLOG (syslog에 위임). FILE (별도의 파일로 저장)
: SYSLOG <faclity> [syslog_level]
: FILE <filename> [soft_limit [hard_limit]]

- log_on_failure
: 접속에 실패 했을 때 기록될 속성 값
: HOST
 > 원격 호스트의 IP 주소
: USERID
 > 원격 사용자 아이디
: ATTEMPT
 > 실패한 시도

- log_on_success
: 접속에 성공 했을 때 기록될 속성 값
: PID
 > 실행된 서버의 PID
: HOST
 > 원격 호스트 주소
: USERID
 > 원격 사용자 아이디
: EXIT
 > 관련 서비스가 종료될 때의 상태
: DURATION
 > 서비스의 세션 지속 상태
: TRAFFIC
 > 리다이렉트 서비스를 위한 전체 바이트 수

- cps
: 초당 요청 수 제한
: cps = 50 10 (초당 요청수가 50개인 경우 10초간 연결 중단)

- instances
: 동시에 서비스 할 수 있는 서버의 최대 갯수

- per_source
: 특정 IP 에서 접속할 수 있는 최대 갯수

- only_from
: 서비스를 이용할 수 있는 원격 호스트 IP 주소
: 서버에 접속을 허가할 호스트의 IP 주소, 네트워크 대역 주소 등 설정 가능

- no_access
: 서비스를 이용할 수 없는 원격 호스트 IP 주소
: only_from과 중복되는 경우 no_access를 우선시함

- enabled
: 사용 가능한 서비스 목록 지정. 각 서비스 설정 파일 (/etc/xinetd.d 디렉터리내 파일)에서 
  disable = yes로 설정되어 있어도 활성화 됨

- disabled
: 비활성화한 서비스 목록. enabled와 중복 시 disabled를 우선시함

- includedir /etc/xinetd.d
: 서비스들의 설정 파일들이 위치한 디렉터리

- 예시
```
defaults
{
log_type = SYSLOG daemon info
log_on_failure = HOST
log_on_success = PID HOST DURATION EXIT

cps = 50 10
instances = 50
per_source = 10

v6only = no

groups = yes
umask = 002
}
```





/etc/xinetd.d
: inetd에서 관리하는 서비스들의 대한 설정파일을 포함하는 디렉터리
: 이 디렉터리안에 서비스명으로 파일을 만들고 형식에 맞춰 설정파일을 작성

- 형식
op_tion  = value

- disable
: 서비스의 실행 유무. yes / no

- flags
: 서비스 운영 설정. REUSE (기본값 / 지속적으로 재사용)

- socket_type
: 네트워크 소켓 타입
: stream
 > stream 기반으로 통신
: dgram
 > datagram 기반으로 통신
: raw
 > IP로 직접 접근
: seqpacket
 > 신뢰성 있는 연속적인 데이터그램으로 통신

- wait
: 서비스의 단일 스레드 여부. yes일 경우 단일 스레드. no일 경우 다중 스레드

- user
: 서버 프로세스의 UID 지정

- server
: 해당 서비스를 실행하는 데몬 파일의 경로 지정

- log_on_failure
: /etc/xinetd.conf에 지정된 설정에 + 혹은 -를 이용하여 로그에 기록할 항목 추가 및 삭제 가능

- access_times
: 서비스를 이용할 수 있는 시간

- only_from
: 서비스를 이용할 수 있는 원격 호스트 IP 주소
: 서버에 접속을 허가할 호스트의 IP 주소, 네트워크 대역 주소 등 설정 가능

- no_access
: 서비스를 이용할 수 없는 원격 호스트 IP 주소
: only_from과 중복되는 경우 no_access를 우선시함

- redirect
: 서비스를 포워딩할 다른 서버 IP

- port
: 서비스의 포트 번호

- nice
: 서버의 우선순위. -20~19 까지 지정 가능.

- 예시
```
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
access_times = 09:00-17:00 21:00-23:59
per_source = 3
only_from = 192.168.3.5  192.168.10.0/24
no_access = 
server = /usr/sbin/in.telnetd
log_on_failure += USERID
```

 

 

 

 

 

Refference

 

리눅스마스터 1급 2차 실기 정복하기 | 정성재 - 교보문고

리눅스마스터 1급 2차 실기 정복하기 | 출제 경향을 반영하여 핵심 내용만 요약 정리 시험대비를 위한 최신 기출문제를 해설과 함께 수록본 교재는 독자들이 최근 출간 요구가 많았던 리눅스마

product.kyobobook.co.kr

 

300x250
728x90

'Certification > 리눅스마스터' 카테고리의 다른 글

리눅스 DHCP 서버 관리  (0) 2022.10.20
리눅스 프록시 서버 관리  (0) 2022.10.20
리눅스 DNS 서버 관리  (0) 2022.10.20
리눅스 메일 서버 관리  (0) 2022.10.20
리눅스 파일 서버 관리 3 - FTP  (0) 2022.10.20