Programming/Bash Shell Script

[Bash Shell Script] Apache ModSecurity audit Log 확인 스크립트 (IP 순위, 국가 순위, GET 순위, POST 순위, Requesy Body 순위)

Nirsa 2020. 6. 24. 11:34
반응형

 

  • Apache ModSecurity audit Log 확인 스크립트

modsec_audit.log 경로만 변경해서 사용 하시면 됩니다.

#!/bin/bash
echo "***********************************"
echo "*    1. IP 요청 순위(TOP 10)      *"
echo "*    2. 국가 요청 순위(TOP 10)    *"
echo "*    3. GET 요청 순위(TOP 10)     *"
echo "*    4. POST 요청 순위(TOP 10)    *"
echo "*    5. Request BODY 순위(TOP 10) *"
echo "*    6. All Request BODY          *"
echo "*    7. 프로그램 종료             *"
echo "***********************************"
echo -e "  ==> 번호 입력: \c"
while read select
do
        case $select in
        1)
                echo -e "\033[31m-----------------------IP 요청 순위(TOP 10)-----------------------\033[0m"
                cat modsec_audit.log | grep X-Forwarded-For | sort | uniq -c | sort -nr | head -n 10
                echo -e "\033[31m------------------------------------------------------------------\n\033[0m"
        ;;

        2)
                echo -e "\033[31m-----------------------국가 요청 순위(TOP 10)---------------------\033[0m"
                cat modsec_audit.log | grep CF-IPCountry | sort | uniq -c | sort -nr | head -n 10
                echo -e "\033[31m------------------------------------------------------------------\n\033[0m"
        ;;

        3)
                echo -e "\033[31m-----------------------GET 요청 순위(TOP 10)----------------------\033[0m"
                cat modsec_audit.log | grep GET | sort | uniq -c | sort -nr | head -n 10
                echo -e "\033[31m------------------------------------------------------------------\n\033[0m"
        ;;

        4)
                echo -e "\033[31m----------------------POST 요청 순위(TOP 10)----------------------\033[0m"
                cat modsec_audit.log | grep POST | sort | uniq -c | sort -nr | head -n 10
                echo -e "\033[31m------------------------------------------------------------------\n\033[0m"
        ;;

        5)
                echo -e "\033[31m---------------------Request BODY 순위(TOP 10)--------------------\033[0m"
                #cat modsec_audit.log | grep -A1 "\-C--" | grep -v "\-C--" | grep -v "\-\-"
                cat modsec_audit.log | grep -A1 "\-C--" | grep -v "\-\-" | sort | uniq -c | sort -nr | head -n 10
                echo -e "\033[31m------------------------------------------------------------------\n\033[0m"
        ;;

        6)
                echo -e "\033[31m-------------------------All Request BODY-------------------------\033[0m"
                #cat modsec_audit.log | grep -A1 "\-C--" | grep -v "\-C--" | grep -v "\-\-"
                cat modsec_audit.log | grep -A1 "\-C--" | more
                echo -e "\033[31m------------------------------------------------------------------\n\033[0m"
        ;;

        7)
        exit;;

        *)
                echo -e "\033[31m------------------------------------------------------------------\033[0m"
                echo -e "\033[31m-               보기 숫자 중 하나를 선택 해주세요.               -\033[0m"
                echo -e "\033[31m------------------------------------------------------------------\n\033[0m"
        ;;
        esac

        echo "***********************************"
        echo "*    1. IP 요청 순위(TOP 10)      *"
        echo "*    2. 국가 요청 순위(TOP 10)    *"
        echo "*    3. GET 요청 순위(TOP 10)     *"
        echo "*    4. POST 요청 순위(TOP 10)    *"
        echo "*    5. Request BODY 순위(TOP 10) *"
        echo "*    6. All Request BODY          *"
        echo "*    7. 프로그램 종료             *"
        echo "***********************************"
        echo -e "  ==> 번호 입력: \c"
done

 

반응형