정보보안기사 실기 재도전 06 — 서비스 보안 (DNS·메일·FTP·DB·파일서버)
출제기준 주요항목 1. 시스템·네트워크 보안특성 파악 (1-3 서비스별) / 2. 취약점 점검·보완 (2-2 서비스)
단답은 설정 파일명(named.conf, sendmail.cf, access.db), 서술·실무는 점검 이유와 설정값이 중심입니다.
서비스마다 "동작·포트 → 설정 파일 → 취약점 → 보안 설정" 틀로 외우면 편해요.
이번 편 출제 맵 ⭐⭐⭐
| 주제 | 출제 회차 (예시) | 유형 |
| DNS 설정 파일 (named.conf / resolv.conf) | 32회 1번, 21회 16번 | 단답 |
| Master/Slave named.conf 작성 | 23회 18번 | 실무 |
| DNS 질의·캐시·TTL | 22회 8번, 29회 7번 | 단답 |
| 스팸 메일 릴레이 제한 (sendmail) | 31회 9번, 21회 1번 | 단답 |
| 윈도우 FTP 디렉터리 접근권한 위협 | 32회 13번 | 서술 |
| 데이터 마스킹 (정적/동적) | 30회 5번 | 단답 |
| Oracle DB 감사 정책 | 28회 17번 | 실무 |
| 메일 보안 프로토콜 (PGP/PEM/S-MIME), SPF/DKIM | 산업기사 30회, 19회 8번, 18회 14번 외 | 단답 |
(회차는 기출 파일과 이론 정리 문서에서 확인한 예시입니다. 전수 목록은 아니에요.)
| 서비스 | 포트 | 설정 파일·핵심 |
| DNS | UDP/TCP 53 | named.conf, resolv.conf |
| 메일 | SMTP 25 · POP3 110 · IMAP 143 | sendmail.cf, /etc/mail/access |
| FTP | 21(제어) · 20(데이터) | ftpusers, vsftpd.conf |
| DB | 제품별 | 감사(audit), 접근 통제, 마스킹 |
1. DNS ⭐⭐⭐
동작과 질의 순서
- 재귀(Recursive): 클라이언트 → 로컬 DNS가 대신 끝까지 조회
- 반복(Iterative): 로컬 DNS가 루트 → TLD(com) → 권한 서버를 차례로 질의
- 질의 순서(
www.example.com): 호스트 캐시·hosts 파일 → 로컬 네임서버 → 루트 → com 네임서버 → example.com 네임서버 → IP 응답 - UDP 53은 일반 질의, TCP 53은 Zone Transfer·큰 응답
- 응답은 TTL 동안 캐시되며 만료되면 다시 조회합니다.
22회 8번 유형: DNS는 53번 포트, 전송 계층은 UDP / 반복 질의 부하를 줄이는 것은 캐시 / 유지 기간은 TTL
설정 파일 ⭐⭐⭐
| 파일 | 역할 |
| /etc/named.conf | BIND 기본 설정 파일, Zone 설정·options 관리 |
| /etc/resolv.conf | 클라이언트 측 네임서버 지정 (nameserver IP), 도메인 검색 규칙 |
| /etc/hosts | 정적 매핑 |
Zone 파일 (/var/named/*.zone) |
레코드 저장 |
32회 1번 정답: (1) named.conf (2) resolv.conf
주요 레코드: A(IPv4), AAAA(IPv6), NS(네임서버), MX(메일), CNAME(별칭), PTR(역방향), SOA(권한 시작), TXT(SPF·DKIM)
Master/Slave named.conf 작성 (23회 18번 유형) ⭐⭐
문제: korea.co.kr 도메인, zone 파일 ns.korea.co.kr.zone, Master 192.168.1.53, Slave 192.168.2.53
[Master의 named.conf]
zone "korea.co.kr" IN {
type master;
file "ns.korea.co.kr.zone";
allow-transfer { 192.168.2.53; }; // Slave에게만 Zone 전송 허용
};
[Slave의 named.conf]
zone "korea.co.kr" IN {
type slave;
masters { 192.168.1.53; }; // 복제해 올 Master
file "ns.korea.co.kr.zone"; // 받아 온 Zone 저장 파일
};
(23회 파일에는 답안이 없어서 BIND 표준 문법으로 직접 작성한 예시입니다. 최신 BIND에서는 type primary / type secondary 표기도 쓰이니 시험지의 표기를 따르세요. 핵심은 Master = type master + allow-transfer, Slave = type slave + masters 입니다.)
DNS 서버 점검 항목 ⭐⭐⭐
32회 1번의 named.conf 예시를 점검 관점으로 읽어 보세요.
options {
listen-on port 53 { 127.0.0.1; 192.168.1.100; }; // DNS 서비스를 제공할 IP
directory "/var/named"; // Zone 파일 위치
allow-query { any; }; // 질의 허용 범위 (전체 허용)
allow-transfer { 192.168.1.101; }; // Zone Transfer 허용 Slave IP
recursion yes; // 재귀 질의 허용
};
| 점검 | 위험 | 설정 |
|---|---|---|
| 점검 | 위험 | 설정 |
| Zone Transfer | 모든 호스트에 허용하면 호스트명·IP·네트워크 구조 노출 | allow-transfer { 2차 DNS IP; };또는 { none; } |
| 동적 업데이트 | 신뢰할 수 없는 곳에서 DNS 정보 갱신 | allow-update { none; }; (Windows: 보안되지 않은 동적 업데이트 허용 안 함) |
| 재귀 질의 | DNS 증폭 공격의 반사 서버로 악용 | recursion no; 또는 allow-recursion { 내부망; }; |
| 버전 노출 | 버전 정보로 취약점 탐색 | version "unknown"; |
공격 확인: dig @DNS서버 도메인 AXFR / nslookup → ls -d 도메인
⚠️ allow-transfer 문제는 "2차 DNS IP만 허용"이 답입니다.
⚠️ 위 예시에서 allow-query { any; } 와 recursion yes; 는 외부 서비스용 DNS라면 점검 대상입니다.
DNS 관련 공격 (원리는 이론 정리 기준)
| 공격 | 내용 | 대응 |
| DNS 스푸핑 | DNS 서버보다 먼저 위조 응답을 보내 피싱·파밍 사이트로 유도 | 구간 암호화, DNSSEC |
| 캐시 포이즈닝 | 재귀 서버 캐시에 위조 레코드 주입 | 질의 ID·소스 포트 랜덤화, DNSSEC, 재귀 제한 |
| DNS 터널링 | DNS 질의/응답(TXT·CNAME·ANY)에 데이터를 숨겨 C&C·유출 | 긴 도메인·대량 질의 탐지, 외부 DNS 직접 질의 차단 |
| DNS 증폭 | 출발지 위조 + ANY 질의 | 재귀 제한, RRL |
DNSSEC은 DNS 응답에 전자서명을 붙여 위·변조를 막습니다.
2. 메일 ⭐⭐⭐
프로토콜과 구성
| 구분 | 포트 | 역할 |
| SMTP | TCP 25 | 메일 송신, MX 레코드로 수신 서버 탐색 |
| POP3 | TCP 110 | 수신 후 서버에서 삭제 |
| IMAP | TCP 143 | 서버에 보관·동기화 |
- 에이전트: MUA(사용자) · MTA(전달) · MDA(최종 배달)
- 보안: SMTP AUTH, TLS(SMTPS 465 / STARTTLS), VRFY·EXPN 명령 차단(계정 정보 노출)
메일 보안 프로토콜 비교 ⭐⭐⭐
| 구분 | PGP | PEM | S/MIME |
| 키 인증 | 신뢰망(Web of Trust), 사용자 분산 | 중앙집중 CA 계층 (X.509) | CA 발급 인증서 (PKI) |
| 특징 | 구현 쉬움, 개인 간 널리 사용 | 구현 어려움, 거의 미사용 | MIME 확장, 첨부파일 보호, 표준 |
PGP = 분산 신뢰망 / PEM = 중앙 CA / S/MIME = MIME + PKI 인증서
스팸 차단 기술 ⭐⭐
| 기술 | 내용 |
| RBL (DNSBL) | 스팸 발송 IP 블랙리스트를 DNS로 조회해 차단 |
| SPF | 발송 도메인이 허용 발신 서버 IP를 DNS(TXT)에 등록, 수신 서버가 대조 |
| DKIM | 발신 서버가 개인키로 서명, 공개키는 DNS(TXT)에 게시 → 수신 서버가 검증 |
| DMARC | SPF·DKIM 결과의 도메인 정렬 + 실패 시 정책(none/quarantine/reject) + 리포트 |
| SpamAssassin | 점수 기반 필터 |
| Sanitizer | 첨부 무해화 |
| Procmail | 조건부 분류·실행 |
⚠️ SPF = 발신 IP 검증 / DKIM = 서명(공개키) 검증
스팸 메일 릴레이 제한 (31회 9번) ⭐⭐⭐
오픈 릴레이(Open Relay): 인증 없이 외부에서 외부로 메일 중계를 허용 → 스팸 경유지로 악용, IP 블랙리스트 등재
1. sendmail.cf: FEATURE(`access_db') — access 테이블 사용, promiscuous_relay 설정 제거
2. /etc/mail/access: 도메인 또는 IP RELAY(중계 허용) / REJECT(거부) / DISCARD(수신 후 폐기) / 550·501(오류 코드로 거부)
3. makemap hash /etc/mail/access < /etc/mail/access → access.db 생성 후 sendmail 재시작
31회 9번 정답: (1) sendmail.cf (2) access (3) access.db
⚠️ 파일 3종 세트 순서: sendmail.cf → access → access.db
3. FTP ⭐⭐
포트와 모드
| 모드 | 데이터 연결 시작 | 방화벽 |
| Active | 서버(20) → 클라이언트 (클라이언트가 PORT 명령으로 포트 통보) |
클라이언트 방화벽이 인바운드를 막으면 실패 |
| Passive | 클라이언트 → 서버 (서버가 PASV로 1024 이상 포트 통보) |
클라이언트 방화벽 친화적 |
- 제어 포트 21, 데이터 포트 20(Active) 또는 서버가 알려준 1024 이상(Passive)
| 종류 | 특징 |
| FTP | ID/PW, TCP, 평문 |
| tFTP | 인증 없음, UDP 69 |
| sFTP | SSH 기반 (22) |
| FTPS | FTP + TLS |
취약점과 보안 설정
- 취약점: 평문 전송(스니핑), Bounce Attack(
PORT명령을 악용해 FTP 서버를 경유한 스캔·공격), Anonymous FTP, Brute Force, tFTP 무인증 - 보안 설정:
/etc/ftpusers(접속 차단 계정, root 등),anonymous_enable=NO(vsftpd), 사용자 셸/sbin/nologin, 로그xferlog, 가능하면 sFTP/FTPS - xferlog 예:
... /home/aa.txt a _ i r test ftp 0 * c→ 마지막c(complete) = 전송 성공
⚠️ 방화벽 문제의 핵심: Active는 서버가 클라이언트로 접속한다
⚠️ Bounce = PORT 명령 악용
4. 파일서버 · FTP 디렉터리 권한 ⭐⭐⭐
윈도우 서버 FTP 디렉터리 접근권한 미흡 시 위협 2가지 (32회 13번, 서술)
① 권한 없는 사용자가 중요 파일을 열람·유출·변조·삭제 (기밀성·무결성 침해)
② 악성 파일(웹쉘·악성코드) 업로드로 서버 장악, 악성코드 유포 경유지화 (무결성·가용성 침해)
양호 기준: FTP 홈 디렉터리에서 Everyone 권한 제거, 사용자별 접근 가능한 폴더 분리, 익명 접속 차단, 쓰기 권한 최소화.
공유 폴더 개선 4가지(기본 공유 제거 / Everyone 제거 / 필요한 계정에만 읽기·변경 / 공유 암호 설정)와 net session 명령은 03편에서 다뤘습니다.
5. DB 보안 ⭐⭐
통제 · 위협
- 보안 통제: 접근 통제(뷰·권한) · 추론 통제 · 흐름 통제
- 위협: 집합(Aggregation) — 낮은 등급 정보를 모아 높은 등급 정보를 알아냄 / 추론(Inference) — 공개 정보로 기밀을 유추
- 암호화 방식: Plug-in(DB 서버에 암호화 모듈) · API(애플리케이션이 암호화 API 호출)
데이터 마스킹 (30회 5번) ⭐⭐⭐
| 구분 | 시점 | 원본 |
| 정적 마스킹 (SDM) | 운영 데이터를 비운영 환경으로 복사하기 전 가짜 값으로 영구 치환 | 비운영 환경의 저장 값이 변환됨 |
| 동적 마스킹 (DDM) | 조회 시점에 권한에 따라 실시간 마스킹 | 원본 불변 |
30회 5번 정답: (A) 정적 데이터 마스킹 (SDM) (B) 동적 데이터 마스킹 (DDM)
Oracle DB 감사 (28회 17번) ⭐⭐
audit_file_dest = OS 수준 감사 로그 파일이 저장될 디렉터리 경로
audit_sys_operations = FALSE → SYS/SYSDBA 작업이 감사되지 않음 (보안 강화를 위해 TRUE 권장)
audit_trail = (공백/NONE) → 표준 감사 기능이 비활성화된 상태
(2) 감사 로그를 SYS.AUD$ 테이블에 저장:
ALTER SYSTEM SET AUDIT_TRAIL = DB SCOPE = SPFILE; (DB, EXTENDED 로 SQL 문까지 기록 가능)
SHUTDOWN IMMEDIATE; STARTUP; ← audit_trail은 정적 파라미터라 재시작 필요
(3) 외부(OS/별도 로그 서버)에 저장을 권장하는 이유:
① DBA/침입자가 DB 내부 테이블의 감사 기록을 수정·삭제할 수 있어 무결성 확보를 위해
② SYS.AUD$ 누적으로 SYSTEM 테이블스페이스 용량·성능 문제 방지
③ DB 장애 시에도 감사 로그를 보존해 사고 분석 가능
백업 방식
| 방식 | 기준점 |
| 전체 | 전체 데이터 |
| 차등 | 마지막 전체 백업 이후 변경분 |
| 증분 | 마지막 백업(전체 또는 증분) 이후 변경분 |
단답 키워드 표 ⭐⭐⭐
| 질문 | 답 |
| BIND 기본 설정 파일 | named.conf |
| 클라이언트 네임서버 지정 파일 | resolv.conf |
| 2차 DNS에게만 Zone 전송 허용 | allow-transfer |
| 재귀 질의 제한 설정 | recursion no (allow-recursion) |
| DNS 응답에 전자서명 | DNSSEC |
| 응답 캐시 유지 기간 | TTL |
| 메일 송신 / 수신 / 서버 보관 프로토콜 | SMTP / POP3 / IMAP |
| 분산 신뢰망 / 중앙 CA 메일 보안 | PGP / PEM |
| 발신 IP를 DNS에 등록하는 스팸 대응 | SPF |
| 서명 + DNS 공개키 게시 | DKIM |
| 릴레이 제한 sendmail 파일 3종 | sendmail.cf → access → access.db |
| FTP 접속 차단 계정 파일 | /etc/ftpusers |
| FTP 제어 / 데이터 포트 | 21 / 20 |
| 인증 없는 UDP 69 파일 전송 | tFTP |
| 복사 전 치환 / 조회 시 실시간 마스킹 | 정적(SDM) / 동적(DDM) |
서술형 답안 구조 ⭐⭐⭐
DNS Zone Transfer 위험과 대응
정의: Master → Slave로 Zone 데이터를 전체 복제하는 기능 (AXFR)
위험: 모든 호스트에 허용하면 호스트명·IP·내부 구조 노출 → 이후 공격의 사전 정보
대응: named.conf allow-transfer { 2차 DNS IP; }; (또는 none), 동적 업데이트 해제, 재귀 제한
FTP 디렉터리 권한 미흡 위협
① 정보 유출·변조·삭제 (권한 없는 사용자 접근)
② 악성 파일 업로드로 서버 장악·악성코드 유포 경유지화
대응: Everyone 제거, 익명 접속 차단, 사용자별 폴더 분리, 쓰기 최소화
오픈 릴레이
정의: 인증 없이 외부 → 외부 메일 중계 허용
위험: 스팸 경유지, IP 블랙리스트 등재
대응: sendmail.cf FEATURE(access_db) → /etc/mail/access (RELAY/REJECT) → makemap으로 access.db 생성
⚠️ 함정 모음
⚠️ named.conf(서버 Zone 설정) ≠ resolv.conf(클라이언트 네임서버 지정)
⚠️ allow-transfer는 2차 DNS IP만. any로 두면 안 됨
⚠️ SPF = IP 등록 / DKIM = 서명 + 공개키 DNS 게시
⚠️ PGP = 분산 신뢰망 / PEM = 중앙 CA
⚠️ Active FTP: 서버가 클라이언트로 접속 → 클라이언트 방화벽에 막힘
⚠️ 정적 마스킹은 복사 전 치환, 동적 마스킹은 조회 시점 (원본 불변)
⚠️ 차등 백업은 마지막 "전체" 기준, 증분은 직전 "백업" 기준
기출 Q&A
Q. (32회 1번) (1) DNS 서버의 기본설정 파일로 Zone 설정을 관리하는 파일, (2) 네임서버 설정과 도메인 검색 규칙을 지정하는 파일은?
A. (1) named.conf (2) resolv.conf
Q. (31회 9번) 스팸 메일 릴레이 제한 설정에서 ( 1 )~( 3 )에 들어갈 파일명은?
A. (1) sendmail.cf (2) access (3) access.db
Q. (30회 5번) 운영 데이터를 비운영 환경에 복사하기 전 가짜 정보로 대체하는 기술 (A)와 운영 서버에 접근할 때 실시간으로 마스킹하는 기술 (B)는?
A. (A) 정적 데이터 마스킹 (B) 동적 데이터 마스킹
💡 실무에서는?
20년 인프라/보안 SI 경험에서 서비스 점검은 "필요한 서비스만 켜고, 필요한 상대에게만 열어 둔다"는 한 줄로 요약됩니다.
DNS는 내부용과 외부용을 분리하고 외부용은 재귀를 끄는 구성이 기본이에요.
메일은 SPF·DKIM·DMARC를 모두 설정해야 수신 측에서 정상 메일이 스팸으로 분류되지 않고, DB는 DBA 권한이 너무 넓게 열려 있는 경우가 점검에서 자주 지적됩니다.
감사 로그를 DB 안에만 두면 관리자 권한으로 지울 수 있기 때문에 별도 서버 전송이 28회 17번의 답과 같은 이유로 권장됩니다.
핵심 정리
✅ DNS: named.conf(Zone 설정) / resolv.conf(네임서버 지정), allow-transfer는 2차 DNS만, 재귀 제한, DNSSEC
✅ 메일: SMTP 25 / POP3 110 / IMAP 143, PGP(신뢰망) · PEM(중앙 CA) · S/MIME(PKI)
✅ 스팸: RBL · SPF(IP) · DKIM(서명) · DMARC, 릴레이 제한 sendmail.cf → access → access.db
✅ FTP: 제어 21 / 데이터 20, Active(서버→클라) vs Passive(클라→서버), ftpusers, Bounce = PORT 악용
✅ FTP 디렉터리 권한 미흡 위협: 정보 유출·변조 + 악성 파일 업로드
✅ DB: 정적 마스킹(복사 전) vs 동적 마스킹(조회 시), 감사 로그는 외부 저장, 차등 vs 증분
📌 참고: 2027년 출제기준 개편에서 실기 1-3에 REST API 서비스 보안(OWASP API Security Top 10 등)이 신설되고 DNS·DB·전자서명 항목 번호가 한 칸씩 밀립니다. 이번 11/14 시험은 현행 기준이에요.
다음 편에서는 웹 공격·시큐어코딩·웹로그 판독으로 이어갑니다!
궁금한 점은 댓글로 남겨주세요!
2026.10.27 - [자격증 정복/정보보안(산업)기사] - 정보보안기사 실기 재도전 01 — 소개·재도전 전략·출제 맵 (46점에서 합격으로)
정보보안기사 실기 재도전 01 — 소개·재도전 전략·출제 맵 (46점에서 합격으로)
정보보안기사 실기 재도전 01 — 소개·재도전 전략·출제 맵 (46점에서 합격으로)출제기준 주요항목 전체: 1. 시스템·네트워크 보안특성 / 2. 취약점 점검·보완 / 3. 보안관제·대응 / 4. 위험분석·
tech.seanney.pe.kr
'자격증 정복 > 정보보안(산업)기사' 카테고리의 다른 글
| 정보보안기사 실기 재도전 05 — 프로토콜 ② TCP·UDP·SSL/TLS·IPsec, DoS/DDoS 원리, 무선 (0) | 2026.11.04 |
|---|---|
| 정보보안기사 실기 재도전 04 — 프로토콜 ① 계층·PDU 헤더, IP·ARP·RARP·ICMP·라우팅 (0) | 2026.11.03 |
| 정보보안기사 실기 재도전 03 — 윈도우 보안 (인증 구조·net 명령·공유 폴더·NetBIOS·감사 정책·로그) (0) | 2026.11.02 |
| 정보보안기사 실기 재도전 02 — 유닉스·리눅스 보안 (계정·패스워드·권한·로그·원격접속) (0) | 2026.11.01 |
| 정보보안기사 실기 재도전 01 — 소개·재도전 전략·출제 맵 (46점에서 합격으로) (0) | 2026.10.31 |