Instalação
O source dos três componentes do Osiris estão todos em um único
arquivo (osiris-4.0.3.tar.gz), portanto será necessário copia-lo
tanto para o server (matrix) como client (trinity).
Iremos instalar primeiro o daemon osirismd no server pois ele será
o responsavel por gerenciar os logs gerados pelos clients.
Primeiro crie um usuário e um grupo com nome osiris no seu server,
o osirismd por padrão é executado por esse usuário e grupo por
questões de segurança.
Agora a instalação do osirismd própriamente dita.
ricardo@matrix:~/src/Osiris$ tar zxvf osiris-4.0.1.tar.gz
ricardo@matrix:~/src/Osiris$ cd osiris-4.0.1
ricardo@matrix:~/src/Osiris/osiris-4.0.1$ ./configure
(...)
ricardo@matrix:~/src/Osiris/osiris-4.0.1$ make console
(...)
ricardo@matrix:~/src/Osiris/osiris-4.0.1$ su
ricardo@matrix:~/src/Osiris/osiris-4.0.1# make install
(...)
Install osiris agent? (y/n) [y] n
Install management console? (y/n) [y]
Install CLI? (y/n) [y]
Installation directory for binaries: [/usr/local/sbin]
(...)
Start management console now? (y/n) [y] n
--> to start management console, run: /usr/local/sbin/osirismd
Start scan agent now? (y/n) [y] n
--> to start the scan agent, do sudo /usr/local/sbin/osirisd
(...)
ricardo@matrix:~/src/Osiris/osiris-4.0.1#
Se você utiliza Slackware faça a limpeza abaixo, pois o Slackware
segue o padrão BSD para inicialização e não SystemV apesar de
suportar.
ricardo@matrix:~/src/Osiris/osiris-4.0.1# cd /etc/rc.d
ricardo@matrix:/etc/rc.d# mv osirismd rc.osirismd
ricardo@matrix:/etc/rc.d# rm -R rc[3-5].d
ricardo@matrix:/etc/rc.d# echo "./rc.osirismd start" >> rc.local
ricardo@matrix:/etc/rc.d# exit
ricardo@matrix:~/src/Osiris/osiris-4.0.1$
Para essa versão do osiris (4.0.1) existe um bug nesses script
rc.osrismd. Edite este arquivo e altere a linha "killall osirisd
-TERM" para "killall osirismd -TERM". Perceba que a pessoa deve ter
copiado o script do outro daemon e esqueceu de alterar o nome do
arquivo. Agora vamos instalar o client em uma outra maquina, o
procedimento é bem parecido. Não se esqueça de criar o usuário e o
grupo com nome osiris nas maquinas clients também.
ricardo@trinity:~/src/Osiris$ tar zxvf osiris-4.0.1.tar.gz
ricardo@trinity:~/src/Osiris$ cd osiris-4.0.1
ricardo@trinity:~/src/Osiris/osiris-4.0.1$ ./configure
(...)
ricardo@trinity:~/src/Osiris/osiris-4.0.1$ make agent
(...)
ricardo@trinity:~/src/Osiris/osiris-4.0.1$ cd src/install/
ricardo@trinity:~/src/Osiris/osiris-4.0.1/src/install$ tar zxvf osiris-
agent-4.0.1-release-unknown-Linux-2.4.26.tar.gz
(...)
ricardo@trinity:~/src/Osiris/osiris-4.0.1/src/install$ cd osiris-agent-
4.0.1-release
ricardo@trinity:~/src/Osiris/osiris-4.0.1/src/install/osiris-agent-4.0.
1-release$ su
ricardo@trinity:~/src/Osiris/osiris-4.0.1/src/install/osiris-agent-4.0.
1-release# ./install.sh
Install osiris agent? (y/n) [y]
Installation directory for binaries: [/usr/local/sbin]
(...)
Start scan agent now? (y/n) [y] n
--> to start the scan agent, do sudo /usr/local/sbin/osirisd
(...)
ricardo@trinity:~/src/Osiris/osiris-4.0.1/src/install/osiris-agent-4.0.
1-release#
Faça a limpeza novamente pelo mesmo motivo.
ricardo@trinity:~/src/Osiris/osiris-4.0.1/src/install/osiris-agent-4.0.
1-release# cd /etc/rc.d
ricardo@trinity:/etc/rc.d# mv osirisd rc.osirisd
ricardo@trinity:/etc/rc.d# rm -R rc[3-5].d
ricardo@trinity:/etc/rc.d# echo "./rc.osirisd start" >> rc.local
ricardo@trinity:/etc/rc.d# exit
ricardo@trinity:~/src/Osiris/osiris-4.0.1/src/install/osiris-agent-4.0.
1-release$
Configuração
Primeiro precisamos iniciar o daemon osirismd no server para
iniciar as configurações.
ricardo@matrix:/etc/rc.d#./rc.osirismd start
Starting osirismd:osirismd: missing configuration file,
==> created default in: /usr/local/osiris/osirismd.conf.
unable to load server certificate (/usr/local/osiris/certs/osirismd.crt
)
==> creating one.
Generating RSA key, 2048 bit long modulus.
...+++
..................+++
A primeira configuração deve ser feita localmente através da linha
de comando pois por padrão e segurança a primeira conexão com o
daemon só poderá ser feita desta forma. Nesta primeira conexão será
criado os certificados para podermos fazer uma conexão segura.
Nesta primeira configuração iremos logar com o usuário admin que
por padrão esta sem senha. Em seguida iremos alterar a sua senha
como pode ser visto abaixo.
ricardo@trinity:~$ /usr/local/sbin/osiris
Osiris Shell Interface - version 4.0.1-release
(...)
Are you sure you want to continue connecting (yes/no)? y
>>> authenticating to (localhost)
User: admin
Password:
connected to management console, code version (4.0.1-release).
hello.
WARNING: your password is empty, use the 'passwd' command
to set your password.
osiris-4.0.1-release: passwd admin
Password:
>>> user: (admin) updated.
current login was edited, you must re-authenticate.
>>> authenticating to (localhost)
Password:
connected to management console, code version (4.0.1-release).
hello.
osiris-4.0.1-release:
Agora você já esta na linha de comando do osiris, o funcionamente é
bem simples, veja abaixo dois comandos básicos.
osiris-4.0.1-release: users
[ name ]
admin
total: 1 users.
osiris-4.0.1-release: help
[ Management Commands ]
mhost host new-user edit-filters
edit-mhost edit-host edit-user print-filters
print-mhost-config list-hosts list-users
test-notify new-host delete-user
[ Host commands ]
status list-configs start-scan list-db
watch-host import-config stop-scan base-db
disable-host push-config set-base-db
host-details edit-config list-logs print-db
print-host-config print-config print-log print-db-errors
rm-host rm-config print-db-header
init drop-config rm-db
config verify-config
new-config
[ Misc commands ]
help version quit ssl
For help with a specific command, try: help <command>
osiris-4.0.1-release:
Antes de iniciarmos as configurações dos clients precisamos fazer a
configuração básica do server.
osiris-4.0.1-release: edit-mhost
[ edit management host (localhost) ]
> syslog facility [DAEMON]:
> control port [2266]:
> http host name (uses system name by default) []:
> http control port [2267]:
> notification email []: agent.smith@meudominio.com.br
> notification smtp host [127.0.0.1]:
> notification smtp port [25]:
> authorized hosts:
127.0.0.1
A maioria das opções são as padrões, não pe necessário alterar a
não ser que você saiba o que esta fazendo. Para que as notificações
por e-mail você precisar ter um smtp local (nosso caso) ou interno
que não use autenticação para envio de e-mails.
Modify authorization list (y/n)? [n] y
s) show current listing.
a) add a new authorized host.
r) remove authorized host.
q) quit
> a
> authorized hostname/IP (*=wildcard): 192.168.0.*
No caso acima adicionei a rede 192.168.0.* na lista de hosts
autorizados a se conectar ao server.
s) show current listing.
a) add a new authorized host.
r) remove authorized host.
q) quit
> q
[ management config (localhost) ]
syslog_facility = DAEMON
control_port = 2266
http_port = 2267
http_host =
notify_email = agent.smith@meudominio.com.br
notify_smtp_host = 127.0.0.1
notify_smtp_port = 25
hosts_directory =
allow = 127.0.0.1
allow = 192.168.0.*
Is this correct (y/n)? y
>>> management host configuration has been saved.
osiris-4.0.1-release:
Pronto, o server já esta configurado para recerber os hosts. Inicio
o agent na máquina client para podermos adicionar a mesma no
server.
ricardo@trinity:/etc/rc.d#./rc.osirisd start
Starting osirisd:
Volte para a linha de comando no server para adicionarmos o client
nas configurações. Informe o nome, IP e descrição para o seu client
e mantenha as outras opções padrões.
osiris-4.0.1-release: new-host
[ new host ]
> name this host []: trinity
> hostname/IP address []: 192.168.0.101
> description []: trinity scan agent
> agent port [2265]:
> enable log files for this host? (yes/no) [no]:
No passo abaixo referente a base de verificações aceite todas as
opções padrões. Esse passo é totalmente auto-explicativo.
Scan Databases:
=> keep archives of scan databases? Enabling this option means that the
database generated with each scan is saved, even if there are no
changes detected. Because of disk space, this option is not recommended
unless your security policy requires it. (yes/no) [no]:
=> auto-accept changes? Enabling this option means that detected
changes are reported only once, and the baseline database is
automatically set when changes are detected. (yes/no) [yes]:
=> purge database store? Enabling this option means that none
of the scan databases are saved. That is, whenever the baseline
database is set, the previous one is deleted. (yes/no): [yes]:
Abaixo configure as opções de notificação conforme a sua
necessidade.
Notifications:
=> enable admin email notification for this host? (yes/no) [no]: yes
=> send notification on scheduled scans failures? (yes/no) [no]: yes
=> send scan notification, even when no changes detected (yes/no) [no]:
=> send notification when agent has lost session key (yes/no) [no] : yes
=> notification email (default uses mhost address) []:
Neste próximo passo iremos configurar quando a primeira verificação
será iniciada e a frequência com a qual deve ser feita. A opção
padrão para a primeira verificação é o horário atual da máquina e a
frequência é de 1440 minutos (24 horas, ou melhor, uma vez ao dia).
> configure scan scheduling information? (yes/no) [no]: yes
[ scheduling information for trinity ]
Scheduling information consists of a start time and a frequency value.
The frequency is a specified number of minutes between each scan, starting
from the start time. The default is the current time. Specify the start
time in the following format: mm/dd/yyyy HH:MM
enter the start date and time
using 'mm/dd/yyyy HH:MM' format: [Sun Aug 29 09:14:21 2004]
enter scan frequency in minutes: [1440]
Confirme suas opções e siga em frente.
> activate this host? (yes/no) [yes]:
host => trinity
hostname/IP address => 192.168.0.101
description => trinity scan agent
agent port => 2265
host type => generic
log enabled => no
archive scans => no
auto accept => yes
purge databases => yes
notifications enabled => yes
notifications always => no
notify on rekey => yes
notify on scan fail => yes
notify email => (management config)
scans starting on => Sun Aug 29 09:14:21 2004
scan frequency => daily (every 1440 minutes).
enabled => yes
Is this correct (y/n)? y
>>> new host (trinity) has been created.
Com tudo configurado inicie o host para a primeira verificação.
Note que foi utilizado um arquivo padrão "default.linux" para a
configuração dos arquivos que devem ser checados, falaremos mais
sobre isso mais tarde.
Initialize this host? (yes/no): yes
Initializing a host will push over a configuration, start
a scan, and set the created database to be the
trusted database.
Are you sure you want to initialize this host (yes/no): yes
OS Name: Linux
OS Version: 2.4.26
use the default configuration for this OS? (yes/no): yes
>>> configuration (default.linux) has been pushed.
>>> scanning process was started on host: trinity
osiris-4.0.1-release:
Com o comando abaixo "databases trinity" verificamos se a base para
o host client trinity foi criada corretamente.
osiris-4.0.1-release: databases trinity
This may take a while...
[ name ] [ created ]
* 1 Sun Aug 29 09:26:27
total: 1
(*) denotes the base database for this host.
osiris-4.0.1-release:
Note que abaixo de "[ created ]" esta a data em que a base foi
gerada, se você ver "(incomplete)" é porque a base ainda esta sendo
gerada. Aguarde alguns segundos e verifique novamente até que
apareça a data. Vamos agora selecionar o host "trinity" para
podermos analisa-lo da seguinte forma.
osiris-4.0.1-release: host trinity
trinity is alive.
osiris-4.0.1-release[trinity]:
Perceba que agora o nome do host aparece no prompt do Osiris. Com o
host selecionado podemos executar o comando "list-db" para ver as
verificações que já foram efetuadas.
osiris-4.0.1-release[trinity]: list-db
This may take a while...
[ name ] [ created ]
* 1 Thu Sep 2 11:12:50
2 Fri Sep 3 09:28:35
total: 2
(*) denotes the base database for this host.
Note que neste exemplo já temos duas verificações. Para analisarmos
detalhadamente utilizaremos o comando "print-db" seguido do "name"
da verificação, em nosso exemplo será a "2".
osiris-4.0.1-release[trinity]: print-db 2
This may take a while...
100% [========================================>] 2146304 bytes
h) show database header.
r) list file records.
d) list file record details.
s) list system records.
x) list errors.
q) quit
[trinity:database: 2]:
O prompt foi alterado novamente para identificarmos facilmente que
estamos analisando a base "2" do host "trinity". As diversas opções
podem ser acessadas pela letra que precede o item, para economizar
tempo vamos direto para a última para voltar ao prompt anterior.
[trinity:database: 2]: q
osiris-4.0.1-release[trinity]:
Mas se eu quiser saber as modificações que se ocorreram nos
arquivos? Basta ver os logs da seguitne forma.
osiris-4.0.1-release[trinity]: list-logs
This may take a while...
[ name ] [ date ]
log.temp Fri Sep 3 09:46:28
total: 1
osiris-4.0.1-release[trinity]: print-log log.temp
—------ begin log file --------
compare time: Fri Sep 3 09:46:28 2004
host: trinity
scan config: default.linux (9e115472)
log file: no log file generated, see system log.
base database: 1
compare database: 2
[204][trinity][cmp][/boot/boot_message.txt][checksum][6fb775e855c776c4a
f514fecc7d22ee2cc0167ab,c3d549bfe6106701d64515b9f326764a6db65494]
[211][trinity][cmp][/boot/boot_message.txt][mtime][Sun Aug 29 11:54:43
2004,Fri Sep 3 09:45:06 2004]
[213][trinity][cmp][/boot/boot_message.txt][ctime][Sun Aug 29 11:54:43
2004,Fri Sep 3 09:45:06 2004]
[215][trinity][cmp][/boot/boot_message.txt][bytes][179,187]
Change Statistics:
—--------------------------------
checksums: 1
SUID files: 0
root-owned files: 1
file permissions: 0
new: 0
missing: 0
total differences: 4
—------ end log file --------
osiris-4.0.1-release[trinity]:
Pronto! Agora você já esta apto a usar o básico do Osiris, neste
exemplo usamos a configuração padrão para a verificação dos
arquivos. Este arquivo de configuração fica em
/usr/local/osiris/configs/default.linux. Se você pretender
personalizar essa configuração acesse o site do Osiris e veja nas
documentações a descrição das diretivas deste arquivo.