콘텐츠로 건너뛰기
apache access.log
접근 IP TOP 10 선정/차단 🏆

Apache access.log

Apache Access Log는 Apache 웹 서버에서 발생한 HTTP 요청에 대한 로그 정보를 기록하는 파일

웹 서버의 활동을 추적하고 모니터링하기 위해 사용하며, 서버 관리, 분석 및 보안 목적으로 활용

IP 주소 및 호스트

설명: 클라이언트의 IP 주소 및 호스트 이름을 기록

활용: 특정 클라이언트의 액세스 패턴을 파악, 국가/지역별 액세스 추적

시간 및 일자

설명: 요청이 발생한 시간과 날짜를 기록

활용: 특정 시간대의 트래픽 패턴을 파악, 서버 부하 및 활동 분석에 활용

HTTP 메서드 및 URI

설명: 클라이언트가 사용한 HTTP 메서드(GET, POST 등)와 요청한 URI를 기록

활용: 어떤 리소스에 대한 액세스가 많은지, 특정 페이지의 인기도 등을 파악하는 데 사용

상태 코드

설명: 서버에서 반환된 HTTP 응답 상태 코드를 기록

활용: 요청이 성공적인지 여부, 에러 유형, 웹사이트의 성능 등을 평가하는 데 사용

전송된 데이터 양

설명: 클라이언트로부터 서버로 전송된 데이터의 양과 서버로부터 클라이언트로 전송된 데이터의 양을 기록

용: 트래픽 양을 모니터링하고, 대역폭 사용량 및 성능 이슈를 추적하는 데 사용

1. Access.log 포맷 확인

access.log의 기본 포맷 형태

77.246.102.95 - - [04/Feb/2024:07:20:05 +0900] "GET /?page_id=1220 HTTP/1.0" 404 5903 "https://www.zino.kr/?page_id=1220" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36"
42.202.17.144 - - [04/Feb/2024:07:20:27 +0900] "GET / HTTP/1.1" 200 43822 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0"
...
...

2. cat, awk 활용

$ cat access.log|awk '{print $1}' | head -n 10

실행 결과

3. sort, uniq 활용

$ cat access.log|awk '{print $1}'|sort -n | uniq -c

실행 결과

sort -n (데이터 솔팅) -> uniq -c (연속된 데이터 개수 확인)

연속되는 IP 개수(행)이 몇 개인지 확인 가능

+ sort -rn 명령어를 통해 내림차순으로 정렬 가능

4. head 활용

$ cat access.log|awk '{print $1}'|sort -n | uniq -c | sort -rn | head -n 10

실행 결과

sort -n (데이터 솔팅) -> uniq -c (연속된 데이터 개수 확인)

-> sort -rn (내림차순 정렬) -> head -n 10 (상위 10개 값 추출)

5. IP 차단

악성으로 판단되는 IP의 경우 apache .htaccess 파일에 직접 추가하여 IP차단 가능

코드

.htaccess 설정파일 하단 작성 

RewriteCond %{REMOTE_ADDR} ^182.43.31(.)128$
RewriteRule ^ - [F]

.htaccess 파일 수정

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
모든 댓글보기