CertNote/ 출퇴근 학습 노트
로드맵
KOEN
리눅스마스터 2급 · 2급리눅스마스터 2급
리눅스마스터 1급 · 1급리눅스마스터 1급
  • Week 1
    • 1.운영체제와 리눅스: 커널이 하는 일
    • 2.자유 소프트웨어와 배포판: 라이선스가 만든 생태계
    • 3.설치와 부팅: 전원을 켜는 순간부터
    • 4.파일시스템 구조와 파일의 종류: 모든 것은 파일이다
    • 5.Week 1 종합 복습: 개념을 꿰뚫는 시간
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
  • Week 10
  • Week 11
  • Week 12
  • Week 13
    • 1.네트워크 설정·진단 작업형: 손으로 IP를 세우고 길을 뚫는다
    • 2.서비스 설정파일 단답: 지시어 하나가 합격을 가른다
    • 3.셸 스크립트 작성형: 조건·반복·함수로 실무를 자동화한다
    • 4.보안·방화벽·로그 작업형: 규칙을 쓰고 컨텍스트를 바로잡는다
    • 5.네트워크·서비스 작업형 모의 + 오답노트
  • Week 14
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← 리눅스마스터 1급/Week 13/Day 2

기준: 리눅스마스터 1급 출제 기준·오류 제보

리눅스마스터 1급· AssociateWeek 13 · Day 2읽기 약 9분
핵심 정리
  • 오늘은 명령이 아니라 설정 파일 안의 단어를 외운다. 빈칸은 결국 "이 기능 = 이 지시어"의 1:1 매핑이다.
  • 웹: 문서 루트는 DocumentRoot, 수신 포트는 Listen(Port 아님), 기본 문서는 DirectoryIndex.
  • DNS: named.conf(설정) + zone 파일(데이터) 두 축. 존을 고치면 SOA Serial을 반드시 증가시킨다. 이름→IP는 A, IP→이름은 PTR.
  • DHCP는 range(동적 범위)와 host+hardware ethernet+fixed-address(MAC 고정). FTP는 anonymous_enable·write_enable·chroot_local_user.
  • 공유: Samba는 path·writable·valid users(그룹은 @), NFS exports는 괄호 앞 공백 금지와 root_squash.
  • SSH는 PermitRootLogin no가 핵심. 서버 파일은 sshd_config, 클라이언트 파일은 ssh_config로 서로 다르다.
  • 설정을 고쳤으면 검증 도구(testparm·named-checkconf·httpd -t·sshd -t)로 확인하고 재시작까지가 한 세트다.

Day 2 - 서비스 설정파일 단답: 지시어 하나가 합격을 가른다

Apache httpd.conf — 웹 서버의 심장

  • 설정 파일은 /etc/httpd/conf/httpd.conf(RHEL 계열).
  • 단답으로 묻는 지시어는 다음과 같다.
ServerRoot "/etc/httpd"        # 설정·로그 기준 디렉터리
Listen 80                      # 수신 포트
ServerName www.example.com:80  # 서버 이름
DocumentRoot "/var/www/html"   # 웹 문서 루트 (핵심!)
DirectoryIndex index.html      # 기본 문서
ServerAdmin root@example.com   # 관리자 이메일
MaxClients 256                 # 동시 접속 최대(prefork)
ErrorLog "logs/error_log"      # 에러 로그
CustomLog "logs/access_log" combined   # 접근 로그
 
<Directory "/var/www/html">    # 디렉터리별 접근 제어
    AllowOverride None         # .htaccess 허용 범위
    Require all granted        # 접근 허용(2.4 문법)
</Directory>
지시어의미함정
DocumentRoot웹 문서 최상위 경로웹 서버 설정의 기본 항목
Listen수신 포트(기본 80)Port가 아님(2.2 이후)
DirectoryIndex기본 표시 문서index.html
ServerName서버 이름:포트
AllowOverride.htaccess 적용 범위None이면 .htaccess 무시

웹 문서가 위치하는 최상위 디렉터리를 지정하는 지시어 → DocumentRoot. 수신 포트는 Listen(과거 Port 아님).

가상호스트: 한 서버에 여러 사이트는 <VirtualHost *:80> 블록에 ServerName과 DocumentRoot를 각각 지정한다.

BIND named.conf + zone 파일 — DNS의 두 축

  • DNS 서버 BIND는 메인 설정(/etc/named.conf)과 존 데이터(/var/named/*.zone) 두 파일로 동작한다.
  • 둘을 구분하는 것이 핵심이다.
// /etc/named.conf
options {
    listen-on port 53 { any; };     // 수신 인터페이스
    directory "/var/named";          // 존 파일 위치
    allow-query { any; };            // 질의 허용 대상
};
zone "example.com" IN {
    type master;                     // master(주)/slave(보조)
    file "example.com.zone";         // 존 데이터 파일명
};
  • 존 파일(example.com.zone)에는 리소스 레코드(RR)가 들어간다.
$TTL 86400
@   IN  SOA  ns.example.com. admin.example.com. (
        2026060501   ; Serial (수정 시 반드시 증가!)
        3600         ; Refresh
        1800         ; Retry
        604800       ; Expire
        86400 )      ; Minimum TTL
@       IN  NS   ns.example.com.    ; 네임서버
@       IN  MX 10 mail.example.com. ; 메일 서버(우선순위)
ns      IN  A    192.168.1.10       ; 정방향: 이름→IP
www     IN  A    192.168.1.20
mail    IN  A    192.168.1.30
ftp     IN  CNAME www               ; 별칭
레코드의미기억법
SOA권한 시작·존 정보Serial 증가 필수
NS네임서버 지정Name Server
A이름→IPv4Address
AAAA이름→IPv6A 4개
MX메일 서버(우선순위)Mail eXchange
CNAME별칭(정규이름)Canonical Name
PTRIP→이름(역방향)Pointer

⚠️ 함정: 존 파일을 수정하면 SOA의 Serial 값을 반드시 증가시켜야 slave가 변경을 감지한다. Serial을 안 올리면 보조 서버에 갱신이 안 된다.

정방향 vs 역방향: 이름→IP는 A 레코드(정방향), IP→이름은 PTR 레코드(역방향, in-addr.arpa 존). 메일 서버 지정은 MX.

DHCP dhcpd.conf — 주소를 빌려주는 규칙

  • DHCP 서버 설정은 /etc/dhcp/dhcpd.conf.
  • subnet 블록 안에 임대 범위와 옵션을 정의한다.
# /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;          # 할당 범위
    option routers 192.168.1.1;                  # 게이트웨이
    option domain-name-servers 8.8.8.8;          # DNS
    option subnet-mask 255.255.255.0;            # 넷마스크
}
host printer {                                   # 고정 IP 예약
    hardware ethernet 00:11:22:33:44:55;         # MAC 주소
    fixed-address 192.168.1.50;                  # 고정 할당 IP
}
지시어의미
range동적 할당 IP 범위
option routers기본 게이트웨이
option domain-name-servers클라이언트 DNS
default-lease-time기본 임대 시간(초)
host+hardware ethernet+fixed-addressMAC 기반 고정 IP

동적 할당 주소 범위를 지정하는 지시어 → range. 특정 MAC에 항상 같은 IP를 주려면 host 블록의 hardware ethernet(MAC) + fixed-address(IP).

vsftpd.conf — FTP 접속 통제

  • 설정 파일은 /etc/vsftpd/vsftpd.conf.
  • 익명 접속·쓰기 허용·chroot를 다룬다.
# /etc/vsftpd/vsftpd.conf
anonymous_enable=NO        # 익명 접속 (보안상 NO 권장)
local_enable=YES           # 로컬 계정 로그인 허용
write_enable=YES           # 업로드(쓰기) 허용
chroot_local_user=YES      # 사용자를 홈에 가둠(상위 이동 차단)
listen=YES                 # 독립 데몬 모드
ftpd_banner=Welcome        # 접속 배너
지시어YES/NO 의미
anonymous_enable익명 ftp 허용 여부
local_enable시스템 계정 로그인 허용
write_enable쓰기(업로드/삭제) 허용
chroot_local_user홈 디렉터리 격리

⚠️ 보안 함정: anonymous_enable=YES + write_enable=YES는 누구나 업로드 가능한 위험 설정. 보통 익명은 NO, 격리는 chroot_local_user=YES.

Samba smb.conf & NFS exports — 공유 두 형제

# /etc/samba/smb.conf
[global]
    workgroup = WORKGROUP
    security = user            # 인증 방식
[share]
    path = /srv/share          # 공유할 실제 경로
    writable = yes             # 쓰기 허용(= read only = no)
    valid users = @staff       # 접근 허용 계정(@=그룹)
    guest ok = no              # 게스트 접근
# /etc/exports  (NFS)
/srv/data    192.168.1.0/24(rw,sync,no_subtree_check)
  • NFS exports의 최대 함정은 클라이언트와 괄호 사이 공백 금지다(공백이 있으면 모든 호스트에 기본 옵션이 열린다).
  • 주요 옵션은 rw/ro, sync/async, root_squash(기본·안전)/no_root_squash(위험)다.
파일핵심 지시어
smb.confpath, writable, valid users, guest ok
exports경로 + 클라이언트(옵션) (공백 금지)

smb.conf 빈칸: 공유 실제 경로는 path, 쓰기 허용은 writable = yes(또는 read only = no). 그룹 지정은 계정 앞에 @.

sshd_config — 원격 접속 보안

  • 설정 파일은 /etc/ssh/sshd_config.
  • 보안 강화 지시어는 단답으로 묻는다.
# /etc/ssh/sshd_config
Port 22                          # 수신 포트
PermitRootLogin no               # root 직접 로그인 금지(권장)
PasswordAuthentication yes       # 암호 인증 허용
PubkeyAuthentication yes         # 공개키 인증
PermitEmptyPasswords no          # 빈 암호 금지
AllowUsers alice bob             # 허용 계정 화이트리스트
MaxAuthTries 3                   # 인증 시도 횟수 제한
지시어보안 의미
PermitRootLoginno면 root 직접 로그인 차단
PasswordAuthenticationno면 키 인증만 강제
PermitEmptyPasswordsno여야 빈 암호 차단
Port기본 22, 변경으로 스캔 회피
AllowUsers/DenyUsers계정 단위 허용/거부

sshd_config(서버, 데몬)와 ssh_config(클라이언트)는 다른 파일. root 로그인 차단은 서버 파일의 PermitRootLogin no. 수정 후 systemctl restart sshd로 적용.

한눈에 보는 설정 파일 지도

서비스파일시험 핵심 지시어
Apache/etc/httpd/conf/httpd.confDocumentRoot, Listen, DirectoryIndex
BIND/etc/named.conf + zonetype master/slave, SOA Serial, A/MX/CNAME/PTR
DHCP/etc/dhcp/dhcpd.confrange, option routers, fixed-address
vsftpd/etc/vsftpd/vsftpd.confanonymous_enable, write_enable, chroot_local_user
Samba/etc/samba/smb.confpath, writable, valid users
NFS/etc/exports클라이언트(옵션) 공백 금지, root_squash
SSH/etc/ssh/sshd_configPermitRootLogin, PasswordAuthentication, Port

서비스 기동·확인 — 설정 뒤엔 항상 적용

  • 설정 파일을 고쳤으면 서비스를 재시작하고 상태를 확인하는 것까지가 한 세트다.
  • 각 서비스의 데몬·포트·관리 명령을 정확히 알아야 한다.
서비스데몬(유닛)포트재시작
Apachehttpd80/443systemctl restart httpd
BINDnamed53systemctl restart named
DHCPdhcpd67/68systemctl restart dhcpd
vsftpdvsftpd21systemctl restart vsftpd
Sambasmb,nmb139/445,137/138systemctl restart smb
NFSnfs-server2049(+111)exportfs -ra
SSHsshd22systemctl restart sshd
systemctl enable --now httpd     # 부팅 시 자동 시작 + 즉시 기동
systemctl status named           # 상태·최근 로그 확인
systemctl is-enabled sshd        # 부팅 자동시작 여부
ss -tuln | grep ':53'            # 포트가 실제로 열렸는지 확인

enable vs start: start는 지금만 기동, enable은 부팅 시 자동 시작. 둘 다는 enable --now. 설정만 고치고 재시작을 안 하면 변경이 반영되지 않는다 — 작업형의 흔한 감점.

NFS는 예외: exports 수정은 서비스 재시작 없이 exportfs -ra(재내보내기)로 즉시 적용할 수 있다. nfs-server는 rpcbind(111)에 의존하므로 둘 다 살아 있어야 한다.

직접 쳐보기

  • 설정 파일을 열어 지시어를 눈으로 확인하고, 문법 검사 도구로 검증한다.
# 각 설정 파일의 핵심 지시어 확인 (주석·빈줄 제외)
grep -v '^#' /etc/httpd/conf/httpd.conf | grep -E 'DocumentRoot|Listen'
grep -v '^#' /etc/ssh/sshd_config | grep -E 'PermitRootLogin|Port'
 
# 문법 검사 도구
testparm                       # smb.conf 검증
named-checkconf                # named.conf 검증
named-checkzone example.com /var/named/example.com.zone   # 존 검증
httpd -t                       # apache 설정 검증
sshd -t                        # sshd 설정 검증

지시어는 철자 하나까지 정확해야 점수가 된다. 설정 후 전용 도구로 검증하는 습관도 함께 익힌다.

📖 용어

  • DocumentRoot : Apache가 웹 문서를 찾는 최상위 디렉터리를 지정하는 지시어. 단답 최다 출제.
  • Listen : Apache가 요청을 받을 포트를 지정하는 지시어. 옛 Port 지시어가 아니다.
  • AllowOverride : 그 디렉터리에서 .htaccess로 덮어쓸 수 있는 범위. None이면 .htaccess가 무시된다.
  • SOA Serial : 존 데이터의 판번호. 존을 고칠 때마다 올려야 보조(slave) 서버가 변경을 가져간다.
  • A 레코드 / PTR 레코드 : 이름을 IP로 바꾸는 정방향 레코드 / IP를 이름으로 바꾸는 역방향 레코드.
  • MX 레코드 : 그 도메인의 메일을 받을 서버와 우선순위를 지정하는 레코드. 숫자가 작을수록 우선이다.
  • CNAME : 다른 이름을 가리키는 별칭 레코드.
  • range : DHCP가 동적으로 나눠 줄 IP 주소 범위를 정하는 지시어.
  • fixed-address : 특정 MAC(hardware ethernet)에 항상 같은 IP를 주기 위한 DHCP 지시어.
  • chroot_local_user : vsftpd에서 사용자를 자기 홈 디렉터리에 가둬 상위로 못 나가게 하는 설정.
  • valid users : Samba 공유에 접근할 수 있는 계정 목록. 앞에 @를 붙이면 그룹을 뜻한다.
  • root_squash : NFS에서 클라이언트의 root를 익명 사용자로 강등하는 기본 보안 옵션.
  • PermitRootLogin : SSH로 root가 직접 로그인할 수 있는지 정하는 지시어. 보안상 no가 권장된다.
  • sshd_config vs ssh_config : SSH 서버(데몬)의 설정 파일 / SSH 클라이언트의 설정 파일. 이름이 비슷하니 구분해야 한다.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

Apache httpd.conf에서 웹 문서의 최상위 디렉터리를 지정하는 지시어는?

문제 2

BIND 존(zone) 파일을 수정한 뒤 보조(slave) 서버가 변경을 감지하도록 반드시 증가시켜야 하는 SOA 필드는?

문제 3

도메인 이름을 IPv4 주소로 매핑하는 DNS 리소스 레코드는?

문제 4

dhcpd.conf에서 클라이언트에게 동적으로 할당할 IP 주소 범위를 지정하는 지시어는?

문제 5

vsftpd에서 로그인한 사용자가 자신의 홈 디렉터리 상위로 이동하지 못하도록 가두는 지시어는?

문제 6

SSH 서버에서 root 계정의 직접 원격 로그인을 차단하려면 sshd_config에 설정할 항목은?

문제 7

NFS /etc/exports에서 root_squash 옵션의 의미로 옳은 것은?

이전네트워크 설정·진단 작업형: 손으로 IP를 세우고 길을 뚫는다Week 13 · Day 1다음 셸 스크립트 작성형: 조건·반복·함수로 실무를 자동화한다Week 13 · Day 3

참고 공식 자료

  • 리눅스마스터 1급 공식 출제 기준(새 탭에서 열림)

이 페이지

  • Apache httpd.conf — 웹 서버의 심장
  • BIND named.conf + zone 파일 — DNS의 두 축
  • DHCP dhcpd.conf — 주소를 빌려주는 규칙
  • vsftpd.conf — FTP 접속 통제
  • Samba smb.conf & NFS exports — 공유 두 형제
  • sshd_config — 원격 접속 보안
  • 한눈에 보는 설정 파일 지도
  • 서비스 기동·확인 — 설정 뒤엔 항상 적용
  • 직접 쳐보기
  • 용어
  • 연습 문제