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…
Linux
Verificação automática dos sistemas de arquivos (auto-fsck)
Por Hugo Cisneiros (Eitch)
| 01 de outubro de 2013
16
72,394
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?
Programação
Balanceando bancos de dados do WordPress com o HyperDB
Por Hugo Cisneiros (Eitch)
| 01 de setembro de 2013
34
472,554
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!
Linux
Mandar e-mail via linha de comando no Linux
Por Hugo Cisneiros (Eitch)
| 20 de julho de 2013
34
303,502
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.
Servidores
Como evitar erros na web com Varnish: grace e saintmode
Por Hugo Cisneiros (Eitch)
| 12 de julho de 2013
2
450,918
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!
Servidores
Lidando com o 404 nos servidores Web
Por Hugo Cisneiros (Eitch)
| 10 de julho de 2013
1
458,103
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…
Linux
O que diabos é o swap no Linux?
Por Hugo Cisneiros (Eitch)
| 05 de julho de 2013
15
614,284
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.
Programação
php-gettext: Múltiplos idiomas em um sistema PHP
Por Hugo Cisneiros (Eitch)
| 22 de maio de 2013
19
499,691
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.
Programas
s3cmd: mandando arquivos para a Amazon S3
Por Hugo Cisneiros (Eitch)
| 20 de maio de 2013
8
477,525
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…
Servidores
Páginas de erros no squid
Por Hugo Cisneiros (Eitch)
| 15 de abril de 2013
8
488,287
O squid é um servidor de proxy que geralmente é usado para servir os navegadores dos usuários e ser o intermediário entre eles e os servidores web espalhados pela Internet. Quando usamos proxy, uma característica importante é que todas as requisições são feitas pelo navegador, inclusive as de DNS. Isso significa que se o navegador conseguiu conectar-se ao servidor proxy, todo o resto das ações é feito pelo proxy.
Normalmente e sem proxy, um navegador quando encontra algum erro apresenta sua própria página de erro. Mas agora com um proxy configurado, ele não tem como saber que possa ter acontecido algum erro. Para os navegadores, a conexão foi estabelecida e a requisição foi enviada. Se existe um DNS ou não, se o servidor web da página está funcionando ou não, é outra história.
Por causa disso, o squid vem com algumas páginas de erros amigáveis que substituem as do navegador. Tanto na versão 2.x quanto na 3.x.