Nginx / Apache 접근 로그 분석 기초 (awk, grep)

2026. 4. 17. 16:11·1. Linux/시스템 관리

로그 파일 위치

Nginx  : /var/log/nginx/access.log
Apache : /var/log/httpd/access_log


1. grep 기본 활용

grep "404" /var/log/httpd/access_log | tail -n 5
# 404 에러 요청만 조회+ 최근 5개

grep "POST" /var/log/httpd/access_log | tail -n 5
# POST 요청만 조회+ 최근 5개

grep "192.168.0.1" /var/log/httpd/access_log | tail -n 5
# 특정 IP 접속 조회+ 최근 5개


2. awk 기본 활용

awk '{print $1}' /var/log/httpd/access_log | tail -n 5
# 접속한 클라이언트 IP만 출력

awk '{print $9}' /var/log/httpd/access_log | tail -n 5
# HTTP 상태 코드 출력

awk '{print $7}' /var/log/httpd/access_log | tail -n 5
# 요청 URL 출력


3. 접속 IP 통계

awk '{print $1}' /var/log/httpd/access_log | sort | uniq -c | sort -nr | tail -n 5
# 접속 IP별 요청 횟수 정렬


 

활용 사례

- 비정상 접속 IP 탐지
- 에러(404, 500) 분석
- 트래픽 패턴 파악
- 공격 시도 확인

정리

grep은 조건 검색, awk는 필드 분석에 사용하여 로그를 효율적으로 분석한다.

 

Ubuntu용 /fail2ban 설정 (Apache 사용하는 경우)

Fail2Ban 이란

Fail2Ban은 서버 로그를 분석하여 반복적으로 비정상 접속을 시도하는 IP를 자동으로 차단하는 보안 도구이다.

동작 방식

로그 파일(SSH, 웹 서버 등)을 모니터링하여 일정 횟수 이상 실패 또는 의심 행동이 발생하면 해당 IP를 iptables 또는 firewalld를 통해 차단한다.


주요 기능

- SSH 무작위 로그인 공격 차단
- 웹 서버(nginx, apache) 공격 자동 차단
- 특정 횟수 이상 실패 시 자동 IP 차단
- 일정 시간 또는 영구 차단 가능

구성 요소

jail    : 차단 규칙 설정
filter  : 로그에서 패턴을 찾는 규칙
action  : 차단 방법 (iptables 등)

 

vim /etc/fail2ban/jail.local

[DEFAULT]
bantime = -1
findtime = 60
maxretry = 5
backend = systemd
ignoreip = 127.0.0.1/8 ::1

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = %(sshd_log)s
maxretry = 3

[apache-auth]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache2/error.log
maxretry = 3

[apache-badbots]
enabled = true
port = http,https
filter = apache-badbots
logpath = /var/log/apache2/access.log
maxretry = 2

[apache-noscript]
enabled = true
port = http,https
filter = apache-noscript
logpath = /var/log/apache2/access.log
maxretry = 3

적용:

systemctl restart fail2ban
fail2ban-client status
fail2ban-client status sshd
fail2ban-client status apache-badbots

 

'1. Linux > 시스템 관리' 카테고리의 다른 글

서버 하드웨어 구성품 확인 및 조립  (0) 2026.04.27
서버 하드웨어 구성품 확인  (0) 2026.04.23
리눅스 트래픽 제어 및 네트워크 모니터링(iftop,netstat,ss)  (1) 2026.04.17
systemd 데몬 관리(systemctl,journalctl 로그 보기)  (0) 2026.04.16
부트 프로세스 및 복구 (Rescue mode, fsck)  (0) 2026.04.16
'1. Linux/시스템 관리' 카테고리의 다른 글
  • 서버 하드웨어 구성품 확인 및 조립
  • 서버 하드웨어 구성품 확인
  • 리눅스 트래픽 제어 및 네트워크 모니터링(iftop,netstat,ss)
  • systemd 데몬 관리(systemctl,journalctl 로그 보기)
데구르르릉
데구르르릉
데구르르릉
  • 데구르르릉
    데구르르릉
    데구르르릉
  • 전체
    오늘
    어제
    • 분류 전체보기 (77)
      • 0. Windows (1)
      • 1. Linux (24)
        • OS 설치 (5)
        • 시스템 관리 (14)
        • 운영 & 복구 (1)
        • 기타 (4)
      • 2. Network (3)
        • DNS (1)
        • 네트워크 기초 (0)
        • FTP (2)
      • 3. Server (7)
        • Web Server (3)
        • WAS (2)
        • Reverse Proxy (2)
      • 4. Database (14)
        • MySQL (12)
        • Oracle (2)
        • SQL (0)
        • MS-SQL (0)
      • 5. Mail (7)
        • 메일 서버 (6)
        • 메일 보안 (1)
      • 6. Security (8)
        • 방화벽 (4)
        • 접근제어 (1)
        • 보안 대응 (3)
      • 7. Storage & Backup (10)
        • 스토리지 (6)
        • 백업 (3)
        • 로그 (1)
      • 8. Monitoring (0)
      • 9. Network Service (1)
        • VPN (1)
        • 원격접속 (0)
      • 10. SSL (2)
      • 11. Virtualization (0)
        • VMware (0)
        • VDI (0)
      • 12. Kubernetes (0)
      • 13. Cloud (0)
        • AWS (0)
        • NHN (0)
  • 블로그 메뉴

    • 카테고리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
데구르르릉
Nginx / Apache 접근 로그 분석 기초 (awk, grep)
상단으로

티스토리툴바