quarta-feira, 8 de fevereiro de 2012

Automatizando a execução do Autopsy com o chkconfig

O Autopsy é uma interface gráfica para as ferramentas do The Sleuth Kit. Para ter acesso à interface é preciso iniciar o Autopsy, assim seus scripts geram as páginas da interface, que serão acessadas através de um navegador Web.

A linha de comando para iniciar o Autopsy é simples, pelo prompt do terminal podemos executar:

# autopsy -d /evidencia &

Entretanto, cada vez que o sistema for reiniciado, é preciso executar novamente este comando. Claro que é possível adicionar esta linha de comando no arquivo "/etc/rc.d/rc.local", contudo, esta não é a forma mais elegante para automatizar a execução do Autopsy, principalmente em uma distribuição Fedora.

O Fedora utiliza o comando "chkconfig" para automatizar a execução dos serviços. O chkconfig trabalha com scripts para controlar os serviços. O chkconfig controla quais serviços serão iniciados durante a inicialização da máquina. Cada serviço possui um script e para adequar o Autopsy ao comando chkconfig, é preciso criar o script. A seguir o conteúdo do script para o Autopsy (salve-o com o nome "autopsy"):

-----------------------corte aqui-----------------------
#!/bin/sh
#
# chkconfig: 2345 90 10
# description: Autopsy is a web interface for The Sleuth Kit
#

# Source function library.
. /etc/init.d/functions

[ -x /usr/bin/autopsy ]  || exit 1

RETVAL=0

start(){
    if [ ! -f /var/lock/subsys/autopsy ]; then
    echo -n $"Starting autopsy daemon: "
    daemon autopsy -d /evidencia &
    RETVAL=$?
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/autopsy
    return $RETVAL
    else
        echo $"Autopsy is already running."
    fi

}

stop(){
    if [ -f /var/lock/subsys/autopsy ]; then
    echo -n $"Stopping autopsy daemon: "
    killproc autopsy
    RETVAL=$?
    rm -f /var/lock/subsys/autopsy
    return $RETVAL
    else
        echo $"Autopsy is not running."
    fi
}

restart(){
    if [ -f /var/lock/subsys/autopsy ]; then
    stop
    start
    else
        echo $"Autopsy is not running."
    fi
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        restart
        ;;
    status)
        status autopsy
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart}"
        RETVAL=1
esac

exit $RETVAL
--------------------------------------------------------

Para adicionar o script e ativar o controle do serviço pelo gerenciamento do chkconfig, primeiro é preciso colocar o script no diretório "/etc/rc.d/init.d/" e então executar no prompt do terminal o comando "chkconfig --add nome_do_serviço":

# chkconfig --add autopsy

A partir deste ponto basta executar o comando "chkconfig nome_do_serviço on" para que a devida ligação simbólica seja criada nos diretórios "/etc/rc.d/rcN.d/", especificados no cabeçalho do script:

# chkconfig autopsy on

Com a execução do comando "chkconfig nome_do_serviço off" estas ligações são removidas. Do mesmo modo, pode-se remover o controle do serviço pelo gerenciamento do chkconfig executando o comando "chkconfig --del nome_do_serviço":

# chkconfig autopsy off
# chkconfig --del autopsy

Com a execução do comando "chkconfig autopsy on", o serviço do Autopsy será executado automaticamente na próxima inicialização do sistema. A execução imediata do serviço pode ser feita com a chamada do próprio script pela linha de comando, em algo como "/etc/rc.d/init.d/nome_do_serviço start":

# /etc/rc.d/init.d/autopsy start

Ou também utilizando o comando "service", em algo como "service nome_do_serviço start":

# service autopsy start

Lembrando que estas formas só funcionam para a seção atual, não mantendo para a próxima inicialização da máquina.

Estes scripts usualmente atendem aos argumentos "start", "stop", "status" e "restart", do mesmo modo os comandos que controlam os serviços. O argumento "stop" para o serviço, o argumento "status" mostra a situação atual do serviço e o argumento "restart" reinicia o serviço.

Mesmo para a execução manual do Autopsy, é muito mais elegante realizar através do script em "/etc/rc.d/init.d/". Saiba mais sobre "Configurando Serviços no Linux" em http://dan-scientia.blogspot.com/2009/09/configurando-servicos-no-linux.html e sobre "Computação forense com o Sleuth Kit e Autopsy" em http://dan-scientia.blogspot.com/2010/10/computacao-forense-com-o-sleuth-kit-e.html

Nenhum comentário:

Postar um comentário