Arquivo fevereiro 2011

TLS Handshake

O TLS (Transport Layer Security), trabalha criando uma autenticação segura entre cliente e servidor, incrementando mais a segurança em uma conexão, o TLS Handshare utiliza algoritimos de troca de chaves como RSA e Diffie-Hellman, caso tenha mensagens de retorno como:

Deferred: 403 4.7.0 TLS handshake failed

Trabalhando com o sendmail, este problema pode ser facilmente solucionado adicionando a seguinte linha ao arquivo /etc/mail/access:

Try_TLS:host.dominio.com.br NO

Após editado o arquivo, o sendmail deve ser reiniciado para as alterações serem efetivadas:

/etc/init.d/sendmail restart

Grub Legacy

O gerenciador de boot grub, nos permite adicionar uma camada a mais de segurança ao sistema, definindo uma senha impedindo a edição do mesmo, serão vistos dois exemplos, um com uma senha em formato texto puro, e outro com a senha criptografada.

Senha em texto

Como super-usuário (root), deve ser editado o arquivo /boot/grub/menu.lst, ao inicializar a edição do arquivo com seu edito favorito( (vim, mc edit, pico, nano, etc…), efetue uma busca pela palavra password, caso a mesma esteja presente, é necessário descomentar a linha, ou adicionála da seguinte forma:

password senha-grub

A senha será definida, onde “senha-grub” é a nossa senha cadastrada no grub, para efetivar a alteração, salve o arquivo /boot/grub/menu.lst e reinicie o sistema, na inicialização não serão mais permitidas edições no grub, para digitar a senha deve ser pressionada qualquer tecla, e será exibido o prompt para digitação da mesma.

Senha criptografada

Também é possível utilizar senhas criptografadas no grub, para talprocedimento, a senha deve ser gerada no prompt de comandos do grub:

host:~# grub
Probing devices to guess BIOS drives. This may take a long time.
GNU GRUB  version 0.97  (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported.   For
the   first   word,  TAB  lists  possible  command
completions.  Anywhere else TAB lists the possible
completions of a device/filename. ]
grub>

Estando no prompt de comandos do grub, vamos prosseguir com o md5crypt, e em seguida deve ser digitada a senha, neste caso a senha foi definida como senha-grub:

grub> md5crypt
md5crypt
Password: senha-grub
senha-grub
Encrypted: $1$WGDl7/$snjXSpM4ykBG41vOHhaG40

Saindo do grub:

grub> quit

Em seguida, a senha deve ser da mesma forma adicionada ao arquivo /boot/grub/menu.lst com os seguintes parâmetros:

password --md5 $1$WGDl7/$snjXSpM4ykBG41vOHhaG40

Após este procedimento, basta salvar o arquivo de configuração do grub e reiniciar o sistema para testar a configuração.

Conectividade Social

Abaixo temos mais uma das diversas formas de contorbnar o problema de acesso ao Conectividade Social da Caixa Econômica Federal, onde trabalharemos com regras diretamente no firewall, utilizando o firewall iptables.

iptables -t nat -D PREROUTING -d 200.201.160.0/20 -j RETURN

iptables -t nat -D POSTROUTING -d 200.201.160.0/20 -j MASQUERADE

iptables -t filter -D FORWARD -d 200.201.160.0/20 -j ACCEPT

##

iptables -t nat -I PREROUTING -d 200.201.160.0/20 -j RETURN

iptables -t nat -I POSTROUTING -d 200.201.160.0/20 -j MASQUERADE

iptables -t filter -I FORWARD -d 200.201.160.0/20 -j ACCEPT

Para efeitos de aprendizado, é recomendável digitar as regras manualmente no console, e para o entendimento de cada um dos parâmetros passados, é fortemente recomendada a leitura do Guia Foca Linux.

Comando find

O comando find é uma opção muito eficiente e quando deseja-se encontrar arquivos no Linux em modo texto. O mesmo vem presente na maioria das sistribuições atuais. Porém caso o comando find não esteja disponível na sua distribuição basta instalar o pacote findutils. Abaixo veremos algumas formas e exemplos de sua utilização.

Localizando arquivos por nome:

r2d2:~# find / -name sources.list
/usr/share/doc/apt/examples/sources.list
/etc/apt/sources.list

Em nosso exemplo, foi efetuada a busca em todo o sistema diretamente da raiz (/). O comando find é case sensitive, ou seja o mesmo diferencia letras maiúsculas e minúsculas. Imagine se quisermos localizar o arquivo README em /etc/init,d. Se fizermos com a mesma linha de comandos acima, teremos uma busca sem resultados, quando este tipo de busca for necessária, deve ser utilizando o parâmetro iname ao invés de name, como abaixo:

r2d2:~# find /etc/init.d/ -iname readme
/etc/init.d/README

Esta opção é mais indicada em caso de buscas mais precisas, pois com ela o sistema não irá diferenciar letras maiúsculas e minúsculas, portanto a dica é que em caso de dúvidas utilize a opção iname. Uma outra observação é que podemos informar o diretório onde será realizada a busca, no caso da procura pelo arquivo README, efetuamos a busca em /etc/init.d.

Localizando arquivos por usuários

Com o exemplo abaixo, efetuamos a busca por usuário, onde o procuramos no diretório /var por arquivos que tenham o usuario leandro como dono.
r2d2:~# find /var -user leandro
/var/spool/cron/crontabs/leandro
/var/mail/leandro
Da mesma forma em que foi efetuada a busca por usuários, é possível executar a busca por grupos facilmente, bastando apenas executar a referida linha de comandos com a opção -group ao invés de -user para localizarmos os arquivos pertencentes ao grupo citado. Abaixo temos também um exemplo, onde procuramos em /var arquivos pertencentes ao grupo xrdp que é uma alteranativa de acesso remoto ao VNC para Linux.

r2d2:~# find /var -group xrdp
/var/run/xrdp
/var/log/sesman.log

Uma outra utilizada é efetuar uma busca por tamanho, está pode ser útil em uma ocasiao onde temos que eliminar rapidamente espaço em disco seja por qual for o motivo. Se esta for sua necessidade o comando find também pode ser útil, para tal tarefa deve ser utilizado o parâmetro -size. Abaixo localizamos arquivos com mais de 5G em nosso sistema:

r2d2:~# find / -size +5G
/home/leandro/.VirtualBox/VDI/Microsoft Windows XP Professional.vdi

Neste caso, foi encontrado um arquivo de disco virtual do Oracle VirtualBox. Da mesma forma em que utilizamos a busca por aquivos contento mais de 5GB em nosso sistema, poderíamos efetuar a busca utilizando por Kilobytes utilizando o sub-parâmetro k (minúsculo) e para Megabytes o parâmetro M (maiúsculo), preste atenção na hora de executar estes sub-parâmetros do comando find, pois o comando find é case-sensitive, ou seja diferencia caracteres maiúsculos e minúsculos.