본문 바로가기
OS/Linux

기본 디렉토리 구조와 역할 및 로그 종류

by Mostlove 2025. 7. 21.
728x90
반응형

📁 리눅스 기본 디렉토리 구조와 역할<details>

디렉토리  서명
/ 루트 디렉토리. 모든 경로의 시작점
/bin 기본 명령어 실행 파일 저장 (ex: ls, cp, mv)
/sbin 시스템 관리용 관리자 명령어 (ex: shutdown, reboot)
/etc 시스템 설정 파일 (ex: passwd, hosts, fstab)
/home 일반 사용자들의 홈 디렉토리 (/home/사용자명)
/root 루트 사용자 홈 디렉토리
/usr 사용자용 프로그램, 라이브러리 등 (하위 /usr/bin, /usr/lib 등 포함)
/var 가변 데이터 저장소, 주로 로그파일, 메일, 캐시 등
/tmp 임시 파일 저장소 (재부팅 시 비워짐)
/boot 부팅 관련 파일 저장소 (vmlinuz, initrd, grub)
/lib, /lib64 라이브러리 파일들 (명령어 실행 시 필요한 공유 라이브러리)
/dev 디바이스 파일 (ex: /dev/sda, /dev/null)
/proc 가상 파일시스템, 커널 정보 제공 (ex: /proc/cpuinfo)
/sys 커널과 하드웨어 정보 제공 (장치 드라이버 등 관리)
/media, /mnt 외부 장치 마운트 포인트

💡 /usr/local은 사용자가 설치한 프로그램을 관리하는 위치야.


📜 주요 로그 파일 종류 (위치: /var/log/)

로그 파일  설명
messages 시스템 전반의 일반 메시지와 오류 정보 (syslog 기반)
syslog 시스템 로그 (Ubuntu 등 Debian 계열에 많음)
dmesg 부팅 시 커널 메시지 (하드웨어 관련 메시지 등 포함)
auth.log 또는 secure 인증 관련 로그, 로그인 시도, sudo 사용 등
boot.log 부팅 과정에서 발생한 메시지 로그
kern.log 커널 관련 메시지 로그
cron 크론 잡(cron job) 실행 기록
maillog 또는 mail.log 메일 서버 관련 로그
Xorg.0.log X 서버(그래픽 시스템) 로그
httpd/, nginx/ 웹서버 관련 로그 (access.log, error.log 등)
apt/ APT 패키지 설치, 업데이트 로그
yum.log RHEL/CentOS 등에서의 패키지 설치 로그
lastlog 사용자 마지막 로그인 기록
btmp 로그인 실패 기록 (이진 로그로 lastb 명령으로 확인)
wtmp 로그인/로그아웃 기록 (who, last 명령으로 확인)
utmp 현재 로그인한 사용자 정보 (who, w 명령으로 확인)

✅ 참고 명령어

  • journalctl : systemd 기반 시스템 로그 전체 보기
  • dmesg : 커널 메시지 확인
  • cat /var/log/messages : 시스템 메시지 확인
  • last, lastb : 로그인/로그아웃 기록 보기

📖 1. 로그 확인 방법

🔹 시스템 로그 확인 명령어

명령어 설명
cat, less, tail 로그 파일 내용 확인less /var/log/messages, tail -n 100 /var/log/syslog
tail -f /var/log/messages 실시간 로그 모니터링
grep 키워드 검색grep "error" /var/log/messages
journalctl systemd 기반 로그 뷰어 (Ubuntu, CentOS 7 이상)journalctl -xe, journalctl -u sshd
dmesg 커널 부팅 메시지 확인
last, lastb 로그인/실패 기록 보기 (/var/log/wtmp, /var/log/btmp)

🔸 예시

# SSH 접속 실패 내역 확인
grep "Failed password" /var/log/auth.log

# 최근 50줄만 보기
tail -n 50 /var/log/syslog

# systemd 서비스 로그 확인
journalctl -u ssh.service

🔍 2. 로그 분석 팁

✅ 주요 키워드로 분석

  • "error", "fail", "denied" 등으로 grep 검색
  • 포트스캔, 무차별 로그인 시도 탐지 가능

✅ 시간 기준 분석

# 최근 1시간 이내 로그
journalctl --since "1 hour ago"

# 특정 날짜 기준
journalctl --since "2025-07-20 00:00:00" --until "2025-07-21 00:00:00"

✅ auth 로그 분석 예시

grep "Accepted" /var/log/auth.log      # 성공한 로그인
grep "Failed" /var/log/auth.log        # 실패한 로그인
grep "sudo" /var/log/auth.log          # sudo 사용 추적

⚙️ 3. 로그 커스터마이징 방법

🔹 rsyslog 설정 (전통적인 로그 시스템)

파일: /etc/rsyslog.conf 또는 /etc/rsyslog.d/*.conf

# 예시: 모든 cron 로그를 별도 파일에 저장
cron.*    /var/log/cron.log

설정 변경 후 재시작:

sudo systemctl restart rsyslog

🔹 logrotate 설정 (로그 파일 자동 관리)

파일: /etc/logrotate.conf, /etc/logrotate.d/*

기능:

  • 로그 용량 초과 시 압축
  • 오래된 로그 삭제
  • 지정 주기마다 회전(rotate)
/var/log/secure {
    weekly
    rotate 4
    compress
    missingok
    notifempty
}

➡️ 위 설정은 /var/log/secure를 주마다 회전, 4개까지 유지, gzip으로 압축한다는 뜻이야.

🔹 journalctl 설정 (systemd)

설정 파일: /etc/systemd/journald.conf

[Journal]
Storage=persistent
SystemMaxUse=500M
  • Storage=persistent: 재부팅해도 로그 유지
  • SystemMaxUse: 최대 저장 용량 제한

재시작:

sudo systemctl restart systemd-journald

🔐 보안 로그 분석 팁

분석 항목 예시

분석 항목 에시
SSH 로그인 실패 grep "Failed password" /var/log/auth.log
루트 권한 사용 추적 grep "sudo" /var/log/auth.log
포트 스캔 탐지 dmesg, journalctl -k 에서 "port scan" 등 확인
의심스러운 프로세스 ps aux, top, netstat, lsof 명령과 함께 사용

 

반응형

'OS > Linux' 카테고리의 다른 글

NAS 서버  (1) 2025.03.27
Kerberos Authentication Server  (0) 2025.03.26
Remote Log Server  (0) 2025.03.26
DHCP  (0) 2025.03.26
NTP 설정 및 활용  (0) 2025.03.26