아파치(apache) 로그 분석

awk 명령어 : 파일로부터 레코드(record)를 선택하고, 선택된 레코드에 포함된 값을 조작하거나 데이터화하는 것을 목적으로 사용하는 프로그램입니다.

즉, awk 명령의 입력으로 지정된 파일로부터 데이터를 분류한 다음, 분류된 텍스트 데이터를 바탕으로 패턴 매칭 여부를 검사하거나 데이터 조작 및 연산 등의 액션을 수행하고, 그 결과를 출력하는 기능을 수행합니다.

awk ‘{print $1,2,3}’ 띄어쓰기 기준으로 나뉘어서 보여짐

순서 : access_log 확인 후 -> IP가 몇번째에 있는지 확인 -> 아래 명령어 참고


ex) Cat access_log

0.0.0.0 - - [14/Nov/2024:10:27:26 +0900] www.imo-contest.org "GET /html/community/gallery.html?5pOuEanCJYNlCn%2Baglxmno4WkwsS0MibSeA45QzxI6c%3D HTTP/1.1" 200 21100 PID: 3207 TIME: 0

# cat access_log_241114 | grep “14/Nov/2024:10:”

1.1.1.1 - - [14/Nov/2024:10:34:55 +0900] www.imo-contest.org "GET /html/community/recruit.html?6XgRMzCVgfJo4lMLbW%2BmA3wXz0UAcnVuw7oTOLCsn1I%3D HTTP/1.1" 200 13478 PID: 8385 TIME: 0
2.2.2.2 - - [14/Nov/2024:10:34:57 +0900] www.imo-contest.org "GET /html/community/notice.html?AtKy0ljxOJOGl8YFXrY72rGrXvt1Ht%2B6ERC4wpBdwyk%3D HTTP/1.1" 200 19213 PID: 7830 TIME: 0
3.3.3.3 - - [14/Nov/2024:10:34:57 +0900] www.imo-contest.org "GET /html/community/gallery.html?ort%2FjMTBTUWiLuaI1VoYTEseWzozYbQf1dTFMNqkMFs%3D HTTP/1.1" 200 21142 PID: 8363 TIME: 0
4.4.4.4 - - [14/Nov/2024:10:34:57 +0900] www.imo-contest.org "GET /html/community/gallery.html?ES1LWiYPJOByEpcGDuBf7Y%2BURX7rcNqdMYDkqODG850%3D HTTP/1.1" 200 21094 PID: 8385 TIME: 0

# cat access_log | grep “14/Nov/2024:09:” | awk ‘{print $1}’

1.1.1.1
2.2.2.2
3.3.3.3
4.4.4.4
5.5.5.5
6.6.6.6
7.7.7.7
8.8.8.8
9.9.9.9

# cat access_log | grep “14/Nov/2024:09:” | awk ‘{print $2}’

-
-
-
-
-
-
-

sort : 사용자가 지정한 파일의 내용을 정렬하거나, 정렬된 파일의 내용을 병합(Merge)할 때 사용

# cat access_log | grep “14/Nov/2024:09:” | awk ‘{print $1}’ | sort -h

2.2.2.2
2.2.2.2
2.2.2.2
2.2.2.2
1.1.1.1
1.1.1.1
1.1.1.1
1.1.1.1

uniq: 중복된 내용의 행이 연속으로 있으면 하나만 남기고 삭제 -c 옵션 : 같은 라인이 몇번 나오는지 표시

# cat access_log | grep “14/Nov/2024:09:” | awk ‘{print $1}’ | sort -h | uniq -c

      2 1.1.255.160
      1 1.1.203.78
      2 1.1.212.247
      9 1.1.242.140
      4 1.1.246.103
     54 1.1.246.173
     21 1.1.148.83
      8 1.1.149.25

# cat access_log_241114 | grep “14/Nov/2024:09:” | awk ‘{print $1}’ | sort -h | uniq -c | sort -h

    3579 1.1.181.246
    4357 1.1.94.69
    4403 1.1.209.56
    7628 1.1.172.143
    9997 1.1.17.6

less : 파일 또는 명령 출력의 내용을 한 번에 한 페이지씩 표시하는 명령줄 유틸리티입니다. more와 비슷하지만 고급 기능이 있어 파일을 앞뒤로 탐색할 수 있습니다.

less 명령은 대용량 파일을 여는 데 주로 사용됩니다.

공격으로 의심 되는 IP 확인 후

**# cat access_log | grep 1.1.17.6 | less

로그를 보고 의심이 된다면 해당 IP 차단 (error.log도 확인하기)

Leave a Comment