News: Faz alguns dias que este blog está rodando em um VPS que aluguei na slicehost. Em um primeiro momento fiz a instalação Lamp padrão, contudo isso resultou em um pequeno inconveniente, consumo excessivo de memória ram:

# Consumo de memória com apache
mysql + apache2 rodando wordpress = 165 mb ram

Considerando que meu VPS tem apenas 256 mb de ram resolvi trocar o apache pelo nginx, o resultado foi bem agradável:

# Consumo de memória com nginx
mysql + fcgi + nginx rodando wordpress = 65 mb ram

O processo de instalação foi extremamente simples, e as configurações custaram alguns poucos momentos no google.

# Pacotes necessários:
apt-get install nginx mysql-server php5 php5-cgi php5-mysql spawn-fcgi

Arquivo de configuração do domínio no nginx
cat /etc/nginx/sites-enabled/tarzxvf.com

server {
    listen   80;
    server_name  tarzxvf.com www.tarzxvf.com;
    access_log  /var/log/nginx/tarzxvf.com.access.log;

    location / {
        root   /var/www/tarzxvf.com;
        index  index.html index.htm index.php;

        # this move feed requests to feedburner
        if ($http_user_agent !~ FeedBurner) {
            rewrite ^/feed/ http://feeds.feedburner.com/tarzxvf last;
        }

        # this serves static files that exist without running other rewrite tests
        if (-f $request_filename) {
            expires 30d;
            break;
        }

        # this sends all non-existing file or directory requests to index.php
        if (!-e $request_filename) {
            rewrite ^(.+)$ /index.php?q=$1 last;
        }
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/tarzxvf.com/$fastcgi_script_name;
        include fastcgi_params;
    }
}

Arquivo de inicialização do fcgi
cat /etc/init.d/spawn-fcgi

#! /bin/sh

### BEGIN INIT INFO
# Provides:          spawn-fcgi-php
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts FastCGI for PHP
# Description:       starts FastCGI for PHP using start-stop-daemon
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=spawn-fcgi-php
PID=/var/run/spawn-fcgi-php.pid
DAEMON=/usr/bin/spawn-fcgi
DAEMON_OPTS="-f /usr/bin/php-cgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -P $PID"

test -x $DAEMON || exit 0

set -e

case "$1" in
  start)
        echo "Starting $NAME: "
        start-stop-daemon --start --pidfile $PID --exec $DAEMON -- $DAEMON_OPTS
        echo "done."
        ;;
  stop)
        echo "Stopping $NAME: "
        start-stop-daemon --stop  --pidfile $PID --retry 5
        rm -f $PID
        echo "done."
        ;;
  restart)
        echo "Stopping $NAME: "
        start-stop-daemon --stop  --pidfile $PID --retry 5
        rm -f $PID
        echo "done..."
        sleep 1
        echo "Starting $NAME: "
        start-stop-daemon --start --pidfile $PID --exec $DAEMON -- $DAEMON_OPTS
        echo "done."
        ;;
  *)
        echo "Usage: /etc/init.d/$NAME {start|stop|restart}" >&2
        exit 1
        ;;
esac
exit 0

RemoveHandler .py

Precisei disso para impedir a execução dos arquivos .py em uma pasta de um servidor, enquanto eu tentava por chute quase acertei a sintaxe :)

De qualquer forma, basta colocar no .htaccess e está resolvido.

E aqui achei várias dicas que podem ser úteis um dia!

OK, então você usa linux e conhece o ‘top‘, item básico no repertório de qualquer sysadmin, que permite acompanhar algumas informações sobre a carga do sistema e processos. Essa ferramenta antiga e poderosa, é de uma idéia tão simples porem tão prática, que ganhou um termo para designar ferramentas semelhantes, ferramentas “top-like“.

Para se enquadrar em uma ferramenta top-like o candidato tem que:

  • ser baseado em curses
  • ter atualizações em intervalos pré-definidos
  • ter formato tabulado
  • e opcionalmente permitir interação com os objetos analisados
  • Fiz uma lista com 16 ferramentas top-like disponíveis no Ubuntu 9.04. Enquanto fazia a pesquisa, encontrei pelo menos mais meia dúzia sem pacotes para o ubuntu, e se for considerar as que eu não encontrei esse número deve subir consideravelmente.

    Continue lendo!

    Esse meme está rolando em muitos planetas. Fiquei curioso e resolvi brincar!
    Aí está o resultado.

    É algo que me irrita profundamente, servidores mal aproveitados que por sua vez demandam mais servidores! Alem dos óbvios custos financeiros envolvidos, existe também o fator “Sysadmin puto da cara” e “Sysadmin pagando o pato por falha no desenvolvimento”.

    Essa é a recomendação de leitura da semana:
    Hardware is Expensive, Programmers are Cheap
    Hardware is Expensive, Programmers are Cheap II

    Vale citar que esses textos foram escritos em resposta a esse outro:
    Hardware is Cheap, Programmers are Expensive

    Recebi o convite essa tarde e já estou com o UbuntuOne rodando no meu laptop. O processo de instalação foi extremamente simples, não levou 5 min. No pouco uso que fiz ainda não encontrei nenhum problema, o próximo passo é instalar no dekstop lá onde eu trabalho.

    Até agora só não me agradou o fato de o programa criar a pasta Ubuntu One no meu $HOME. Eu sou meio nervoso em se tratando da organização do meu $HOME, mas acho que posso me acostumar, ou achar onde mudar essa configuração e acrescentar um . (ponto) no início da pasta, afinal o que os olhos não vêem o cérebro não processa =)

    E aqui quem quiser pode ver uma screenshot do UO rodando.

    Não sei quando foi, mas aconteceu. Era algo que eu imaginava a algum tempo: um dropbox da vida mantido pela canonical e integrado ao Ubuntu. O projeto em Beta se chama UbuntuOne, e infelizmente depende de um “invitation” para participar ( eu já solicitei o meu ).

    Na versão gratuita são oferecidos 2gb de espaço para o usuário, um ícone na área de notificação permite o acesso as funcionalidades do produto, que no momento são: integração com o Nautilus, capacidade de compartilhar arquivos com outros usuários, sincronização e uma interface Web que permite o acesso aos dados.

    Alem da versão gratuita,existe também a versão paga, que por enquanto tem como único diferencial o espaço, são 10gb por 10 doletas mensais.

    Antes que alguém pergunte, o protocolo em que está sendo desenvolvido o UO é livre e o cliente é open source. Contudo o servidor é da Canonical e não existem planos de disponibilizar o código fonte! Mas nada impede que alguém desenvolva um servidor próprio baseado nas especificações públicas.

    Em um futuro próximo vai ser liberado uma API(fato) em cima do CouchDB(meio-fato) para que desenvolvedores possam projetar suas apps e trabalhar diretamente com o UO. Isso vai servir para facilitar a sincronização de dados dos diversos aplicativos do Ubuntu entre máquinas diferentes.

    Update:
    Leia também: http://tarzxvf.com/ubuntu-one-primeiras-impressoes

    Ontem a noite fiz a instalação do Ubuntu 9.04, e até agora só tive 4 problemas. São eles:

    - O driver Open Source para placa de Vídeo ATI as vezes “pisca” a tela.
    - O driver proprietário fglrx causa um crash no sistema.
    - O Liferea trava logo depois de abrir.
    - O ctrl+alt+backspace não funciona.

    Os 3 primeiros são bugs, e só me resta esperar uma atualização. Já o lance do backspace dizem que é feature! Tá bom…
    Enfim, para desabilitar essa “feature” basta adicionar no fim do seu xorg.conf:

    Section "ServerFlags"
            Option     "DontZap"         "False"
    EndSection

    Outra alternativa válida é rodar:

    pascal@workaholic:~$ sudo apt-get install dontzap

    seguido de:

    pascal@workaholic:~$ dontzap – -disable

    update 1:
    O Eri foi alem e consultou as fontes do texto sobre latência, e indicou esse como leitura para entender bem o conceito.
    ps. eu li e confirmo, realmente vale a pena ler o texto

    Oi, tudo bom?

    Para o sysadmin que ainda não leu, LEIA!
    Leia com cuidado, atenção, reflita sobre e depois leia de novo!

    http://lonesysadmin.net/2008/09/08/downtime/

    http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it

    nota mental: talvez seria uma boa eu traduzir e postar por aqui!

    E se possível eu gostaria de ver um post do Eri Ramos sobre o tema! Acho que ele pode ter uma boa história para contar  :)

    Em 2007 eu fiz uma experiência com modens/routers. A pesquisa englobou links estáticos e dinâmicos de uma fornecedora de internet aqui do Sul. Eu escaniei 65.025 possíveis hosts, procurando por equipamentos com as portas 23/80 (que pode caracterizar um router) e testei uma amostra dos resultados utilizando as senhas padrões dos dispositivos.

    O trabalho foi bem manual e me tomou aproximadamente 2 semanas porem trouxe algumas conclusões interessantes, como por exemplo:

    dentre o pessoal que usa 3com o habito de trocar a senha padrão é bem maior se comparado ao pessoal que usa dlink. Mas isso é bem óbvio né? E dentre os dlinks somente 30%~40% trocava as senhas dos equipamentos. Isso significa que 6 ou 7 em cada 10 pessoas com dlinks mantinham a senha default.

    Nos últimos 2 meses tem se falado muito a respeito de uma botnet de modens/routers, segundo as informações disponíveis ela compreende um grupo de equipamentos que permite ao atacante instalar um ‘novos software’ com alguma facilidade. Depois de instalado, esse worm se conecta a canais de mirc a espera de comandos do dono da botnet. Alem é claro de procurar novos equipamentos para infectar, inclusive testando as senhas default.

    Eu resolvi repetir a experiência em menor escala. Como da ultima vez, escrevi um código que busca por routes/modens, e em seguida tenta logar no equipamento e me retornar o DNS usado. Fiz o script baseado em um Router DL-500B. E qual a surpresa?

    Em 255 hosts estáticos escaniados encontrei 16 possíveis roteadores, 8 deles eram DL-500B e 5 deles logaram com a senha default e me retornaram o DNS. Pois é, nos últimos 2 anos as coisas não mudaram muito.

    Você percebe a gravidade dessa situação? Só para citar como exemplo a questão do DNS, alguém mal intencionado poderia trocar os servidores DNS do equipamento, por um DNS próprio que aponte para sites falsos. Dessa forma seria bem fácil roubar usuários e senhas de serviços populares como o gmail, hotmail, ou até mesmo dados bancários. Considerando ainda que os links estáticos dessa fornecedora são para uso empresarial a situação fica ainda pior.

    Para quem ficou curioso, a base do script que faz o scan é essa:

    ?View Code PYTHON
    #!/usr/bin/python
    import os
    import re
     
    rede = 'x.x.x.'
    for i in range(255):
        final = str(i)
        tmp = os.popen("nmap -PN -p80,23 " +rede+final).read()
        if (re.search("open  telnet",tmp)!=None) and (re.search("open  http",tmp)!=None):
    	    print "Provavelmente um router: ",rede+final

    Já o resto do script eu não vou postar, para evitar que os kids façam bobagem!