TL;DR
Lynis는 Unix 계열 시스템을 빠르게 감사하는 오픈소스 도구입니다. 서버 또는 회사의 시스템을 관리한다면 빠른 취약점 점검과 권장 조치 목록을 얻기 위해 5분 내외로 실행해 보세요. 보고서는 /var/log/lynis.log에 저장되며, Warning과 Suggestion 항목을 우선 처리하면 보안 수준을 크게 향상시킬 수 있습니다.
개요
가정용 데스크톱은 기본 설정만으로도 안전한 경우가 많습니다. 그러나 컴퓨터를 SSH 서버나 웹 서버 등으로 운영하거나, 회사의 시스템 관리자라면 추가적인 보안 조치가 필요합니다. Lynis는 Unix/Linux 시스템에서 보안 관련 정보를 수집하고 여러 보안 검사를 자동으로 수행하는 감사 도구입니다. 사용이 간단하고, 짧은 시간 안에 보안 진단 보고서를 얻을 수 있습니다.
핵심 요약: Lynis는 설치와 실행이 쉽고, 시스템 도구·커널·서비스·사용자·파일시스템·네트워크·암호화 등 다양한 항목을 검사합니다.
왜 Lynis를 사용해야 하나요?
- 빠르게 시스템 전반을 훑어볼 수 있습니다.
- 수동 점검에서 놓칠 수 있는 항목을 찾습니다.
- 보안 감사 보고서(Warning/Suggestion)를 제시하여 우선순위 작업을 도출합니다.
- 시스템 감사자, 네트워크 담당자, 운영팀이 정기적으로 사용하면 유용합니다.
중요: Lynis는 자동 도구이며 모든 문제를 해결해주지는 않습니다. 결과를 해석하고 조직의 정책에 따라 수동 검토와 조치를 병행하세요.
설치 (우분투 예시)
우분투에서는 소프트웨어 센터에서 설치하거나 터미널에서 바로 설치할 수 있습니다:
sudo apt-get install lynis
다른 배포판은 공식 홈페이지에서 배포판별 패키지나 비공식 RPM/DEB 링크를 확인하세요.
기본 사용법
터미널에서 간단히 다음 명령을 실행하면 시스템 전체를 점검합니다:
sudo lynis -c
명령 하나로 여러 항목을 검사합니다. 검사 항목의 예시는 다음과 같습니다:
- 시스템 도구와 바이너리 검사
- 부트로더, 시작 서비스
- 커널 상태: 런레벨, 로드된 모듈, 커널 설정
- 메모리/프로세스: 좀비 프로세스, IO 대기 프로세스
- 사용자/그룹/인증: sudoers, PAM 설정, 패스워드 정책
- 파일시스템: 마운트 포인트, /tmp 정책, 루트 파티션 검사
- 스토리지 및 외부 장치: usb-storage, firewire
- NFS 및 이름 서비스: DNS 설정, BIND
- 포트 및 패키지: 취약/업그레이드 가능한 패키지, 보안 리포지토리
- 방화벽 및 웹서버 설정: iptables, Apache/nginx
- SSH 구성 검사
- DB 및 서비스: MySQL 루트 비밀번호, LDAP
- PHP 설정 및 옵션
- 스케줄된 작업: crontab, atd
- 시간 동기화: ntp
- 암호화: SSL 인증서 만료
- 보안 프레임워크 상태: AppArmor, SELinux
- 파일 무결성, 악성코드 스캐너 유무
- 홈 디렉토리: 셸 히스토리 파일 등
결과 확인
스캔이 끝나면 Lynis는 로그와 요약을 /var/log/lynis.log에 저장합니다. 터미널에서 열어보세요:
sudo nano /var/log/lynis.log
파일을 읽으면서 Lynis가 수행한 모든 테스트를 확인할 수 있습니다. 관심 항목은 “Warning” 또는 “Suggestion”으로 표시됩니다. 빠르게 필요한 항목만 필터링하려면 다음과 같이 검색합니다:
sudo grep Warning /var/log/lynis.log
또는 제안(Suggestion) 목록만 보고 싶다면:
sudo grep Suggestion /var/log/lynis.log
출력 해석과 우선순위 정하기
Lynis는 각 검사마다 권장 조치와 심각도 수준을 제공합니다. 일반적인 처리 우선순위는 다음과 같습니다:
- Warning: 즉시 조치가 필요한 항목. 보안 위협 또는 설정 누락이 의심됩니다.
- Suggestion: 보안 개선 권고. 운영 정책과 비용을 고려해 적용합니다.
- Information: 참고용 정보. 상황에 따라 무시 가능.
중요: 각 권장 사항은 환경(서비스 특성, 가용성 요구, 규정 준수)에 따라 우선순위가 달라집니다. 예: 가용성이 절대적인 시스템에서는 일부 변경이 서비스 중단을 초래할 수 있어 테스트가 필요합니다.
권장 조치 예시
- SSH: 루트 직접 로그인 금지, 패스워드 인증 비활성화, 공개키 인증 사용
- 패키지: 보안 업데이트 적용 및 불필요한 패키지 제거
- 파일시스템: /tmp에 noexec 옵션, 적절한 마운트 포인트 권한 설정
- 인증: PAM 설정 확인, 비밀번호 만료 정책 적용
- 백업: 변경 전/후의 구성 백업 및 파일 무결성 도구 도입
참고: Lynis가 제시하는 명령어가 반드시 모든 환경에 맞는 것은 아닙니다. 제안 전에 테스트 환경에서 검증하세요.
자동화와 정기 감사
Lynis는 단발성 도구로만 쓰기보다 정기 감사와 CI/CD 파이프라인에 통합하면 더 효과적입니다. 자동화 아이디어:
- 주간/월간 크론 잡으로 lynis -c 실행 및 결과를 중앙 로그 서버로 수집
- CI에서 컨테이너 이미지 빌드 후 Lynis 검사 실행(하드닝 체크)
- 경고 발생 시 티켓 생성(ITSM 연동)
간단한 예: 매주 월요일 오전 4시에 점검하고 결과를 이메일로 전송하는 스크립트와 크론 설정을 만들 수 있습니다.
제한 사항과 언제 사용하지 않을까
- Lynis는 자동화 점검 도구로 수동 심층 분석을 대체하지 않습니다.
- 특수한 커스터마이즈된 환경이나 상업용 보안 솔루션이 요구되는 규제 환경에서는 보완 도구로 사용하세요.
- 일부 검사 항목은 디스트로나 패키지 버전에 따라 적용되지 않을 수 있습니다.
대안 도구: OpenSCAP, CIS-CAT, Tiger, osquery 등. 각 도구는 초점(규정 준수, 런타임 모니터링, 컨테이너 등)이 다릅니다.
실무 체크리스트 (빠른 시작용)
- Lynis 설치 및 최신 버전 확인
- 기본 스캔 실행: sudo lynis -c
- /var/log/lynis.log에서 Warning 우선 확인
- Suggestion 목록 중 적용 가능한 항목 검토
- 변경 전 구성 백업 및 롤백 계획 수립
- 조치 적용 후 재스캔으로 효과 검증
역할별 권장 작업:
- 시스템 관리자: 설치, 자동화, 패치 관리
- 보안 감사자: 보고서 해석, 규정 준수 매핑
- 개발자/서비스 담당자: 변경 테스트, 서비스 영향 검증
심화 팁: 테스트 케이스와 수용 기준
수용 기준 예시:
- 모든 Warning 항목의 80% 이상이 해결되거나, 해결 불가 항목에 대해 리스크 문서화
- 정기 스캔(예: 주간) 실행 및 변화율(새로운 Warning 발생률) 모니터링
간단한 테스트 케이스:
- 클린 서버에서 Lynis 실행 → 경고 최소화 확인
- 보안 설정 변경(예: SSH 루트 로그인 허용) → 새로운 Warning 생성 확인
- 패키지 취약점 시뮬레이션(업데이트 미적용) → 관련 Warning 감지 확인
대체 접근법 및 심사숙고할 점
- 컨테이너 환경은 호스트와 컨테이너 간 권한 경계가 다르므로 컨테이너 전용 보안 검사 도구를 병행하세요.
- 규제 요구사항(CIS, PCI 등)이 있는 경우 Lynis 결과를 해당 벤치마크와 매핑하는 절차를 만드세요.
요약
Lynis는 리눅스/유닉스 시스템의 빠른 보안 감사를 위한 유용한 도구입니다. 설치와 실행이 쉽고, Warning/Suggestion을 통해 실무에서 바로 적용 가능한 권장 사항을 제공합니다. 정기 감사와 자동화 통합을 통해 보안 수준을 지속적으로 개선하세요.
중요: 자동 도구의 결과만으로 전체 보안이 확보되지는 않습니다. Lynis 보고서를 조직 정책, 서비스 요구와 함께 검토하고 우선순위를 정해 조치하세요.
Image credit: Up, Tight