Categorias
Linux Segurança

Bloqueie os script kiddies

Você já está cheio do seu log de sistema lhe entupir com relatórios de centenas (ou até milhares) de falhas de tentativas de autenticação SSH por script kiddies buscando entrar na sua máquia?

Eles não causam dano enquanto estiverem falhando mas ainda assim incomodam. Mas há algumas maneiras de evitá-las. A melhor - desde que você nunca precise de acesso SSH de fora da sua rede - é fechar a porta 22 do seu roteador, e ninguém poderá entrar. Outra opção é executar um programa como Fail2ban ou DenyHosts. Eles vigiam seu arquivo de log por falhas de tentativas de login repetidas pelo mesmo endereço IP e adiciona o IP nas regras do seu firewall para bloquear qualquer futuro contato do remetente por um tempo.

A terceira opção é ridiculamente fácil. Tentativas de quebra de SSH geralmente assume que o SSH é executado na porta padrão 22; mude para uma alta e aleatória porta e as tentativas de quebra desapareção por mágica. Altere /etc/ssh/sshd_config e modifique a diretiva de escuta para algo como:

Listen 31337

e reinicie o sshd. A única desvantagem disso é a incoveniênica de precisar adicionar esta porta no commando ssh cada vez que você se autentica, mas você pode usar um apelido para lidar com isso:

alias myssh ssh -p 31337
Categorias
Linux

SSH sem senha

Usar SSH para conectar a um computador remoto é conveniente, mas há algumas desvantagens. Uma delas é que você precisa digitar a senha a cada vez que você conecta, o que é incômodo num terminal interativo mas inaceitável em um script, pois você precisa que a senha esteja no script. O outro é que uma senha pode ser quebrada. Uma senha longa, aleatório e complexa ajuda, mas torna as autenticações interativas ainda mais incovenientes. É mais seguro ativar o SSH para funcionar sem senhas de uma vez. Primeiro, você precisa ativar um par de chaves para o SSH usando ssh-keygen como este para gerar chaves RSA (mude o argumento para dsa em chaves DSA).

ssh-keygen -t rsa

Serão criados dois arquivos em ~/.ssh, id_rsa (ou id_dsa) com sua chave privada e id_rsa.pub com a sua chave pública. Copie a chave pública para o computador remoto e adicione-a na lista de chaves autorizadas com

cat id_rsa.pub >>~/.ssh/authorized_keys

Agora você pode sair da sessão SSH e iniciá-la novamente. Você não será solicitado a entrar com senha, embora se relacionar uma frase-senha para a chave você será solicitado a digitá-la. Repita isso para cada usuário e cada computador remoto. Você pode fazer isto de maneira ainda mais segura ao adicionar

PasswordAuthentication no

a /etc/ssh/sshd_config. O SSH passará a recusar todas as conexões sem uma chave, tornando a quebra de senhas impossível.

Categorias
Entretenimento

Trens no mundo

CRH2 - China

TSHR - Singapura

KTX - Coréia do Sul

Shinkanzen - Japão

AVE - Espanha

Eurostar - Inglaterra

TGV - Francês

METRO - Dubai

METRO - Dubai

SUPERVIA - Brasil (Rio de Janeiro)

SUPERVIA - Brasil (Rio de Janeiro)

Tudo à bordo - Índia

Tudo à bordo - Índia
Tudo à bordo - Índia Tudo à bordo - Índia

Paquistão

.
.
.
.
.
.
Ops... Atrasado
.
.
.
.
.
.
.
.
Chegou!

Paquistão

Categorias
Linux

Conserte senhas corrompidas com chroot

Se você é o administrador de sistema responsável por missões críticas em data centers ou se trabalha em casa, Live CDs são maravilhosos para ter em volta para quando você estiver com um problema. Se você gerencia para bagunçar alguma coisa, você pode iniciar de um Knoppix, Ubuntu, GRML ou um dos outros vários Live CDs, montar as partições do disco rígido e editar qualquer dois arquivos que necessitam de recuperação. Contudo, há algumas coisas que não podem ser corrigidas facilmente, porque elas precisam que você esteja no próprio sistema que precisa de correção.

A solução é usar o comando chroot (mudar root), que configura um ambiente de trabalho dentro de um diretório. Perceba que o root do nome se refere ao root do diretório e não ao usuário root (ou superusuário) embora o usuário root seja o único permitido a executar este comando. Chroot cria um sistema 'enjaulado' dentro do diretório especificado, um que não tem acesso ao restante do sistema e pensa que o diretório informado é o diretório root. Para corrigir uma senha, por exemplo, você deveria iniciar de um Live CD, montar o root do seu sistema de arquivos /mnt/tmp e fazer isto:

sudo -i
mount --bind /dev /mnt/tmp/dev
mount -t proc none /mnt/tmp/proc
chroot /mnt/bin/bash

A primeira linha é necessário para se tornar root no Ubuntu. As duas próximas tornam o /dev/ e o /proc diretórios disponíveis dentro do chroot, e a última entra no diretório que foi configurado executando um terminal Bash. Agora você pode executar passwd ou qualquer outro comando que precisar e encerrar com logout ou pressionando Ctrl-D para sair.

Categorias
Linux

Gulosos por tráfego de banda

Você já percebeu que sua conexão de internet se tornar bem mais lenta mesmo que você não esteja baixando nada? É pela maneira como algumas conexões de banda larga assimétrica são configuradas, se você saturar a taxa de tráfego para enviar arquivos, baixar arquivos se torna quase impossível.

Isto é por causa da maneira como o tráfego é colocado na fila pelo modem e pelo provedor de internet (ISP). Mesmo a mais lenta e mais baixa operação de tráfego, como usar um shell remotamente ou procurar um endereço DNS, se torna dolorosamente lenta ou expira. Se você está usando alguma coisa como um cliente BitTorrent para enviar arquivos, você pode limitar a taxa de envio, que evitará este problema. Alguns outros probramas, como rsync, tem uma característica similar, mas a maioria não possui. Da mesma maneira, executar dois programas assim continuará a causar problemas caso cada um tenha sido permitido a usar 90% do tráfego de envio.

Uma solução é um útil script chamado Winder Shaper. Ele utiliza o comando tc (traffic control) para limitar o uso completo do tráfego de banda para levemente abaixo do máximo disponível. Pege-o em https://github.com/magnific0/wondershaper, coloque o script whaper em alguma pasta - /usr/local/bin é uma boa escolha - e edite o inicio do script para se adaptar ao seu sistema. Defina DOWNLINK e UPLINK para logo abaixo da sua banda máxima (em kilobits/s) e execute-o. Você agora vai perceber que envio de arquivos pesados, como enviar fotos para o Flickr, não irá mais puxar seu modem para baixo. Quando você estiver contente com as definições, configure-o para ser executado na inicialização com qualquer método que sua distro use.

Categorias
Linux

Encontre arquivos perdidos

Alguma vez você salvou um arquivo, talvez um download, e então não conseguiu encontrá-lo? Talvez você o tenha salvo em um diretório diferente ou com um nome incomum.

O comando find é útil aqui:

find ~ -type f -mtime 0

e mostrará todos os arquivos do seu diretório home que forão modificados ou criados hoje. Por padrão, find conta dias a partir da meia-noite, então o valor 0 siginifica hoje.

Você deve ter usado a opção -name com o find antes, mas ele pode fazer muito mais. Estas opções podem ser combinadas, então, se o elusivo download foi um arquivo MP3, você pode reduzir a pesquisa com:

find ~ -type f -mtime 0 -iname '*.mp3'

As aspas simples são necessárias para para evitar que o shell fique tentando expandir o coringa, e -iname torna a combinação insensível ao caso.

Permissões incorretas podem causar erros obscuros algumas vezes. Você pode, por exemplo, ter criado um arquivo no seu diretório pessoal enquanto trabalhava como root. Para encontrar arquivos e diretórios que não peretencem a você, use:

find ~ ! -user ${USER}

O shell define a variável de ambiente USER para o usuário atual, e um ! muda o resultado para o próximo teste, então este comando encontra qualquer coisa no atual diretório do usuário que não pertencem a este usuário. Você pode até usar o find para corrigir permissões

find ~ ! -user $USER -exec sudo chown ${USER}:"{}" \;

A página man do find explica o uso de -exec e muitas outras possibilidades.

Categorias
Linux

A maneira fácil de compartilhar arquivos

O compartilhamento de arquivos com Samba ou NFS é fácil desde que você tenha tudo previamente configurando em ambos os computadores, mas e se você quer apenas transferir um arquivo para outro computador na rede sem o trabalho de configurar programas? Se o arquivos é pequeno, você pode enviá-lo por e-mail. Se os computadores estão na mesma sala e o uso do compartimento USB é permitido nos computadores, você pode usar a porta USB, mas há também outra opção.

Woof é um script Python que pode ser executado em qualquer computador com Linux (ou similar). O nome é um acrônimo para Web Offer One File (A Teia Oferece Um Arquivo), que o define muito bem, como se o fosse um servidor web a um clique. Não há nada a instalar; apenas baixe o script de www.home.unix-ag.org/simon/woof.html e o defina como executável, então compartilhe o arquivo digitando:

./woof /pasta/do/meuarquivo

Isto irá responder com uma URL que pode ser digitada em um navegador em outro computador na rede - nenhum programa além do navegador é necessário. Woof irá disponibilizar o arquivo para aquele computador e então retirá-lo (você pode usar a opção -c para deixá-lo disponível por mais de uma vez). Woof disponibiliza também um diretório, como:

./woof -z /um/diretorio

O diretório será compactado com gzip tarball e enviado, e você pode substituir -z por -j ou -u para ter um arquivo bzip ou tarball descompactado. Se outros gostarem do Woof e quiserem usá-lo, você pode até mesmo dar-lhes uma cópia com:

./woof -s
Categorias
Linux

Controle remoto do MPlayer

Há dois tipos de pessoas neste mundo: aquelas que pensam que o MPlayer é o melhor tocador de mídia na história da existência, e aqueles que estão errados. Uma das características menos conhecidas é a possibilidades de controlá-lo pelo console, um script shell ou até mesmo através da rede. O segredo para este truque está na opção -slave do MPlayer, que diz ao programa para aceitar comandos do stdin stream ao invés das teclas de teclado. Combinar isso com a opção -input e comandos serão lidos de um arquivo ou um FIFO. por exemplo, teste isto num terminal:

mkfifo ~/mplayer-control
mplayer -slave -input file=/home/user/mplayer-control
filetoplay

Então, em outro terminal ou de um script, entre:

echo "pause" >~/mplayer-control

Este comando irá interromper a execução corrente do MPlayer, e ao soltar o comando novamente irá recomeçar a gravação. Note que você tem que dar o caminho completo do arquivo de controle para o MPlayer, com /home/user e daí em diante, porque ~/mplayer-control apenas não irá funcionar. Há vários outros comandos que você pode enviar para o MPlayer - de fato, qualquer operação de teclado no programa dispara um comando que você pode usar no seu script de controle. Você pode até operar o MPlayer de outro computador através da rede usando SSH ou Netcat. Veja este exemplo:

ssh user@host "echo pause >mplayer-control"

Aqui, nós nos autenticamos numa máquina remota (servidor) com o nome de usuário e executamos um comando para enviar a interrupção para o arquivo de controle do MPlayer da máquina remota. É claro, isto pode ser feito muito mais rápido se você tem a chave de autenticação de SSH habilitada para que você não precisa entrar com a senha a cada vez.

Categorias
Spam

A internet brasileira que não tem conivência com o spam

Vou pedir licença ao meu amigo Elildo de me basear no título dele, mas o fato que me alegra é que enquanto a Locaweb mantém uma conivência com o spam, a iniciativa do CGI.br contra o spam tem rendido frutos e aceitação.

O fato é que o spam não agrada, ou melhor, não agrada a ninguém com exceção daquele que envia e aquele que ganha por ser permissivo a essa prática. Mas ainda há vários que se preocupam com a diginidade e em prestar um serviço com excelência para seus clientes e também para a sociedade.

O UOL, um gigante do setor, numa atitude digna de apalusos, se comprometeu e, a partir de 05/01/2010, bloqueou a porta 25 para envio de e-mail, que não exige autenticação e pode ser explorada para envio de spams com facilidade, usando oficialmente a porta 587 para envios de mensagens. O Brasil realmente precisa de outras iniciativas assim:

Entre as fontes que indicam o Brasil como usado para envio de spam, e que foram listadas pelo CGI.br, estão as listas da Composite Blocking List (CBL). Na quinta-feira (7/1), o Brasil estava em segundo lugar na lista, com 12,28% de domínios que foram flagrados enviando spam (por PCs ou mal configurados, ou vulneráveis por código malicioso). Nesse ranking, o país ficou atrás apenas da Índia, com 15%.

A empresa de harware para redes Cisco chegou a afirmar, em relatório, que o Brasil era líder mundial de spam. Mas o relatório, que avaliou em 7,7% a participação do país no envio das mensagens, baseou sua contagem apenas no país de instalação dos servidores que deram origem ao envio, e não nos reais remetentes, que podem ter disparado o envio de outro país.

(Fonte: IDG Now)

Categorias
Technology

Frase

"A frase mais deliciosa de se ouvir na ciência, aquela que anuncia descobertas, não é Eureka, mas... Que engraçado"

Isaac Asimov, em Luciano Pinheiro