Todos os posts de minimedia

OpenSSL – Gerando Certificados

Neste artigo iremos descrever como gerar certificados SSL auto-assinados e também como enviar uma requisição para que uma autoridade certificadora assine nosso certificado não exibindo aquelas mensagens horríveis de que o site não é válido.

Gerando o certificado auto-assinado:

openssl req -new -x509 -days 1095 -sha1 -newkey rsa:1024 -nodes -keyout server.dominio.com.br.key -out server.dominio.com.br.csr

Com os comandos acima, serão gerados dois arquivos. O arquivo server.dominio.com.br.key contendo a chave privada e o arquivo server.dominio.com.br.csr contendo nosso certificado. Tendo a chave e certificado gerados, os mesmos podem ser utilizados em sistemas baseados em servidores web, como Apache, servidores FTP, Email e demais aplicações. No próximo artigo, mostraremos como adicionar a configuração de SSL no servidor WEB Apache. Abaixo demonstramos como gerar a requisição de nosso certificado, para que o mesmo seja assinado por uma autoridade certificadora.

Gerando a requisição de certificado para autoridades certificadoras:

openssl req -new -nodes -keyout server.dominio.com.br.key -out server.dominio.com.br.csr

 Após executados os comandos acima, devemos enviar o arquivo server.dominio.com.br.csr para a autoridade certificadora, tal como Verisign, Thawte, InstanSSL, dentre outros. A autoridade certificadora muitas vezes poderá retornar a requisição do certificado com um certificado intermediário, que deverá ser utilizado em diversas configurações. Fique atendo, no próximo artigo estaremos integrando os certificados gerados com o servidor web Apache, mantendo acesso criptografado em aplicações web.

OpenVZ – Conteineres travados

Quando utilizado o OpenVZ como solução de virtualização, em alguns casos pode ocorrer de o conteinere desejado apresentar a mensagem “Container already locked” ao ser solicitado o reboot eu desligamento do sistema. Neste existem dois passos simples a serem seguidos, basta seguir os seguintes passos:

  1. Remover o arquivo de lock localizado em /var/lib/vz/lock/101.lck
  2.  vzctl chkpnt 101 –kill

Neste caso é assumido que o id do conteinere a ser reiniciado é 101. Após este procedimento conteinere citado poderá ser reiniciado ou desligado tranquilamente.

Gerenciamento de pacotes com dpkg

O dpkg é o gerenciador de pacotes padrão em distribuições Debian e derivados. Seu gerenciamento é bem simplificado através de parâmetros e argumentos passados via linha de comandos, abaixo veremos alguns simples exemplos de utilização do dpkg nas tarefas diárias de um administrador de sistemas:

Para listarmos todos os pacotes disponíveis no sistema, pode-se executar a seguinte linha de comandos:

root@server:~# dpkg -l

A lista ficaria bem extensa, então é possível também redirecionar a saída para um pipe e filtrar somente os pacotes que estamos procurando:

root@server:~# dpkg -l |grep apache
ii  apache2                             2.2.16-6+squeeze2            Apache HTTP Server metapackage
ii  apache2-mpm-worker                  2.2.16-6+squeeze2            Apache HTTP Server - high speed threaded model
ii  apache2-utils                       2.2.16-6+squeeze2            utility programs for webservers
ii  apache2.2-bin                       2.2.16-6+squeeze2            Apache HTTP Server common binary files
ii  apache2.2-common                    2.2.16-6+squeeze2            Apache HTTP Server common files
ii  libapache2-mod-proxy-html           3.0.1-1                      Apache2 filter module for HTML links

No exemplo acima, foram listados todos os pacotes que  possuem “apache” em seu nome, isso graças ao filtro permitido pelo pipe. Para adicioanar um pacote, utilizamos a opção -i do dpkg:

root@server:~# dpkg -i rkhunter_1.3.6-4_all.deb

Acima efetuamos a instalação do pacote rkhunter. Note que devemos indormar o nome completo do arquivo incluindo a extensão .deb. Já no processo de remoção de pacotes não precisamos especificar a extensão, somente o nome do pacote. Abaixo usaremos como exemplo novament e o pacote rkhunter como exemplo de remoção de um pacote utilizando o dpkg:

root@server:~# dpkg -l |grep rkhunter
ii  rkhunter                            1.3.6-4                      rootkit, backdoor, sniffer and exploit scanner

Na linha acima, listamos o pacote rkhunter para saber se o mesmo estava instalado no sistema. Agora utilizando a opção -r removemos o pacote com a linha de comandos abaixo:

root@server:~# dpkg -r rkhunter

Uma grande utilidade do comando dpkg, é quando possuímos determinado arquivo mas não sabemos a que pacote o mesmo peertence. A opção -S serve para listar os pacotes pertencentes a cada arquivo:

root@server:~# dpkg -S /etc/rkhunter.conf
rkhunter: /etc/rkhunter.conf

Com o resultado acima, podemos ver que o arquivo /etc/rkhunter.conf pertence ao pacote  rkhunter.

Também podemos listar todos os arquivos referentes a um determinado pacote, com a opção -L é possível realizar tal procedimento:

root@server:~# dpkg -L rcconf
/.
/var
/var/lib
/var/lib/rcconf
/usr
/usr/sbin
/usr/sbin/rcconf
/usr/sbin/update-rcconf-guide
/usr/share
/usr/share/doc
/usr/share/doc/rcconf
/usr/share/doc/rcconf/README.Debian
/usr/share/doc/rcconf/copyright
/usr/share/doc/rcconf/changelog.gz
/usr/share/man
/usr/share/man/man8
/usr/share/man/man8/rcconf.8.gz
/usr/share/man/man8/update-rcconf-guide.8.gz
/usr/bin

Se por alguma razão for necessário extrair os arquivos de um pacote, a opção -x, observe abaixo que extraímos o pacote para nosso diretório local indicando um (.), pois é necessário sempre informar um destino ao utilizar esta opção:

root@server:/tmp/teste# dpkg -x /var/cache/apt/archives/rcconf_2.5_all.deb .
root@server:/tmp/teste# ls -l
total 8
drwxr-xr-x 5 root root 4096 Nov 16  2009 usr
drwxr-xr-x 3 root root 4096 Nov 16  2009 var

 

Desligando o sistema pelo botão

Esta trata-se de uma dica simples, porém funcional. Com a utilização do módulo button é possível desligar o sistema com a mesma segurança de efetuar o desligamento utilizando os comandos halt, shutdown ou init. O mesmo é muito útil para casos de computadores ou servidores que nao possuem monitor, teclado ou mouse. Bastando apenas pressionar o botão poweb para ligar ou desligar o sistema. Caso o módulo não esteja carregado por padrão, o mesmo deve ser carregado com o comando modprobe:

#modproble button

Após este procedimento, podem ser utilizadas diversas formas de ativá-lo na inicialização do sistema para ser carregado automaticamente após o boot.