시스템 보안 · 취약점 › A. Linux 서버 보안 설정 · 43/50편 (전체 043/450)
학습 단계: 4단계 · 자동 점검·로그 분석
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
Lynis 는 셸 스크립트 기반의 오픈소스 보안 점검 도구입니다. 특정 기준(CIS 등)의 합격 여부를 판정하는 OpenSCAP과 달리, 시스템 전반을 훑어 경고(warning)와 개선 제안(suggestion) 을 제시하는 "건강검진" 성격이 강합니다.
| 비교 | OpenSCAP | Lynis |
|---|---|---|
| 기준 | 프로파일(CIS 등) 규칙 합격 여부 | 자체 테스트 + 모범 사례 제안 |
| 결과 | pass/fail (XCCDF) | Hardening index, warning, suggestion |
| 설치 | 패키지 + 데이터스트림 | 단일 디렉터리 실행 가능 |
| 강점 | 감사 대응·표준 보고 | 빠른 전체 진단, 배포판 무관 |
두 도구는 경쟁이 아니라 보완 관계입니다. 기준 준수 증명은 OpenSCAP, 빠른 진단과 놓친 항목 발견은 Lynis가 적합합니다.
SSH-7408)가 있어 결과를 항목 단위로 추적·비교할 수 있습니다.| 명령·파일 | 용도 |
|---|---|
sudo lynis audit system | 전체 점검 |
sudo lynis show details 테스트ID | 특정 테스트 상세 |
/var/log/lynis.log | 상세 실행 로그 |
/var/log/lynis-report.dat | 기계 처리용 결과(key=value) |
lynis show tests | 테스트 목록 |
| 테스트 ID 예시 | 영역 |
|---|---|
SSH-7408 | SSH 세부 옵션 점검 |
KRNL-6000 | sysctl 값 점검 |
AUTH-9328 | 기본 umask |
ACCT-9628 | auditd 사용 여부 |
# Rocky: EPEL 또는 공식 저장소, Ubuntu: apt install lynis (버전이 오래될 수 있음)
sudo dnf install -y epel-release && sudo dnf install -y lynis
sudo lynis audit system --quick
sudo grep -E '^(hardening_index|warning\[\]|suggestion\[\])' /var/log/lynis-report.dat | head -20
# 결과 보관 및 비교
sudo cp /var/log/lynis-report.dat /root/baseline/lynis-$(date +%F).dat
diff <(grep -E '^warning' /root/baseline/lynis-2026-09-15.dat) \
<(grep -E '^warning' /root/baseline/lynis-2026-10-01.dat)
--quick은 중간 확인 입력 없이 실행합니다. 저장소 버전이 오래되었다면 공식 배포본(CISOfy) 최신 버전 사용을 검토합니다.
Lynis security scan details:
Hardening index : 78 [############### ]
Tests performed : 262
Warnings : 0
$ grep -E '^suggestion' /var/log/lynis-report.dat | head -3
suggestion[]=SSH-7408|Consider hardening SSH configuration|AllowTcpForwarding (set YES to NO)|-|
suggestion[]=KRNL-6000|One or more sysctl values differ from the scan profile and could be tweaked|-|-|
수치는 예시입니다. Warning 0, suggestion은 검토 후 적용 또는 예외 사유 기록이 된 상태가 정상입니다.
Hardening index : 61 [############ ]
Warnings : 3
$ diff (이전 warning) (현재 warning)
> warning[]=AUTH-9204|Found one or more users with UID 0 (root) other than root|sysbak|-|
> warning[]=FIRE-4512|iptables module(s) loaded, but no rules active|-|-|
> warning[]=LOGG-2190|Found deleted files in use|-|-|
| warning | 의미 |
|---|---|
| UID 0 계정 추가 | 003편 백도어 계정과 동일 신호 |
| 방화벽 규칙 없음 | 039편 방화벽 중지와 연결 |
| 삭제된 파일 사용 중 | 실행 후 삭제된 바이너리 → F영역(비정상 프로세스)에서 상세 분석 |
점수 하락(78→61)보다 새로 생긴 warning 3건이 분석의 출발점입니다. (테스트 ID·메시지는 Lynis 버전에 따라 다를 수 있습니다.)
Lynis 결과 파일은 key=value 구조라 SIEM 연동이 쉽습니다(분석 방법 예시).
[/var/log/lynis-report.dat 일부]
report_datetime_start=2026-10-01 05:30:02
hardening_index=61
warning[]=AUTH-9204|Found one or more users with UID 0 (root) other than root|sysbak|-|
warning[]=LOGG-2190|Found deleted files in use|-|-|
[SIEM 전송용 변환 예시 — logger로 한 줄씩]
lynis: host=rocky9-web01 type=warning test=AUTH-9204 detail=sysbak
lynis: host=rocky9-web01 type=index value=61 prev=78
필드 구분자가 |이므로 cut -d'|' -f1로 테스트 ID를 뽑아 이전 결과와 집합 비교하면 신규 항목만 쉽게 찾을 수 있습니다.
<rule id="100480" level="10">
<match>lynis: </match>
<regex>type=warning test=AUTH-9204|type=warning test=LOGG-2190</regex>
<description>Lynis 고위험 warning: UID 0 추가 또는 삭제된 파일 사용 중</description>
</rule>
Lynis 자체가 상시 감시 도구는 아니므로, 실시간성이 필요한 항목(UID 0, 방화벽 중지)은 앞선 편의 auditd·FIM 룰로 잡고 Lynis는 정기 교차 검증 역할을 맡깁니다.
lynis show details)을 확인합니다.| 구분 | 핵심 내용 |
|---|---|
| 성격 | 기준 합격 판정(OpenSCAP)보다 전반 진단·개선 제안 |
| 결과 | Hardening index · warning · suggestion · 테스트 ID |
| 결과 파일 | /var/log/lynis-report.dat (key=value, | 구분) |
| 운영 | 점수보다 신규 warning, 다른 점검과 교차 확인 |
| 면접 포인트 | "점수 하락이 아니라 새로 생긴 warning이 분석의 출발점" |
다음 편 044. Linux 서버 보안 — 자체 점검 스크립트 설계와 결과 표준화 에서는 여러 도구의 결과를 하나의 형식으로 모으는 자체 점검 스크립트 설계와 결과 표준화를 다룹니다.
이전 편: 042. Linux 서버 보안 — OpenSCAP 자동 점검과 결과 해석
📚 시리즈 전체 보기: 시스템 보안 · 취약점