Linux OS는 무료로 사용할 수 있으며, 대부분의 기업에서 사용하고 있다. Linux 시스템에서 커널이나 데몬, 스케줄링 등 여러 프로그램에서 발생한 이벤트들은 각 서비스별로 구분되어 기록된다.
Linix 초기에는 로그와 관련된 패키지를 syslog를 사용하였으나, 이후 syslog의 기능을 대폭 강화한 rsyslog로 대체되었다. rsyslog는 rsyslogd 데몬으로 실행되며 멀티스레드나 TCP, SSL과 같은 여러 기능을 지원하고 MySQL과 같은 데이터베이스와 출력 포맷 제어 등 다양한 기능을 가지고 있다.
아래 Linux 로그 디렉터리 및 파일 목록은 일반적인 상황이며, syslog 또는 rsyslog 설정 파일에서 로그가 저장되는 경로를 별도로 지정할 수 있다는 것을 기억해야 한다. 또한 시스템 설정에 따라 로그가 남을 수 있고 없을 수 있다.
1. /var/log/syslog 또는 /var/log/messages
시스템 전체의 메시지와 정보를 기록한다. 기본적으로 전체 글로벌 시스템의 모든 활동에 대한 데이터 로그로 날짜와 메시지가 발생한 호스트명 및 내부 시스템 또는 응용 프로그램 이름, 발생 메시지 순으로 기록되며, 침해사고가 발생하면 가장 먼저 분석을 해야 한다. 실패한 로그인 시도를 추적하면, 자격 증명 해킹이나 무차별 대입 공격과 같은 의심되는 행위를 조사하는 데 유용하다. syslog 또는 rsyslog facility에 의하여 로그가 기록되며, 설정 파일에서 어떻게 설정하느냐에 따라 기록되는 정보의 종류가 달라진다.
Debian/Ubuntu | /var/log/syslog |
Redhat/CentrOS | /var/log/messages |
2. /var/log/auth.log 또는 /var/log/secure
인증 프로세스를 추적하여 기록되며, 보통 login이나 tcp_wrappers, xinetd 관련 로그가 기록된다. 이외에 useradd, userdel, su 등 계정 조작 내용도 기록되어 있다.
Debian/Ubuntu | /var/log/auth.log |
Redhat/CentrOS | /var/log/secure |
3. /var/log/boot.log
시작 메시지 및 부팅 정보를 추적하여 기록된다.
4. /var/log/maillog 또는 /var/log/mail.log
postfix, smtpd 등 이메일 서비스 실행과 관련된 내용으로, 시간, 호스트명, 데몬명[pid], 메시지 내용 등이 기록된다.
5. /var/log/kern
커널 로그 및 경고 정보가 기록되며, 사용자 지정 커널 문제를 해결하는 데에도 중요하게 활용된다.
6. /var/log/dmesg
장치 드라이버 통신을 위한 중앙 위치 역할을 하며, 이 파일의 메시지를 보려면 dmesg 명령어를 사용해야 한다.
7. /var/log/faillog
실패한 로그인 시도를 기록하면, 자격 증명 해킹 이나 무차별 대입 공격과 같은 의심되는 행위를 조사하는 데 유용하다. faillog 파일을 확인하기 위해서는 faillog 명령어를 사용해야 한다.
8. /var/log/cron
crond에 의해 시스템에서 정기적인 작업에 대한 모든 작업 기록을 보관하고 있다. /etc/ 밑에 있는 cron.hourly, crondaily, cron.weekly, cron.monthly 파일들에 기록되어 있는 작업을 실행한 후에 crond에 의해 실행되었던 프로세스, 응용프로그램 등의 내용이 기록되어 있다.
9. /var/log/daemon.log
동작은 하고 있지만 그래픽으로 표시하지 않는 백그라운드 서비스(ex : ftp, telnet 등)를 관련 메시지를 기록된다.
10. /var/log/btmp
실패한 모든 로그인 시도를 기록한다. btmp는 binary 파일로 last 명령어를 사용하여 확인할 수 있다.
11. /var/log/utmp
사용자의 현재 로그인 상태를 기록한다. 로그 파일은 binary 파일로 w명령어나 who 명령어로 확인이 가능하다. w명령어는 utmp를 참조하여 현재 시스템에 성공적으로 로그인한 사용자 정보, 시스템 로드 정보 및 uptime 정보를 출력해준다.
who 명령어는 utmp를 참조하여 현재 시스템에 성공적으로 로그인한 사용자의 정보와 접속한 클라이언트 ip를 출력한다.
12. /var/log/wtmp
모든 로그인 및 로그아웃을 기록한다. wtmp는 binary 파일로 last 명령어를 사용하여 확인할 수 있으며, 시간순으로 로그인한 IP와 시간 그리고 리부팅한 날짜를 확인할 수 있다.
13. /var/log/lastlog
사용자의 마지막 로그인 시간, 호스트명, 포트 등이 기록되며, lastlog는 binary 파일로 lastlog 명령어를 사용하여 확인할 수 있다.
14. /var/log/yum.log 또는 /var/log/dnf
yum(dnf) 명령 기반 패키지 설치에 대한 정보가 포함되어 있으며, 모든 것이 순조롭게 진행되었는지 확인할 수 있다.
15. /var/log/httpd/
Apache httpd 데몬의 오류 로그 및 액세스 로그 파일이 있는 디렉터리이다. error_log 파일은 httpd에서 발생하는 모든 오류를 기록하며, access_log 파일은 HTTP를 통해 들어오는 모든 요청을 기록한다.
16. /var/log/mysql/mysqld.log 또는 /var/log/mysql.log
MySQL 데몬 mysqld의 시작, 중지 및 재시작뿐만 아니라 모든 디버그, 실패 및 성공 메시지가 기록되며, Debian/Ubuntu의 경우 기본적으로 /var/log/mysql/error.log 파일에 기록된다. 원하는 위치에 로그 파일을 지정하려면 mysql 설정 파일에서 별도로 지정해주면 된다. (참고 MariaDB를 사용하는 경우 : /var/log/mariadb/mariadb.log)
Mysql Geeneeral 로그 확인 방법
Geeneeral 로그는 사용자가 입력하는 쿼리 내용을 기록하는 로그로서 기본적으로 설정이 OFF로 되어 있다.
Geeneeral 설정 확인
mysql> show variables like 'general%';
Geeneeral 로그 사용으로 변경
mysql> set global general_log = ON;
General 로그 파일 위치 설정
mysql> set global general_log_file = '저장하려는 경로/파일명. log';
17. /var/log/spooler
몇 개의 USENET 메일을 제외하고는 일반적으로 아무것도 포함하지 않는다.
18. /var/log/xferlog
xferlog 로그 파일은 proftp 또는 vsftp에서 파일 전송과 관련된 내용이 기록된다.
19. /var/log/audit/
Linux 감사 데몬(auditd)에 의해 기록된 로그들이 존재한다. Audit 시스템은 해당 시스템의 보안관련 정보를 추적할 수 있도록 도와주며, 사전 설정된 규칙에 따라 audit은 시스템에서 발생된 이벤트들은 보안 정책과 그들이 수행한 작업의 위반자를 파악하는데 결정적인 역할을 한다. audit는 추가적인 보안을 시스템에 제공하지 않지만 시스템에 적용된 보안정책 위반을 파악하는데 매우 유용하게 이용된다.
'Security Incident Analysis' 카테고리의 다른 글
[Windows] OpenSaveMRU 분석 (0) | 2022.11.21 |
---|---|
Windows RDP 이벤트 IDCheatsheet (0) | 2022.02.18 |
이메일 발신자 IP 추적 방법 (0) | 2022.02.18 |
[Windows] Windows 주요 프로세스 분석 (0) | 2022.01.12 |