quarta-feira, 30 de janeiro de 2013

MediaWiki + CentOS 6

Olá!

Segue um breve e simplificado tutorial de instalação do MediaWiki em um CentOS 6.3.

1 - Instalação mínima do CentOS x86_64

2 - Após instalação, vamos atualizar o sistema operacional antes de continuarmos:
# yum upgrade

3 - A seguir instalamos os pacotes necessários para o MediaWiki:
# yum install wget vim mysql-server httpd php php-mysql php-xml php-gd php-intl

4 - Download da última versão do MediaWiki.

OBS.: A última versão pode ser conferida em:
http://www.mediawiki.org/wiki/Installation.

5 - Descompactação/desempacotação dos arquivos.
# tar -xvzf mediawiki-1.20.2.tar.gz

6 - Agora preparamos o Apache e o MySQL para iniciar sempre que o servidor for ligado.
# chkconfig httpd on
# chkconfig mysqld on

7 - Iniciamos o apache
# service httpd start

8 - Copiamos os arquivos para uma pasta pública do apache.
# cp -a mediawiki-1.20.2 /var/www/html

9 - Criado um link para facilitar a nomenclatura e futuras atualizações.
# ln -s mediawiki-1.20.2 mediawiki

10 - Iniciamos o MySQL e aplicamos as configurações de segurança padrões.
# service mysqld start
# /usr/bin/mysql_secure_installation

11 - Ajustamos as configurações do apache.
# cd /etc/httpd/conf
# vim httpd.conf

Adicione a página index.php na tag DirectoryIndex da seguinte forma:
DirectoryIndex index.php index.html index.html

# service httpd restart

12 - Criar a database da Wiki
# mysql -u root -p


> create database wikidb;
> grant index, create, select, insert, update, delete, alter, lock tables on wikidb.* to 'wikiuser'@'localhost' identified by 'password';


13 - Acessar a interface de instalação

14 - Seguir os passos de instalação.

domingo, 16 de dezembro de 2012

Cotas de Disco no Linux

Olá!

Uma funcionalidade do Linux não muito usada, mas bem útil em algumas situações é o controle de cotas em disco.

Um bom exemplo para utilização de cotas em disco é um cenário onde as estações de trabalho usam Linux com uma base de autenticação centralizada e perfil remoto por NFS. 

Certa vez administrei um servidor nesse cenário.
Esse servidor possuia o diretório /home compartilhado via NFS com os Desktops. Isso tornava o ambiente bem flexível mas tinha um limite de espaço em disco. Sem o uso de cotas um usuário poderia encher seu diretório home com arquivos pesados e impedir os demais usuários de gravarem nos seus respectivos diretórios. Para evitar isso, as cotas em disco são uma ótima escolha.

Nesse post, colocarei os passos para habilitar e configurar cotas. Explicarei alguns comandos e no final há um vídeo demonstrando todo o procedimento na prática.

O ambiente consiste em uma máquina virtual (VirtualBox) com um disco de sistema operacional e um segundo disco de 5 GB com LVM. Foi criado um LV de 2 GB para ser usado nos testes de Cotas.
Durante os testes serão usados dois usuários e um grupo:

Usuários: mbsec e mbsec2
Grupo: mbsec

Vamos lá!!

Basicamente, os passos serão os seguintes:
1 - Habilitar recurso de cotas na partição.
2 - Configurar cotas para um determinado usuário.
3 - Fazer testes de cópia e gravação na partição com esse usuário.
4 - Repetir os passos 2 e 3, porém com cotas de grupos.

Seguem os comandos de forma abreviada:
1 - Primeiramente precisamos habilitar os recursos de cotas na partição.

Para isso, abra o arquivo /etc/fstab e adicione as opções usrquota e grpquota nas opções da partiação.
Veja o exemplo:
 /dev/MBSEC/LV1  /mnt/Cotas/LV1 ext4 defaults,usrquota,grpquota  0  0

Após adicionar as opções no /etc/fstab, aplique elas remontando a partição:
# mount -o remount /dev/MBSEC/LV1

Para conferir se as opções foram habilitadas, digite o comando mount e verifique os detalhes da partição.

2 - Como as cotas foram recém habilitadas, precisamos criar os arquivos de configurações de cotas.

São dois arquivos. Um deles armazena configurações de usuários e outro de grupo. 
Seus nomes são aquota.user e aquota.group, respectivamente. Eles são arquivos binários e não podemos editá-los em texto claro com o vi, por exemplo.

Para criação desses arquivos, a melhor forma é executar o comando quotacheck.
Esse comando verifica as configurações de cotas das partições com o recurso habilitado e grava as informações nos arquivos mencionados acima. Caso esses arquivos não existam, ele cria. : )

Então, digite o seguinte comando:
# quotachek -augv

-a : diz para ele checar todas as partições com cotas habilitadas.
-u : verifica as configurações de cotas para os usuários.
-g : verifica as configurações de cotas para os grupos.
-v : modo verbose, para mostrar detalhes do que ele está fazendo.

Após executar o comando, verifique o ponto de montagem da partição. Deverão aparecer os dois arquivos mencionados acima. 
OBS.: Eles sempre são criados na raíz do ponto de montagem da partição.

3 - Agora vamos habilitar o controle de cotas no sistema:
# quotaon -a

OBS.: Se quiser desabilitar é só digitar quotaoff -f

4 - Agora é só editar as cotas e fazer os testes.

O comando para edição de cotas é o edquota. Os principais parâmetros são descritos abaixo:
-u usuário : edita as configurações de cotas de usuário
-g grupo    : edita as configurações de cotas de grupo.
-t               : define as configurações de grace time para os usuários.
-t -g           : define as configurações de grace time para os grupos.
-p usuário1 usuário2 : copia as configurações de cotas de usuário1 para usuário2.

5 - Verificar as cotas de usuários e grupos.

Para ver o status das cotas de usuários e grupos, use o comando repquota. Ele mostra um relatório das configurações de cotas. Abaixo seguem as principais opções:
-a : lista configurações de todas as partições que tenham cotas habilitadas.
-u : lista as configurações de usuários (é a opção default).
-g : lista as configurações de grupos.

OBS.: As cotas são atualizadas de tempos em tempos. Se estiver fazerndo algum teste e precisar forçar a atualização das cotas, execute o comando quotacheck.

Ok. Esses comandos acima são o que precisamos conhecer para gerenciar cotas. Agora temos alguns conceitos de cotas.

Quando editar as cotas de um usuário ou grupo, haverão as seguintes colunas:

Filesystem
Indica a partição onde as cotas serão aplicadas.

blocks
Indica a quantidade de blocos atualmente sendo usada por aquele usuário ou grupo.
Considere 1 bloco = 1 KB

soft
Essa é a cota soft de arquivos, ou seja, os usuários podem usar até esse limite sem problemas. Após esse limite eles terão um tempo (grace time) de tolerância para limpar alguns arquivos e ficar abaixo desse limite. Se eles não limparem nada até o grace time expirar, qualquer cópia será bloqueada até que algo seja apagado.

hard
Esse é o limite absoluto que cada usuário ou grupo tem. Em nenhuma hipótese os usuários conseguirão ocupar mais espaço do que definido aqui.

As próximas 3 colunas (inodes, soft e hard) tem os mesmos conceitos explicados acima, porém para o controle de inodes e não de arquivos.

Ok. Agora já sabemos os comandos e os conceitos. Vamos aos testes práticos para resolver as dúvidas remanescentes:



Tutorial LVM

Olá!

LVM (Logical Volume Management) é uma solução excelente para servidores que mudam com certa frequencia seus requisitos de espaços em discos. Alguns exemplos são servidores de Banco de Dados que de tempos em tempos precisam ser reajustados para comportar o crescimento das databases, servidores de e-mails que precisam disponibilizar espaços para novas contas, etc. Bom, são diversas aplicações que aplicações do dia-a-dia que precisam dessas mudanças e o LVM torma a vida do administrador bem mais fácil.

Nesse post, colocarei os passos para criação de LVM e logo abaixo um vídeo demonstrando todo o procedimento na prática. Vamos lá.

A configuração de LVM, basicamente, consiste dos seguintes passos:

1 - Criar uma partição em um disco destinado à LVM.
2 - Transformar essa partição em uma partição de LVM.
3 - Apresentar a partição ao LVM através do comando pvcreate.
4 - Criar um Volume Group (VG) com essa partição.
5 - Criar um ou mais Logical Volumes (LV).
6 - Formatar esses LVs com um sistema de arquivos de sua preferência.
7 - Criar um ponto de montagem para esse LV.

Para referência, seguem as informações do ambiente:
Disco:                          /dev/sdb
Partição para LVM:     /dev/sdb1
Nome do VG:              MBSEC
Nome do LV:               LV1

Seguem os comandos de forma abreviada:
1 - Criar uma partição destinada à LVM no disco /dev/sdb.
# fdisk /dev/sdb
> n para nova partição.
> t para alterar o ID da partição de Linux (83) para Linux LVM (8e).
> w para salvar e sair.

2 - Transformar essa partição em uma partição de LVM.
# pvcreate /dev/sdb1

3 - Criar um Volume Group (VG) com essa partição. 
# vgcreate MBSEC /dev/sdb1

4 - Criar um ou mais Logical Volumes (LV).
# lvcreate -L 1G -n LV1 MBSEC

5 - Formatar esses LVs com um sistema de arquivos de sua preferência.
# mkfs.ext4 /dev/MBSEC/LV1

Segue o video com os passos na prática:


domingo, 29 de julho de 2012

Forense - Recovery de Dados

Olá, Pessoal!

Sábado (28/07/12), as 14:00 ocorreu a minha palestra sobre "Forense - Recovery de Dados" no 13º Fórum Internacional do Software Livre (FISL).

Gostaria de agradecer à todos que puderam estar presentes prestigiando a palestra. Graças à vocês pudemos encher a sala 41-E, o que é sempre muito gratificante para qualquer palestrante.

Bom, conforme prometido, segue o link da apresentação mais os links individuais dos videos apresentados.


Video Extundelete:

Video Foremost:

Espero que tenham gostado da apresentação e para aqueles que não puderam assisti-la, espero que possam aproveitar as informações dessa apresentação pelos links acima.

Nos vemos no próximo FISL com mais novidades.

Abração!

terça-feira, 19 de junho de 2012

Palestra FISL 13

Olá!

Pelo quarto ano consecutivo, fico contente de informar que ontem pela noite recebi a confirmação de aceite da minha primeira proposta de palestra para o 13° Fórum Internacional do Software Livre.

Convido a todos que estiverem presentes no evento entre os dias 25 e 28 de Julho de 2012 para prestigiarem a palestra. Como sempre, meu desafio será levar conteúdos interessantes e bem úteis em Segurança da Informação.

O dia exato e o horário deverão ser divulgados pela organização do FISL nos próximos dias, mas o título da palestra já está definido: "Forense - Recovery de Dados"

DATA: 28/07/2012
SALA: 41E
HORÁRIO: 14:00

Abração!

sexta-feira, 8 de junho de 2012

Lei para Crimes Digitais

Olá!

Essa semana vi uma notícia interessante no endereço http://www.ibliss.com.br/2433/brasil-finalmente-tera-lei-para-cibercrime/

Trata-se de um projeto de lei que define os crimes cibernéticos e suas respectivas penalidades. Espero que dessa vez estejamos próximos daquele discurso repetitivo de que "não existem leis para crimes na Internet..." e coisas do gênero. : )

Embora o projeto tenha sido aprovado na Câmara dos Deputados, ainda precisará passar pelo Senado e, por último, pela Presidência. Mas já podemos ter um pouco de esperança... : )

O projeto de lei PL-2793/2011 pode ser conferido aqui:

Também é interessante dar uma olhada no Marco Civil da Internet, mencionado no projeto de lei:

Abraço!

sexta-feira, 11 de maio de 2012

Recuperar arquivos deletados em Ext4

Olá!

Pessoal, hoje passei por uma experiência ruim e ao mesmo tempo boa.

Estive algumas boas horas trabalhando em um projeto e já nas fases finais, momento em que faria os backups em um repositório oficial, acabei deletando uma pasta em um sistema de arquivos Ext4 da VM que fiz especificamente para esse projeto. Nenhum problema quanto a deletar a pasta, o problema é que passei a pasta errada como parâmetro.

Foi aí que me dei conta do erro que cometi e do problemão que havia criado. : )
Como já trabalho há vários anos com isso, já estou vacinado e tinha uma carta na manga. Antes disso havia feito uma cópia dos principais arquivos em um documento que imprimi para o projeto.

Lição: Mesmo com vários anos de experiência estamos suscetíveis a falhas. A diferença está em quão experientes e preparados nós estamos para lidar com essas questões. A pró-atividade SEMPRE faz a diferença.

De qualquer forma achei interessante prosseguir como se eu não tivesse essa cópia de backup. Aí que veio a vantagem ser especialista em Forense Digital. Se eu realmente precisasse recuperar esses dados e não soubesse como, teria que mandar o disco para uma análise. Gastaria muito tempo e muito dinheiro para isso.

Se passarem por uma situação semelhante, espero que esse post possa auxiliá-los a economizarem tempo e dinheiro.

Cenário:
- Tenho um Linux instalado com um sistema de arquivos Ext4.
- Tenho uma pasta com arquivos importantes salvos em /root/PASTA.
- Acidentalmente executei o comando # rm -Rf /root/PASTA
- Estou desesperado e suando mesmo com uma temperatura de 5º C. hehe

Primeiros Socorros:
- Desligue o disco o mais rápido possível.

- Qualquer alteração que tentar fazer ou tentativa desesperada de recuperar algo com o disco montado em "rw" só vai piorar a situação.

- Monte esse disco em "ro" em um outro Linux. Para esse exemplo, a partição / do disco que quero recuperar está representada por /dev/sdb1 no sistema usado para o recover.

Passos para recover:
Bom, essa é uma situação bem simples e fácil de ser resolvida. Nesse caso, apenas uma ferramenta de forense já vai nos trazer de volta aquele sorriso de alegria. hehe

Para essa situação, indico fortemente a ferramenta extundelete.
É uma ferramenta bem robusta e mais inteligente para trabalhar com restaurações em sistemas ext*

- Download:

# tar -xvjf extundelete-0.2.0.tar.bz2

- Precisamos instalar alguns requisitos para compilação:
# yum install gcc-c++ e2fsprogs e2fsprogs-libs e2fsprogs-devel

- Agora compilamos a ferramenta:
# ./configure
# make
# make install (Isso é opcional. Você pode executar os binários direto da pasta src)

- Vamos para os exemplos de restauração:
Recuperar arquivo:
./extundelete /dev/sdb1 --restore-file root/PASTA/arquivo

Recuperar diretório:
./extundelete /dev/sdb1 --restore-directory root/PASTA

Se não conseguir recuperar por ter feito algo no disco antes de desligá-lo, pode tentar restaurar tudo.
./extundelete /dev/sdb2 --restore-all

Tudo que for encontrado será restaurado em uma pasta chamada RECOVERED_FILES.

Espero que isso ajude.
Agora se o negócio estiver bem feio e em uma situação mais complexa, entre em contato com minha empresa: www.timbs.com.br

Faremos o possível para ajudá-lo.

Abraço!