Linux Server 운영 체제(OS)·DB·네트워크 등 보안 점검 항목

✅ 1. 시스템 기본 및 패치 관리 항목별 적용 방법

번호 점검 항목 적용 방법
1 OS 보안 패치 적용 apt update && apt upgrade (Ubuntu), yum update 또는 dnf upgrade (RHEL/CentOS)
2 커널 최신 업데이트 Ubuntu: apt install --install-recommends linux-generic, 이후 재부팅
3 패키지 서명 검증 APT: apt-key list, apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [KEY]
4 불필요 패키지 제거 apt autoremove, yum remove 패키지명
5 자동 보안 업데이트 Ubuntu: unattended-upgrades, RHEL: dnf-automatic, 설정 후 crontab 등록
6 USB, Bluetooth 비활성화 /etc/modprobe.d/blacklist.conf에 blacklist usb-storage 등 추가
7 Grub 비밀번호 설정 grub-mkpasswd-pbkdf2로 해시 생성 → /etc/grub.d/40_custom에 설정 추가
8 BIOS/UEFI 보안 설정 서버 제조사 BIOS 진입 후 부팅 순서 제한, 패스워드 설정 등 수동 적용
9 Sysctl 보안 파라미터 /etc/sysctl.conf 또는 /etc/sysctl.d/99-secure.conf에 항목 추가 후 sysctl -p
10 불필요 커널 모듈 비활성화 /etc/modprobe.d/disable-modules.conf에 install usb-storage /bin/true 등 설정
11 coredump 비활성화 /etc/security/limits.conf에 * hard core 0 또는 ulimit -c 0
12 시스템 타임존 표준화 timedatectl set-timezone Asia/Seoul
13 NTP 또는 chrony 설정 apt install chrony, 설정: /etc/chrony/chrony.conf
14 SELinux 또는 AppArmor 활성화 SELinux: /etc/selinux/config에서 SELINUX=enforcing 설정, AppArmor: aa-status 확인
15 nodev, noexec 마운트 옵션 설정 /etc/fstab에 옵션 추가: /tmp ext4 defaults,nodev,nosuid,noexec 0 2 등
16 /tmp, /var, /home 분리 마운트 디스크 파티셔닝 시 또는 LVM을 통해 분리, /etc/fstab 설정
17 /var/log 분리 로그 증가에 따른 디스크 가득 참 방지, 마찬가지로 /etc/fstab으로 관리
18 Swap 암호화 설정 cryptsetup 사용하여 dm-crypt 기반 swap 생성
19 파일시스템 자동 점검 설정 tune2fs -c 30 -i 30d /dev/sdaX (fsck 주기 설정)
20 swap 무작위화(randomization) echo 1 > /proc/sys/vm/page-cluster 등 설정 확인
21 무결성 점검 도구(AIDE) 설치 apt install aide, 초기화: aideinit, 정기 실행 등록
22 rkhunter 설치 및 실행 apt install rkhunter, rkhunter --update && rkhunter --check
23 Lynis 설치 및 감사 apt install lynis, lynis audit system으로 보안 점검 리포트 실행
24 OpenVAS 또는 Greenbone 설치 오픈소스 취약점 스캐너, 리소스 소모가 커 테스트 환경에서 먼저 적용 권장
25 CIS 벤치마크 검사 도구 설치 cis-cat, OpenSCAP 등 사용하여 CIS 규격 검사
26 취약점 자동 리포트 시스템 oscap, lynis, rkhunter 결과를 cron으로 수집하여 메일 발송 설정
27 시스템 시간 손상 탐지 chronyc tracking 또는 ntpq -p로 확인
28 패키지 저장소 인증 구성 Ubuntu: /etc/apt/sources.list에서 HTTPS 사용 및 서명키 확인
29 APT/YUM/DNF 캐시 보안 apt clean, yum clean all 주기적 실행 및 디스크 공간 확인
30 STIG/CIS 기반 자동화 스크립트 연동 Ansible CIS Role, OpenSCAP profile 실행 예: oscap xccdf eval --profile ...

 

✅ 2. 계정 및 권한 관리 항목별 적용 방법

번호 점검 항목 적용 방법
31 루트 직접 로그인 비활성화 /etc/ssh/sshd_config에서 PermitRootLogin no 설정 후 systemctl restart sshd
32 sudo 사용자 최소화 /etc/sudoers 또는 /etc/sudoers.d/* 에 필요한 사용자만 등록
33 su 사용 제한 /etc/pam.d/su에 auth required pam_wheel.so use_uid, wheel 그룹만 허용
34 sudo 로그 기록 설정 Defaults logfile="/var/log/sudo.log"를 /etc/sudoers에 추가
35 비활성 계정 잠금 passwd -l 계정명 또는 chage -E0 계정명 사용
36 시스템 계정 비사용 계정 잠금 UID < 1000인 계정 중 로그인 필요 없는 계정은 /sbin/nologin 또는 nologin으로 쉘 변경
37 패스워드 최소 길이 설정 /etc/login.defs: PASS_MIN_LEN, /etc/security/pwquality.conf 설정 (예: minlen = 12)
38 패스워드 변경 주기 설정 /etc/login.defs: PASS_MAX_DAYS, PASS_MIN_DAYS, PASS_WARN_AGE
39 패스워드 재사용 제한 /etc/pam.d/common-password (Ubuntu) 또는 /etc/pam.d/system-auth (RHEL)에 remember=5 등 추가
40 로그인 실패 시 계정 잠금 /etc/pam.d/common-auth 또는 system-auth에 pam_tally2 또는 pam_faillock 설정
41 MFA/2FA 활성화 google-authenticator 또는 libpam-google-authenticator 설치 및 PAM 연동
42 SSH Key 기반 로그인 강제 PasswordAuthentication no 설정, .ssh/authorized_keys에 공개키 등록
43 SSH 키 권한 설정 .ssh 폴더 700, authorized_keys 파일 600으로 설정
44 SSH RootLogin 비활성화 /etc/ssh/sshd_config → PermitRootLogin no, SSH 재시작
45 SSH 프로토콜 제한 Protocol 2 만 사용, 1은 보안 취약
46 SSH 포트 변경 /etc/ssh/sshd_config → Port 2222 등으로 설정 후 방화벽 허용
47 AllowUsers / AllowGroups 설정 /etc/ssh/sshd_config → AllowUsers admin1 admin2, AllowGroups wheel 등
48 SSH Idle Timeout 설정 ClientAliveInterval 300, ClientAliveCountMax 0 설정
49 비밀번호 없는 로그인 방지 PermitEmptyPasswords no 설정
50 로그인 실패 감지 알림 faillog 활용, 또는 pam_exec를 사용하여 이메일/Slack 통합 가능
51 로그인 기록 점검 last, lastlog, faillog, journalctl -u ssh 주기 점검
52 홈 디렉토리 권한 제한 chmod 700 /home/사용자 또는 umask 기본값 확인 및 조정
53 SUID/SGID 파일 점검 find / -perm /6000 -type f로 검토 후 위험한 바이너리 제거 또는 권한 변경
54 world-writable 파일 점검 find / -type f -perm -0002 또는 -perm -002 등으로 확인
55 권한 상승 취약점 점검 linpeas.sh, pspy, GTFOBins 등을 이용하여 정기 점검
56 setuid 바이너리 최소화 /bin/su, /usr/bin/passwd 외 제거 권고. chmod -s 파일로 제거 가능
57 그룹 최소화 및 정리 getent group 결과 확인, 불필요 그룹 삭제
58 LDAP/AD 연동 계정 권한 제한 /etc/nsswitch.conf, /etc/pam.d/* 설정과 그룹 매핑 확인
59 사용자 계정 주기적 감사 awk -F: '{ print $1 }' /etc/passwd, chage -l, passwd -S 등 주기 점검
60 신규 계정 생성 시 보안 템플릿 적용 /etc/skel 디렉토리 내 .bashrc, .profile, .ssh/ 등 보안 설정 사전 구성

 

 

✅ 3. SSH 및 원격 접근 제어 항목별 적용 방법

번호 점검 항목 적용 방법
61 SSH 무결성 검증 (서버 호스트 키 검증) /etc/ssh/ssh_host_* 키 파일 생성 확인 후 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub로 fingerprint 검토. 클라이언트에서는 ~/.ssh/known_hosts에 fingerprint 등록
62 SSH 서버 설정 하드닝 /etc/ssh/sshd_config 내 다음 항목 적용: Protocol 2, PermitRootLogin no, PasswordAuthentication no, PermitEmptyPasswords no, ClientAliveInterval 300, MaxAuthTries 3 등
63 SSH 배너 메시지 설정 /etc/issue.net에 경고문 작성 → sshd_config에 Banner /etc/issue.net 추가
64 Jump host / Bastion 구성 SSH ProxyCommand 또는 ProxyJump 사용 → ~/.ssh/config에 ProxyJump bastion-host 설정
65 VPN 통한 SSH 접근 VPN 서버(OpenVPN, WireGuard 등) 구성 후, SSH 포트 접근을 VPN 서브넷으로 제한 (iptables 또는 firewalld 사용)
66 SSH 접근 IP 제한 sshd_config 설정 후 iptables 또는 firewalld에 특정 IP만 허용: iptables -A INPUT -p tcp --dport 22 -s 203.0.113.0/24 -j ACCEPT
67 Fail2Ban 또는 sshguard 설정 apt install fail2ban → /etc/fail2ban/jail.local에 sshd jail 활성화. 기본 5회 실패 시 10분 차단
68 SSH 로그인 시도 횟수 제한 MaxAuthTries 3 설정, PAM 계정 차단 정책(pam_tally2, pam_faillock) 병행
69 SSH 로그 중앙 수집 /etc/rsyslog.d/50-default.conf 수정 → 로그를 ELK, Graylog, syslog-ng로 전송
70 TTY 기록(세션 로깅) 설정 script 명령으로 ~/.bashrc에 script -f /var/log/sessions/$USER-$(date).log 추가 또는 auditd 사용
71 SSH Forwarding 비활성화 sshd_config에 AllowTcpForwarding no, X11Forwarding no 설정
72 X11 포워딩 비활성화 X11Forwarding no, X11UseLocalhost yes 설정
73 SSH 로그레벨 조정 LogLevel VERBOSE 설정 시 인증 시도/성공/실패까지 모두 로깅됨
74 sshd_config 변경 시 유효성 검사 sshd -t 명령으로 설정 파일 문법 체크 후 적용: systemctl restart sshd
75 SSH 공개키 강제 인증 PasswordAuthentication no, ChallengeResponseAuthentication no, UsePAM no
76 SSH Key lifecycle 관리 키 파일 생성 시 ssh-keygen -t ed25519 -C "comment" 후 6~12개월마다 교체
77 AllowUsers / AllowGroups 적용 AllowUsers admin1 admin2, AllowGroups sshusers 등으로 접근 계정 제한
78 시간 기반 SSH 접근 제어 PAM 모듈 사용: /etc/security/time.conf 설정 후 /etc/pam.d/sshd에 account required pam_time.so 추가
79 SSH 구성 변경 모니터링 auditd 또는 inotify-tools로 /etc/ssh/sshd_config 변경 감지 후 Slack 등 알림
80 Multi-Factor Authentication (MFA) 적용 apt install libpam-google-authenticator → 사용자별 설정 후 /etc/pam.d/sshd에 auth required pam_google_authenticator.so 추가

 

 

✅ 4. 네트워크 보안 항목별 적용 방법

번호 점검 항목 적용 방법
81 기본 방화벽 정책 설정 (Deny all, allow by rule) ufw default deny incoming, ufw allow 22, ufw enable 또는 firewalld에서 zone drop, rich rules 설정
82 iptables 또는 nftables 적용 iptables -P INPUT DROP, iptables -A INPUT -p tcp --dport 22 -j ACCEPT 또는 nft로 대체 설정
83 포트 스캔 탐지 및 대응 psad, portsentry, fail2ban 설치 및 설정, 포트 스캔 시 차단 IP 블랙리스트 등록
84 TCP Wrappers (hosts.allow/deny) 설정 /etc/hosts.deny에 ALL: ALL, /etc/hosts.allow에 허용 서비스 및 IP 명시
85 불필요 인터페이스 비활성화 nmcli dev disconnect 인터페이스명 또는 /etc/network/interfaces에서 제거
86 IPv6 비활성화 (필요 시) /etc/sysctl.conf에 net.ipv6.conf.all.disable_ipv6 = 1, net.ipv6.conf.default.disable_ipv6 = 1
87 ICMP 제한 설정 sysctl.conf: net.ipv4.icmp_echo_ignore_all = 1, net.ipv4.icmp_echo_ignore_broadcasts = 1 등
88 TCP SYN Flood 방어 (SYN Cookies) sysctl.conf: net.ipv4.tcp_syncookies = 1
89 Reverse Path Filtering net.ipv4.conf.all.rp_filter = 1, net.ipv4.conf.default.rp_filter = 1
90 IP Spoofing 방지 sysctl.conf: net.ipv4.conf.all.accept_source_route = 0, accept_redirects = 0
91 ARP Spoofing 대응 arpwatch, arptables, 또는 static ARP entry 설정
92 네트워크 IDS/IPS 구성 Snort, Suricata 등 설치, 규칙셋 연동 (ET, Emerging Threats 등)
93 SIEM 연동 rsyslog 또는 syslog-ng를 통해 ELK, Splunk, Graylog 등과 연동
94 TLS 구성 강제 웹/FTP/DB 등 서비스 설정에서 TLS 1.2 이상만 허용 (예: nginx ssl_protocols TLSv1.2 TLSv1.3;)
95 TLS/SSL 취약성 스캔 sslyze, testssl.sh, openssl s_client 명령어로 설정 점검
96 포트스캐닝 및 트래픽 로그 수집 tcpdump, nethogs, iftop, vnstat 또는 netstat -tulnp 등으로 모니터링
97 VLAN/IP 세그멘테이션 구성 네트워크 스위치 수준에서 VLAN 분리, 각 세그먼트에 방화벽 적용
98 DNSSEC 활성화 BIND, Unbound 등에서 dnssec-validation yes; 적용
99 DHCP 스누핑 설정 L2 스위치에서 DHCP Snooping 기능 적용 (서버 단에서는 불가)
100 DNS 캐시 포이즈닝 방지 DNS 리졸버에서 recursion off, dnssec 사용, 무작위 쿼리 소스포트 적용
101 포트 기반 접근 제어 (802.1X) 인증 기반 유선 네트워크 설정, 서버에 적용 시 NAC 연동 필요
102 VPN 암호화 구성 OpenVPN, WireGuard, IPSec 등 설정 후 내부 리소스 접근은 VPN 통해 제한
103 HTTP Strict Transport Security(HSTS) 적용 웹서버 응답 헤더에 Strict-Transport-Security: max-age=31536000; includeSubDomains 추가
104 WAF 또는 Reverse Proxy 구성 Nginx, Apache Reverse Proxy 구성 + ModSecurity 또는 클라우드 기반 WAF 연동
105 public-facing 서비스 DMZ 분리 DMZ 존에 웹서버, 메일서버 위치시키고 DB 등 내부 자원은 내부망에 분리
106 traceroute/ICMP 제한 iptables -A INPUT -p icmp --icmp-type 8 -j DROP, sysctl net.ipv4.icmp_echo_ignore_all = 1
107 net.ipv4.conf.all.log_martians 설정 비정상 패킷 로깅 설정: net.ipv4.conf.all.log_martians = 1
108 내부 서버 outbound 제한 iptables -A OUTPUT -p tcp --dport 80 -d ! internal.network -j REJECT 등 설정
109 암호화되지 않은 서비스 제거 telnet, ftp, rsh, nfs 등 제거. 필요 시 sftp, scp, rsync + ssh 대체
110 서비스별 포트 스캐닝 대응 nmap -sV 등으로 오픈 포트 확인 → 방화벽 정책으로 최소한만 허용

 

 

✅ 5. 응용 프로그램 & 데이터베이스 보안 항목별 적용 방법

🔹 5.1 애플리케이션 서버 및 환경 설정 (10개)

번호 점검 항목 적용 방법
111 서비스 실행 계정 최소 권한 부여 웹/DB/Tomcat/Nginx 등을 전용 계정으로 실행하고 root 사용 금지 (ex. user = nginx)
112 chroot 또는 컨테이너 격리 chroot /srv/app 또는 Docker 등으로 격리된 환경 구성
113 AppArmor 또는 SELinux 정책 적용 AppArmor: aa-enforce /usr/sbin/nginx, SELinux: semanage fcontext 및 restorecon 설정
114 서비스 실행 포트 제한 웹: 80/443, DB: 내부 포트로 제한. iptables 또는 firewalld로 외부 차단
115 서비스 로그 권한 제한 로그 파일 권한 640 이하, 소유자 root 또는 서비스 계정 지정
116 서비스 취약점 점검 및 패치 nuclei, nikto, openVAS, zap, wpscan 등 도구로 점검 후 업데이트
117 환경변수 노출 방지 .bash_profile, .env 파일에 민감정보(비밀번호, KEY) 노출 금지
118 서비스 바이너리 무결성 검사 aide, sha256sum, rpm -V 또는 debsums 등을 사용
119 웹 어플리케이션 보안 헤더 설정 X-Content-Type-Options, X-Frame-Options, Content-Security-Policy 등 설정
120 개발 및 운영 환경 분리 운영환경에 DEBUG=true, devtools, test용 DB 등 포함하지 않도록 설정

 

🔹 5.2 데이터베이스 보안 설정 (30개)

번호 점검 항목 적용 방법
121 DB 루트 계정 원격 접근 차단 bind-address = 127.0.0.1 (MySQL), PostgreSQL pg_hba.conf에서 접근 통제
122 DB 사용자 최소 권한 원칙 GRANT SELECT ON db.table TO user; 등 필요한 권한만 부여
123 DB 계정 분리 정책 관리자/애플리케이션/백업 계정 분리, 각 계정 별도로 생성
124 비밀번호 정책 설정 MySQL: validate_password, PostgreSQL: password_encryption, 만료 주기 설정
125 DB 계정 비활성화 / 잠금 사용하지 않는 계정 ALTER USER 'user' ACCOUNT LOCK 또는 삭제
126 계정 접근 로그 감사 general_log, slow_query_log, PostgreSQL log_connections, log_disconnections 활성화
127 DB 로그 주기적 회전 및 보관 logrotate 설정 또는 내부 설정(expire_logs_days) 적용
128 SQL 명령 감사(Audit) 로그 활성화 MySQL Enterprise Audit, PostgreSQL pgaudit, MariaDB server_audit 플러그인 활용
129 SQL Injection 방지 애플리케이션 수준에서 Prepared Statement 또는 ORM 사용
130 민감 데이터 암호화 개인정보 필드는 AES_ENCRYPT, pgcrypto, 또는 column-level encryption 적용
131 DB 연결 SSL 적용 require_secure_transport=ON(MySQL), ssl = on (PostgreSQL) 및 인증서 적용
132 DB 백업 파일 암호화 백업 후 gpg, openssl, 7z -p 등으로 암호화 저장
133 백업 접근 권한 제한 chmod 600 backup.sql, 전용 계정으로 백업 수행, 접근자 감사 로그 설정
134 DB 백업 무결성 검사 sha256sum 또는 md5sum 등으로 백업본 무결성 검증
135 백업 자동화 및 스케줄링 cron, mysqldump, pg_dump 스크립트 주기 실행
136 복구 테스트 정기 수행 백업 파일을 별도 테스트 환경에 복원 테스트 수행 후 검증
137 복제 환경 보안 설정 MySQL: 복제 계정에 REPLICATION SLAVE만 부여, PostgreSQL: pg_hba.conf IP 제한
138 DB 버전 업데이트 보안 패치 포함된 최신 릴리즈 적용. 변경 전 마이그레이션 테스트 필요
139 서브쿼리, 프로시저 권한 제한 권한 분리 및 실행 계정 제한 (NO CREATE ROUTINE, NO EXECUTE 등)
140 DB 설정 파일 접근 제한 /etc/mysql/my.cnf, postgresql.conf, pg_hba.conf → 640 이하 권한 지정
141 OS 계정과 DB 계정 연계 제한 DB 계정은 DB 내부에서만 관리. OS 계정 로그인 없이 DB 접근 불가
142 외부 연결 포트 접근 차단 iptables 또는 firewalld를 통해 3306/5432 포트는 내부망에서만 허용
143 DB 에러 메시지 최소화 클라이언트에게 DB 내부 정보 포함한 오류 메시지 노출 금지
144 보안 구성 파일 분리 config.json, .env 등에 인증정보 저장 시 파일 권한 제한 (600)
145 보안 설정 검토 자동화 MySQLTuner, pgAudit, pgAdmin 진단 도구 활용
146 DB connection pool 제한 동시 접속 수 제한 설정 (max_connections, work_mem, shared_buffers)
147 서비스 중복 로그인 제한 애플리케이션에서 동일 계정 다중 로그인 차단 로직 구현
148 보안 가이드라인 문서화 운영팀이 준수해야 할 DB 계정 정책, 백업 주기, 접근 권한 등을 명문화
149 로그 tampering 방지 로그 파일 append-only, chattr +a /var/log/mysql.log 설정 등
150 감사 로그 외부 전송 rsyslog, logstash 등을 이용해 감사 로그를 외부 SIEM으로 전송

 

 

📌 주요 설정 파일 위치 요약

소프트웨어명 설정 파일
MySQL/MariaDB /etc/mysql/my.cnf, /etc/my.cnf.d/, /var/log/mysql/
PostgreSQL /etc/postgresql/*/main/postgresql.conf, pg_hba.conf, /var/log/postgresql/
Nginx /etc/nginx/nginx.conf, /etc/nginx/sites-enabled/
Apache /etc/httpd/httpd.conf, /etc/apache2/
Django, Flask 등 .env, settings.py, config.py 등 환경변수 및 키 포함 파일

 

✅ 6. 로깅, 모니터링 및 감사 항목별 적용 방법

번호 점검 항목 적용 방법
151 auditd 설치 및 감사 정책 적용 apt install auditd 또는 yum install audit → /etc/audit/audit.rules, /etc/audit/rules.d/에 모니터링 항목 설정 후 systemctl enable --now auditd
152 rsyslog 또는 syslog-ng 구성 /etc/rsyslog.conf 또는 /etc/syslog-ng/syslog-ng.conf 설정 → /var/log/ 하위 로그 분류 및 로그 회전 설정
153 로그 회전 및 보관 설정 logrotate 사용 → /etc/logrotate.d/ 하위에 각 서비스별 설정 파일 존재 (예: 로그 주기, 크기, 최대 보관 기간 등)
154 로그 파일 무결성 보호 chmod 600 /var/log/*.log → 중요 로그에 chattr +a 적용 시 append-only 모드로 변경
155 로그 중앙 수집 시스템 연동 로그 수집기(ELK, Graylog, Splunk)에 rsyslog, fluentd, filebeat, journalbeat 등 연동
156 루트 권한 상승 시 로깅 설정 /etc/audit/rules.d/audit.rules에 -w /bin/su -p x -k root_su, -w /usr/bin/sudo 등 추가
157 crontab 변경 감시 audit 또는 inotifywatch /etc/crontab, /var/spool/cron/*으로 변경 탐지
158 cronjob 실행 내역 로깅 /etc/rsyslog.conf에 cron.* /var/log/cron.log 추가, systemctl restart rsyslog
159 프로세스 실행 모니터링 auditd의 execve syscall 또는 auditctl -a always,exit -F arch=b64 -S execve -k process_exec 설정
160 파일 시스템 변경 탐지 (무결성 검사) AIDE, tripwire 설치 후 초기화 → aide --check 주기 실행, 변경사항 리포트
161 rootkit 탐지 도구 활용 rkhunter --update && rkhunter --check 또는 chkrootkit 사용
162 리소스 사용량 이상 탐지 top, htop, glances, vmstat, nmon 또는 collectd, netdata, prometheus 등 연동
163 디스크 용량 알림 설정 df -h 기반 diskcheck.sh 스크립트 + crontab 또는 Prometheus AlertManager 연동
164 로그인 이력 감사 last, lastb, who, faillog, journalctl -u ssh 로 로그인 성공/실패 내역 확인
165 보안 이벤트 SIEM 전송 /etc/rsyslog.d/50-default.conf → 원격 syslog 서버(192.168.0.10:514)로 이벤트 전송 설정
166 서비스 헬스체크 설정 systemctl is-active, monit, nagios, zabbix-agent 등 연동하여 다운/오류 시 알림
167 이상 트래픽 탐지 설정 nethogs, iftop, tcpdump, ntopng 또는 Suricata 기반 IDS 설치
168 sudo, su 로그 알림 자동화 /var/log/auth.log 또는 journalctl _COMM=sudo 에서 grep 후 Slack, Telegram 등 알림 스크립트 설정
169 로그 tampering 방지 로그 디렉토리에 chattr +a 설정 (예: chattr +a /var/log/auth.log)
170 감사 로그 장기 보관 정책 로그 보관 정책 문서화 + logrotate.conf에서 rotate 12 등 설정 후 NAS, 외부 백업 적용