chapter 7. 슈퍼데몬
슈퍼데몬 : 다른 데몬을 관리하고 제어하는 역할의 inetd 데몬
inetd
: 사용자에 요청이 있을 때 해당 데몬을 불러와 메모리에 상주시키는 방식.
: /etc/inetd.conf를 통해 telnet, rlogin, rsh, tftp, ftp 등 네트워크 서비스 제어
: 접근 제어기능 미제공
tcpwrapper
: tcpd 데몬을 통해 inetd에 의해 수행되는 서비스들의 접근제어를 제공하는 프로그램
: telnet, ftp, rlogin, rsh 등을 감시하고 필터링
: sshd, vsftpd, smbd, gdm 등의 일부 단독 데몬에 대한 접근제어도 가능
: /etc/hosts.allow 파일과 /etc/hosts.deny 파일을 읽어들여 제어
/etc/hosts.allow 및 /etc/hosts.deny 설정법
ㆍdaemon_list : client_list [ : shell_command ]
ㆍ줄 바꿈은 엔터가 아닌 \으로. 빈줄이나 #은 주석 처리
daemon_list : 한 개 이상의 데몬 및 프로세스, 예약어 기재
/etc/hosts.allow 및 /etc/hosts.deny 예약어
ㆍALL : 모든 서비스 또는 모든 호스트
ㆍLOCAL : 같은 도메인에 있는 호스트. “.”을 포함하지 않는 모든 호스트
ㆍKNOWN : 이름이 KNOWN인 호스트 혹은 이름(주소)을 알고 있는 호스트
ㆍUNKNOWN : 이름이 UNKNOWN인 호스트 혹은 이름(주소)을 모르는 호스트
ㆍPARANOID : 호스트명과 주소가 일치되지 않는 호스트
ㆍA EXCEPT B : 리스트 A에서 B를 제외한 리스트
client_list : 한 개 이상의 호스트 이름, 주소, 패턴 혹은 예약어 사용가능.
ex) 192.168.1
192.168.1.0/255.255.255.0
.example.com
ex)
vi /etc/hosts.allow
ALL : localhost, .posein.org
in.telnetd : 192.168.5.13
in.telnetd@192.168.1.254: 192.168.1.
sshd : .posein.com EXCEPT cracker.posein.com
ALL EXCEPT vsftpd : .ihd.or.kr EXCEPT bad.ihd.or.kr
in.telnetd, vsftpd : 203.247.40., hnu.kr
ALL : ALL : DENY # hosts.deny대신 사용. 위 설정된 호스트 외 전부 불허용
shell_command : 프로세스의 실행방식. spawn=fork, twist=exec
shell_command 확장 옵션
ㆍ%a (%A) : 클라이언트(서버)의 주소
ㆍ%c : 클라이언트의 정보 (user@host 또는 user@address)
ㆍ%d : 데몬 프로세스 이름
ㆍ%h (%H) : 클라이언트(서버)의 호스트명 또는 주소
ㆍ%n (%N) : 클라이언트(서버)의 호스트명 (unknown, paranoid)
ㆍ%p : 데몬의 프로세스 아이디
ㆍ%s : 서버의 정보 (daemon@host 또는 daemon@address)
ㆍ%u : 클라이언트 사용자명 (또는 unknown)
ex)
vi /etc/hosts.deny
ALL : cracker.posein.com : twist (finger –l @%h | mail –s %d -%h root) &
xinetd
: 리눅스 커널 2.4부터 inetd를 대체하기 위해 적용된 데몬
: TCP Wrapper없이 환경설정 파일을 이용하여 접근제어 가능
: IP 주소당 접속 수 제한, 시간대별 서비스 제한, DoS 공격에 대비한 설정 등을 제공
/etc/xinetd.conf : xinetd 데몬의 전체적인 환경 설정
/etc/xinetd.d : xinetd에 의해 관리 되는 서비스 파일이 위치한 디렉터리.
.etc.rc.d/init.d/xinetd : xinetd를 제어하는 데몬 스크립트. stop, start, restart
/etc.xinetd.conf log_type
: 어떠한 형태로 로그를 저장할 것인지 설정. SYSLOG (syslog에 로그 위임), FILE (별도 파일 지정)
: log_type = SYSLOG syslog_facility [syslog_level]
: log_type = FILE 파일명 [soft_limit[hard_limit]]
ex) log_type = SYSLOG daemon info
log_type = FILE /ver/log/xinetd.log
/etc.xinetd.conf log_on_failure
: 접속 실패시 기록될 속성 값
: log_on_failure = 속성값
: HOST = 원격 호스트 IP주소
: USERID = 원격 사용자 아이디
: ATTEMPT = 실패한 시도
/etc.xinetd.conf log_on_success
: 접속 성공시 기록될 속성 값
: log_on_success = 속성값
: PID = 실행된 서버의 PID
: HOST = 원격 호스트의 IP 주소
: USERID = 원격 사용자 아이디
: EXIT = 관련 서비스가 종료될 때의 상태
: DURATION = 서비스의 세션 지속 상태
: TRAFFIC = 리다이렉트 서비스를 위한 전체 바이트 수
/etc.xinetd.conf cps
: 초당 요청받은 수에 대한 제한 설정
: cps = 초당_요청수 제한시간
ex) cps = 50 10 : 초당 요청수가 50개일 경우 10초동안 연결 중단
/etc.xinetd.conf instances
: 동시에 서비스 할 수 있는 서버의 최대 개수. UNLIMITED시 제한 없음
: instances = 서버_최대갯수
ex) instances = 50
/etc.xinetd.conf per_source
: 특정 IP 주소에서 접속할 수 있는 최대 개수
: per_source = 값
ex) per_source = 5
/etc.xinetd.conf only_from / no_access
: 서비스를 이용할 수 있는(/없는) 원격 호스트 설정. 허가할 호스트 IP주소와 네트워크 대역 주소 등
: only_from = IP_주소 [네트워크_대역_주소]
ex) only_from = 192.168.5.13 192.168.6.0/24
/etc.xinetd.conf enabled / disabled
: 사용 가능한 서비스의 목록 지정. 나열된 서비스만 이용 가능
: 각 서비스의 설정파일의 disable=yes를 무시하고 실행하나 disabled에 중복 설정시 차단
ex) enabled = telnet rlogin
/etc.xinetd.conf /etc/xinetd.d : 각 서비스들의 설정 파일들이 위치하는 디렉터리
xinetd 관련 서비스 설정
: xinetd와 관련된 서비스는 /etc/xinetd.d 디렉터리에 저장. /etc/services 파일에 등록된 서비스명만 등록 가능
: /etc/xinetd.d에 생성하는 파일의 내용은 “service 서비스명 { }” 형식
ex) cat etc/xinetd.d/telnet
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}
/etc/xinetd.d/서비스명 항목
ㆍdisable = no/yes # 해당 서비스의 실행 유무 지정. no=실행
ㆍflags = REUSE # 서비스 운영관련. REUSE=계속적 재사용 (대부분 기본 값)
ㆍsocket_type = stream / dgram(datagram) / raw(IP 직접접근) / seqpacket(신뢰성 있는 연속적인 데이터 그램)
# 네트워크 소켓타입
ㆍwait = no/yes # 단일스레드 / 다중스레드 여부. no=다중스레드. yes=하나의 서비스만 실행
ㆍuser = root/UID # 서버 프로세스의 UID
ㆍserver = /usr/sbin/in.telnetd # 해당 서비스를 실행하는 데몬 파일의 경로 지정
ㆍlog_on_failure += USERID # 로그 관련 설정. /etc/xinietd.conf에 지정된 설정에 +,-로 추가 지정
ㆍaccess_times = 01:00-07:00 # 서비스 이용 시간 설정
ㆍredirect = 192.168.12.22 23 # 해당 서비스를 다른 서버로 포워딩 할 때
ㆍport = 8080 # 해당 서비스의 포트번호
ㆍnice = 10 # 서버의 우선순위
'Certification > 리눅스마스터' 카테고리의 다른 글
리눅스 마스터 1급 2차 정리 16 - DHCP (ip 할당 서비스) (0) | 2021.11.02 |
---|---|
리눅스 마스터 1급 2차 정리 15 - 프록시 서버 (0) | 2021.11.02 |
리눅스 마스터 1급 2차 정리 13 - DNS (도메인 지정 서비스) (0) | 2021.11.02 |
리눅스 마스터 1급 2차 정리 12 - 메일 프로그램 (0) | 2021.11.02 |
리눅스 마스터 1급 2차 정리 11 - FTP (네트워크 파일 전송 서비스) (0) | 2021.11.02 |