🗺️ 정보보안기사 | 리눅스 서비스 설정 파일 대략적인 구성 (1/4)
xinetd · inetd.conf · /etc/services · hosts.allow/deny · sshd_config · systemd 유닛까지
서비스 설정 파일이 왜 이렇게 많은지, 6단계 구조로 한번에 정리합니다.
📋 목차
- 1. 왜 설정 파일이 이렇게 많은가 — 전체 구조 이해
- 2. 6단계 계층별 파일 상세: 포트 매핑 → 슈퍼서버 → 접근 제어 → 데몬 설정 → systemd → 보조 옵션
- 3. 정리표 — 6단계 한눈에 보기
- 4. 시험장 암기 전략
- → 다음 편: 슈퍼서버 xinetd·inetd와 TCP Wrapper 핵심 정리
1. 왜 설정 파일이 이렇게 많은가
정보보안기사 실기를 준비하다 보면, 리눅스의 서비스 관련 설정 파일이 왜 이렇게 흩어져 있는지 혼란스러울 때가 있습니다. /etc/xinetd.d/, /etc/services, /etc/hosts.allow, /etc/ssh/sshd_config, /etc/systemd/system/…
이 파일들은 “하나의 서비스가 네트워크 요청을 받아 처리하기까지의 각 단계”를 나눠서 담당합니다. 한 파일이 모든 걸 하는 게 아니라, 역할별로 분산돼 있는 구조입니다.
2. 네트워크 요청이 처리되는 6단계와 관련 파일
① 포트 ↔ 서비스 매핑: /etc/services
service telnet 정의를 읽으면, “telnet = 23번 포트”라는 정보를 이 파일에서 참조.http 80/tcp
https 443/tcp
ssh 22/tcp
telnet 23/tcp
rsync 873/tcp
tftp 69/udp
- “포트 번호와 서비스명을 매핑하는 파일은?” → /etc/services
- Well-known 포트: FTP 20/21, SSH 22, Telnet 23, SMTP 25, DNS 53, HTTP 80, POP3 110, HTTPS 443
- 이 파일 자체는 실행 기능 없음 — 함정 선지 단골
② 슈퍼서버 — 서비스 호출 대행: xinetd / inetd
“자주 쓰지 않는 서비스를 위해 데몬을 항상 띄워두는 것은 자원 낭비. 대신 하나의 프로세스(슈퍼서버)가 여러 포트를 대신 듣고 있다가, 요청이 올 때만 해당 데몬을 실행시키자.”
| 구분 | inetd (구형) | xinetd (개선형) |
|---|---|---|
| 설정 파일 | /etc/inetd.conf 한 파일 | /etc/xinetd.conf + /etc/xinetd.d/ |
| 설정 형식 | 한 줄에 서비스 하나 (평문) | 블록 구조 (서비스별 파일 분리) |
| 접근 제어 | 없음 (TCP Wrapper 의존) | only_from, no_access 자체 내장 |
| 로깅 | 기본적 | log_on_success, log_on_failure 세분화 |
# inetd.conf — 한 줄 7필드
telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
# xinetd.d/telnet — 블록 구조
service telnet
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
only_from = 192.168.1.0/24
no_access = 192.168.1.100
}
- inetd vs xinetd 구조적 차이가 단골 출제
- xinetd 핵심 항목: disable, socket_type, server, only_from, no_access
- 상세 내용은 → 시리즈 2편에서 정리
③ 접근 제어 — TCP Wrapper: hosts.allow / hosts.deny
② /etc/hosts.deny 확인 → 매칭되면 차단 (끝)
③ 둘 다 미매칭 → 기본 정책: 허용
# 화이트리스트 방식 (가장 안전, 가장 많이 출제)
# /etc/hosts.allow
sshd: 192.168.1.0/255.255.255.0
in.telnetd: 10.10.10.
# /etc/hosts.deny
ALL: ALL
TCP Wrapper는 모든 서비스에 적용되는 게 아닙니다. libwrap을 링크한 데몬에만 적용됩니다.
확인 방법: ldd /usr/sbin/sshd | grep libwrap
- 평가 순서: allow → deny → 기본 허용 (순서 자체가 단골)
- 화이트리스트 공식: deny에
ALL: ALL, allow에 필요한 것만 등록 - TCP Wrapper = libwrap 연동 데몬만 적용 (함정 선지)
④ 데몬별 상세 설정: 각 서비스 고유 설정 파일
| 데몬 | 설정 파일 경로 | 최다출제 항목 |
|---|---|---|
| SSH | /etc/ssh/sshd_config | PermitRootLogin, Protocol |
| Apache (RHEL) | /etc/httpd/conf/httpd.conf | ServerTokens, Options -Indexes |
| Apache (Debian) | /etc/apache2/apache2.conf | 동일 항목 |
| vsftpd | /etc/vsftpd/vsftpd.conf | anonymous_enable, chroot |
| DNS (BIND) | /etc/named.conf | allow-transfer, recursion |
| NFS | /etc/exports | no_root_squash |
| Samba | /etc/samba/smb.conf | hosts allow, security |
| rsync | /etc/rsyncd.conf | secrets file (권한 600) |
PermitRootLogin no로 변경. 일반 계정 로그인 후 su/sudo 사용.
root_squash(기본값)로 변경. 원격 root → nfsnobody로 매핑.
→ 데몬별 전체 보안 설정 항목은 시리즈 3편에서 상세 정리합니다.
⑤ 현대 서비스 관리: systemd 유닛 파일
# 유닛 파일 위치
/etc/systemd/system/ ← 관리자 직접 생성 (우선순위 높음)
/usr/lib/systemd/system/ ← 패키지 설치 기본값
→ .service와 .socket의 상세 구조, xinetd 대응 관계는 시리즈 4편에서 정리합니다.
⑥ 보조 실행 옵션: 배포판별 환경설정
/etc/sysconfig/sshdOPTIONS="-p 2222"/etc/default/rsyncRSYNC_ENABLE=true3. 정리표 — 6단계 한눈에 보기
| 단계 | 역할 | 대표 파일 | 시험 빈도 |
|---|---|---|---|
| ① 포트 매핑 | 서비스명 ↔ 포트 | /etc/services | ★★☆ |
| ② 슈퍼서버 | 요청 시 데몬 기동 | /etc/xinetd.conf · /etc/xinetd.d/ | ★★★ |
| ③ 접근 제어 | IP 기반 허용/차단 | /etc/hosts.allow · /etc/hosts.deny | ★★★ |
| ④ 데몬 설정 | 서비스별 상세 동작 | sshd_config · httpd.conf 등 | ★★★ |
| ⑤ 서비스 관리 | 시작/중지/자동실행 | .service · .socket | ★★☆ |
| ⑥ 보조 옵션 | 환경변수/시작 옵션 | /etc/sysconfig/ · /etc/default/ | ★☆☆ |
4. 시험장 암기 전략
“포트 확인 → 슈퍼서버가 대신 띄움 → 접근 허용 여부 체크 → 데몬이 자기 설정대로 동작 → systemd가 생명주기 관리”
/etc/services= 포트-서비스 매핑 전화번호부 (실행 기능 없음)- 슈퍼서버: inetd = 한 줄 평문 / xinetd = 블록 구조 + 접근 제어 내장
- TCP Wrapper: allow → deny → 기본 허용 / libwrap 연동 데몬만 적용
- 데몬 설정: 시험에서 가장 넓은 범위. 설정값 → 위험 → 조치 패턴
- systemd:
.service= 상주형 /.socket= 온디맨드형 (xinetd 대체) - 보조 옵션: RHEL =
/etc/sysconfig// Debian =/etc/default/

