로그 파일 위치
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 |