• BASH HISTORY 를 SYSLOG 에 남기기

    Bash 쉘은 명령어 히스토리 기능을 제공 합니다. history 명령어를 입력하면 지금까지 사용했던 Bash 명령어들이 모두 보여 줍니다.

    이러한 기능은 사용자 홈 디렉토리에 ‘.bash_history’ 파일에 기록되어 집니다. 그러나 여러 사람이 사용하는 서버에서 각 사용자 홈 디렉토리에 히스토리를 남기기 보다는 리눅스의 syslog 에 남기게 함으로써 사용자가 못된 일을 하는지 않하는지를 감시하도록 하면 좋을 것입니다.

    이 문서는 Bash History 를 Syslog 에 남기기 에 대한 것입니다.

    1. logger 를 이용한 방법

    logger 는 쉘 명령어를 syslog 에 적도록하는 모듈 입니다. 이를 이용하면 수동으로 syslog 에 기록을 남기게 할 수 있습니다. 이를 이용해서 다음과 같이 /etc/profile.d/cmd.sh 파일을 작성 합니다.

     

    function history_to_syslog
    {
    declare cmd
            who=$(whoami)
            cmd=$(history 1)
            TTY=tty
            HISNAME="basename $TTY"
    ip=who |grep pts/${HISNAME} |cut f 2 d \(|cut f 1 d \)
    logger -p local7.notice -- IP=$ip USER=$who, PID=$$, PWD=$PWD, CMD=$cmd
    }
    trap history_to_syslog DEBUG || EXIT
    HISTSIZE=10000
    HISTFILESIZE=1000000
    HISTTIMEFORMAT="%F %T "
    export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE HISTTIMEFORMAT INPUTRC
    declare -r HISTFILE

    이제 이를 Source 해 줍니다.

    2. rsyslog 설정

    다음과 같이 설정을 해줍니다.

    이렇게하면 ‘/var/log/bash_history’ 파일에 Bash 쉘 히스토리가 남기며 ‘192.168.0.2’ 서버에 로그를 전송합니다.

     

    출처 : http://linux.systemv.pe.kr/bash-history-%EB%A5%BC-syslog-%EC%97%90-%EB%82%A8%EA%B8%B0%EA%B8%B0/

     

    Comments

    comments

    Post Tagged with ,

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.