Mantenha seus servidores enxutos

Foi divulgada ontem uma vulnerabilidade no servidor de compartilhamentos Samba, usado por máquinas Linux e FreeBSD para compartilhar arquivos e recursos em redes Windows. É uma falha grave, simples de explorar, e que afeta versões do Samba desde a 3.5.0, lançada há sete anos.

Então, se você usa Linux, confira se você tem o Samba instalado. Se tiver, confira a versão menor (aquele terceiro número no código da versão). Se você estiver usando uma das seguintes, você está seguro: 4.6.4, 4.5.10 ou 4.4.14.

Se não. Você pode fazer uma das seguintes coisas:

  1. verificar se há atualização do Samba para sua distribuição, e se a versão mais atualizada é uma dessas acima; ou
  2. baixar o código fonte e compilar o Samba você mesmo, de preferência da versão 4.6.4; ou
  3. desligar o serviço vulnerável, adicionando ao seu smb.conf a linha abaixo:
    nt pipe support = no

    E em seguida reiniciando o Samba; ou

  4. desinstalar o Samba

A última alternativa pode parecer a mais preguiçosa, e talvez você simplesmente não possa cogitá-la. Mas eu recomendo que você se pergunte, antes de qualquer outra atitude: eu preciso mesmo desse serviço? Dessa vez foi uma falha no Samba, mas praticamente todo dia saem atualizações de segurança para os diversos softwares e serviços que você pode instalar em seu sistema. Cada software não utilizado que você mantém instalado aumenta suas chances de ter problemas de segurança e suas preocupações com atualizações de versão.

Nesse caso, menos é mais. Reduza os pacotes que você tem instalados aos essenciais, removendo tudo o que você não usa. Principalmente em servidores. Isso vai tornar suas máquinas mais seguras e vai tornar mais fácil para você manter tudo atualizado.

Assine a companhe os boletins de segurança dos softwares que você usa. Você não quer correr o risco de não ficar sabendo de uma atualização crítica e ter seu sistema vulnerável simplesmente por não ter sido avisado, não é?

Por fim, é importante que você saiba que a essa falha de segurança no Samba é especialmente preocupante porque muitos dispositivos NAS e outras soluções de armazenamento de dados usam Samba. Então se você possui um equipamento de armazenamento de dados, é bom investigar se ele usa Samba e está vulnerável a essa falha.


PS: obrigado ao Rodrigo por me avisar.

Hacker instalou um Backdoor secreto em servidores do Facebook para capturar senhas

Você viu essa notícia?

Hacker Installed a Secret Backdoor On Facebook Server to Steal Passwords

Resumindo, um hacker descobriu um servidor do Facebook (files.fb.com) rodando uma versão desatualizada de um software de compartilhamento de arquivos e conseguiu, através disso, fazer upload de um PHP Web Shell. Ou seja, acesso shell ao servidor.

No post original do cara que descobriu a falha você pode achar uma porção de detalhes técnicos muito interessantes.

O que é esse backdoor secreto?

Backdoor (“porta dos fundos” em inglês) é um software oculto que permite a quem o instalou acesso ao servidor. Um webshell é um backdoor que pode ser acessado em uma interface web. Existem webshells em PHP, ASP, Python, Ruby, C#, Perl e é muito fácil construir um em sua linguagem predileta.

Veja um exemplo de tela de um web shell em PHP:

Webshell em PHP

Webshell em PHP (clique para ampliar)

E seu site, é seguro?

Lição importante que você tirar desse episódio: uma corrente é tão forte quanto seu elo mais fraco. Seu servidor de controle de versão, seu software de gestão de projetos, seu webmail, todas as aplicações web acessórias ao seu site, todos os seus servidores e os computadores da sua equipe precisam estar seguros.

Por exemplo: se seu servidor git tiver o Open SSH desatualizado, se um dos programadores que desenvolve seu site instalar um software malicioso por engano ou se a sua senha do registro de domínios não é forte o suficiente, seu site estará vulnerável, não importa quão bom seja seu código.

Salvando diff em HTML

Comece instalando as ferramentas:

sudo apt-get install colordiff kbtin

Agora você pode:

diff arquivo1.txt arquivo2.txt | colordiff | ansi2html > diff.html

Ou, com git:

git diff | colordiff | ansi2html > gitdiff.html

Você também pode salvar a saída de qualquer comando que retorne ANSI colorido:

ls -lha --color | ansi2html > ls.html

Escondendo processos dos outros usuários

Por padrão, todos os usuários de uma máquina podem ver todos os processos rodando. Tente, por exemplo:

ps aux|grep root

Quase tudo em Linux é representado como arquivos. As informações sobre os processos rodando estão em arquivos virtuais dentro de /proc. Você pode remontar /proc, passando uma opção para controlar a visibilidade dos processos, assim:

sudo mount -o remount,rw,hidepid=2 /proc

Em seguida, tente novamente:

ps aux|grep root

Você vai ver que os usuários, com hidepid=2, não poderão ver processos de outros usuários. Para desfazer, execute:

sudo mount -o remount,rw,hidepid=0 /proc

Assim, você pode configurar seu servidor para que um usuário não possa saber o que os outros estão fazendo.

Yes we can! Minha apresentação no TDC 2015.

Agora que o Internet Explorer 8 morreu, e o número de usuários do Internet Explorer 9 é quase insignificante, há uma porção de recursos do CSS que finalmente podemos usar.

Essa é a primeira palestra de uma série, que inclui outros recursos do CSS, HTML5, SVG e Javascript. Em breve publicarei as outras, incluindo vídeos. Enquanto isso, veja os vídeos que publiquei recentemente:

Para onde foi a performance do seu Linux? Glances nele!

Glances é a melhor aplicação que eu já vi para análise de performance no Linux. Veja um screenshot:

glances

Numa tela simples de terminal temos uso de memória, CPU, rede, I/O e espaço em disco. Aperte h para ver a ajuda.

Para instalar:

sudo apt-get install glances

E para executar:

sudo glances

Claro, se você não usa Debian/Ubuntu, troque apt-get por yum, pacman, emerge ou o comando correspondente em sua distro.

Easter eggs no Python e um pouco mais

Todos gostamos de easter eggs, certo?

Então rode o python e se divirta:

import this
import __hello__
from __future__ import braces
import antigravity

E uns outros que eu acho interessantes:

No vim, tente:

:help 42
:help holy-grail
:help UserGettingBored
:help!
:Ni!

Esses agora, são apenas para Debian, Ubuntu e derivados. Tente isso e dê uma olhada na última linha:

apt-get help

Depois tente:

apt-get moo

E depois de ter visto esses dois do apt, esse aqui vai fazer um bocado de sentido:

aptitude help
aptitude moo
aptitude -v moo
aptitude -vv moo
aptitude -vvv moo
aptitude -vvvv moo
aptitude -vvvvv moo
aptitude -vvvvvv moo

E o último dessa série (talvez você precise instalar o apt-build para ver):

apt-build moo

Se você é um administrador de servidor, pode deixar um easter egg para seus usuários sudoers. Rode:

sudo visudo

E inclua, no bloco de configurações começando com “Defaults”, a seguinte linha:

Defaults insults

Salve e saia. Agora, quando um usuário sudoer errar a senha, o sudo vai insultá-lo em retribuição.

Esses próximos estão na internet, mas devem ser aproveitados num terminal:

telnet towel.blinkenlights.nl
traceroute -m 254 -q1 obiwan.scrye.net

É isso. Conhece mais? Deixe aí nos comentários.

Faça o Google falar por você

Ah, a internet! Você, usuário de Linux, comece pela preparação:

sudo apt-get install curl mpg123

Depois crie o script falador:

#!/bin/bash
l=pt-BR
if [ "$1" == "-l" ];then
  shift
  l=$1
  shift
fi
curl -A "Falador" translate\.google\.com/translate_tts -d "tl=$l&ie=UTF-8&q=$@" |mpg123 -;

Dê permissão de execução:

chmod +x falador

E divirta-se:

./falador "Onde está o futuro que nos prometeram?"
./falador -l en "Luke, I am your father."

Tudo tem que funcionar no celular

Mandei esse e-mail para o pessoal da Visie:

Pessoal,

Quando foi a última vez que você fez um site na Visie que não tinha versão mobile?

Então. Tudo tem que funcionar no celular. É praxe. O que não for responsivo é a exceção.

Então, ao receber um wireframe, layout ou especificação do projeto, não precisa perguntar: vai ser responsivo? Pode perguntar direto: onde está o layout mobile?

Ao estimar, planejar, projetar ou implementar qualquer coisa web na Visie, ter isso em mente vai evitar confusão. Lembre-se sempre: é sim responsivo, a não ser que alguém explicitamente diga o contrário.

Um [ ]!

Elcio

É, eu sei, não tem nada genial aí. Nem é “vanguarda”, todo mundo já trabalha assim há um tempão (ou não?) Mas para quem viveu o tempo dos layouts com tabelas para IE3 e Netscape 4, o simples fato de estar escrevendo essas palavras significa muito.

Valeu internet!

Carta aos Presidenciáveis: Por que desprezam quem precisa de acessibilidade?

Da Lêda Spelta:

Caríssimos candidatos Dilma Rousseff, Marina Silva e Aécio Neves,

Desalentada com a escassez de informações apresentadas nos programas eleitorais, resolvi acessar os sites oficiais de campanha, na esperança de encontrar esclarecimentos sobre as principais diferenças programáticas, ou seja, sobre o que eu poderia esperar do futuro do Brasil com cada um dos senhores na presidência, já que são os candidatos com chances reais nessa eleição. E decidi começar pelo site da Presidenta Dilma…

Continue a leitura no site da Acesso Digital: Carta aos Presidenciáveis: Por que desprezam quem precisa de acessibilidade?

oh-my-zsh: shell esperto com zsh e open source

Estamos publicando, e anunciando em nossa lista de e-mails, o Mini-curso gratuito de Linux para Programadores. Recebi no final da semana passada o seguinte e-mail:

Olá Elcio,

olha, como já sou usuário Linux já sabia algumas coisas do que foi dito, mas outras não. Achei a forma que desenvolveu esse vídeo bem interessante, prático e objetivo, sem muita balela, o que acho ótimo pois tem uns cursos por aí que os instrutores ficam de muito blábláblá. Por essa primeira aula vejo que aprenderei bem mais no decorrer do curso. São 4 partes, né?

Uma coisa que notei é que está usando zsh. Vão rolar umas dicas de como usar ele ou vai continuar só no bash mesmo? É que por coincidência acabei de instalar ele e ainda estou apanhado um cadim, rsrs.
Bem, é isso. Parabéns pela iniciativa e fico no aguardo das próximas aulas.

Abraços,

******** *****

Como eu faço? oh-my-zsh

Como achei que a resposta podia ser útil para mais gente, resolvi publicar aqui. Eu uso o oh-my-zsh.

Uso com o tema padrão mesmo. No meu .zshrc só tem de personalizado uns alias de comando e definição do PATH e CDPATH. Faço a instalação com o instalador automático. Ele já vem com coisas como um plugin de git que mostra o branch atual e o status no prompt.

Recomendo oh-my-zsh. É o zsh em sua melhor forma, sem esforço. Veja um exemplo do meu shell, com o prompt sinalizando o status do repositório git atual e quando um comando falhou:

oh-my-zsh

Quer aprender mais sobre o terminal do Linux? Veja nosso Mini Curso Grátis sobre Terminal.

Fique por dentro das novidades da Visie

Você deve ter notado que a Visie anda meio quieta quando o assunto é treinamentos. Depois do DevOps Heroes, que aconteceu no final de Janeiro, paramos um pouco de divulgar treinamentos.

Fizemos isso porque gastamos um bocado de tempo estudando como criar treinamentos que realmente façam diferença na vida dos desenvolvedores com quem entramos em contato. E acreditamos que chegamos a um formato agora que pode realmente ajudar a mudar o jeito como se faz web no Brasil.

Não apenas acreditamos, como conseguimos testar esse formato em alguns treinamentos em empresas, e os resultados nos deixaram muito empolgados.

Agora estamos de volta. Temos um bocado de coisas para compartilhar e um convite a fazer.

Acessibilidade para Twitter Bootstrap

Dica do Hans Mösl no grupo de trabalho de acessibilidade do W3C Brasil:

Plugin de Acessibilidade para Twitter Bootstrap. Plugin de código aberto, no GitHub. Promete tornar acessíveis uma porção de componentes Javascript do Bootstrap e, até onde eu consegui conferir, funciona muito bem.

Considere incluir em seu próximo projeto. Considere incluir nos seus projetos antigos baseados em Bootstrap 3. Considere incluir sempre.