소개: 감사와 로깅이 중요한 이유
Ubuntu Server의 감사와 로깅은 Ubuntu 서버의 보안, 안정성, 책임성을 유지하는 데 필수적입니다. 시스템 활동에 대한 인사이트를 제공하고, 이상 징후를 탐지하는 데 도움이 되며, GDPR, HIPAA, PCI-DSS와 같은 규제 요구 사항을 준수하는 데 중요합니다.
그러나 많은 시스템은 디스크 공간 사용에 대한 우려나 데이터를 효과적으로 분석할 도구 부족으로 인해 감사를 활성화하지 않습니다. 이 글에서는 이러한 우려를 다루고 실용적이고 확장 가능한 방식으로 감사와 로깅을 구현하는 방법을 안내합니다.
다루는 주제:
- 감사의 실제 사용법과 과제.
- 도구: auditd 를 사용하여 시스템 이벤트를 추적하고 기록하기.
- 감사 로그를 위한 디스크 공간 계획.
- 감사 로그와 시스템 로그를 분석하는 도구.
- 로그 순환 구성 도구: logrotate.
- 고급 모니터링 및 감사 방법
이전 글:
01. Ubuntu Server 소개 – SysOSX: AI & Cloud
02. 첫 Ubuntu Server 설정 방법: 초보자 가이드 – SysOSX: AI & Cloud
03. Ubuntu Server용 Linux 명령줄 마스터하기 – SysOSX: AI & Cloud
04. Ubuntu Server에서 사용자 및 권한 관리: 종합 가이드 – SysOSX: AI & Cloud
05. Ubuntu Server 네트워킹 기초: 종합 가이드 – SysOSX: AI & Cloud
06. Ubuntu Server에 소프트웨어 설치 및 관리: 완전 가이드 – SysOSX: AI & Cloud
07.Ubuntu Server 패치 및 업데이트: 종합 가이드 – SysOSX: AI & Cloud
08. Ubuntu Server 보안 강화: 하드닝 및 보호를 위한 실용적인 단계 – SysOSX: AI & Cloud
1. 시스템 감사의 실제 활용
많은 시스템이 감사를 건너뛰는 이유
감사는 강력하지만 많은 관리자는 다음과 같은 이유로 활성화를 꺼립니다.
- 디스크 공간 사용: 감사 로그는 특히 사용량이 많은 시스템에서 빠르게 커지며 상당한 디스크 공간을 차지할 수 있습니다.
- 성능 오버헤드: 세부적인 감사를 활성화하면 시스템 성능에 약간의 오버헤드가 추가될 수 있습니다.
- 복잡성: 감사 로그는 장황하고 분석에 전문 도구가 필요합니다.
감사 계획 방법
디스크 공간 계획
감사를 효과적으로 계획하려면:
- 로그 증가량 추정하기: 감사를 일시적으로 활성화하고 일주일 동안 로그 크기를 측정하여 로그 증가율을 모니터링하세요.
sudo du -sh /var/log/audit/이 데이터를 사용하여 일간, 주간, 월간 스토리지 요구 사항을 계산하세요. - 전용 스토리지 할당하기: 감사 로그가 루트 파일 시스템을 채우지 않도록 별도의 파티션이나 디스크에 감사 로그를 저장하세요. 예를 들면:
- 로그용 파티션을 만드세요(예:
/var/log/audit). - 필요시 스토리지를 동적으로 확장할 수 있는 도구:
lvcreate(Logical Volume Manager)를 사용하세요.
- 로그용 파티션을 만드세요(예:
- 압축 활성화하기: 도구:
logrotate를 사용하여 오래된 감사 로그를 압축하고 스토리지 요구 사항을 크게 줄이세요. - 보존 정책: 조직의 요구 사항에 따라 보존 정책을 정의하세요. 예를 들면:
- 문제 해결을 위해 로그를 30일간 보관하세요.
- 규정 준수 목적으로 오래된 로그를 외부 스토리지에 보관하세요.
성능 고려 사항
Auditd가 성능에 미치는 영향은 대부분의 시스템에서 미미합니다. 그러나 트래픽이 많은 서버(예: 웹 서버나 데이터베이스 서버)에서는 감사를 활성화한 후 CPU 및 I/O 사용량을 모니터링하세요. 필요한 경우:
- 전체 시스템을 모니터링하는 대신 감사 규칙 범위를 중요한 파일이나 디렉터리로 제한하세요.
- 샘플링 기법을 사용하여 로그 빈도를 줄이세요.
2. 시스템 이벤트 추적 및 기록 도구: auditd 사용법
도구: auditd 는 시스템 감사에 가장 강력한 솔루션 중 하나로 남아 있습니다. 실제 사용에 대한 추가 고려 사항은 다음과 같습니다.
고급 감사 규칙
모든 파일을 감사하는 대신 중요한 영역에 집중하세요.
- 시스템 구성 파일:
sudo auditctl -w /etc/ssh/sshd_config -p wa -k ssh_config_changes
- 중요 디렉터리:
sudo auditctl -w /var/www/html -p rwxa -k web_access
- 사용자 활동:
특정 사용자나 그룹을 모니터링하세요.
sudo auditctl -a always,exit -F uid=1001 -F arch=b64 -S execve -k user_commands
감사 로그 분석 도구
감사 로그는 압도적일 수 있지만 여러 도구를 사용하면 데이터를 정리하고 분석할 수 있습니다.
- Aureport: 감사 로그에서 요약 보고서를 생성합니다.
sudo aureport --summary - Auditbeat: 시각화 및 분석을 위해 감사 로그를 중앙 집중식 ELK 스택으로 전송하는 Elastic의 경량 도구입니다.
- Auditbeat 설치하기:
sudo apt install auditbeat - Elasticsearch나 Logstash로 로그를 보내도록 구성하세요.
- Auditbeat 설치하기:
- Splunk: 고급 검색 및 보고 기능을 갖춘 상용 로그 분석 도구입니다.
3. 감사 로그를 위한 디스크 공간 계획
디스크 공간 계획 예제
다음과 같이 가정해 보겠습니다.
- 일일 감사 로그는 500MB를 사용합니다.
- 로그는 매주 순환되고 원래 크기의 20%로 압축됩니다.
디스크 공간 계산:
- 7일간의 압축되지 않은 로그: 500 MB×7=3.5 GB500MB×7=3.5GB
- 30일간의 압축된 로그: 500 MB×30×0.2=3 GB500MB×30×0.2=3GB
- 필요한 총 스토리지: 3.5 GB+3 GB=6.5 GB3.5GB+3GB=6.5GB
예상치 못한 급증을 고려하여 최소 10GB를 할당하세요.
4. 로그 순환 구성 도구: logrotate
로그 순환은 로그 크기를 관리하는 데 중요합니다. 아래는 감사 로그와 시스템 로그에 대한 고급 구성입니다.
감사 로그 순환하기
감사 로그는 다음 데몬에 의해 자동으로 관리됩니다. auditd 의 순환을 사용자 지정하려면:
- 다음 파일을 편집하세요.
/etc/audit/auditd.conf:
max_log_file = 50 # Maximum size in MB for audit.log
max_log_file_action = rotate # Rotate logs when size exceeds limit
- 구성 테스트하기:
sudo service auditd restart
기타 로그 순환하기
감사가 아닌 로그에는 다음을 사용하세요. logrotate:
- 다음 예:
/var/log/syslog:
/var/log/syslog {
weekly
rotate 4
compress
missingok
notifempty
create 0640 root root
}
5. 고급 모니터링 및 감사 방법
실시간 로그 모니터링
실시간 모니터링은 중요한 이벤트를 탐지하는 데 필수적입니다. 도구와 기법은 다음과 같습니다.
- Logwatch: 일일 로그를 요약하여 관리자에게 이메일로 보냅니다.
sudo apt install logwatch에서 구성하세요. 구성 파일:/etc/logwatch/conf/logwatch.conf. - 중앙 집중식 로그 관리:
- Rsyslog: 로그를 중앙 서버로 전달합니다.
sudo apt install rsyslog구성 파일:/etc/rsyslog.conf를 구성하여 원격 서버로 로그를 보내세요. - Graylog: 로그 분석을 위한 웹 기반 인터페이스를 제공합니다.
- ELK Stack: 확장 가능한 로그 관리를 위한 Elasticsearch, Logstash, Kibana.
- Rsyslog: 로그를 중앙 서버로 전달합니다.
보안 중심 모니터링
- Fail2ban: 로그인 실패 시도를 로그에서 모니터링하고 IP를 차단합니다.
sudo apt install fail2ban
- Tripwire: 침입 탐지를 위해 파일 변경을 탐지합니다.
sudo apt install tripwire
알림 통합하기
다음과 같은 도구를 사용하여 중요한 이벤트에 대한 알림을 설정하세요.
- Nagios: 서버 상태와 로그를 모니터링하여 이상 징후를 찾습니다.
- Prometheus with Grafana: 메트릭과 로그를 실시간으로 추적합니다.
로그 파일 위치
목적이 서로 다른 다양한 로그 파일이 있습니다. 어떤 것에 대한 로그를 찾으려면 가장 관련성 높은 파일부터 파악해야 합니다. 아래는 일반적인 로그 파일 위치 목록입니다.
시스템 로그
시스템 로그는 사용자가 추가한 추가 애플리케이션과 달리 Ubuntu 시스템 자체를 다룹니다. 이러한 로그에는 인증, 시스템 데몬, 시스템 메시지에 대한 정보가 포함될 수 있습니다.
인증 로그
위치: /var/log/auth.log
비밀번호 프롬프트, 명령, 원격 로그인 등 인증 시스템을 추적합니다. 명령: sudo .
데몬 로그
위치: /var/log/daemon.log
데몬은 일반적으로 사용자 상호 작용 없이 백그라운드에서 실행되는 프로그램입니다. 예를 들어 디스플레이 서버, SSH 세션, 인쇄 서비스, 블루투스 등이 있습니다.
디버그 로그
위치: /var/log/debug
Ubuntu 시스템과 애플리케이션의 디버깅 정보를 제공합니다.
커널 로그
위치: /var/log/kern.log
Linux 커널의 로그.
시스템 로그
위치: /var/log/syslog
시스템에 대한 더 많은 정보를 담고 있습니다. 다른 로그에서 아무것도 찾을 수 없다면 아마도 여기에 있을 것입니다.
애플리케이션 로그
일부 애플리케이션은 다음 위치에도 로그를 만듭니다. /var/log. 아래에 몇 가지 예가 있습니다.
Apache 로그
위치: /var/log/apache2/ (하위 디렉터리)
Apache는 다음 하위 디렉터리에 여러 로그 파일을 만듭니다. /var/log/apache2/ . 파일: access.log 은 파일에 액세스하기 위해 서버에 수행된 모든 요청을 기록합니다. 파일: error.log 은 서버에서 발생한 모든 오류를 기록합니다.
X11 서버 로그
위치: /var/log/Xorg.0.log
X11 서버는 각 디스플레이마다 별도의 로그 파일을 만듭니다. 디스플레이 번호는 0부터 시작하므로 첫 번째 디스플레이(디스플레이 0)는 다음 파일에 로그를 기록합니다. Xorg.0.log. 다음 디스플레이(디스플레이 1)는 다음 파일에 로그를 기록합니다. Xorg.1.log, 기타 등등.
사람이 읽을 수 없는 로그
모든 로그 파일이 사람이 읽도록 설계된 것은 아닙니다. 일부는 애플리케이션이 파싱하도록 만들어졌습니다. 아래에 몇 가지 예가 있습니다.
로그인 실패 로그
위치: /var/log/faillog
로그인 실패에 대한 정보를 담고 있습니다. 다음 명령으로 볼 수 있습니다. faillog .
마지막 로그인 로그
위치: /var/log/lastlog
마지막 로그인에 대한 정보를 담고 있습니다. 다음 명령으로 볼 수 있습니다. lastlog .
로그인 기록 로그
위치: /var/log/wtmp
다른 유틸리티가 로그인한 사용자를 파악하는 데 사용하는 로그인 정보를 담고 있습니다. 현재 로그인한 사용자를 보려면 다음 명령을 사용하세요. who .
결론
감사와 로깅은 안전하고 안정적인 Ubuntu 서버를 유지하는 데 필수적입니다. 디스크 공간을 신중하게 계획하고, 로그 분석 도구를 사용하며, 고급 모니터링 방법을 구현하면 일반적인 문제를 극복하고 시스템 활동을 더 잘 파악할 수 있습니다.
규정 준수 요구 사항을 관리하든 서버를 사전에 보호하든, 이 글에서 다룬 기법과 도구는 확장 가능하고 효과적인 로깅 및 감사 전략을 세우는 데 도움이 될 것입니다.
다음 편: Ubuntu Server용 시스템 모니터링 도구
다음 글에서는 모니터링 및 성능 관리에 대해 더 깊이 살펴보겠습니다. 강력한 Ubuntu Server용 시스템 모니터링 도구를 살펴보겠습니다. 예를 들면 Nagios, Prometheus, Grafana, htop등을 사용하여 리소스 사용량을 추적하고, 병목을 감지하며, 서버 성능을 최적화하는 방법을 알아봅니다.
서버를 효율적으로 계속 운영하고 잠재적인 문제가 운영에 영향을 미치기 전에 사전에 해결하는 방법을 알아보려면 다음 편도 기대해 주세요!
3 thoughts on “09. Audit and Logging on Ubuntu Server: A Comprehensive Guide”