🛡️ 정보보안기사 | 데몬별 핵심 보안 설정 항목 총정리 (3/4)
SSH · Apache · vsftpd · DNS(BIND) · NFS · Samba · rsync
“이 설정의 문제점을 쓰시오” 유형에 3초 안에 대응하는 즉답 훈련표 포함
#sshd_config
#httpd.conf
#vsftpd
#named.conf
#exports
#PermitRootLogin
#정보보안기사실기
📋 목차
- 1. 시험 출제 3가지 패턴
- 2. SSH — sshd_config 보안 설정
- 3. Apache — httpd.conf 보안 설정
- 4. vsftpd — vsftpd.conf 보안 설정
- 5. DNS (BIND) — named.conf 보안 설정
- 6. NFS — /etc/exports 보안 설정
- 7. Samba · rsync 보안 설정
- 8. 즉답 훈련표 — “설정값 → 위험” 3초 매핑
- 9. 최종 정리: 데몬별 경로 + 최다출제 항목
1. 시험에서 데몬 설정이 나오는 3가지 패턴
유형 A
문제점 + 조치
위험한 설정을 보여주고 “뭐가 잘못이며 어떻게 고치는가”
유형 B
빈칸 채우기
설정 항목명 자체를 정확히 기억해야 하는 유형
유형 C
파일 경로
설정 파일의 풀 경로를 쓰게 하는 유형
2. SSH — /etc/ssh/sshd_config
💡 가장 자주 출제되는 데몬
원격 접속의 기본이면서 보안 설정 항목이 많아, 정보보안기사에서 출제 빈도 1위입니다.
| 설정 항목 | 권장값 | 의미 | 빈도 |
|---|---|---|---|
| PermitRootLogin | no | root 직접 로그인 차단. yes면 brute force 표적. | ★★★ 최다 |
| PasswordAuthentication | no | 패스워드 인증 비활성화. 공개키 인증만 허용. | ★★★ |
| Protocol | 2 | SSH v1은 MITM 취약. 반드시 2만 사용. | ★★★ |
| Port | 비표준 | 기본 22 → 다른 포트. 자동화 공격 회피. | ★★☆ |
| MaxAuthTries | 3~5 | 최대 인증 시도 횟수. brute force 방어. | ★★☆ |
| LoginGraceTime | 60 | 로그인 대기 시간(초). 미인증 시 연결 종료. | ★★☆ |
| AllowUsers / DenyUsers | 지정 | 사용자별 접근 제어. | ★★☆ |
| PermitEmptyPasswords | no | 빈 패스워드 허용 여부. 반드시 no. | ★★☆ |
출제예시 다음 sshd_config의 보안 문제점을 찾고 조치 방안을 쓰시오.
PermitRootLogin yes
Protocol 1
PasswordAuthentication yes
PermitEmptyPasswords yes
→ 4가지 모두 보안 취약:
• PermitRootLogin yes → no (root 직접 로그인 차단)• Protocol 1 → 2 (v1은 MITM 취약)
• PasswordAuthentication yes → no (공개키 인증 사용)
• PermitEmptyPasswords yes → no (빈 패스워드 차단)
3. Apache — /etc/httpd/conf/httpd.conf
| 설정 항목 | 권장값 | 의미 | 빈도 |
|---|---|---|---|
| ServerTokens | Prod | 서버 버전 노출 수준. Full이면 OS/모듈 전부 노출. | ★★★ 단골 |
| ServerSignature | Off | 에러 페이지에 서버 정보 표시 여부. | ★★☆ |
| Options -Indexes | -Indexes | 디렉토리 리스팅 차단. Indexes면 파일 목록 노출. | ★★★ 단골 |
| AllowOverride | None | .htaccess 사용 제한. | ★★☆ |
| TraceEnable | Off | TRACE 메소드 비활성화. XST 방어. | ★★☆ |
| Timeout | 낮게 | 연결 타임아웃(초). Slowloris 공격 방어. | ★★☆ |
📋 ServerTokens 값별 노출 수준
Prod → Server: Apache (최소, 권장)
Major → Server: Apache/2
Full → Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k PHP/5.4.16 (위험)
4. vsftpd — /etc/vsftpd/vsftpd.conf
| 설정 항목 | 권장값 | 의미 | 빈도 |
|---|---|---|---|
| anonymous_enable | NO | 익명 FTP 접속 차단. YES면 누구나 접속. | ★★★ 단골 |
| chroot_local_user | YES | 사용자를 홈 디렉토리에 가둠 (chroot jail). | ★★★ 서술형 |
| xferlog_enable | YES | 파일 전송 로그 기록. | ★★☆ |
| ftpd_banner | 커스텀 | 시스템 정보 노출 방지용 배너. | ★☆☆ |
| userlist_enable | YES | 사용자 리스트 기반 제어. userlist_deny와 조합. | ★★☆ |
📝 chroot_local_user 서술형 대비
chroot_local_user=YES로 설정하면, FTP 로그인 사용자가 자신의 홈 디렉토리 상위로 이동 불가. cd ..를 해도 올라갈 수 없음. 이것을 chroot jail(감옥)이라 하며, 시스템의 다른 디렉토리 탐색을 원천 차단합니다.
5. DNS (BIND) — /etc/named.conf
| 설정 항목 | 권장값 | 의미 | 빈도 |
|---|---|---|---|
| allow-transfer | { none; } 또는 보조DNS | 존 전송 제한. 무제한이면 DNS 레코드 전체 유출. | ★★★ 단골 |
| recursion | no (권위 DNS) | 재귀 질의 비활성화. 캐시 포이즈닝 방어. | ★★★ 서술형 |
| version | “none” | BIND 버전 숨김. fingerprinting 방지. | ★★☆ |
| allow-query | 내부 네트워크 | 질의 허용 범위 한정. | ★★☆ |
| dnssec-enable | yes | DNS 응답 위변조 방지. | ★★☆ |
출제예시 다음 named.conf의 보안 문제점과 조치를 쓰시오.
options {
allow-transfer { any; };
recursion yes;
};
→ allow-transfer { any; } : 누구나 존 전송 가능 → 내부 네트워크 구조 노출
→ recursion yes : 외부 재귀 질의 가능 → 캐시 포이즈닝·DNS 증폭 DDoS 악용조치:
allow-transfer { 보조DNS_IP; }; / recursion no; 또는 allow-recursion { 내부대역; };
6. NFS — /etc/exports
/share 192.168.1.0/24(ro,root_squash)
/data 10.10.10.5(rw,no_root_squash) ← 위험!
안전
root_squash (기본값)
클라이언트의 root(UID=0) → 서버에서 nfsnobody로 매핑. root 권한으로 서버 파일 조작 불가.
위험
no_root_squash
클라이언트의 root → 서버에서도 root로 동작. 서버의 모든 파일을 읽고 쓸 수 있음.
| 관련 명령어 | 의미 |
|---|---|
| exportfs -a | /etc/exports 변경사항 즉시 적용 |
| exportfs -v | 현재 공유 목록 확인 |
| showmount -e [호스트] | 원격 호스트의 NFS 공유 목록 확인 (공격자 정찰에도 사용) |
7. Samba · rsync 보안 설정
Samba
/etc/samba/smb.conf
핵심:
hosts allow/deny(접근 제어), security = user(인증 방식), valid users = @그룹(사용자 제한), encrypt passwords = yesrsync 데몬
/etc/rsyncd.conf
핵심:
hosts allow/deny, auth users, secrets file(패스워드 파일). secrets file 권한 반드시 600. 아니면 인증 자체가 거부됨.8. 즉답 훈련표 — “설정값 → 위험” 3초 매핑
💡 사용법
왼쪽 열의 설정을 보고 3초 안에 오른쪽 열의 위험이 떠올라야 합니다. 시험장에서 이 속도가 나와야 합격선입니다.
| 보이는 설정 | 즉답: 뭐가 위험한가 |
|---|---|
| PermitRootLogin yes | root 직접 로그인 → brute force 표적 |
| Protocol 1 | SSH v1 → MITM 취약 |
| Options Indexes | 디렉토리 리스팅 → 파일 목록 노출 |
| ServerTokens Full | 서버 버전 전체 노출 → fingerprinting |
| anonymous_enable=YES | 익명 FTP → 무인가 접속 |
| chroot_local_user=NO | 상위 디렉토리 이동 가능 → 시스템 탐색 |
| allow-transfer { any; } | 존 전송 무제한 → DNS 레코드 전체 유출 |
| recursion yes | 재귀 질의 허용 → 캐시 포이즈닝, 증폭 DDoS |
| no_root_squash | 원격 root = 서버 root → 전체 파일 조작 |
| secrets file 권한 644 | 패스워드 파일 노출 → 600이어야 함 |
9. 최종 정리: 데몬별 경로 + 최다출제 항목
| 데몬 | 설정 파일 경로 | 최다출제 항목 |
|---|---|---|
| SSH | /etc/ssh/sshd_config | PermitRootLogin · Protocol |
| Apache | /etc/httpd/conf/httpd.conf | ServerTokens · Options -Indexes |
| vsftpd | /etc/vsftpd/vsftpd.conf | anonymous_enable · chroot_local_user |
| DNS | /etc/named.conf | allow-transfer · recursion |
| NFS | /etc/exports | no_root_squash vs root_squash |
| Samba | /etc/samba/smb.conf | hosts allow · security |
| rsync | /etc/rsyncd.conf | secrets file (권한 600) |
🎯 3편 암기 포인트
- SSH: PermitRootLogin no · Protocol 2 · PermitEmptyPasswords no
- Apache: ServerTokens Prod · Options -Indexes · TraceEnable Off
- vsftpd: anonymous_enable=NO · chroot_local_user=YES (chroot jail)
- DNS: allow-transfer { none; } · recursion no
- NFS: root_squash(안전) vs no_root_squash(위험)
- rsync: secrets file 권한 반드시 600
- 설정 파일 풀 경로 암기 필수:
/etc/ssh/sshd_config,/etc/httpd/conf/httpd.conf,/etc/named.conf

