공부/정보보안기사
<정보보안기사> 1. 시스템 이론 - xinetd 슈퍼데몬
Richard_Hoon
2024. 11. 21. 23:54
반응형
목차
xinetd 슈퍼데몬 개요
- eXtended Internet Services daemon의 약자로, 리눅스 시스템에서 다야한 네트워크 서비스를 관리하는 슈퍼데몬
- 기존의 inetd 슈퍼데몬의 비효율적 자원관리와 보안문제를 개선
- TCP wrapper 기능뿐만 아니라 다양한 서비스별 접근제어 가능
설정파일 | 설명 |
/etc/xinetd.conf | 모든 서비스에 적용되는 xinetd 설정 파일 |
/etc/xinetd.d/각종 서비스 설정파일 | 각 서비스에 적용되는 xinetd 설정 파일 |
설정 파일 형식
설정 항목 | 의미 |
service | 서비스 이름 |
socket_type | 소켓 유형 (stream = TCP / dgram = UDP) |
wait | 서비스 요청 처리방식 (no = 비동기 / yes=동기) |
user | 서비스 실행 사용자 |
server | 서비스 실행 프로그램 경로 |
disable | 서비스 비활성화 (yes = 비활성화 / no = 활성화) |
service http
{
socket_type = stream
wait = no
user = nobody
server = /usr/sbin/httpd
disable = no
}
`disable = no`
>> 만약 불필요한 서비스라면 `yes`로 설정하여 비활성화하고, xinetd 데몬을 재실행한다.
설정 파일 형식(접근제어 측면)
설정 항목 | 의미 |
only_from | 접근 허용 IP 또는 IP 대역 |
no_access | 접근 불가 IP 또는 IP 대역 |
max_connections | 동시 최대 접속 허용 수 (하나의 서버 인스턴스에서 허용되는 동시 연결의 최대 개수) |
cps | 초당 최대 접속 수 |
access_time | 접근 허용 시간 |
instances | 동시 서비스 가능 최대 프로세스 수 (xinetd가 관리하는 서버 프로그램의 인스턴스 최대 개수) |
per_source | IP 별 최대 연결 수 |
service http
{
only_from = 192.168.1.0/24 # 해당 IP 대역만 HTTP 접속 가능
no_access = 10.0.0.0/8 # 해당 IP 대역은 HTTP 접속 불가
max_connections = 40 # 동시에 최대 40대 연결만 허용
cps = 15 5 # 초당 최대 15개 연결만 허용, 초과하면 5초간 연결을 제한
access_time = 09:00-18:00 # 오전 9시부터 오후 6시까지만 서비스 접속 가능
instances = 30 # 최대 30개의 HTTP 서버 인스터스만 실행
per_source = 5 # 개별 IP 주소당 최대 5개의 연결만 허용
}
`max_connections`는 `insteances`와 함께 사용하면 들어오는 요청을 여러 인스턴스에 분산하여 처리할 수 있음(로드밸런싱)
웹 서버의 경우, max_connections를 100으로 설정하면 하나의 웹 서버 인스턴스에서 동시에 100개의 클라이언트 연결을 처리할 수 있음
메뉴판
설정 항목 | 의미 |
log_on_faulure | 서비스 접속에 실패했을 때, 기록할 정보를 지정 |
log_on_succes | 서비스 접속에 성공했을 때, 기록할 정보를 지정 |
log_type | 로그를 기록하는 방식을 지정 |
service http
{
log_on_failure += UserID # 서비스 접속 실패 시, 사용자 ID를 시스템 로그에 기록
log_on_success += HOST PID DURATION # 서비스 접속 성공 시, 클라이언트 호스트 이름, 프로세스 ID, 접속 지속시간을 시스템 로그에 기록
log_type = SYSLOG authpriv # 로그를 시스템 로그의 `authpriv` facility에 기록
}
로그에 기록할 수 있는 정보
`HOST` : 클라이언트 호스트 이름 or IP 주소
`PID` : 프로세스 ID
`USERID` : 서비스를 실행하는 사용자 ID
`EXIT` : 프로세스 종료 상태
`DURATION` : 서비스 접속 지속 시간
`TRAFFIC` : 전송된 데이터량
반응형