Português do Brasil English
Devin no Facebook  Devin no Twitter  RSS do Site 
Segurança    

Protegendo o login do WordPress contra força bruta (wordpress bots)


Comentários  5
Visualizações  
566.967

Quem tem algum site em WordPress e vê com frequência os logs de acesso, vai perceber que há sempre um monte de IPs tentando se logar como administrador do site. Essas várias tentativas por vários IPs geralmente são na verdade bots/zumbis que ficam vasculhando a Internet atrás de sites que tenham alguma falha e/ou senhas fracas de admin. Imagine muitas máquinas fazendo várias requisições no seu servidor… Pra que isso né? Carga e tráfego totalmente desnecessários.

Existem várias técnicas para se precaver desses bots. Vamos explorar algumas delas…

Leia mais

Linux    

Verificação automática dos sistemas de arquivos (auto-fsck)


Comentários  15
Visualizações  
76.664

Não importa que sistema ou distribuição Linux você esteja usando, sempre há um sistema de arquivos armazenando os seus dados. Há alguns anos atrás, os sistemas de arquivos (ou filesystems, em inglês) não eram tão modernos e precisam de alguns cuidados. Por exemplo: ao usar o sistema de arquivos ext2, se o computador fosse reiniciado ou desligado de forma forçada (o famoso dedoff, ou seja, mete o dedo no botão), logo na inicialização do Linux era feita a verificação de todo o sistema de arquivos, procurando por inconsistências, erros, arquivos e dados perdidos, essas coisas. Dependendo do tamanho do disco, isso poderia demorar vários minutos ou até horas…

Com os sistemas de arquivos mais modernos isso não acontece. Exemplo: ext3, ext4, XFS, ReiserFS, brtfs, entre outros. Todos esses sistemas de arquivos possuem uma funcionalidade muito útil chamada de journaling, uma espécie de meu querido diário. Com o journaling, as operações do sistema de arquivos são gravadas em um log, antes de começar e depois que acabou a operação. Assim, se algo falhar no caminho, o sistema de arquivos lê o log e sabe exatamente como consertar ou refazer (ou não fazer). Isso evita termos que ficar esperando uma verificação completa em todo o sistema de arquivos….

Mas quando acontece algum erro, é hora do fsck entrar em ação. Que tal a gente automatizar ele?

Leia mais

Programação    

Balanceando bancos de dados do WordPress com o HyperDB


Comentários  19
Visualizações  
537.814

O WordPress ao longo do tempo se tornou mais do que uma ferramenta para criar simples blogs e acabou virando uma plataforma de CMS completa. Muitos sites começaram a adotá-lo, incluindo sites com grande acesso e interação. Estes grandes volumes, por sua vez, ocasionaram algumas deficiências em termos de desempenho do site em algumas partes da infraestrutura, principalmente nos servidores web e bancos de dados.

O HyperDB é um plugin do WordPress usado para balancear e controlar as consultas MySQL e ajudar a melhorar o desempenho do site. Aprenda a usá-lo!

Leia mais

Linux    

Mandar e-mail via linha de comando no Linux


Comentários  33
Visualizações  
318.973

Todo mundo fica dizendo que e-mail é coisa do passado e que o futuro mesmo é utilizar as redes sociais e a Web 2.0 (lol) para se comunicar. Mas a verdade é que o e-mail é ainda muito útil e acredito que vai demorar bastante tempo para que isso mude. No pior dos casos, e-mail ainda continua sendo uma boa forma de registro e notificação.

E neste caso de notificação, enviar e-mail via linha de comando do Linux é bastante útil. Terminou uma tarefa no crontab? Envia um e-mail com o resultado. Caiu um servidor? Envia um e-mail para alguém notificando. Ou então querer apenas testar um servidor de e-mail local? É só usar a imaginação.

Leia mais

Servidores    

Como evitar erros na web com Varnish: grace e saintmode


Comentários  2
Visualizações  
514.144

Erros nos servidores web são muito comuns. Diversos motivos podem acontecer: um banco de dados caiu, faltou memória, deu um problema na rede, o sistema dinâmico tá consumindo muita CPU, um htaccess com erro de sintaxe, uma função mal-escrita entrou em loop infinito, entre muitos outros. Quando algum erro como esse ocorre, o usuário recebe um famoso “Error 500 Internal Server Error” (ou até um “503 Service Unavailable”). O Varnish pode ser usado para mascarar esse tipo de erro e funciona de uma forma bem simples: se o servidor der algum erro, o Varnish serve a página que está em cache, ao invés do erro. O usuário vai pegar um conteúdo possivelmente antigo, mas em muitos casos é melhor do que ele ser presenteado com um erro.

Conheçam agora os mecanismos responsáveis por isso: grace e saintmode!

Leia mais

Changelog    

Experimento: Amazon AWS São Paulo


Comentários  2
Visualizações  
498.114

Hoje o Devin foi migrado para a Amazon AWS São Paulo (sa-east-1) para testar o desempenho. O legal é que o site está rodando todo no free tier da AWS, utilizando apenas uma instância EC2 t1.micro e uma instância RDS micro. Para aguentar acessos nesse tipo de hardware, o site está agora por trás de um Varnish e grande parte dos itens estáticos (imagens, css, javascript, etc) estão com um Expires de uma semana no navegador do usuário, além de um cache de 1 hora do lado do servidor varnish. Este experimento irá acabar apenas quando o free tier acabar ou tivermos problemas com desempenho. Neste primeiro dia, tudo foi um sucesso! O tempo de resposta do servidor caiu bastante (chegamos a 0.066s) e a carga do servidor é sempre baixa por causa do Varnish. Vamos que vamos!

Leia mais

Servidores    

Lidando com o 404 nos servidores Web


Comentários  0
Visualizações  
521.818

O código de status HTTP 404 é bem famoso na Internet, ele diz que a requisição do cliente não foi encontrada no servidor. Muitas vezes, os usuários tentam acessar páginas que não existem dentro de um site: ou por causa de um link quebrado, ou uma digitação errada, ou algum outro erro humano. Para esses usuários, a página 404 pode se tornar uma porta de entrada para outros conteúdos dentro do site, ou até mesmo para apresentar alguma brincadeira e melhorar a imagem do site (acredite, adoramos brincadeiras com o 404).

Existem diversas formas de se lidar com o famoso “404 Página Não Encontrada”. Confirma algumas…

Leia mais

Linux    

O que diabos é o swap no Linux?


Comentários  13
Visualizações  
688.502

No Linux, o swap é a memória virtual (também é conhecido como área de troca). A memória virtual funciona como uma extensão da memória RAM, que fica armazenada no disco. O porquê da memória swap precisar existir é simples: o sistema operacional precisa de memória para funcionar, e se a memória acabar, o sistema falha. O swap fica como uma reserva emergencial caso a memória RAM acabe. A memória swap era bastante útil em tempos passados onde memória RAM era algo mais escasso. Hoje em dia, tanto a RAM quanto espaço em disco estão baratos. É sempre recomendado utilizar swap, mesmo com muita memória RAM.

O swap pode ficar tanto em uma partição, quanto em um arquivo no disco. No caso de ficar numa partição em um disco comum (não-SSD), recomenda-se colocar a partição no início do disco, assim a leitura durante a rotação do disco magnético é mais rápida. No caso de partições em disco SSD, tanto faz pois não há rotações como um disco comum. Algumas distribuições, como Debian e Ubuntu, tem no instalador uma opção para colocar a partição no início do disco.

Leia mais

Programação    

php-gettext: Múltiplos idiomas em um sistema PHP


Comentários  16
Visualizações  
565.639

O php-gettext é uma biblioteca em PHP que emula as funcionalidades do gettext, que por sua vez é uma poderosa biblioteca para suporte de múltiplos idiomas em qualquer sistema (inclusive o sistema operacional). O gettext é utilizado pela maioria dos programas GNU e do Linux e por isso é o preferido da galera também em muitos sistemas PHP.

No PHP, existem duas formas de usar os métodos gettext: uma extensão nativa e uma biblioteca separada. Neste tutorial, vamos aprender a usar a biblioteca separada. A extensão nativa do PHP é rápida e bem suportada pelo PHP, mas ela é uma extensão nativa! Isso quer dizer que o PHP precisa ter essa extensão compilada como módulo e habilitada nas configurações. Por experiência própria, esse tipo de dependência gera dificuldades na hora de instalar sistemas em, por exemplo, servidores de hostings compartilhados e distribuições Linux que não tem os pacotes já prontos. Enquanto isso, o php-gettext é totalmente auto-suficiente: é só colocar uns arquivos php no sistema, carregá-los via include/require e pronto, já está funcionando. Apesar da biblioteca ser um pouquinho (só um pouquinho) mais lenta que a extensão nativa, vale muito à pena pela praticidade.

Leia mais

Programas    

s3cmd: mandando arquivos para a Amazon S3


Comentários  7
Visualizações  
542.096

Quando a computação em nuvem da Amazon Web Services surgiu, um dos primeiros produtos a serem oferecidos foi o S3, que permite armazenar arquivos em um storage distribuído. No S3, cada arquivo é um objeto compartilhado entre vários servidores, distribuindo entre eles cópias de segurança.

Existem algumas maneiras para se manipular um storage S3. A AWS fornece uma interface API para conversar com seus serviços, e é através desta API que diversos programas conversam com o S3. Inclusive, o próprio gerenciador web é feito em cima dessa API principal. Por ser uma API pública, qualquer pessoa pode fazer programas ou interfaces para trabalhar com o S3.

Conheça o s3cmd…

Leia mais