Archive for the ‘Linux’ Category

PostHeaderIcon Processo “kworker” deixando seu computador inutilizável?

Recentemente, comecei a ter alguns problemas de desempenho em notebooks com o Ubuntu 11.04. Investigando melhor, não foi difícil verificar que o problema ocorria apenas quando os equipamentos estavam com suas baterias sendo carregadas. O desempenho literalmente desabava ao ponto do próprio mouse não funcionar direito. Com um simples “ps” foi possível identificar o vilão: o kworker, um processo que ajuda o kernel a desempenhar suas atividades.

Uma rápida pesquisa foi suficiente para verificar que o problema já parecia incomodar alguns usuários de Linux, incluindo aqueles de outras distribuições diferentes do Ubuntu, como o Fedora, por exemplo. Depois de algumas sugestões que não surtiram efeito, encontrei uma solução que parece ter dado “conta do recado”. Diante disso, resolvi compartilhar por aqui para poder ajudar quem possa estar, eventualmente, com o mesmo incômodo problema.

A solução, simples, consiste apenas em alterar o conteúdo da variável “/sys/module/drm_kms_helper/parameters/poll”. Para isso, abra um terminal de comandos com privilégios de super-usuário (em distribuições como o Ubuntu você pode utilizar o comando sudo, por exemplo) e execute o comando “echo”, de acordo como apresentado a seguir:

$ sudo su - 
# echo N> /sys/module/drm_kms_helper/parameters/poll

Se você estiver em frente ao seu computador com o problema de ter sua CPU “consumida” pelo kworker, o comando acima deve ser suficiente para fazer tudo voltar tudo ao normal em poucos segundos. Essa solução, entretanto, não será mais válida em seu próximo reboot. Para fazer com que ela seja permanente em seu sistema, insira a mesma configuração no arquivo /etc/modprobe.d/local.conf, conforme apresentado a seguir:

$ sudo su - 
# echo "options drm_kms_helper poll=N" >/etc/modprobe.d/local.conf

Bem, acho que é isso. Espero que possa ajudá-los.

PostHeaderIcon A “tela preta” e seus poderes: reduzindo a resolução de suas fotos através da linha de comando e dos “pipes”.

Foi-se o tempo em que as distribuições GNU/Linux eram limitadas aos terminais de “tela preta”. Atualmente, existem diversas alternativas de ambientes gráficos e uma vasta parafernalha de recursos para tornar seu ambiente gráfico de desktop ágil e bastante atrativo. Por outro lado, isso não significa dizer que a “tela preta” ficou para trás e não possui mais qualquer utilidade. Muito pelo contrário. Ela continua sendo uma excelente ferramenta para administradores de sistemas, analistas de segurança, desenvolvedores e usuários mais avançados.

Além de poder executar diversos comandos individuais de maneira ágil, a possibilidade de poder combinar comandos através do uso dos pipes é o que, particularmente, considero ser um dos grandes poderes “Jedi” da “tela preta”. Com esse recurso, é possível criar, facilmente, funcionalidades que não existem através de um único comando para atender às suas necessidades. É claro que, quanto maior a experiência com a “tela preta”, melhor será suas condições em usar do recurso dos pipes. E, logicamente, nada melhor do que praticar um pouco para desafiar a criatividade.

Diante disso, resolvi compartilhar por aqui um exemplo que pode ser útil para o seu dia a dia: reduzir o tamanho de suas fotos. Com câmeras digitais cada vez mais acessíveis e com a sua inclusão em diversos dispositivos como celulares e tablets, muitas pessoas costumam acumular muitos gigas armazenando suas imagens. Some-se a isso o fato das resoluções cada vez mais altas gerarem arquivos maiores. Diante disso, seja como uma forma de economizar espaço em seus meios de armazenamento (e.g. HDs externos) ou como facilitar o envio e o compartilhamento de suas fotos através da Internet, reduzir o tamanho de suas fotografias, às vezes, pode ser uma ideia interessante.

A questão é: como fazer isso de umam única vez aplicando a redução para todas as fotografias selecionadas? Bem, como você já deve ter desconfiado, a “tela preta” pode lhe ser útil nesse momento especialmente por meio do uso dos pipes. Vamos dar uma olhada?

Read the rest of this entry »

PostHeaderIcon Fazendo seu servidor Apache “falar” um pouco menos…

Tarefa básica e que faz parte do cotidiano de um usuário: abrir o browser de sua preferência e acessar algum site na Internet. Simples, não? Do ponto de vista do usuário, sim. Mas, aos olhos de um administrador de sistemas preocupado com segurança, essa é uma atividade que merece ser um pouco mais estudada. Todas as vezes que um cliente conecta-se a um servidor Web há uma troca de informações entre ambas as partes. Nesse caso, a linguagem falada é o HTTP. A questão é que algumas dessas informações podem revelar informações do seu servidor Web úteis na elaboração de um ataque.

Para verificar algumas das informações comumente reveladas por um servidor Web aos clientes que conectam-se a ele, basta utilizar o antiquado mas ainda útil telnet. Nesse caso, é suficiente escolher um site qualquer, direcionar a conexão para a porta 80 e submeter ao servidor algumas das poucas informações obrigatórias do protocolo HTTP (GET e Host, por exemplo), conforme mostrado a seguir:

# root@scadufax:~# telnet www.xxxxx.com.br 80
Trying 201.123.123.121...
Connected to server.xxxxx.com.br.
Escape character is '^]'.
GET / HTTP/1.1
Host: www.xxxxx.com.br

Após a cláusula “Host”, pressione duas vezes Enter. Em seguida, o servidor Web deve retornar os cabeçalhos HTTP de resposta e o conteúdo da página, de acordo como mostrado abaixo:

HTTP/1.1 200 OK
Date: Fri, 08 Jul 2011 00:47:40 GMT
Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny10 with Suhosin-Patch
Last-Modified: Thu, 20 Apr 2006 18:44:51 GMT
ETag: "9f132-c96-411e12ad8aec0"
Accept-Ranges: bytes
Content-Length: 3222
Content-Type: text/html; charset=ISO-8859-1

<<< CONTEÚDO DA PÁGINA>>>

Dentre os cabeçalhos de resposta, dedique atenção especial ao “Server”, em destaque. Nele, é possível identificar o servidor Web (Apache), sua versão (2.2.9), o sistema operacional (Debian) e ainda a versão do PHP (5.2.6-1+lenny10). Tais informações já ajudam um atacante a escolher quais ferramentas ele poderá ajudar em um eventual ataque. Pior ainda: o atacante consegue descobrir se seu servidor encontra-se completamente desatualizado e, portanto, possivelmente vulnerável contra um conjunto maior de exploits. Revelar essas informações no cabeçalho “Server” é o comportamento mais comum para um servidor Apache instalado diretamente dos repositórios de pacotes de sua distribuição.

Outra forma de identificar se o servidor está revelando mais informações do que deveria consiste simplesmente em provocar algum erro, acessando, por exemplo, uma página que, certamente, não existe naquele servidor Web:

http://www.xxxxx.com.br/abcdefghijklmnop

Servidor Apache revelando informações desnecessárias.

Normalmente, em sites mais bem configurados, as páginas de erro são todas customizadas. Nesses casos, algumas vezes, as informações sobre o servidor não são apresentadas.

Surpreso? É nesse estado que se encontra seu servidor? Bem, então é hora de corrigir esse problema.

O Apache possui duas configurações bem simples mas que são costumeiramente ignoradas, fundalmentalmente pelos administradores de sistemas menos experientes: ServerTokens e ServerSignature que podem impedir que o servidor revele informações mais detalhadas no cabeçalho “Server” do HTTP e que informações desnecessárias sejam apresentadas nas páginas de erro default do Apache, respectivamente. Para fazê-las desempenhar essas funções, basta adicioná-las no arquivo de configuração do Apache da seguinte maneira:

ServerTokens Prod
ServerSignature Off

Depois, reinicie o seu servidor Apache e veja se agora, seu servidor passou a “falar” um pouco menos…

Logicamente que existem muitas outras providências a serem tomadas para fazer um bom trabalho de hardening de um servidor Apache. Entretanto, deixaremos isso para uma outra oportunidade.

Bem, acho que é isso. Até o próximo post.