Páginas

Oito anos de testes

shyrul@debian:~$ A grande idéia de postar tudo aqui, veio do simples fato de que depois de 8 anos de pesquisas, testes e muitos clientes satisfeitos, eu nunca tinha juntado todo o material que consegui com o decorrer do tempo, em um só lugar. A gente ai ficando velho e acaba esquecendo de coisas básicas. E também gostaria de deixar minha contribuição para todos.

.

sexta-feira, 18 de novembro de 2011

Adicionando hosts no Nagios3

Tem um monte de tutoria por ai explicando com instalar o Nagios3. O problema é para quem nunca viu colocar os hosts para monitorar. Vou postar um pequeno aquivo de configuração bem simples, somente para monitorar por ip.
Dentro da pasta /etc/nagios3/conf.d é que estão os arquivos .cfg, ex. host.cfg que contem as informações do host a ser monitorado. O arquivo fica mais ou menos assim:

###############################################################################
# SERVIDOR (NOME FICTICIO DO SERVIDOR)
################################################################################

################################################################################
# DEFINICOES DE HOST (LOCAL ONDE SE DEFINE AS CONFIGURACOES DO HOST)
################################################################################

define host{
use generic-host
host_name HostX (aqui voce coloca o nome do host)
alias Cliente Empresarial (nome alternativo, pode ser o mesmo do host_name)
address 192.10.10.71 (ip do servidor a ser monitorado)
check_command check-host-alive
max_check_attempts 2
check_interval 1
notification_interval 30
notification_period 24x7
notification_options d,u,r
contact_groups admins
#parents Roteador Cisco (descomente esta linha se for usar o mapa, pois ela faz a ligação com outro host, só mudar o Roteador Cisco pelo host_name do servidor a quem ele se liga)
}


################################################################################
# DEFINICOES DE SERVICOS
################################################################################

################################################################################
# PING
################################################################################

define service{
host_name HostX (aqui voce coloca o nome do host igual o lá de cima, caso contrario, não funciona)
service_description PING
check_command check_ping!200.0,20%!600.0,60%
max_check_attempts 2
normal_check_interval 1
retry_check_interval 1
check_period 24x7
notification_interval 30
notification_period 24x7
notification_options w,c,r
contact_groups admins
}

#################################################################################

Salve com a extensão .cfg dentro da pasta  /etc/nagios3/conf.d
Re-inicie o nagios com o comando:

# /etc/init.d/nagios3 reload e depois /etc/init.d/nagios3 restart
Caso nenhum erro seja encontrado, ele volta a funcionar normalmente. Se alguma coisa estiver errada, ele vai dizer exatamente onde é. Dai só conferir e editar.




Mudando o mac da interface do mikrotik

Atendendo a pedidos, estou postando um pouco sobre mikrotik. Uma grande dúvida dos meus amigos é como mudar o mac da ether. Para todo mundo parar de me perguntar o tempo todo, esta aqui:
no terminal

>interface
/interface> ethernet
/interface ethernet> edit
number: ether1 (ou a ether que voce preferir)
valvu-name: mac-address
Vai abrir um editor parecido com o nano te mostrando o mac que esta na interface:
00:01:02:03:04:05
Edite conforme sua preferencia, depois feche com Ctrl + o
Mac editado!

Acesso total a um diretório

Tem dias que nada da certo mesmo. Voce vai lá, prepara o servidor web de um cliente ou um diretório com tudo liberado na rede para o seu novo servidor (ou pior, para um cliente chato cujo o preço que voce cobrou foi mais chato ainda) e a porcaria da pasta não abre. O diretório de download da pasta www não deixa baixar os arquivos, o blog que o cliente queria instalar não abre, ou não aparecem as imagens, ou fica todo torto, ou simplesmente, nem instala! Resolve-se assim:

# chmod 777 -R /var/www/blog

Resolvido! Mas não esquecer que a segurança da pasta esta 0, pois o acesso a ela é total. Outra coisa, atenção no -R, tem que ser r maiúsculo! 

Limpando o histórico do terminal

É sempre útil colocar para cima e aparecer os comandos antigos que voce digitou. Mas além de te deixar um preguiçoso de mão cheia, te faz esquecer. Pior, te impede de aprender. Fica muito chato quando tem mais de um administrador na maquina. Ai fica um olhando o que o outro faz. Isso se resolve assim:

# history -c

Pronto!

Acesso via proxy pelo terminal no Debian e CentOs

Depois de apanhar bastante com o proxy com login que foi colocado na empresa onde trabalho (a ideia de girico não foi minha... aliás, nem participei disso) não deixava eu fazer meu apt-get update, muito menos o yum update no CentOs onde fica o servidor virtual do meu setor. Todas as regras que achei e me passaram não funcionavam. Então fiz uma pequena mistura de regras e funcionou muito bem! Três passos simples:


# export http_proxy=http://seu.login:sua senha@192.168.0.71:3128

# set http_proxy=http://seu.login:sua.senha@192.168.0.71:3128

# env | grep http_proxy

No ultimo comando ele monstra a mensagem se seu login e senha foram aceitos assim:
# http_proxy=http://seu.login:sua.senha@192.168.0.71:3128
Não esquecer de trocar o ip 192.168.0.71:3128 pelo o ip do seu server proxy e a porta que ele usa.
Pronto! Lembrando que... A cada update ou cada download eu tinha que repetir a operação porque parecia que ele deslogava.

quarta-feira, 15 de junho de 2011

Nova instalação do Nagios3 no Debian Lenny


# echo "deb http://ftp.debian.org/debian stable main" > /etc/apt/sources.list

Atualiza repositório:

# apt-get update

Instala as dependências:

# apt-get -f install apache2 build-essential libgd2-xpm-dev
# apt-get -f install libjpeg62 libjpeg62-dev libpng12-dev
# apt-get -f install snmp libsnmp-base
# apt-get -f install libssl-dev openssl
# apt-get -f install mc rsh-server openssh-server
# apt-get -f install php5 php-pear libsnmp9-dev rcconf
# apt-get -f install libsasl2-2 libsasl2-modules sasl2-bin mutt postfix

Instalando o Nagios

Quem busca uma ferramenta eficaz e poderosa para monitoramento de servidores, eis aqui uma solução de grande utilidade, o Nagios.

Cria usuário nagios com senha nagios:

# useradd -m -s /bin/bash nagios
# passwd nagios

Cria grupo nagios:

# groupadd nagios
# usermod -G nagios nagios

Cria grupo nagcmd:

# groupadd nagcmd
# usermod -a -G nagcmd nagios
# usermod -a -G nagcmd www-data

Baixa Nagios 3:

# apt-get install nagios3

Cria usuário nagiosadmin para acesso a web:

# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Reinicia apache:

# /etc/init.d/apache2 restart

A partir deste momento, você já consegue acessar o Nagios via browser digitando:

http://ipdoservidornagios/nagios

Utilizando o usuário nagiosadmin e senha definida acima.


Instalando Openfire no Debian

# nano /etc/apt/sources.list 


adicione:
deb http://ftp.br.debian.org/debian/ etch main contrib non-free
deb-src http://ftp.br.debian.org/debian/ etch main contrib non-free

deb http://security.debian.org/ etch/updates main contrib non-free
deb-src http://security.debian.org/ etch/updates main contrib non-free

deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free

deb http://us.archive.ubuntu.com/ubuntu/ dapper-backports main restricted universe multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ dapper-backports main restricted universe multiverse



#apt-get update 


#apt-get install sun-java6-bin 


Agora com o MySQL instalado, vamos criar o banco de dados para o Openfire:

# mysql
mysql> mysql -u USERNAME -p
mysql> CREATE DATABASE openfire;
mysql> exit 



ou


# mysqladmin -u root -p create openfire


Agora baixe o openfire no site:
http://www.igniterealtime.org


depois acesse o arquivo e instale


#dpkg -i openfireX.X.deb


Acesse o servidor:
http://seu ip:9090



Mudando o IP pelo terminal do Debian


Edite o arquivo /etc/network/interfaces de acordo com as suas necessidades.

uto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 10.0.0.5
netmask 10.255.255.255

network 10.0.0.0
broadcast 10.0.0.255
# coloque aqui o IP do gateway (a máquina ou modem que conecta diretamente #à internet
gateway 10.0.0.1

Por último, para configurar o DNS, edite o arquivo /etc/resolv.conf de cada máquina e preencha da seguinte maneira:
nameserver 200.192.168.1
Repare que você pode configurar infinitos DNS, tantos quantos queira 
Para adicionar mais um por exemplo, só adicionamos 1 linha:
nameserver 200.192.168.1
nameserver 200.128.68.20

#/etc/init.d/networking restart

instalando LAMP no Debian



#apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert


#apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php-pear php5-imagick php5-imap php5-mcrypt php5-mhash php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

#apt-get install mysql-server mysql-client libmysqlclient15-dev

sábado, 4 de junho de 2011

Driver virtual para linux (tipo DaemonTools)

Para montar:
sudo mkdir /mnt/nomedocd
sudo mount /local-do-iso.iso -o loop /mnt/nomedocd

MONTAR IMAGENS ISO, MDF, CUE , NRG NO UBUNTU


O mais básico, montar uma imagem .ISO:


Código:
sudo mount -t iso9660 -o loop arquivo.iso /diretorio/de/montagem


Para montar as outras extensões, é necessário convertê-las para .ISO.


Converter BIN e CUE para .ISO:
Para isso, utilizaremos o programa bchunk.
Código:
sudo apt-get install bchunk
bchunk archivo.bin archivo.cue nuevonombre.iso


Converter .NRG para .ISO:
Nesse caso, o programa é o nrg2iso:
Código:
sudo apt-get install nrg2iso
nrg2iso archivo.nrg nuevoarchivo.iso


Converter .MDF e .MDS para .ISO:
Desta vez, será usado o mdf2iso:
Código:
sudo apt-get install mdf2iso
mdf2iso archivo.mdf nuevaimagen.iso


Converter .IMG para .ISO
Basta instalar o ccd2iso:
Código:
sudo apt-get install ccd2iso
ccd2iso imagen.img imagen.iso

sexta-feira, 3 de junho de 2011

Montando SAMBA + ANTIVIRUS + LIXEIRA



PDFImprimirE-mail
Funções do servidor:

- Compartilhamento de pastas e arquivos
- Escaneamento de Anti vírus em tempo real, para as pastas compartilhadas (ClamAv ) usando o modulo Scannedonly.
- Lixeira para exclusão de arquivos em rede
- Auditoria de acesso as pastas compartilhadas
Iniciando Foi escolhida a distribuição Debian 5 para a montagem deste tutorial. Para iniciar basta instalar o Debian com as opções de
[x] Sistema Básico
[x] Servidor de arquivos
[x] Ambiente Desktop

*Obs .Caso vc tenha escolhido usar o Ubuntu pule basta ignorar as opções de RCCONF.
As configurações de partições e outras opções não são tão importantes e podem ser escolhidas a vontade, lembrando que este tutorial deva servir para instalação no Ubuntu.
Após instalar o sistema entre como root e no terminal instale o sistema de SSH-Server
# apt-get install openssh-server

Isso permitirá acesso remoto ao seu sistema, o que facilitará muito a manutenção.
Agora conectado via SSH no seu servidor será necessário ajustar os repositórios do APT para atualização dos módulos necessários.
Começe fazendo um backup do arquivo de Sources list.
# cp /etc/apt/sourceslist /etc/apt/sources.list.default

Agora vamos editar ele e adicionar as seguintes linhas
# nano /etc/apt/sources.list
Salve o arquivo e logo em seguida realize a atualização dos pacotes
# apt-get update

Caso você tenha acabado de instalar o seu sistema e usou o método de baixar os pacotes via internet isso não será necessário, já que os pacotes estão atualizados.
Eu particularmente gosto de otimizar meu sistema desativando alguns serviços que não são necessários neste ambiente. Utilize o comando abaixo para entrar no rcconf e desativar os serviços que não utilizaremos
# apt-get install rcconf

Após instalar execute ele
# rcconf

Desative os seguintes serviços:
* exim4
* mountnfs-bootclean.sh
* mountnfs.sh
* nettalk
* nfs-common
* nfs-kernel-server
* openbsd-inetd
* portmap
* rsyslog
* umountnfs.sh

Agora vamos instalar o Sysklogd
# apt-get install syslogd

E vamos iniciar a instalação do ClamAv Antivirus
# apt-get install clamav clamav-docs clamav-daemon clamav-freshclam

E interessante tbm instalar o pacote de testes de vírus para o ClamAv .
# apt-get install clamav-testfiles

Devemos agora instalar as bibliotecas do ClamAv para compilação posterior do ScannedOnly. Isso é necessário para compilação, sem esta biblioteca não conseguiremos prosseguir com a instalação do AntiVirus.
# apt-get install libclamav-dev

Um problema que sempre ocorre com antvirus instalados em servidores Linux é que o próprio servidor não tem as bibliotecas necessárias para abrir arquivos compactados, isso impede o escaneamento. Para solucionar este problemas vamos instalar os pacotes necessários para abrir vários arquivos como os: arc, bzip2, cab, 7zip, zip e rar.
# apt-get install arc bzip2 cabextract p7zip unzip unrar

Como o Samba-vscan o Scannedonly necessita dos arquivos contendo o código fonte do samba. Como quase toda a instalação está baseada em apt-get , por isso alteramos o souce.list no inicio do tutorial.
Antes de realizar-mos o processo de instalação do pacote com os fontes será necessária a instalação do pacote dpkg-dev, que traz como dependência uma série de pacotes como compiladores, bibliotecas e ferramentas de desenvolvimento como o make.
# apt-get install dpkg-dev

Agora vamos instalar o pacote de fontes do Samba:
# cd /usr/local/src

# apt-get source samba

Ao finalizar ele deve realizar o download de 3 arquivos e deve também criar um diretório referente as fontes do Samba, um arquivos contendo o código fonte, outro contendo os patchs de segurança.
Neste diretório estão os arquivos com os fontes que utilizaremos na compilação do ScannedOnly.
Devemos agora acessar o diretório dos fontes do Samba e gerar o make file, bem como, alguns arquivos headers devido eles conterem alguns prototipos de funções utilizados pelo scannedonly, este procedimento também é necessário na compilação do samba-vscan
# cd samba-3.x.x/source (onde o X deve ser substituido pela versão que foi baixada)
# ./configure
Tome um café
# make proto
Tome outro café
# make install

Obs. Vai demorar para compilar e instalar!
Agora vamos baixar os fonts do ScannedOnly
# cd /usr/local/src

# wget http://olivier.sessink.nl/scannedonly/scannedonly-0.15.tar.bz2

Vamos descompactar e depois gerar os MAKE’S dos arquivos
# tar -xvjf scannedonly-0.15.tar.bz2
# cd scannedonly-0.15
# ./configure -with-samba-source=/usr/local/src/samba-3.2.5/source -with-samba-vfs-dir=/usr/lib/samba/vfs

Observer que o comando é dado de uma vez só, e não dois comandos separados... atente-se tambem pelos parametros passados respeitando os espaços entre cada um deles
Atente ao fato do PATH do diretório dos fontes, onde estou considerando que instalamos o pacote no diretório /usr/local/src, mude o PATH conforme o diretório de trabalho que foi utilizado durante o comando “apt-get source samba”.
Realize a compilação e instação:
# make && make install

Agora devemos criar uma Shell de inicialização do Script par o ScannedOnly
# cd /etc/init.d
# nano scannedonly

Cole o seguinte conteudo dentro do Arquivo:
#!/bin/sh
scannedonly=”/usr/local/sbin/scannedonlyd_clamav”
port=”2020″
quarent_dir=”/quarentena”
$scannedonly -p $port -d $quarent_dir

Vamos alterar a permissão do arquivo para tornar ele um executável
# chmod +x scannedonly

Vamos agora criar um link simbólico para inicialização do daemon
# update-rc.d scannedonly defaults

Ufa, agora vamos partir para o Samba, realizando um backup do arquivo de configuração para consulta futura.

# mv /etc/samba/smb.conf /etc/samba/smb.conf-default

Agora crie um novo arquivo smb.conf.
# nano /etc/samba/smb.conf

[global]
netbios name = fileserver server
string = Servidor de arquivos
workgroup = Rafael
socket options = TCP_NODELAY SO_RCVBUF=102400 SO_SNDBUF=102400
interfaces = lo eth0
bind interfaces only = yes
log level = 0
passdb backend = tdbsam
max log size = 1024
load printers = no
printing = bsd
printcap name = /dev/null
getwd cache = yes
[homes]
comment = Diretorio pessoal - %U
path = /arquivos/%U
read only = no
guest ok = yes
vfs object = recycle full_audit scannedonly
# Auditoria
full_audit:success = open, opendir, write, unlink, rename, mkdir, rmdir
full_audit:prefix = %u|%I|%S
full_audit:failure = none
full_audit:facilit = local5
full_audit:priority = notice
# Antivirus
scannedonly: domain_socket = False
scannedonly: portnum = 2020
scannedonly: scanhost = localhost
scannedonly: hide_noscanned_files = True
# Lixeira recycled:keeptree = yes
recycle:versions = yes
recycle:repository = /lixeira/%U
recycle:exclude = *.tmp, *.log, *.iso, *.wav, *.mp3, *.wmv, *.avi
recycle:excludir = tmp, cache
[lixeira] comment = Lixeira - %U
path = /lixeira/%U
valid users = %U
create mask = 0700
directory mask = 0700
browseable = yes
read only = no
vfs object = scannedonly
# Antivirus
scannedonly: domain_socket = False
scannedonly: portnum = 2020
scannedonly: scanhost = localhost
scannedonly: hide_noscanned_files = True
[quarentena] comment = Diretorio de quarentena
path = /quarentena
valid users = admin
create mask = 0700
directory mask = 0700
browseable = no
read only = no
Edite as configurações de
netbios name = 
server string = 
workgroup =

após salvar execute o comando testparm para verificar possíveis erros no seu arquivo

# testparm

Agora iniciei os serviços do samba
#/etc/init.d/samba restart

Crie os diretórios de Arquivos de usuário, lixeira e quarentena
# mkdir /arquivos /lixeira /quarentena
Agora vamos criar as contas no servidor
# chmod +x gerenciador

E execute ele
# ./gerenciador

Lixeira 
Copie alguns arquivos para o compartilhamento do(s) usuário(s) que você criou, em seguida exclua-o(s) e verifique que o mesmo foi movido para o compartilhamento lixeira.
Arquivos infectados
ANTIVIRUS
Você pode realizar o teste com arquivos infectados utilizando os arquivos de teste que foram instalados com o pacote clamav-testfiles.
Os arquivos se encontram no diretório /usr/share/clamav-testfiles, você pode simplesmente copia-los para o diretório utilizado como compartilhamento pessoal do usuário.

Auditorias!
Você pode visualizar logs de compartilhamento usando o comando
# tail -f /var/log/messages |grep smbd_audit
Para testes com virus basta copier o arquivo infectado dentro da pasta, este deve ser substituido por um arquivo TXT com o nome do arquivo anterior… o arquivo infectado sera movido para a quarentena.
Para verificar o log de arquivos escaneados e infectados use
# tail -f /var/log/syslog |grep scannedonly

A lixeira funciona de forma simples, para testa la basta apagar um arquivo que esteja na pasta. Isso fará com que o servidor mova o arquivo para a pasta “lixeira” de cada usuário, alem disso o servidor guarda as versões de cada arquivo, com um [2] ou [3] se outro arquivo com mesmo nome for deletado anteriormente...

Conclusões 
Através dos módulos VFS do Samba é possível expandir as capacidades de um servidor Samba, sendo que, recursos como Lixeira e Antivirus são muito bem vindos a Servidores de Arquivos pois evitam dores de cabeça maiores devido exclusões acidentais, bem como, infecção de arquivos importantes e claro, que nosso servidor se tranforme em repositório de virus.
Em relação ao módulo Scannedonly, ele permite que o Servidor Samba tenha sua escalabilidade aumentada com relação a ambientes onde é realizado o acesso a muitos arquivos simultâneamente bem como, esses arquivos sejam grandes e/ou compactados, simplesmente graças ao bom desempenho que o Scannedonly proporciona nessas condições.

Material consultado da publicação de Waldemar Dibiazi Junior no http://blognu.wordpress.com/2010/08/31/servidor-antivirus-lixeira-auditoria-debian/
Materiais de apóio: Guia do hardware, Viva o Linux, debian.org

quinta-feira, 2 de junho de 2011

Script para backup Debian


#!/bin/bash

# Armazena a dados do sistema
 DATA=`date +%d/%m/%Y`
 DATARQ=`date +%d%m%Y`
 HORA=`date +%H:%M:%S`
 DIA=`date +%u`
 SEM=`date +%a`

# Indica o nome do arquivo depois de compactado e o local a fazer bkp
 DEST="cd /local do backup/bkp"
 BKP="tar zcfv"
 NOME="$SEM$DATARQ.tar.gz"
#exemplo de 3 pastas diferentes para copiar, sempre de espaço entre uma e outra
 LOCAL="/var/www /home/codnomelinux /home/samba"


# Loga
 MENS="echo Backup CRIADO EM /bkp NO DIA $DATA AS $HORA"
 LOCLOG="/home/user/bkp.log"

# Verifica o dia da semana, exclui o bkp da semana passada,
        $DEST
        #cria o bkp do dia e loga
        $BKP $NOME $LOCAL
        $MENS >> $LOCLOG

Script de backup Mysql

Achei, testei e aprovei

Tools of the trade:
growisofs
mkisofs
tar
cp
pg_dump
growisofs
Useful argument for growisofs are:
-Z : is used to specify the device to burn to
-dvd-compat : makes sure the written disk will have the maximum compatability with other dvd drives (useful in an emergency)
-speed : sets the speed of the disk / burn
Since growisofs is a pretty wrapper for mkisofs you can use essentially all the options of mkisofs as well.
mkisofs
We won't actually use mkisofs directly but we can use its options in growisofs. Useful options include:
-A : allows you to give the disk a title
-D : if you have very deep directories you might want to use this, it can break the iso9660 standard but apparently works on most systems
-J : use Joliet extansions. Primarly useful for making the disk readable on Windows boxes
-R : generate Rock Ridge extensions allowing long filenames
-r : a clever version of -R. If you are going to use Rock Ridge you probably want to use this version
-V : specifies the volume name
tar
Since I want to be able to make sure that I capture the directory structure and files names as well as the data it is not a good idea to just burn the individual files since even with Rock Ridge extensions in use you can't have more than 8 levels of directories and various other strange restrictions. Hence I am going to tar up the files I want to burn and then burn the tar. This also means that if I end up in the situation where I am having trouble fitting the back up on the DVD (really this might happen - one day) I can easily just gzip / bzip the tar.
-c : create an archive
-u : only update, which could make the backup much quicker
-f : create the archive as a file
-p : preserve permissions
cp
Allows us to copy portions of the file system from one place to another.
-p : preserve ownership and other file information
-r : copy directories recurvivly
-d : handle links in a nice way but don't follow them
pg_dump
We want to be able to back up the database as well as the basic files and this is best done using pg_dump which will write the database out as a simple sql file. You have got to make use that the user that is running the backup job has permission to dump the database.
-f : the file to dump to
-o : if you use foreign keys use this option
-U : connect as the given user
The Backup Script
Note: The line starting SOURCE is actually one long line that includes all the lines that follow upto the next blank line as indicated by the ↳ symbol (should be a downwards arrow with tip rightwards).
#!/bin/bash
DATE=$(date +%Y-%m-%d)

#NOTE: These two paths must end in a / in
#order to correctly build up the other paths
BACKUP_DIR="/backup/directory/"
TEMP_BACKUP_FILES_DIR="/backup/temp/"

BACKUP_FILE=$PATH"backup-"$DATE".tar"
DATABASE_FILE=$TEMP_BACKUP_FILES_DIR"foo-"$DATE".sql"

#These directories shouldn't end in a / although
#I don't think it will cause any problems if
#they do. There should be a space at the end though
#to ensure the database file gets concatenated correctly.
SOURCE="/a/location /other/locations " $DATABASE_FILE

echo Removing old backup directories
rm -rf $BACKUP_DIR
rm -rf $TEMP_BACKUP_FILES_DIR

echo Creating new backup directories
mkdir $BACKUP_DIR
mkdir $TEMP_BACKUP_FILES_DIR

echo Creating database backup
pg_dump -U username -f $DATABASE_FILE databaseName

echo Backing up $SOURCE to file $BACKUP_FILE
/bin/tar -cpf $BACKUP_FILE $SOURCE

#This is not necessary and possibly harmful for DVD+RW media
echo Quick blanking media
dvd+rw-format -blank /dev/hdc

echo Burning backup
growisofs -dvd-compat -Z /dev/hdc -r -J $BACKUP_FILE
Testing the Backup
From time to time it is a good idea to test your backup to make sure you can actually recover data from it. A good time is when you are sure it's working a bad time it when you have to get something you just deleted off it!
First mount the drive
mount -f udf /dev/hdc /mnt/dvd
then copy the tar file to where ever you have space to expand it
cp backup-file.tar /big/drive/
move to where you have copied the file and expand the tar with
cd /big/drive
tar -xf backup-file.tar
be careful you don't type a c where the x is in the tar command above or you will have to copy the file over again! Finally check that all your files are there and readable.

Descubra suas partições no Debian


ls /dev/hd* ou sd*

df -kh

/sbin/fdisk -l

esse foi o melhor
cat /proc/partitions

quarta-feira, 1 de junho de 2011

Instalação do Nagios3 no Debian


A versão do Nagios utilizada nesse artigo foi a 3.0.6 e do Nagios Plugins 1.4.13
Para iniciar a instalação do Nagios, baixe-o em http://www.nagios.org/download ou você pode utilizar o wget
# wget http://heanet.dl.sourceforge.net/sourceforge/nagios/nagios-3.0.6.tar.gz
Para compilar os pacotes do Nagios e Nagios plugins é preciso instalar os compiladores básicos e os headers do kernel do linux.
O comando
# apt-get install build-essential linux-headers-`uname -r`
realiza a instalação dos pacotes corretos.
build-essential é o conjunto de pacotes e bibliotecas de compilação, ele instala o GCC, G++ e os demais integrantes do kit básico.
O pacote "linux-headers" inclui os headers do kernel, o conjunto de arquivos e ponteiros necessários para que o compilador seja capaz de gerar módulos adequados ao kernel em uso. Existem várias versões do pacote, uma para cada versão do kernel disponível nos repositórios (como em "linux-headers-2.6.26-1-686"); por isso, para facilitar, usamos o "linux-headers-`uname -r`" (o ` é o símbolo de crase) que faz com que o apt descubra sozinho qual versão deve instalar a partir do comando "uname -r". Com isso, a casa fica pronta para a instalação dos drivers.
Trecho retirado do artigo Debian Lenny, parte 2, de autoria de Carlos Morimoto.
Terminada a instalação é hora de compilar o Nagios.

Criando usuário Nagios

# adduser nagios
O usuário nagios será o usuário que o Nagios utilizará para a execução. Automaticamente o grupo nagios será criado para esse usuário. Isso pode ser conferido com o comando
# grep nagios /etc/passwd
Para executar comandos externos via interface web é preciso que o servidor web esteja instalado. Para instalar o Apache
# apt-get install apache2
Durante a instalação do apache, automaticamente é criado o usuário www-data. Esse usuário, por padrão é quem executa o apache. Para identificar com qual o usuário o apache está sendo executado
#grep "^User" /etc/apache2/apache2.conf
Para que o usuário nagios possa executar comandos através da interface web do apache devemos adicioná-lo ao grupo do apache. Para isso execute
# usermod -G nagios nagios
  # usermod -G www-data,nagios www-data
Para conferir se o usuário foi mesmo adicionado ao grupo, execute o comando
#grep nagios /etc/group
Iremos instalar o nágios no diretório /usr/local/. Crie dentro desse diretório uma pasta chamada nagios e copie para dentro dela os arquivos do nagios e os plugins baixados.
Extraia os arquivos do Nagios com o comando
# tar -xvzf nagios-3.0.6.tar.gz
Acesse a pasta nagios-3.0.6/
# cd  nagios-3.0.6
Execute o scritp
#./configure --prefix=/usr/local/nagios --with-cgiurl=/nagios/cgi-bin --with-htmurl=/nagios/ --with-nagios-user=nagios --with-nagios-group=nagios --with-command-group=nagios
onde:
-prefix=/usr/local/nagiosdestino onde o nagios será instalado
-with-cgiurl=/nagios/cgi-binPasta CGI do Nagios
-with-htmurl=/nagios/Arquivos HTML do Nagios, pasta da web interface
-with-nagios-user=nagiosusuário do Nagios
-with-nagios-group=nagiosgrupo do Nagios
-with-command-group=nagiosis the Nagios command group which has webserver user (Apache) and the nagios user as members.
Se desejar ver mais opções do que podem ser utilizadas para a compilação, digite o comando
# ./configure --help
Em seguida compile o Nagios e os CGIs
# make all
Instale os binários
# make install
Instale os scripts de inicialização
# make install-init
Crie o diretório que será utilizado para a inserção de comandos externos
# make install commandmode
Instale o arquivo de configuração de EXEMPLO do Nagios. As configurações contidas nesse arquivo são apenas configurações básicas necessárias para executá-lo, provavelmente você precisará fazer alterações no arquivo /usr/local/nagios/etc/nagio.cfg de acordo com suas necessidades.
#make install-config
Nesse momento o nagios já está instalado em seu computador. Agora conheceremos a estrutura dos diretórios do Nagios
#cd /usr/local/nagios/
Você encontrará no diretório do Nagios outros seis sub-diretórios. Abaixo uma breve explicação de cada um deles
bin/Nagios binários do Nagios
etc/Diretório principal do Nagios, ele contém os arquivos de configuração e arquivos de configuração do CGI.
libexec/Os plugins do Nagios são armazenados nesse diretórios
sbin/CGIs
share/Arquivos HTML (para interface web e documentação online)
var/Diretório vazio utilizado para os arquivos logs

Instalando os plugins para o Nagios

Baixe-os em http://www.nagios.org/download ou utilize o wget
# wget  http://mesh.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz
Extraia os arquivos
# tar -xvzf nagios-plugins-1.4.13.tar.gz
Acesse o diretórios nagios-plugins-1.4.13/
# cd nagios-plugins-1.4.13/
Compile o arquivo
# ./configure
Em seguida instale os binários
#make & make install
Os plugins serão instalados no diretório /usr/local/nagios/libexec. Agora temos o Nagios e os plugins instalados. Vamos então prosseguir com a configuração do Apache para que seja possível acessar o Nagios e executar comandos externos via web interface.
Existem duas formas de realizar a configuração. A primeira é criar um arquivo contendo o ScriptAlias configurações dentro do diretório /etc/apache2/sites-available/ ou inserir as configurações no arquivo httpd.conf. Será abordado nesse artigo a segunda forma.
Dentro do seu arquivo httpd.conf insira as seguintes configurações:
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin/
  
  <Directory "/usr/local/nagios/sbin/">
  AllowOverride AuthConfig
  Options ExecCGI
  Order allow,deny
  Allow from all
  </Directory>
  
  Alias /nagios /usr/local/nagios/share/
  
  <Directory "/usr/local/nagios/share">
  Options None
  AllowOverride AuthConfig
  Order allow,deny
  Allow from all
  AuthName "Nagios Access"
  AuthType Basic
  AuthUserFile /usr/local/nagios/etc/htpasswd.users
  require valid-user
  </Directory>
Salve o arquivo e em seguida reinicie o apache
#/etc/init.d/apache2 restart
Para um maior segurança, o Nagios será configurado de forma que, cada usuário somente terá acesso a sua web interface caso esteja previamente cadastrado. Para isso, criaremos um arquivo de configuração contendo os usuários que terão permissão de acesso a interface do Nagios. O parâmetro "-c" do comando cria um arquivo htpasswd.users e insere o usuário guilherme .
#htpasswd -c /usr/local/nagios/etc/htpasswd.users guilherme
Será solicitado que seja criado uma senha para o usuário. Caso queira inserir novos usuários, retire o parâmetro -c do comando e ao final entre com o nome do novo usuário
#htpasswd  /usr/local/nagios/etc/htpasswd.users novousuario
Para finalizar edite o arquivo /usr/local/nagios/etc/cgi.cfg. Este arquivo contém as configurações do cgi utilizadas pelo Nagios. Configure os parâmetros abaixo para os usuários que você cadastrou no arquivo /usr/local/nagios/etc/htpasswd.users para que possam acessar o sistema. No meu caso ficou da seguinte forma:
authorized_for_system_information=guilherme
  authorized_for_configuration_information=guilherme
  authorized_for_system_commands= guilherme
  authorized_for_all_services=guilherme
  authorized_for_all_hosts=guilherme
  authorized_for_all_service_commands=guilherme
  authorized_for_all_host_commands=guilherme
Em seguida, reinicie o Nagios. Para acessá-lo digite no seu browser
http://<IPADDRESS OR HOSTNAME>/nagios/
Após a validação de usuário e senha você terá acesso ao Nagios

 O mapa funciona, os grupos funcionam muito melhor. Claro que o diretorio passa de /usr/local/nagios, para /etc/nagios3. Não vou nem postar as configurações, pois está tudo muito mais simples. Não achei legal instalar nem a nova interface (muito cheio de frescuras e com alguns bugs nesta nova versão) e nem o nagiosQL , pois sem isso o sistema fica com a "anti-burro" (usuários retardados) ativo. Fiz todos os teste necessários. O sistema esta perfeito! Sem erros. Melhor do que nunca foi.  E ao contrario do Zenoss, muito mais leve.