16 de dezembro de 2010

Senha Motorola SBV5121

Essa me deu trabalho...

Cheguei aqui no Rio, e aqui é virtua. Tava com pau, não funcionava de jeito nenhum. Minha máquina pegava o ip interno da rede, mas não conseguiu sair pra internet. depois de verificar muita coisa no linux...

Pensei em acessar o gateway do virtua - o motorola SBV5121 Cable Modem... 

Qual é a senha? Fiquei uns 20 minutos entre senhas 12345, admin admin, motorola motorola e etc..

E compartilho aqui com vocês que o usuário é admin e a senha é motorola.


Depois, resolvi o problema.

9 de dezembro de 2010

Novo Gerenciador de Download

Comprei um livro especializado em Shell script e estou aderindo a novas políticas. Meu último script foi um gerenciador de downloads. Depois que comecei a estudar pelo livro, verifiquei  que meu último script era falho. Nem sempre funcionava como deveria. Então o refiz. Não mudou... muita coisa. Mas, algumas coisas mudaram.




#!/bin/bash
#<-------------------------------------------------------------------------------------------------------------->
# Verify Root id
clear
if [ "$(id -u)" != "0" ]; then
        echo "You must execute this script as root user! " && exit
fi

# Environment Variables
        echo "Tell me the path file? Ex: /root/firefox.tar.bz2"
        read FILE
        FILESIZE_partial=$(/usr/bin/du -h $FILE | /usr/bin/cut -f1)
        PID_FIREFOX=$(/bin/pidof firefox-bin)
        clear


#<------------------------------------------------------------------------------------------------------------->
# Verify size file
echo "What is size file that you are downloading? Ex: 161.7M"
read FILESIZE_total
clear

# Comparison with if and case + Kill firefox process + Shutdown
if [ "$FILESIZE_partial" != "$FILESIZE_total" ]; then
        echo "The chosen file is being downloaded yet. So do not do anything."
else
        echo "Download was finished successfull. Wait, I going to kill the firefox..."
        sleep 2s
        kill -9 $PID_FIREFOX
        clear
        echo "Would you like turn off your machine? (Y/N)"
                read turnoff
                case $turnoff in
                        Y|y) /sbin/shutdown -h now;;
                        *)   echo "OK." && exit;;
                esac

fi



Bom, é isso pessoal! Qualquer dúvida... só gritar... lssabino@hotmail.com



OBS: Irei tirar umas "férias". Por isso, não irei escreverei aos meus leitores por uns 40 dias. Só volto a escrever lá pro final de janeiro. Obrigado pessoal! FUI!

7 de dezembro de 2010

Shell Script: $? e outros ensinamentos

Cada comando executado em shell tem um codigo de retorno, útil em script para conferir se falhou ou foi executado com sucesso, este resultado fica armazenado na variavel $?, ele muda a cada comando, tanto faz se foi na linha de comando ou dentro do script, atualizado a cada comando, echo $? exibe o resultado do ultimo comando, retornando:

 
   0 (zero) significa que o comando anterior foi executado com sucesso.
   1 (um) e qualquer valor diferente de zero ( != 0) indica que ocorreu algum erro.
   2  erro nos comandos do script, geralmete erro de sintaxe, digitação,
   127 = command not found, quando digita comando não existente.


cat /tmp/testar
  #!/bin/bash
  mkdir /tmp/teste
  if [ $? -eq 0 ];then
    echo $?
    echo "comando executado com sucesso!"
    else
    echo $?
    echo "falha na execução do comando."
    exit
  fi


<-------------------------------------------------------------------------------------------------->
Test
 
Agora, vamos falar de alguns parâmetros legais do comando test - muito utilizado em shell script.

test ­-r  Testa se tem permissão de leitura
test ­-w Testa se tem permissão de escrita
test ­-x Testa se tem permissão de execução
test ­-f  Testa se é um arquivo regular
test ­-d Testa se é um diretório
test ­-u Testa se seu SUID está ativado
test ­-g Testa se seu SGID está ativado
test ­-s Testa se seu tamanho é maior que zero


#!/bin/bash
  MEUMAC=`/sbin/ifconfig eth0 | grep HWaddr | awk '{print $5}'`
  if [ $MEUMAC = "00:08:54:2C:DD:FD" ]; then
    echo "estou na maquina que deve rodar o script"
    #seus comandos aqui
    else
    echo "MAC não confere, maquina diferente, altere o MAC no script"
  fi

# OU

  meumac=`ifconfig | grep "00:08:54:2C:DD:FD"`
  if [ -n "$meumac" ]; then
    echo "estou na maquina que deve rodar o script"
    #seus comandos aqui
  fi

Isso serve pra vc fazer alguma coisa amarrando ao mac address.

Vivo 3G no Ubuntu Karmic com o Huawei E1756

Saiba como fazer o 3G da vivo Huawei E1756 funcionar no Ubuntu 9.10 (karmic coala).

O grande problema é que o Karmic não reconhece o Huawei E1756 como modem 3G. Então temos que falar pro Ubuntu pra ele fazer isso. Como? nsswitch e udev.


Baixei como fazer: http://www.4shared.com/document/2C0Rj6WB/vivozap_karmic.html

Gerador de sources Debian

Eu achei um gerador de sources.list do ubuntu. E hoje achei o site que faz isso para o Debian. Apesar de eu saber os repositórios de cabeça do Debian. Mas, vai que um iniciante não sabe. Então, decidi colocar aqui pra facilitar a vida deles.


O site gerador é o http://debgen.simplylinux.ch/

Gerenciador de Download em Shell Script

Ontem antes de dormir estava baixando máquinas virtuais ubuntu e fedora pra ver o que eles mudaram nas suas versões mais recentes. Meu link doméstico não é gigantesco. Somente 1MB. Então tenho um down de 120 KB/s. O download completo dava uns 3,1 GB. Umas 5 horas de down. Comecei o download 0:30h. Eu às 2h da madruga tava ficando com sono. E o medo de dar alguma merda no download e eu não ter como reverter.  era grande. Então, fiz um gerenciador de downloads simples e no meu caso eficiente.
Segue abaixo:


#!/bin/bash
<------------------------------------------------------------------------------------------------------------------->
# Verify Root id
sleep 2s
if [ "$(id -u)" != "0" ]; then
    echo
    clear && echo "You must execute this script as root user! " && exit
    else
    clear && echo "You are root. For that reason, I going to continue executing this one"
fi

# Environment Variables
    rest=sleep 2s
    clear && echo "Which is the file format?"
    read EXTENSAO
    $rest && clear

    FILE=`ls | grep *.$EXTENSAO`
    FILESIZE_parcial=`/usr/bin/du -m $FILE | /usr/bin/cut -f1`
    PID_FIREFOX=`ps aux | grep firefox-bin | awk {'print $2'} | tail -n2 | head -n1`
    #PIDOF_FIREFOX=`/bin/pidof firefox-bin`


<-------------------------------------------------------------------------------------------------------------------->
# Locate the file
echo "Where is the file?"
read directory
$rest && clear

# Verify size file
echo "What is size file that you are downloading?"
read FILESIZE_total
$rest && echo "Locating the file." && $rest

# Go to directory of file
cd $directory

# Comparison with if and case + Kill firefox process + Shutdown
if [ $FILESIZE_parcial != $FILESIZE_total ]; then
    echo "The chosen file is being downloaded yet. So do not do anything"
    else
    sleep 2s && clear && echo "Download was finished successfull"
    /bin/kill -9 $PID_FIREFOX
    echo "Killing Firefox process." && sleep 2s && echo "Firefox process is dead" && clear && sleep 2s && echo "Would you like to turn off the machine now?"
    read answer
        case $answer in

        Y|y) clear && echo "Turn off activated. If you do not want it, stop this script now. You have 20 seconds for do it." && sleep 20s && /sbin/shutdown -h +5
;;

        *) sleep 2s && clear && echo "OK. If you do not want turn off the machine, fine. Thank you. See you later";;
        esac
fi




Quem quiser pode baixar o script em arquivo no endereço: http://www.4shared.com/file/xUnaebMk/kill.html

2 de dezembro de 2010

Simulados LPI 101 e 102

Muita gente me pergunta aonde conseguir simulados LPI. 


Achei um site divulgando essa semana. Fiz o simulado. É razoável. Não tem questões difíceis. Mas, é claro parabenizo o site por divulgar as questões e treinar os futuros pinguins.



LPI 101 --> http://www.centraldolinux.org/simulados/simulado-lpi-117-101/
LPI 102 --> http://www.centraldolinux.org/simulados/simulado-lpi-117-102/

Eu fiz os dois simulados. Não há questões impossíveis. Mas, um sexto das questões são questões que ninguém liga. Na Simulado da LPI 101 eu fiz 95% e no Simulado da LPI 102 eu fiz 98%.

Façam o simulado e boa sorte na prova real!!!!


Abraço

1 de dezembro de 2010

Gerador de sources Ubuntu

Boa madruga Galerê! Tudo na boa?

Eu tava tentando compilar uma bíblia na máquina da minha mãe. Ela usa ubuntu. Usa o karmic. Só que a bíblia (abiblia) lançou uma nova versão que só funciona com libc6 2.11, libqt4.6.2, enfim... versões mais novas do que as disponibilizadas no karmic. Então tive que colocar alguns repositórios do lucid no sources.list dela.

E procurando alguns repositórios achei um site que cria o sources.list pra você. Achei muito interessante porque o ubuntu tem mils sources. E muda de versão pra versão, é um saco.


Enfim.. o site é o http://repogen.simplylinux.ch/

Deêm uma olhada quando puderem!
Abraço

30 de novembro de 2010

FTP

FTP

A necessidade de se compartilhar arquivos entre diversos computadores através da internet ou mesmo de uma intranet é bastante comum. Uma das formas mais comuns de se fazer isso é através do protocolo FTP. Uma das grandes vantagens do FTP sobre o compartilhamento de diretórios do sistema de arquivos é o fato dele possuir mecanismos de autenticação e controle de acesso mais apropriados para acessos remotos, especialmente no contexto da internet.

FTP significa File Transfer Protocol (Protocolo de Transferência de Arquivos). É uma forma bastante rápida e versátil de transferir arquivos entre duas máquinas: cliente e servidor. Uma vez conectado ao servidor, um cliente pode realizar uma série de tarefas como downloads e uploads de arquivos, renomear e/ou deletar arquivos no servidor, entre outras. É um protocolo aberto e independente de hardware e do sistema operacional.

O FTP funciona sobre TCP, e por padrão os servidores atendem às requisições na porta 21. É através dessa conexão que o cliente envia comandos ao servidor. Entretanto, os dados são enviados por outra porta, de duas maneiras distintas.

A primeira forma de envio é chamada de FTP ativo. Nesse modo, o cliente abre uma porta alta (>1023), envia ao servidor o número desta porta e aguarda uma conexão do mesmo. A conexão parte da porta 20 do servidor e é direcionada a essa porta. Observe que neste caso temos um problema em potencial no cliente: A conexão originada pelo servidor e direcionada à uma porta alta no cliente poderá ser barrada por um firewall localizado neste cliente.

A outra forma é o FTP passivo. Neste caso, é o servidor que abre uma porta alta (>1023) e envia seu número ao cliente, aguardando uma conexão do mesmo. A conexão se origina numa porta alta do cliente e se destina a essa porta informada pelo servidor. Nesse caso, não temos mais o problema do firewall do cliente. Na verdade, apenas transferimos o problema para o lado do servidor. Felizmente, a maioria dos servidores FTP permitem especificar a faixa de portas utilizadas no modo passivo, minimizando o problema.

Entretanto, o problema mais sério do FTP é o fato de que os arquivos, logins e inclusive senhas são transmitidas sem criptografia. O uso do FTP deve ser feito em ambiente restrito/controlado ou ainda abertamente através da internet somente para o caso de logins anônimos.

Servidor FTP

Verifique se você possui o servidor proftpd instalado em seu sistema:

# dpkg -l proftpd

Caso seja necessário, instale-o:

# aptitude install proftpd

Escolha a opção standalone para fazer com que o ProFTPD use um daemon próprio.






Para configurar o seu servidor FTP, edite o arquivo de configuração e altere as diretivas listadas a seguir:

# vim /etc/proftpd/proftpd.conf

a) Para trabalhar em modo standalone:

ServerType standalone

b) Defina o valor padrão de UMASK para gravação:

umask 022

c) Defina o número máximo de logins simultâneos:

MaxInstances 20

d) Defina a home do usuário como sendo o diretório raiz:

DefaultRoot ~

e) Habilite até 5 conexões de usuários anonymous:

MaxClients 5

Cada usuário do ftp pode ter uma mensagem de login diferente. Crie o arquivo welcome.msg na home do usuário. Você pode usar o arquivo de boas vindas para logins
anônimos /home/ftp/welcome.msg como base:

# cp /home/ftp/welcome.msg /home/USER
# vim /home/USER/welcome.msg

Ative seu servidor Proftpd:

# /etc/init.d/proftpd stop
# /etc/init.d/proftpd start

Verifique se a pilha TCP notifica que a porta do FTP está ouvindo:

# netstat -ntpl
Verifique qual processo está ouvindo na porta do FTP:

# fuser -v 21/tcp
Combine com o colega ao lado para que ele realize conexões em seu servidor FTP, e acompanhe as atividades de transferência de arquivos que serão feitas em seguida pelo arquivo de log xferlog. Num terminal separado, digite:

# tail -f /var/log/proftpd/xferlog
Conectando-se a um servidor FTP como cliente

Um servidor FTP pode ser usando de duas formas:

Tradicional: Neste formato, o servidor aceita conexões de um usuário e senha válidos para liberar um shell para ele.

Anonymous: O Servidor FTP com anonymous é muito utilizado na Internet pelo motivo de não ser necessário ter um usuário no servidor. Desta forma, o usuário pode abrir um browser e chamar o endereço ftp://servidor para ter acesso ao diretório disponibilizado pelo serviço. Geralmente, esse diretório é o home do usuário FTP que no Debian é /home/ftp.

Conecte-se a um servidor ftp da forma tradicional. Forneça um usuário e senha válidos:

# ftp IP
Verifique se a conexão foi bem sucedida e encerre a sessão. Em breve iremos abrir uma nova para exercitar mais comandos:

ftp> quit
Agora conecte-se como um usuário anônimo no servidor instalado na sua própria máquina. A sintaxe do comando é a mesma, entretanto você deverá fornecer o login anonymous e uma senha qualquer. Verifique cuidadosamente se a conexão foi aceita:

# ftp localhost
Connected to localhost.
220 ProFTPD 1.3.0 Server (Debian) [::ffff:127.0.0.1]
Name (localhost:aluno): anonymous
331 Password required for anonymous.
Password:

Por que a conexão foi recusada? Estaria a senha incorreta?

Devemos antes liberar o acesso anônimo ao servidor! Edite o arquivo /etc/proftpd/proftpd.conf, e descomente as linhas referentes a seção Anonymous. Esta seção está localizada aproximadamente entre as linhas 100 e 140 do arquivo de configuração original:


User ftp
Group nogroup

...



Reinicie novamente o serviço para que as alterações tenham efeito:

# /etc/init.d/proftpd restart


Tente novamente a conexão como usuário anônimo. Agora deverá funcionar. Veja o quadro abaixo:

# ftp localhost
Connected to localhost.
220 ProFTPD 1.3.0 Server (Debian) [::ffff:127.0.0.1]
Name (localhost:aluno): anonymous
331 Password required for anonymous.
Password:
331 Anonymous login ok, send your complete email address as your password.
Password:
230-Welcome, archive user anonymous@localhost !

Continue logado como usuário anônimo. Iremos fazer alguns testes a seguir.


Comandos FTP


Os servidores de FTP muito raramente mudam, mas novos programas clientes FTP aparecem com bastante regularidade. Estes clientes variam no número de comandos que implementam. A maioria dos clientes FTP comerciais implementam apenas um pequeno subgrupo de comandos FTP. Mesmo que o FTP seja um protocolo orientado à linha de comandos, a nova geração dos clientes FTP esconde esta orientação num ambiente gráfico muitas vezes bastante desenvolvido.

As interfaces clientes do FTP do BSD UNIX e do GNU/Linux possuem muitos comandos, alguns deles arcaicos e sem utilidade hoje em dia, como por exemplo o tenex e o carriage control. Já outros são bastante utilizados: cd, dir, ls, get, mget, put e mput.

Abaixo estão listados alguns dos mais utilizados comandos FTP:

help - Lista os comandos disponíveis. Um sinônimo é ?
help CMD - Mostra uma ajuda para o comando CMD
ls - Lista os arquivos no servidor. Um sinônimo é dir
cd - Troca de diretório no servidor
lcd - Troca de diretório da máquina local
!ls - Lista os arquivos da máquina local
!CMD - Executa na máquina local o comando CMD
get - Faz download de um arquivo do servidor para a máquina local.
mget - Faz download de mais de um arquivo.
put - Faz upload de um arquivo da máquina local para o servidor.
mput - Faz upload de mais de um arquivo.

Logado como usuário anônimo vamos fazer alguns testes:

Liste o conteúdo do servidor:

ftp> ls


Liste o conteúdo do seu diretório local:

ftp> !ls




Faça o download de algum arquivo:

ftp> get ARQUIVO


Verifique se o arquivo foi copiado:

ftp> !ls


Tente agora fazer o upload de um arquivo:

ftp> put ARQUIVO


Por padrão, usuários anônimos não devem ter permissão para fazer upload de arquivos.

Encerre a sessão e logue-se em seguida como um usuário válido no servidor FTP da máquina de algum colega:

ftp> quit

221 Goodbye.

# ftp IP

Tente agora fazer o upload do arquivo. Deverá funcionar desta vez:

Faça o download de vários arquivos:

ftp> mget *


Note que é exigida a confirmação para cada arquivo copiado, o que pode ser incômodo. Desligue o modo interativo, e tente novamente:

ftp> prompt

Interactive mode off.
ftp> mget *

Faça o upload de vários arquivos:

ftp> mput *


Verifique o log de atividade do FTP:

# less /var/log/proftpd/xferlog

28 de novembro de 2010

Atravesse o pacífico com um jet ski

Um amigo me mandou os seguintes dizeres no e-mail:

    “Entre no google maps e no ponto A coloque Japan, no B coloque China, São inumeros passos, Mas LEIA o nº 43?..

    Vou deixar a curiosidade de vcs leitores para terem um ataque de risos! (Muito hilario)





Comédiaaaa. Cruze o pacífico com um jet ski. rsrsrsrs. May loko que o batma esse google maps

Fonte: Vida de suporte

26 de novembro de 2010

Assinatura de email no Thunderbird

Eae galerê! tudo bem?

Bom, estou meio de saco cheio de ficar repetindo como inserir assinatura de email no thunderbird para clientes, para meus familiares, para meus amigos, para meus colegas, para  enfim... pra todo mundo que me pergunta. Só essa semana eu fiz isso 7 vezes. Demorei cerca de 40 minutos em cada inclusão de assinatura. Se eu fosse fazer na mão demoraria 2 minutos no máximo, cada inclusão. Na ESPN, às vezes eu ajudava o suporte  técnico de lá a adicionar as assinaturas. Eram 200 assinaturas por dia, isso porque eu ajudava ele. Se eu ficasse o dia inteiro fazendo seriam mils por dia. E como é uma coisa muitooooo boba, acho que seria legal eu expor aqui para a galerê que tá com dúvida. Então, é melhor colocar um "tutorial" aqui e depois falar pro povo ir no meu blog e seguir.

Você pode ter a sua assinatura de duas formas: jpg ou html


JPG
Na opção um você deve ter a sua assinatura em formato de imagem (de preferência jpg). Depois abra seu Thunderbird clique em Edit --> Account Settings (ou se o seu Thunderbird estiver em português.. Ferramentas --> configurações de contas).

Próximo passo é clicar em cima da sua conta de email, logo após clique em Attach this signature (ou em português, adicione a sua assinatura) e escolha a sua assinatura em formato .jpg. Pronto está feito.



HTML
Na opção 2 você escreve um código html e na img src você tem que colocar o caminho absoltuto inteiro. Muita gente escreve o html errado colocando o caminho relativo do arquivo.
Para adicionar é o mesmo passo a passo. A diferença é que muda de jpg para htm. Para o Thunderbird compreender onde está a sua imagem, você deve escrever na img src o seguinte:
[file:///home/sabino/img.jpg]

Se a sua imagem estiver na internet
[http://www.sabinux.com/img.jpg]

Abraços
Espero ter ajudado com essa dica!

24 de novembro de 2010

Verificação de ID - Root

Bom dia galerê! Tudo bem?

Vou postar uma coisa hoje idiota, mas que pode ajudar ou esclarecer coisinhas pra muita gente. Me digam uma coisa, vcs já executaram um shell script e ele diz assim: "Você não é root, não pode executar este comando". Ou algo assim. Vocês já pensaram como ele consegue descobrir essa informação?

É o seguinte. Todo usuário tem um id, e o root não é diferente. Então, o script corre atrás desse id e verifica o valor dele. Se não for o valor de id padrão de root, então não é root, então exit.

Entenderam? Como conseguir esse id? Se várias formas: com o comando id, vendo no /etc/passwd, no /proc tbm tem essa informação. Enfim, mils maneiras. Trocando 3 páragrafos por 5 linhas em script:



#!/bin/bash
if [ "$(id -u)" != "0" ]; then
echo
echo "Voce deve executar este script como root! "
else
echo "Voce é root!"
fi

23 de novembro de 2010

Criação de grupos - Horde

Mediante ao pedido de uma cliente tive que caçar um pouco sobre isso já que nunca fiz isso. Ela quer enviar emails aos seus clientes cadastrados como grupos ou lista de contatos. Faço isso com o Thunderbird, molezinha. Mas, com webmail nunca fiz, pois  razões de performance. Então, comecei a caçar sobre o webmail Roundcube, Squirremail e o Horde a fim de verificar quais deles possuia essa função em seus códigos compilados. O Horde tem essa opção "avançada". 

Se for útil para alguém, lá vai!

Então, como fazê-lo:

1. Entrar no Webmail Horde
2. Clicar em Catálogo de Endereços
3. Adicionar todos os emails desejados
4. Clicar na parte superior esquerda "Exibir"
5. Clicar nos emails desejados a serem integrantes do grupo.
6. Clicar no campo "para uma Lista de Contatos". Mude-o para MyAddressBook
7. Insira no campo o nome do grupo.
8. OK
9. Componha um novo email
10. Ao abrir a tela de criação de email, clique em catálogo de endereços. Clique no grupo desejado e depois em "Para" ou "Cc" ou "Cco". Logo após isso, clique em OK.
11. No campo desejado aparecerão os destinatários seguidos do grupo
12. Envie o email


Fonte: Documentação oficial do Horde
http://www.horde.org/documentation.php

10 de novembro de 2010

Usuário para desligar a máquina

Com certeza no ambiente corporativo sempre existe aquele colega de trabalho que quer ser root no seu servidor. Porém, todo sysadmin/serveradmin que se preze sabe que só pode existir um root seja por razões de ego ou de segurança da informação. Então, vamos deixar nosso colega de trabalho pelo menos desligar a máquina vai. Tudo bem que ele não vai poder nem executar um ls.

Como??? Go Go Go

Vamos fazer o usuário admin conseguir logar na máquina e desligá-la. Esse usuário admin estará no group TI.


1. Criação de usuário e grupo

    # groupadd TI
    # useradd -g TI -m -s /home/admin/shutdown.sh admin
   
2. Script de shutdown

    # cd /home/admin
    # vi shutdown.sh
        #!/bin/bash
        echo "" && sleep 2s
        echo "<=== ATENCAO: DESLIGANDO O COMPUTADOR ====>"
        /sbin/shutdown -h now
 
3. Permissões do Script

    # chown root:TI /home/admin/shutdown.sh
    # chmod 750 /home/admin/shutdown.sh

4. Suid

    # chgrp TI /sbin/shutdown
    # chmod 4754 `which shutdown`

5. Passwd

    # passwd admin
    12345
    12345


Agora é só passar o usuário e a senha pro prego do seu amigo. Quando ele logar, ele vai desligar a máquina. Aí você pode personalizar o script para uma parada no squid ou algo do tipo.

Até mais!

9 de novembro de 2010

Iptables com suporte Layer7

Por Lucas Sabino
10/11/2010




Eu e meu amigo Marcelo Kunz estávamos fazendo um servidor. E aí no meio do proxy, msn-proxy, mysql...surgiu a necessidade de uma possível solução dos problemas via iptables e seu layer7. Então achei que seria legal. Refazer um tutorial que havia feito pra postar aqui.






Então gogogo!




Primeira coisa idiota que temos que saber é se nossa máquina tem os pacotes necessários (make, gcc, ncurses etc... build-essential, patch). Depois vamos pros pacotes e suas versões:




Usei:
linux-2.6.28.8.tar.bz2
iptables-1.4.3.tar.bz2
netfilter-layer7-v2.22.tar.gz
l7-protocols-2009-05-28.tar.gz






<=========================================================================>


   1. Baixar todos os pacotes em /usr/src e descompactar o pacote do netfilter-layer7
         # cd /usr/src && tar -zxvf netfilter-layer7-v2.22.tar.gz
  
   2. Crie o link do kernel
         # ln -s /usr/src/linux-2.6.28.8 /usr/src/linux


   3. Faça o patch
         # patch -p1 < /usr/src/netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch


   4. Compilação do kernel
         # make menuconfig
  
   5. Ativando módulo layer7 no kernel
         Networking → Networking options → Network packet filtering framework (Netfilter) → Core Netfilter Configuration


                              “layer7′′ match support
                              [ ] Layer 7 debugging output
                              “string” match support








   6. Ir na opção anterior ao Core Netfilter Configuration e depois ir em IP: Netfilter Configuration. Verificar se está tudo pra subir com o kernel.


   7. Saía do kernel e salve as configurações


   8. Compilando
         # make
         # make modules_install


   9. Copiando a BzImage e criando o initrd
         # cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.28.8
         # mkinitramfs -o /boot/initrd.img-2.6.28.8 /lib/modules/2.6.28.8


  10. GRUB
         # vi /boot/grub/menu.lst
                  title Debian kernel 2.6.28.8
                  root (hd0,0)
                  kernel /boot/vmlinuz-2.6.28.8 root=/dev/sda1 ro quiet
                  initrd /boot/initrd.img-2.6.28.8
                  savedefault

                  title Debian kernel 2.6.28.8 (single-user mode)
                  root (hd0,0)
                  kernel /vmlinuz-2.6.28.8 root=/dev/sda1 ro single
                  initrd /initrd.img-2.6.28.8




  11. Reboot
         # init 6


  12.Vá pro diretório do iptables
         # cd /usr/src/iptables-1.4.3 

  13. Copie os arquivos libxt_layer7.c libxt_layer7.man para o diretório do extensions do iptables:
         # cp /usr/src/netfilter-layer7-v2.22/iptables-1.4.3forward-for-kernel-2.6.20forward/* extensions/ 


  14. Expurgando o iptables velho e instalando o novo
         # aptitude purge iptables
         # ./configure --with-ksource=/usr/src/linux-2.6.28.8
         # make KERNEL_DIR=/usr/src/linux-2.6.28.8 BINDIR=/sbin LIBDIR=/lib
         # make install KERNEL_DIR=/usr/src/linux-2.6.28.8 BINDIR=/sbin LIBDIR=/lib 


  15. Protocolos do layer7
         # tar -zxvf l7-protocols-2009-05-28.tar.gz
         # cd l7-protocols-2009-05-28
         # make install
         # ls /etc/l7-protocols




  16. Subindo o módulo
         # modprobe ipt_layer7


  17. Finalmente, a regra
         # iptables -A FORWARD -m layer7 –l7proto msnmessenger -j DROP
         # iptables -A FORWARD -m layer7 –l7proto bittorrent -j DROP






<=======================================================================>


OBS1: Tem gente que gosta de fazer o kernel virar um pacote. Nesse caso temos ir até o tópico número 7. Ou seja, não executar o make. Ao invés de usar o make você pode usar isto para transformar o kernel em um pacote .deb:




    # make -kpkg clean
    # make-kpkg --initrd kernel_image


Foi criado um arquivo linux-image-2.6.28_2.6.28-10.00.Custom_i386.deb no diretório /usr/src, volte ao diretório e instale.


    # cd /usr/src
    # dpkg -i linux-image-2.6.28_2.6.28-10.00.Custom_i386.deb


Pronto, o novo kernel já esta instalado.


Tem bastante gente que gosta desse jeito porque é mais fácil, e não dá pau no grub. Mas, eu prefiro ver matrix, prefiro a pílula verdadeira, ou seja, make e make install.








OBS2: Nas versões mais antigas do netfilter-layer7 era necessário unir o layer7 com o iptables antes da compilação pelo patch. Ex:




    # patch -p1 <  /usr/src/netfilter-layer7-v2.22/iptables-1.4-for-kernel-2.6.20forward-layer7-2.22.patch


A partir da versão 1.4.3 não é necessário.








OBS3: E também era necessário dar permissão a lib de teste do layer7. Não é mais necessário do iptables 1.4.3 pra frente.


    # chmod 755 /usr/src/iptables-1.4.0/extension/.layer7-test

1 de novembro de 2010

Shell Script: Test

Vamos falar de alguns parâmetros legais do comando test - muito utilizado em shell script.

test ­-r  Testa se tem permissão de leitura
test ­-w Testa se tem permissão de escrita
test ­-x Testa se tem permissão de execução
test ­-f  Testa se é um arquivo regular
test ­-d Testa se é um diretório
test ­-u Testa se seu SUID está ativado
test ­-g Testa se seu SGID está ativado
test ­-s Testa se seu tamanho é maior que zero

29 de outubro de 2010

Bolsa de Valores com GNU/Linux é um Sucesso

A bolsa de valores  de Londres disse que seu novo sistema baseado em Linux está possibilitando recordes de velocidade de interconexão, com tempo de transação de 126 microsegundos.

A novidade vem 8 dias antes de uma grande mudança na qual o sistema baseado em Linux substituirá a tecnologia Microsoft .net nos servidores primários. A bolsa de Londres vinha sendo criticada em termos de velocidade e confiabilidade, com transações levando diversas centenas de microsgundos.



Fonte: http://www.computerworlduk.com/news/networking/3244936/london-stock-exchange-smashes-world-record-trade-speed-with-linux/?cmpid=sbycombinatorrplant

Interpretador PHP

Eu vou postar isso aqui, se não depois eu esqueço. É mais um artigo backup.



Caso eu tenha um script feito em php e quero que ele rode na linha de comando tenho que instalar o cli depois o php.

aptitude install php5-cli. Depois, surgirá o shell php em /usr/bin.

Ou fazer com o Curl.

18 de outubro de 2010

Xi.. Ragazzo

Bom... de uma coisa eu sei: O Ragazzo usa GNU/Linux, Apache, Ruby
Olha o códigozinhoooo da ragazzo


DBI::DatabaseError in LojasController#index

08S01 (0) [unixODBC][FreeTDS][SQL Server]Communication link failure
RAILS_ROOT: /var/www/ruby/ragazzo/config/..
/usr/lib/ruby/gems/1.8/gems/dbd-odbc-0.2.5/lib/dbd/odbc/database.rb:86:in `execute'
/usr/lib/ruby/gems/1.8/gems/dbi-0.4.5/lib/dbi/handles/database.rb:81:in `execute'
/var/www/ruby/ragazzo/vendor/extensions/ragazzo/app/models/loja.rb:55:in `find_estados'
/var/www/ruby/ragazzo/vendor/extensions/ragazzo/app/controllers/lojas_controller.rb:14:in `index'
#{RAILS_ROOT}/vendor/radiant/vendor/rails/actionpack/lib/action_controller/base.rb:1095:in `send'
#{RAILS_ROOT}/vendor/radiant/vendor/rails/actionpack/lib/action_controller/filters.rb:632:in `call'
#{RAILS_ROOT}/vendor/radiant/vendor/rails/actionpack/lib/action_controller/filters.rb:634:in `call'
#{RAILS_ROOT}/vendor/radiant/vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `call'
#{RAILS_ROOT}/vendor/radiant/vendor/rails/actionpack/lib/action_controller/filters.rb:438:in `call
#{RAILS_ROOT}/vendor/radiant/vendor/rails/actionpack/lib/action_controller/filters.rb:438:in `call'
#{RAILS_ROOT}/vendor/radiant/vendor/rails/actionpack/lib/action_controller/filters.rb:449:in `call'
#{RAILS_ROOT}/vendor/radiant/vendor/rails/railties/lib/dispatcher.rb:41:in `dispatch'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:76:in `process'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:74:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:74:in `process'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:in `process_client'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `each'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `process_client'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `initialize'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `new'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `initialize'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `new'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:282:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:281:in `each'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:281:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:128:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel/command.rb:212:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
/usr/bin/mongrel_rails:19:in `load'
/usr/bin/mongrel_rails:19
.
.
.
.
.




Bom.. já fiz a minha parte.. Avisei os caras.. Se eles vão ouvir.. já são outros quinhentos

15 de outubro de 2010

Microsoft e seu Office

Pra começar gostaria de dizer que esse artigo será um desabafo de uma pessoal normal. Esse artigo e vídeo me tiraram do sério. Então se você tem muita consideração por mim e pelo meu blog por causa da imparcialidade em muitos artigos e a exposição de fatos de maneira educada, e se você deseja manter essa idéia não leia este artigo - porque ele fugirá de tudo isso.




Fonte: INFO
"SÃO PAULO – A Microsoft publicou um vídeo incisivo onde ataca abertamente o funcionamento dos programas contidos no pacote OpenOffice.

Chamado de “A Few Perspectives on OpenOffice.org”, o vídeo foi publicado no canal no YouTube do Microsoft Office e visto 106 mil vezes.

O filme compila uma série de depoimentos de CIO, editores e outras pessoas com criticas a plataforma open source.

Em um dos depoimentos, uma professora diz que trabalhos escolares produzidos no OpenOffice são afetados pelos seus padrões e recebem notas menores.

Em outro depoimento, o chefe de TI diz que a familiaridade dos usuários com a plataforma da Microsoft reduz o número de chamados no help-desk.

O vídeo tenta ainda convencer que a suposta queda de produtividade gerada pelos programas não compensa a economia gerada por sua adoção.

Porém, o vídeo parace não ter convencido os usuários. Apenas 300 aprovaram o conteúdo do filme enquanto quase 3 000 votaram contra ele."





Agora me fala como a essa merda de empresa que não inova, que não faz nada que funciona, só rouba o que funciona dos outros fala uma merda dessa. Microsoft vai tomar no ... Empresa lixo, ridícula. Open Source é lixo na sua opinião? Blz. Cadê a porcaria do IIS em servidores web? Cadê seus números em servidores em geral da internet? Cadê a merdinha do seu banco de dados MS-SQL (que eu nunca vi uma grande/enorme corporação usando a quente em todas as suas aplicações), DNS Microsoft isso não pode ser nem considerado merda, é menos que isso.

Todas as professoras que tiram nota por causa da utilização de softwares alternativos deveria morrer ou parar de dar aula. Uma vez e vi um artigo americano que dizia que o aluno foi punido por usar Firefox como navegador. Cadê a porra da democracia capitalismo? Cadê a porra do direito de escolha? 

Aí essa empresa vem com a argola de santa e fala que vai doar linhas de código pro kernel. Cambada de fdp.

É o que eu sempre digo. A Apple é muito superior a Microsoft porque ele não vive de sujeira e de ataques sem razão ao software livre, mas sim pelas grandes inveções e inovações que esta mesma faz (mesmo que a política facilidade ao extremo traga consigo a idéia do controle ao extremo também).

A Google poderia acabar rápido com a Microsoft, e depois a Apple acabar com o Google. E aí só existiria GNU/Linux e Apple (Unix). O mundo perfeito.

10 de outubro de 2010

Virtualização

Ao falar em virtualização, é inevitável que a maioria das pessoas a associem à ideia de vários sistemas operacionais rodando na mesma máquina. Esse é, na verdade, um dos diversos tipos de virtualização: a de hardware. Se por um lado ela não é a única, por outro é, certamente, a mais perceptível.

O presente artigo contempla os aspectos triviais da virtualização, com noções conceituais, aplicações práticas e sua forma de interação com o usuário final.


A VIRTUALIZAÇÃO EM SI
Para entender perfeitamente o conceito da tecnologia, deve-se traçar um paralelo entre o que é real e o que é virtual. Seguindo essa linha de raciocínio, algo real teria características físicas, concretas; já o virtual está associado àquilo que é simulado, abstrato. Dessa forma a virtualização pode ser definida como a criação de um ambiente virtual que simula um ambiente real, propiciando a utilização de diversos sistemas e aplicativos sem a necessidade de acesso físico à máquina na qual estão hospedados.

Isso acaba reduzindo a relação de dependência que os recursos de computação exercem entre si, pois possibilita, por exemplo, a dissociação entre um aplicativo e o sistema operacional que ele utiliza (já imaginou acessar o Microsoft Word através do Linux?).


E qual é a vantagem?
Prioritariamente, econômica. Com a iminente crise ambiental global (principal fomentadora da TI verde) e a crescente necessidade de diminuir o desperdício de recursos (incluída aí a energia elétrica), não há nada mais natural que o surgimento de alternativas para otimizar o uso de tais recursos.

Agora pense em um computador no qual opere um servidor de e-mails: mesmo que o disco rígido seja plenamente utilizado, não se pode dizer o mesmo sobre sua capacidade de processamento: enquanto ela pode chegar ao ápice em horários de pico (como às 15h), também pode se aproximar da ociosidade durante a madrugada. E se essa “sobra” fosse usada para gerar relatórios, aproveitando melhor o tempo e processamento livres? Na teoria, surtiria a tão desejada economia de recursos; na prática, isso é obtido através da virtualização.


Links sobre máquinas virtuais etc.

http://www.juliobattisti.com.br/artigos/windows/vmware_p2.asp
http://www.visoracle.com/vm/debian50/
http://www.thoughtpolice.co.uk/vmware/
http://virtualboxes.org/images/debian/
http://www.vmware.com/br/
http://www.virtualbox.org/

6 de outubro de 2010

Gambiarra du mallll

Sensacional!

Genius of gambiarra!



Namoro Geek


who | grep -i blonde | talk;
cd ~; wine; talk; touch; unzip; touch;
strip; gasp; finger; mount; fsck; more;
yes; gasp; umount; make clean; sleep;


Quem não manja de GNU/Linux não vai sacar. rsrs. Muita criatividade ou talvez falta do que fazer.
OBS: Não fui eu quem criou. Palavras encontradas no Google. rsrs

2 de outubro de 2010

Frases idiotas

Você é o Kernel do meu Linux.
Você é o .gif que anima minha vida.
Você é o Enter da minha vida.
Se você deixar, faço Alt-F4 na minha vida.
Você tem prioridade máxima na minha lista de processos.
Sem você minha vida seria como uma página web sem CSS.
Você é a primeira no Google ao procurar meu coração.
Queria ser um Pendrive para o seu USB.
Você é o servidor da minha rede.
Você é a senha da minha caixa de e-mails.
Você acelera minha conexão.
Me joga no Google me chama de pesquisa e diz que sou tudo que vc procura.
Você é o átomo central do meu complexo.
Você é a derivada da minha integral.
Você é a insaturação do meu anel aromático.
Você é a ponte salina da minha pilha de daniel.
Meu amor por você é como limite de divisão por zero, tende ao infinito!
A resultante de todas as forças que me unem a você se chama amor!
Você é a equação que delimita o quadrante do meu coração.
Se até duas retas paralelas se encontram no infinito, pq não podemos nos encontrar hoje?
Seu amor é o bico de bunsen que dá calor pra minha reação endotérmica.
Você é o catalisador do meu meio reacional.
Você é a razão da minha PG.
Você é o calor específico do meu diagrama de trasição de fase.

By Thais Suzana
"Como um matemático come um X-Burguer?"
"Ele come o hamburguer, a alface e o queijo, pra depois isolar o 'X'"


 

Como matar um dragão

Certa vem um dragão aprisionou uma linda princesa em uma torre de ilha distante, a única forma de se acessar esta ilha era atravéz de uma ponte na qual o dragão ficava dia e noite de vigia, então lá vão nossos "heróis" da informática salvar a princesa, cada uma sua maneira:

Programador Java


Chega, encontra o dragão. Desenvolve um framework para aniquilamento de dragões em múltiplas camadas. Escreve vários artigos sobre o framework, mas não mata o dragão.

Programador .NET

Chega, olha a ideia do Javanês e a copia, tenta matar o dragão, mas é comido pelo réptil.

Programador PHP

Desenvolve em alguns minutos uma lamina perfeita, afiada e funcional. Escolhe uma bonita textura para o cabo, e outra bonita textura para a armadura. Escreve um CSS com o alinhamento exato dos golpes necessários para matar o dragão. Corre para matar o dragão, mas, chegando lá, descobre que as texturas que escolheu para o cabo da espada e para a armadura não combinam com dragão e nem com o vestido da princesa. Volta pra frente do micro e e perde algumas horas para produzir texturas melhores no photoshop. Volta majestoso para matar o dragão, uma cena bonita mesmo, todas as cores em equilíbrio. A princesa sorri, por ser salva por um herói tão bem alinhado, o dragão sorri também, pois quando o programador tenta o primeiro golpe, descobre que fez o CSS dos golpes para IE e não para o MOZILA. Resultado, churrasquinho de programador.

Programador C

Chega, olha para o dragão com olhar de desprezo, puxa seu canivete, minúsculo extremamente leve e simples degola o dragão. Encontra a princesa, mas a ignora para ver os últimos checkins no cvs do kernel do linux.

Programador C++

Cria um canivete básico e vai juntando funcionalidades até ter uma espada complexa avassaladora, mas que apenas ele consegue entender … Mata o dragão, mas trava no meio da ponte por causa dos memory leaks.

Programador COBOL


Chega,olha o dragão, pensa que tá velho demais para conseguir matar um bicho daquele tamanho e pegar a princesa e, então, vai embora de volta ao seu mundinho.

Programador Pascal

Se prepara durante 10 anos para criar um sistema de aniquilamento de dragão… Chegando lá descobre que o programa só aceita lagartixas no máximo médias como entrada.

Programador VB

Monta uma arma de destruição de dragões a partir de vários componentes, parte pro pau pra cima do dragão e, na hora H, descobre que a espada só funciona durante noites chuvosas, e deve ser reiniciada a cada golpe para voltar a funcionar, só não sabe o pq disso…

Programador PL/SQL


Coleta dados de outros matadores de dragão, cria tabelas com N relacionamentos de complexidade ternaria, dados em 3 dimensões, OLAP, demora 15 anos para processar a informação. Enquanto isso a princesa virou lésbica.

Programador Ruby

Chega com uma p*t* fama, falando que é o melhor faz tudo, quando vai enfrentar o dragão ao invés de ir pros finalmente, mostra um videozinho dele matando um dragao … O dragão come ele de tédio.

Programador Smalltalk

chega, analisa o dragão e a princesa, vira as costas e vai embora, pois eles são muito inferiores.

Programador Shell Script


Cria uma arma poderosa para matar os dragões, mas, na hora H, não se lembra como usá-la.

Programador Shell Script - 2

O cara chega no dragão com um script de 2 linhas que mata, corta, estripa, empala, pica em pedacinhos e empalha o bicho, mas na hora que ele roda, o script aumenta, engorda, enfurece e coloca álcool no fogo do dragão.

Programador Assembly

Acha que está fazendo o mais certo e enxuto, porém troca um A por D, mata a princesa e transa com o dragão.

Programador Fortran

Chega desenvolve uma solução com 45000 linhas de codigo, mata o dragão vai ao encontro da princesa … mas esta o chama de tiuzinho e sai correndo atrás do programador java que era elegante e ficou rico.

Programador Fox Pro

Desenvolve um sistema para matar o dragão, por fora é bunitinho e funciona, mas por dentro está tudo remendado. Quando ele vai executar o aniquilador de dragões descobre que esqueceu de indexar os DBF´s.

Programador Clipper


Monta uma rotina que carrega um array de codeblocks para insultar o dragão, cantar a princesa, carregar a espada para memória, moer o dragão, limpar a sujeira, lascar leite condensado com morangos na princesa gostosa, transar com a princesa, tomar banho, ligar o carro, colocar gasolina e voltar pra casa. Na hora de rodar recebe um "Bound Error: Array Access" e o dragão come ele com farinha.

Analista de processos


Chega ao dragão com duas toneladas de documentação desenvolvida sobre o processo de se matar um dragão genérico, desenvolve um fluxograma super complexo para libertar a princesa e se casar com ela, convence o dragão que aquilo vai ser bom pra ele, e que não será doloroso. Ao executar o processo ele estima o esforço e o tamanho do estrago que isso vai causar, a assinatura do papa, do buda e do Raul Seixas para o plano, e então compra 2 bombas nucleares, 45 canhões, 1 porta aviões, contrata 3000 homens armados até os dentes, quando na verdade necessitaria apenas da espada que estava na sua mão o tempo todo.


Upgrade da sua máquina

Eae... vamos fazer um upgrade? Um overclock?

Vejam abaixo como fazer isto no GNU/Linux:





Abre ASPAS


Eu tenho duas máquinas que mostram números de performance muito diferentes.

Após alguma pesquisa, eu descobri o que a primeira máquina tem, em /proc/cpuinfo:

model name : Intel(R) Celeron(R) M processor 1.00GHz

enquanto a outra máquina tem:

model name : Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz

e essa parece ser a principal diferença.

Agora, o problema é que o arquivo /proc/cpuinfo é apenas leitura. Seria possível tornar este arquivo "gravável" de modo que eu possa fazer:

echo -n "model name : Intel(R) Core(TM)2 Quad CPU Q6600 @
2.40GHz" > /proc/cpuinfo

na primeira máquina e assim conseguir a performance similar da segunda máquina?

Fecha ASPAS


Mensagem original aqui.

27 de setembro de 2010

History Bunitão

export HISTTIMEFORMAT="[%d.%m.%Y] {%H:%M:%S} "


Deixando seu history maneiro!

Hip Hop Nerd

Manerinho vai....

Não é um hip hop fodão.. mas, dá pra rir. E confesso que tiveram versos que eu não entendi... Pode ser porque eu sou um lixo em jogos, games etc.

19 de setembro de 2010

A formação do indivíduo


A formação do indivíduo infelizmente mal-formado


Desde do tempo em que a história não é contada sempre tívemos pirâmides sociais. Eu não venho através deste passar qualquer idéia socialista ou parecer deste. O que eu quero dizer com pirâmides sociais são simplesmente as tribos que são formadas pelo que as pessoas tem em comum que geralmente condiz com a idade daquela pessoa espelhada em algum grupo. As comunidades foram feitas na África e em vários lugares do mundo advindas do sedentarismo humano – grande avanço para com o homem nômade.

Então, surgem grupos ou classes que são dividas pelas idades, seus deveres em meio social e prazeres costumeiros comuns. Como num passe de mágica comum ao mundo infantil, geralmente do 15 para 16 anos (em meninas menos), todavia não muito obstante de pais experientes, filhos cujo prazer era apenas permanecer o dia inteiro conosco não o retém mais. E seria bom se fosse somente isto. Não é. Além do prazer desaperecer, acontece uma coisa: uma nuvem negra de ódio começa a habitar sua mente. O ódio a raiva são externalizadas a cada momento em que seus pais se aproximam ou quando tentam fazê-lo. E aí os idiotas dizem que é normal. É a adolescência... Vai passar. Não!!!! A sociedade está um lixo por causa desses pais que deixam seus filhos mutarem e não tentam compreendê-lo e/ou lapidá-lo. Admito que a adolescência é um estado momentâneo difícil para 90% ou mais das famílias.

Eu mesmo sofri várias coisas ao longo da minha vida e vou sofrer mais provavelmente. Entretanto, eu nunca me revoltei saindo para baladas todas as noites para transar sem camisinha ou proteção; nunca fui pra noite pra beber até cair; nunca consumi quilos de maconha, cocaína, entre tantas drogas. Qual será a porra da diferença? Eu não sei. Eu só sei que eu me sinto muito melhor com um adulto de 40 anos do que com um jovem de 18 em 2010.

Pode ser porque eu aprendi a cada queda que a vida é assim e que eu não tenho que me revoltar com a vida só porque ela está pintando a arte dela cujo quadro sou eu; Pode ser porque eu tenho uma mãe maravilhosa e uma excelente psicóloga que sempre me lapidou para que eu não fosse um jovem do século XXI; Pode ser porque eu quis começar a trabalhar desde os 12 anos de idade, e sempre trabalhei com mais velhos e realmente ouvia o que eles tinham a me dizer ao invés de ignorá-los só porque são mais velhos como 80% dos jovens fazem? Sei lá!! Eu só sei que a minha personalidade foi moldada para que eu fosse um verdadeiro homem que toma da vida e aprende com cada erro e levanta.

Se a minha mãe foi uma excelente mãe isso não importa de uma maneira estatístico. Pois sou apenas um em mundo de 7 bilhões de seres humanos. Mas, por que as outras mães estão tão ruins? Por que as mães não dão mais disciplina aos seus filhos? Apanham e não fazem nada. Têm um filho drogado e não fazem nada. Eu não sei. Mas, alguma coisa tá errada nesse porra! O que eu não sei, mas tá errado. Não sou sociólogo, psicólogo ou psiquiátra, sou apenas um futuro engenheiro – Deus sabe o que faz, se ele me colocasse para a área de humanas com certeza eu ficaria louco.

Falando em humanas, será que são elas que estão estragando a sociedade? É claro que o capitalismo selvagem acaba com qualquer sociedade e o que esta tem de melhor. Todavia, quando eu vejo um novo estudo que correção com caneta vermelha pode traumatizar um aluno, dá vontade de dar um tiro na pesquisadora pedagoga. Eu cansei de tomar várias vermelhas na minha cara e nunca me revoltei por isso. Pelo contrário, fui estudar mais enquanto alguns dos meus colegas se revoltavam e ir quase bater na professora. Meus pais estudaram, leram as chamadas literaturas eróticas (as quais muitos pais querem que sejam abolidas pois geram um apetite sexual nos jovens) e não engravidaram antes dos 5 anos juntos. O que uma pessoa vai fazer perante uma notícia ou acontecimento não é um reflexo da ação que se sucedeu de imediato, mas sim de um reflexo de uma reação materna e/ou paterna do passado que não refracionou uma ação. Ou seja, se a sociedade não refraciona seus jovens, eles pensam que são donos do mundo e podem fazer o que eles quiserem. E num mundo onde tudo é dinheiro e vê-se isso na televisão desde feto intelectual, uma lavagem cerebral nào é uma coisa essencialmente difícil de realizar.

A sociedade está se afundando a cada dia. E o que podemos fazer? Consertar nossos filhos para que eles consertem os deles. Não há outra forma. Se nós não consertarem nossos filhos e eles os deles o efeito será ainda pior. E se você acha que o mundo está ruim hoje, imagine amanhã.

1 de setembro de 2010

Date - Comandinho danado sô

Vamos dar uma olhada no date hoje... então vamo que vamo!

Parâmetros legais!

%a Dia da semana abreviado
%A Dia da semana completo
%b Mês do ano abreviado
%B Mês do ano completo
%C Século no qual estamos
%d Dia do mês
%D Data no padrão norte-americano mês/dia/ano (12/31/10)
%e Dia do mês
%F Data completa inversa. 2010-12-31
%H Hora no formato 24
%I Hora no formato 12
%j Dia do ano
%m Mês
%M Minuto
%S Segundos
%u Dia da Semana
%U Semana do Ano (Referencial: Domingo)
%V Semana do Ano (Referencial: Segunda)
%y Dois últimos digitos do ano
%Y Formato ano completo.

28 de agosto de 2010

VI ou VIM colorido

Para isso é só ativar a opção "syntax on" no /etc/vim/vimrc

Caso não funcione tente instalar os pacotes do vim-full.

aptitude install vim-full




Quem quiser pode usar o vim como padrão ao VI. Ou seja, substitua o binário do VI pelo vim.

# cd /usr/bin
# rm vi
# ln -s vi vim


OBS: Em algumas distros só funciona o link se for ln -s vim vi

18 de agosto de 2010

Proxy Transparente e Proxy normal

Por que proxy não transparente é melhor que o transparente
A explicação simples é a de que, além de ser mais seguro, o proxy não transparente usa o recurso do cache de DNS. 


Como funciona o proxy?
A palavra proxy significa literalmente procurador. No caso de um proxy HTTP, o servidor recebe uma requisição HTTP, a interpreta e executa as ações necessárias para respondê-la. Como geralmente possui um cache, ou ele responde com o conteúdo do cache, ou requisita o recurso (arquivo) ao servidor HTTP original, desta vez como um pedido próprio.


O proxy transparente é uma arquitetura que permite que o navegador cliente não saiba da existência do proxy. Ele acha que está solicitando o recurso diretamente ao servidor original; o proxy encarrega-se de capturar e processar a solicitação.

A principal vantagem nesta arquitetura é que não é necessária a configuração de proxy nos navegadores cliente. Outra (incorretamente) alegada vantagem é que o proxy não transparente não impede a conexão direta à Internet.
Como fica o navegador?
Uma requisição comum de um agente HTTP se dá em duas fases:
1) há a requisição DNS para resolver o endereço de destino;
2) é feita a requisição HTTP propriamente dita.


Se o navegador não conhece a existência do proxy, ele irá fazer inicialmente a requisição DNS e, após resolvido o endereço, irá lançar a requisição HTTP ao servidor original. O proxy, por sua vez, não irá usar o DNS resolvido pelo navegador, e fará sua própria requisição DNS antes da requisição HTTP.

Existe uma consideração importante: apesar de o pacote DNS ser pequeno e transmitido em UDP, o tempo de resolução costuma não ser desprezível. Às vezes, chega a mais de um minuto. E é o minuto mais importante, porque fica entre o e o aparecer alguma coisa no navegador.

É, portanto, interessante para a LAN ter um cache DNS interno servindo a todas as máquinas. Isto pode ser feito com a instalação de um servidor DNS ou com o uso do cache DNS do próprio Squid.
Se o navegador conhece o servidor proxy, ele não fará nenhuma resolução DNS e fará a solicitação do recurso ao servidor proxy, não ao servidor original.


O Squid possui um cache DNS interno que pode ser acessado com o CGI Cache Manager (no debian, pacote squid-cgi ou squid3-cgi), item Internal DNS Statistics. O recurso é tão bom que diz o quanto tempo falta para cada entrada DNS expirar.

Não achei recurso semelhante no BIND (servidor DNS mais usado no mundo). No máximo, estatísticas gerais. O BIND é dividido em duas partes: servidor com autoridade e servidor de encaminhamento. Segundo sua documentação, é focado na performance.

DICA: O DNS do Squid é mais simples e rápido que o do BIND.

Os vírus não usam proxy. Eles assumem uma conexão direta a Internet. Quando se usa proxy transparente, você está encaminhando as mensagens de vírus para a Internet. Simples assim.

Uma segunda consideração está relacionada também à conectividade: no modelo não transparente, os navegadores não precisam estar conectados à Internet. Eles só precisam estar conectados ao proxy e este se vira pra chegar à web. Se você costuma usar apenas web, então pode usar um gateway falso nos clientes. Isso significa que os softwares que não conhecerem o proxy não poderão iniciar mensagens para a Internet, pois não sabem a rota. Às vezes, pode ser útil.

Além disso, não é válido o argumento de que não se pode controlar a conexão no proxy não transparente. No proxy transparente, captura-se o pacote e, dessa forma, assegura-se que ele irá seguir o caminho do proxy. Na arquitetura de proxy não transparente, pode-se inibir o uso de Internet sem o proxy colocando-se um filtro do netfilter (via iptables) no firewall.

Se o proxy está no gateway, deve-se permitir (ACCEPT) pacotes para a porta 80 (--dport) apenas vindos da própria máquina (OUTPUT) e deve-se bloquear (DROP) as vindas da rede (FORWARD) para fora.
Se o proxy não está no gateway, deve-se permitir pacotes na porta 80 cuja fonte (-s) seja o proxy e bloquear as outras.

A sintaxe é aproximadamente essa:
# proxy na mesma máquina firewall/gateway.
# iptables -A INPUT --dport 80 -j ACCEPT //requisições da LAN para o proxy
# iptables -A FORWARD --dport 80 -j DROP //requisições da rede pra fora
# iptables -A OUTPUT --dport 80 -j ACCEPT //requisições do proxy pra fora
proxy em máquina interna da rede.
# iptables -A FORWARD -s --dport 80 -j ACCEPT //requisições do proxy pra fora
# iptables -A FORWARD --dport 80 -j DROP //requisições da rede pra fora


Quanto à performance, existem duas formas eficientes de se fazer a dobradinha proxy/cache e cache DNS. Usando proxy transparente e servidor DNS ou usando o Squid como proxy não transparente.

Na primeira forma, deve-se colocar o servidor DNS interno à LAN e fazer com que tanto o proxy quanto a LAN utilizem-no. É comum as LAN Houses e mesmo as pequenas empresas usarem o servidor DNS do provedor. Isso é prejudicial no proxy transparente, já que as requisições são individuais dos navegadores, gerando tráfego desnecessário.

Na segunda forma, o servidor proxy Squid encarrega-se de fazer o próprio cache DNS. Esta implementação é mais simples e mais econômica em recursos. Pela "filosofia" KISS, pode-se dizer que é melhor.

E se houver um duplo uso de cache? Proxy não transparente + servidor DNS interno? Fiz isso no meu TCC, pensando que era a melhor saída. Pelo que pude analisar (com squid 2.7 e BIND 9.5), sempre que o squid requisitava DNS, o BIND9 encaminhava a requisição. 

Ou seja, o squid era suficiente. Além do mais, o servidor BIND estava configurado para realizar requisições em múltiplos servidores DNS caso o simples encaminhamento falhasse. O tráfego era enorme e redundante.

Quanto à segurança, parece-me que o melhor mesmo é usar proxy não transparente, principalmente por causa dos vírus, trojans e toda a fauna de processos mal intencionados no sistema operacional. No Windows, isso é vital. Coloca-se um gateway e servidores DNS falsos e processa-se apenas o que vier através do navegador. Sugiro utilizar uma máquina válida preparada para receber os pacotes não autorizados, de modo que identifique-se, via tcpdump, a origem e intenção destes pacotes.

Uma preocupação constante é quanto à facilidade de configuração da rede. Para isto, há o método do proxy auto-config (PAC). Sobre ele, você pode ler mais aqui e aqui.

Pelos motivos explanados acima, é possível considerar que em ambientes simplificados o uso de proxies não transparentes ofereça mais vantagens que desvantagens em relação aos transparentes. Claro que cada caso é um caso. Às vezes, a vantagem na facilidade de implantação do proxy transparente pode suplantar todas as vantagens do outro modelo.

17 de agosto de 2010

Limpeza do arquivo

Imagina um arquivo muito poluído. 10000 linhas. Você quer apenas o que não está comentado..

Fácil!

egrep "^[^#]" squid.conf > arquivo_filtrado_squid.txt

15 de agosto de 2010

Sed - agilizando a sua vida

Imaginou colocar uma letra no final de todas as linhas do squid.conf (mais ou menos 3000 linhas de arquivo) uma por uma? Deve ser um saco né?

Então use o sed que fica mais fácil.


  • Como inserir um caracter no início de cada linha (neste caso, linha 1 e 2) de um arquivo.
sed "1,2s/^/x/" teste > teste_final
x1
x2
3
4
5
  • Para inserir na ultima posicao de cada linha o caracter
% basta executar o comando:

sed "s/$/%/" teste > teste_final
1%
2%
3%
4%
5%
  


Executando o comando sed abaixo
 
sed -e "s/^/<>/" teste > teste_final
 

temos

<<1>>
<<2>>
<<3>>
<<4>>
<<5>>

Backup e coisas legais

Estava fazendo backup pessoal hoje e vi esse vídeo. Riii muito de novo!

Na primeira vez que eu vi no youtube rachei muito. E rachei tudo isso hoje!

Então vou postar aqui pra vcs rirem tbm!

Porque TI tbm ri!


Vejam!



Mercado de Trabalho - Balão Cheio

Muito bom e é a mais pura verdade.

Vejam!

13 de agosto de 2010

Sexta-feira 13 e Servidores

Bom.. o mito da sexta-feira 13 é uma cousa que todo mundo sabe.

E essa semana eu ouvi uma história que um colega meu que trabalha também na parte de TI fez. Aconteceram coisas "du mauuuu" na TI dele. Tipo Apache parar e voltar a funcionar 3 ou 4 vezes no mesmo dia, sendo que não tinha tráfego.. enfimm.. coisas a la "sexta-feira 13".

Eu gosto do número 13. Nasci no dia 13/07/1992 às 9:13. Acho que 9 e 13 é o que mais tem na minha vida. Eu gosto, mas muita gente têm medo ou receo por este numerozinho....
rsrs



Então resolvi pesquisar sobre a origem desse mito. E lá vai!


Cristianismo
A crença de que o dia 13, quando cai em uma sexta-feira, é dia de azar, é a mais popular superstição entre os cristãos. Há muitas explicações para isso. A mais forte delas, segundo o Guia dos Curiosos, seria o fato de Jesus Cristo ter sido crucificado em uma sexta-feira e, na sua última ceia, haver 13 pessoas à mesa: ele e os 12 apóstolos.

 
Mitologia
Mas mais antigo que isso, porém, são as duas versões que provêm de duas lendas da mitologia nórdica. Na primeira delas, conta-se que houve um banquete e 12 deuses foram convidados. Loki, espírito do mal e da discórdia, apareceu sem ser chamado e armou uma briga que terminou com a morte de Balder, o favorito dos deuses. Daí veio a crendice de que convidar 13 pessoas para um jantar era desgraça na certa.

Segundo outra lenda, a deusa do amor e da beleza era Friga (que deu origem à palavra friadagr = sexta-feira). Quando as tribos nórdicas e alemãs se converteram ao cristianismo, a lenda transformou Friga em bruxa. Como vingança, ela passou a se reunir todas as sextas com outras 11 bruxas e o demônio. Os 13 ficavam rogando pragas aos humanos.

 
O número 13

A crença na má sorte do número 13 parece ter tido sua origem na Sagrada Escritura. Esse testemunho, porém, é tão arbitrariamente entendido que o mesmo algarismo, em vastas regiões do planeta - até em países cristãos - é estimado como símbolo de boa sorte. O argumento dos otimistas se baseia no fato de que o 13 é um número afim ao 4 (1 + 3 = 4), sendo este símbolo de próspera sorte. Assim, na Índia, o 13 é um número religioso muito apreciado; os pagodes hindus apresentam normalmente 13 estátuas de Buda. Na China, não raro os dísticos místicos dos templos são encabeçados pelo número 13. Também os mexicanos primitivos consideravam o número 13 como algo santo; adoravam, por exemplo, 13 cabras sagradas. Reportando-nos agora à civilização cristã, lembramos que nos Estados Unidos o número 13 goza de estima, pois 13 eram os Estados que inicialmente constituíam a Federação norte-americana. Além disso, o lema latino da Federação, "E pluribus unum" (de muitos se faz um só), consta de 13 letras; a águia norte-americana está revestida de 13 penas em cada asa.