Blog do Marião http://www.mariolb.com.br/blog/ Talk is easy. Show me the code. en-us Wed, 26 Jul 2017 00:00:00 -0300 http://www.mariolb.com.br/blog/2017/07/26/cifrando_uma_particao_com_dm_crypt_luks.html http://www.mariolb.com.br/blog/2017/07/26/cifrando_uma_particao_com_dm_crypt_luks.html <![CDATA[Cifrando uma partição com DM-Crypt + LUKS]]> Cifrando uma partição com DM-Crypt + LUKS

A situação é a seguinte: imagine que tenhamos um pendrive no qual são armazenadas informações confidenciais e que, portanto, devem ser protegidas de acessos indevidos. Este é um cenário comum atualmente. A mesma situação se aplica à quem utiliza notebooks no dia-a-dia, e o procedimento aqui apresentado é o mesmo: você pode cifrar uma partição de vazia de um notebook ou uma partição de um pendrive, a única coisa que muda é o nome do dispositivo. Observe, no entanto, que todos os dados da partição a ser cifrada serão perdidos. Então, faça cópias de segurança dos dados antes de tentar cifrar a partição. Uma vez que o procedimento de cifragem tenha sido executado TODOS os dados lá existentes serão perdidos.

Outra informação importante: sempre verifique e certifique-se de estar usando o nome correto do dispositivo (exemplo: /dev/sdb1, /dev/sdc1 etc), porque basta errar uma única vez para que todos os dados existentes sejam perdidos.

Por fim, o objetivo deste artigo é apresentar o procedimento de cifragem de uma partição de disco ou pendrive, mas não assumo nenhuma responsabilidade por eventuais danos provocados pela execução dos comandos apresentados aqui. Este artigo foi publicado com o intuito de ajudar a quem quer que seja e assume que quem o utilize tenha conhecimentos suficientes de Linux para alterar os comandos conforme suas necessidades.

Existem várias soluções capazes de cifrar uma partição no Linux, como o TrueCrypt, que funciona tanto em Linux como em Windows, e o dm-crypt, que será o nosso assunto aqui.

Optei pelo DM-Crypt por ter suporte nativo no kernel do Linux e também por ser uma solução que não depende da existência de interface em modo gráfico.

O suporte à criptografia de discos no Linux é chamado LUKS (Linux Unified Key Setup), que fornece um padrão para o formato de gravação dos dados no disco. No LUKS, todos os dados necessários para o acesso ao dispositivo são armazenados no cabeçalho da partição.

Desde a série 2.6 do kernel do Linux foi introduzida uma nova característica chamada device mapper, que é uma infraestrutura que fornece uma forma genérica de criar camadas virtuais de dispositivos de bloco, que permite que diferentes ações possam ser realizadas nas camadas superiores de um dispositivo de bloco, como por exemplo, concatenação de vários discos e/ou partições diferentes para formar um único dispositivo lógico para o sistema. Este é o caso, por exemplo, do LVM (Linux Volume Manager), que utiliza o conceito de device mapper para criar uma unidade virtual formada por vários discos ou partições.

Mas e o DM-Crypt?

DM-Crypt é um acrônimo para Device Mapper Crypto Target, que oferece uma interface transparente de criptografia para dispositivos de bloco. Basicamente, o usuário define um algoritmo simétrico, uma chave e o modo de geração do vetor de inicialização e pode então criar um novo dispositivo de blocos cifrado. As escritas serão cifradas antes da gravação e as leituras serão decifradas automaticamente. O sistema de arquivos é criado usando esta interface, o que significa que, no disco, os dados serão cifrados.

Agora vamos à parte prática da coisa.

Como exemplo, irei utilizar uma partição criada num pendrive. Atente para o fato de que o processo é o mesmo tanto para uma partição de um pendrive como para uma partição de um disco rígido. O importante é estar atento para o fato de que TODOS os dados da partição serão perdidos durante a cifragem da partição, portanto, faça o backup antes de continuar.

Neste exemplo, vamos considerar que o pendrive está conectado ao computador e que desejamos cifrar a partição 1 do mesmo. O exemplo também, considera que a partição do pendrive foi identificada pelo sistema em /dev/sdb1. Identifique corretamente o seu dispositivo antes de continuar.

Para uma segurança maior, primeiramente grave dados aleatórios na partição. Isto garante que nenhum resquício de informação válida seja mantido na partição. O problema deste processo é que ele pode ser demorado, dependendo do tamanho da partição.

Use o comando shred para gravar dados aleatórios na partição:

# shred -v -n 1 /dev/sdb1
shred: /dev/sdb1: pass 1/1 (random)...
shred: /dev/sdb1: pass 1/1 (random)...8.8MiB/8GiB 0%
shred: /dev/sdb1: pass 1/1 (random)...17MiB/8GiB 0%
shred: /dev/sdb1: pass 1/1 (random)...26MiB/8GiB 0%
shred: /dev/sdb1: pass 1/1 (random)...34MiB/8GiB 0%
...
shred: /dev/sdb1: pass 1/1 (random)...GiB/8GiB 100%

Inicialize a partição com o cryptsetup. Será solicitada a entrada de uma senha (e posterior confirmação). Esta senha deverá ser usada toda vez que o dispositivo for conectado ao sistema. Observe que, antes da senha, o software solicita a confirmação de que você deseja realmente fazer isso, já que TODOS os dados existentes no dispositivos serão sobrescritos e não poderão ser recuperados de forma alguma. Se você tiver certeza de que deseja continuar, digite YES (com letras maiúsculas). O comando é o seguinte:

sudo cryptsetup luksFormat /dev/sdb1

WARNING!
========
This will overwrite data on /dev/sdb1 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:

Quando usamos o DM-Crypt temos, basicamente, duas camadas de software: uma camada formada pelos mecanismos de criptografia, que cuidam de cifrar os dados na gravação e decifrá-los na leitura. Uma segunda camada, situada sobre a camada criptográfica, é formada pelo sistema de arquivos. Assim, uma vez que a camada criptográfica tenha sido estabelecida, criamos o sistema de arquivos desejado sobre a mesma, de forma que, para as aplicações e para o próprio sistema de arquivos todos os acessos fiquem transparentes.

Este mecanismo impõe um passo adicional nos processos de montagem e desmontagem do sistema de arquivos: primeiro deve ser habilitado o acesso ao dispositivo criptográfico e somente depois o sistema de arquivos pode ser montado. Da mesma forma, o processo de desmontagem de um dispositivo de blocos deve ser executado em duas etapas: primeiro desmonta-se o sistema de arquivos seguido do fechamento do dispositivo criptográfico.

Vamos então habilitar a camada criptográfica, criando um dispositivo no device mapper (será solicitada a senha de acesso ao dispositivo):

sudo cryptsetup luksOpen /dev/sdb1 sdb1
Enter passphrase for /dev/sdb1:

Este comando cria o dispositivo /dev/mapper/sdb1, que agora pode ser utilizado da mesma forma que uma partição normal, só que todos os dados serão cifrados antes de serem gravados, e decifrados ao serem lidos, de forma transparente.

Agora, precisamos criar o sistema de arquivos (formatar) sobre o nosso dispositivo (ou partição) cifrado:

sudo mkfs -t ext4 -L COISAS /dev/mapper/sdb1
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 1957883 4k blocks and 489600 inodes
Filesystem UUID: 5a48816c-0488-4cbf-b8c2-ffabf0554102
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

No exemplo, a partição foi formatada com o sistema de arquivos EXT4, mas poderia ser qualquer outro formato suportado e de sua preferência.

Partição formatada, podemos agora montá-la da mesma forma que faríamos com uma partição normal (este procedimento deve ser utilizado para montagem manual, caso o ambiente gráfico esteja ativo, provavelmente ele o executará automaticamente quando o pendrive ou HD externo for conectado ao computador), utilizando o dispositivo mapeado pelo device mapper:

sudo mount /dev/mapper/sdb1 /mnt/data/

Agora é a parte legal do processo: temos duas camadas para acessar o dispositivo. Quando gravarmos um arquivo no ponto de montagem /mnt/data, os dados serão enviados para o dispositivo lógico /dev/mapper/sdb1. Neste ponto, os dados serão cifrados (criptografados) e gravados efetivamente no dispositivo /dev/sdb1. Esta é a magia das camadas lógicas.

Quando terminarmos de utilizar o dispositivo, precisamos desfazer as coisas na ordem inversa:

Desmonte o sistema de arquivos do dispositivo:

sudo umount /mnt/data

Encerre a camada de criptografia, desvinculando o device mapper do dispositivo real:

sudo cyprtseyup luksClose sdb1

Agora o dispositivo pode ser removido do computador.

Resumo: comandos úteis

Resumo do processo de montagem e desmontagem:

Para montar o dispositivo (nossa partição), precisamos sempre executar os seguintes passos:

sudo cryptsetup luksOpen /dev/sdb1 sdb1
sudo mount /dev/mapper/sdb1 /mnt/data/

Para desmontar este dispositivo (partição, no nosso caso), devemos sempre executar os seguintes comandos:

sudo umount /mnt/data/
sudo cryptsetup luksClose sdb1

Consultando informações da partição cifrada

Com a partição desmontada, podemos consultar o header da mesma:

sudo cryptsetup luksDump /dev/sdb1
LUKS header information for /dev/sdb1

Version:            1
Cipher name:        aes
Cipher mode:        xts-plain64
Hash spec:          sha1
Payload offset:     4096
MK bits:            256
MK digest:          65 8c 39 3b 0c 17 9f d8 0e 85 83 0d dd 39 db 77 48 93 ff ba
MK salt:            8d d5 46 be 3f 2f 3a de c1 ea 46 8a ed af fa 2b
                    dc 6a 8d 21 12 19 b5 ac 6e b7 e3 fd 35 1e 80 c8
MK iterations:      105500
UUID:               c0a4211d-3aea-42bb-b92c-a0d7be49bca8

Key Slot 0: ENABLED
        Iterations:        424543
        Salt:              95 02 a4 02 a5 ca 21 fd 0f e5 53 79 07 1c b6 ca
                           32 54 d7 48 d6 80 3c 34 6a d9 f3 df 6d 52 c8 89
        Key material offset:        8
        AF stripes:                 4000
Key Slot 1: DISABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

Podemos observar que há apenas uma chave (Key Slot 0): o header do LUKS permite até 8 chaves de acesso a um mesmo dispositivo.

Para adicionar uma chave, use o comando, observando que será solicitada uma senha já configurada no dispositivo:

sudo cryptsetup luksAddKey /dev/sdb1
Enter any existing passphrase:        <- Digite uma das senhas  configuradas
Enter new passphrase for key slot:    <- Digite a nova senha a ser cadastrada
Verify passphrase:                    <- Confirme a nova senha

Listando o header novamente, teremos:

sudo cryptsetup luksDump /dev/sdb1
LUKS header information for /dev/sdb1

Version:            1
Cipher name:        aes
Cipher mode:        xts-plain64
Hash spec:          sha1
Payload offset:     4096
MK bits:            256
MK digest:          65 8c 39 3b 0c 17 9f d8 0e 85 83 0d dd 39 db 77 48 93 ff ba
MK salt:            8d d5 46 be 3f 2f 3a de c1 ea 46 8a ed af fa 2b
                    dc 6a 8d 21 12 19 b5 ac 6e b7 e3 fd 35 1e 80 c8
MK iterations:      105500
UUID:               c0a4211d-3aea-42bb-b92c-a0d7be49bca8

Key Slot 0: ENABLED
        Iterations:        424543
        Salt:              95 02 a4 02 a5 ca 21 fd 0f e5 53 79 07 1c b6 ca
                           32 54 d7 48 d6 80 3c 34 6a d9 f3 df 6d 52 c8 89
        Key material offset:        8
        AF stripes:                 4000
Key Slot 1: ENABLED
        Iterations:                 426666
        Salt:              88 a5 31 5f 77 c4 aa 01 0a 67 9b 42 6b de 08 42
                           5a f9 38 53 ea 6e 2a b3 bc 7d a9 46 b8 0e 61 c3
        Key material offset:        264
        AF stripes:                 4000
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

Agora pode ser utilizada qualquer uma das senhas configuradas para acessar o dispositivo (Key Slot 0 e Key Slot 1).

Para apagar a senha, devemos escolher o slot que desejamos apagar. Por exemplo, vamos apagar a senha do slot 1, que acabamos de criar (slot 1), lembrando que deve ser utilizada uma das senhas restantes, isto é, qualquer uma das senhas, exceto a que está sendo removida:

sudo cryptsetup luksKillSlot /dev/sdb1 1
Enter any remaining passphrase:

Observe que a chave a ser utilizada para remover a chave indicada deve ser uma das chaves remanescentes, isto é, não podemos remover uma chave utilizando a própria chave.

Verificando o header novamente:

sudo cryptsetup luksDump /dev/sdb1
LUKS header information for /dev/sdb1

Version:            1
Cipher name:        aes
Cipher mode:        xts-plain64
Hash spec:          sha1
Payload offset:     4096
MK bits:            256
MK digest:          65 8c 39 3b 0c 17 9f d8 0e 85 83 0d dd 39 db 77 48 93 ff ba
MK salt:            8d d5 46 be 3f 2f 3a de c1 ea 46 8a ed af fa 2b
                    dc 6a 8d 21 12 19 b5 ac 6e b7 e3 fd 35 1e 80 c8
MK iterations:      105500
UUID:               c0a4211d-3aea-42bb-b92c-a0d7be49bca8

Key Slot 0: ENABLED
        Iterations:        424543
        Salt:              95 02 a4 02 a5 ca 21 fd 0f e5 53 79 07 1c b6 ca
                           32 54 d7 48 d6 80 3c 34 6a d9 f3 df 6d 52 c8 89
        Key material offset:        8
        AF stripes:                 4000
Key Slot 1: DISABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

Se tentarmos remover a última (única) chave, o sistema avisará que o dispositivo ficará inutilizado em termos de acesso:

sudo cryptsetup luksKillSlot /dev/sdb1 0

WARNING!
========
This is the last keyslot. Device will become unusable after purging this key.

Are you sure? (Type uppercase yes):

Observe que só havia uma chave cadastrada e, portanto, se continuássemos o processo, a partição ficaria sem nenhuma chave de acesso e, portanto, inutilizada!

Para permitir que a partição seja montada automaticamente na inicialização, devemos habilitar o dispositivo usando o arquivo cryttab, adicionando a seguinte linha:

# <target name>     <source device>         <key file>      <options>
sdb1            /dev/sdb1           none        luks

Isso habilita a criação do dispositivo no device mapper. Para montar a partição, usamos o método convencional (/etc/fstab):

/dev/mapper/sdb1 /mnt/data      ext4  defaults  0   2

Agora o sistema deve pedir a chave na inicialização.

Se, por outro lado, o disco for ser utilizado esporadicamente como, por exemplo, um pendrive, não há necessidade de adicionar nada no arquivo fstab, mas faça as alterações no crytptab. Se você estiver usando alguma interface gráfica, como o Gnome, provavelmente ao conectar o dispositivo o sistema solicitará a senha e irá montar o dispositivo em /media/<usuário>/dispositivo, usando o nome definido na formatação. Se isso não acontecer, use os comandos manualmente, ou tente adicionar a seguinte linha no fstab:

/dev/mapper/sdb1 /media/Crypto  ext4 user,noauto 0 0

That’s all folks!

]]>
Wed, 26 Jul 2017 00:00:00 -0300
http://www.mariolb.com.br/blog/2017/07/14/windows_7_remover_portas_seriais_reservadas.html http://www.mariolb.com.br/blog/2017/07/14/windows_7_remover_portas_seriais_reservadas.html <![CDATA[Windows 7: remover portas seriais reservadas]]> Windows 7: remover portas seriais reservadas

Conversores do tipo USB/Serial normalmente possuem um identificador interno e, cada vez que um novo conversor é conectado ao computador, uma nova porta serial é adicionada ao sistema. Se você troca constantemente de adaptadores e conversores, as portas seriais alocadas no sistema vão crescendo.

Para remover as portas não usadas, não encontrei nenhuma ferramenta prática, então, seguem algumas dicas para removê-las manualmente.

Atenção: nos meus testes, algumas vezes precisei reinstalar os drivers do conversor/adaptador USB/Serial, então, antes de remover as portas, certifique-se que possui os drivers necessários para o caso de serem necessários.

Usando o gerenciador de dispositivos

Abra um prompt de comando como administrador.

Execute os seguintes comandos:

set devmgr_show_nonpresent_devices=1
start devmgmt.msc

Após a execução destes comandos, será apresentada a janela do Gerenciador de Dispositivos. Selecione o menu Ver e selecione a opção Mostrar dispositivos ocultos.

Agora é possível expandir a seção Portas COM e serão apresentadas todas as portas já criadas. Clique com o botão direito do mouse na porta que deseja excluir e selecione a opção Desinstalar.

No entanto, dependendo do número e portas existentes, este trabalho pode ser maçante. Uma outra forma de remover as portas seriais criadas será apresentada no próximo tópico.

Editando o registro

Execute o Editor de Registro como administrador. Há várias maneiras de se fazer isto: abra um prompt de comando como administrador e execute o seguinte comando:

regedit

Outra forma é localizar o editor de registros no menu iniciar, depois clique com o botão direito do mouse e selecione Executar como administrador.

Com o editor de registros aberto, navegue até s seguinte chave:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter

No painel direito, aparecerá a chave ComDB. Clique nesta chave com o botão direito do mouse e selecione a opção modificar. Na seção Dados selecione todos os valores e apague-os (ficará apenas um item com valor 00).

Reinicie o computador para que as alterações sejam identificadas pelo Windows.

Não se esqueça: depois da reinicialização do computador, pode ser necessário reinstalar o driver do conversor USB/Serial.

Curiosidade: Os valores binários apresentados neste campo representam cada uma das portas seriais reservadas pelo sistema, um bit para cada porta, sendo que um bit 1 indica que a porta correspondente foi reservada. O primeiro byte representa as portas seriais de 1 a 8, o segundo byte representa as portas 9 a 15 e assim por diante. Para cada byte, a contagem do número das portas inicia-se pelo bit menos significativo (da direita para a esquerda). Por exemplo, se o valor apresentado nos dois primeiros bytes for F3 24 (hexadecimal), teremos:

  • 0xF3 0x24 = 1111 0011 0010 0100 (representação binária);
  • Primeiro byte (0xF3 = 1111 0011) indica que as portas seriais 1, 2, 5, 6, 7 e 8 foram reservadas;
  • Segundo byte (0x24 = 0010 0100) indica que as portas 11 e 14 foram reservadas.
]]>
Fri, 14 Jul 2017 00:00:00 -0300
http://www.mariolb.com.br/blog/2017/05/26/rdesktop_dica_rapida.html http://www.mariolb.com.br/blog/2017/05/26/rdesktop_dica_rapida.html <![CDATA[RDesktop: dica rápida]]> RDesktop: dica rápida

Dica rápida de uso do comando rdesktop:

Linha de comando:

rdesktop <opções> <host>

Opções interessantes:

Opção Descrição
-g 92% Janela com 92% da tela do host
-k pt-br Teclado ABNT
-f Tela cheia (tem um comportamento estranho no Gnome se for preciso acesso local)
-r disk:<share>=<device> Compartilha um diretório local (Linux) com o computador remoto

Exemplo:

rdesktop -k pt-br -g 92% -r disk:mario=/tmp 10.1.0.1
]]>
Fri, 26 May 2017 00:00:00 -0300
http://www.mariolb.com.br/blog/2017/05/24/finalists_of_european_security_blogger_awards_2016.html http://www.mariolb.com.br/blog/2017/05/24/finalists_of_european_security_blogger_awards_2016.html <![CDATA[Finalists of European Security Blogger Awards 2016]]> Finalists of European Security Blogger Awards 2016

Ok, já sei que esta notícia é um pouco antiga, mas resolvi publicá-la assim mesmo, depois que um amigo (Fernando Filletti) me pediu uma sugestão de fontes confiáveis de segurança. Então, acho que os blogs vencedores de um prêmio europeu pode ser uma boa referência…

Seguem os finalistas do prêmio europeu de blog de segurança 2016 (European Security Blogger Awards 2016).

Fonte: Info Security Group.

The Best EU Security Tweeter

  • Conrad Longmore @ConradLongmore
  • Brian Honan @BrianHonan
  • Lee Munson @Security_FAQs
  • Jessica Barker @drjessicabarker
  • Sarah Clarke @S_clarke22
  • Chris Boyd @paperghost
  • Odisseus @_odisseus
  • Andreas Lindh @addelindh
  • SECURITY AFFAIRS @securityaffairs
  • Graham Cluley @gcluley
  • Stuart Winter-Tear @stegopax
  • Javvad Malik @j4vv4d
  • Mikko Hypponen @mikko
  • Steve Lord @stevelord
  • Quentyn Taylor @Quentynblog
]]>
Wed, 24 May 2017 00:00:00 -0300
http://www.mariolb.com.br/blog/2017/05/22/wannacry_ataque_massivo.html http://www.mariolb.com.br/blog/2017/05/22/wannacry_ataque_massivo.html <![CDATA[WannaCry: ataque massivo]]> WannaCry: ataque massivo

Já se passaram vários dias desde a ocorrência do surto do WannaCry, mas mesmo assim resolvi deixar alguns comentários para o futuro, só para fins de registro…

Na sexta-feira, 12/Maio/2017, o ransomware WannaCry virou notícia no mundo todo, graças a um surto massivo que ninguém sabe quem, ou onde, realmente iniciou (pelo menos até agora).

Ao contrário de outros ransomwares, o WannaCry usou o exploit ETERNALBLUE para se espalhar. Este exploit explora uma vulnerabilidade no protocolo SMBv1, utilizado no compartilhamento de arquivos em redes Windows. Agora, vejamos alguns fatos:

  • A referida vulnerabilidade foi corrigida pela Microsoft e lançada em março para todas as versões correntes do Windows;
  • Em abril, o grupo hacker Shadowbrokers disponibilizou na Internet um conjunto e ferramentas obtidas da NSA através de um vazamento. Dentre estas ferramentas, está o exploit Eternalblue, e o backdoor PULSAR;
  • Variantes do malware começaram a surgir nos dias seguintes ao surto.

O primeiro grande surto do malware WannaCry ocorreu no dia 12 de maio, então, desde a correção do bug no Windows até a ocorrência do surto, se passaram quase dois meses. No entanto, deve-se atentar para o fato de que as correções só foram lançadas para as versões correntes do Windows. Eu não tenho nenhuma estatística de uso do Windows, mas acredito que ainda existam muitas versões de Windows não mais atualizadas (vide, por exemplo, quantos caixas eletrônicos bancários ainda utilizam o Windows XP).

As primeiras análises do WannaCry indicaram que o worm se propagava para outros computadores verificando a existência do backdoor DoublePulsar e, caso o computador não tivesse este backdoor ativo, então o WannaCry tentava explorar a vulnerabilidade do SMBv1 utilizando o exploit Eternalblue.

Só para esclarecer, o exploit DoublePulsar é um sofisticado payload que funciona em sistemas Windows de 32 e 64-bit que permite ao atacante executar qualquer shellcode que ele desejar.

O EternalBlue é um exploit que explora uma vulnerabilidade no protocolo SMBv1.

Então é fácil explicar porque este malware alcançou tamanho sucesso na disseminação:

  • Houve uma demora muito grande na atualização dos sistemas: há uma janela de quase dois meses entre o lançamento dos patches e o surto do malware;
  • Ao que tudo indica, ainda há uma grande quantidade de versões obsoletas de sistemas operacionais em operação. De fato, que trabalha na área de TI sabe que é bem difícil, em certos casos, conseguir efetuar a substituição de sistemas em geral quando novas versões são disponibilizadas e as mais antigas deixam de ter as atualizações lançadas pelos fabricantes. Há o problema do custo de atualização das licenças, a necessidade de migrar e testar todas as aplicações para as novas versões dos sistemas, e, no meu entender, as empresas parecem gostar da máxima «em time que está ganhando (funcionando), não se mexe». Grande engano: na área de sistemas, se não atualizamos sistemas que estão «ganhando» (ou seja, funcionando), o risco de ele se tornar um grande problema com grande prejuízos é enorme;
  • Apesar de não termos informações precisas de como o surto iniciou, há grande chance de ela ter iniciado aproveitando-se da existência de algum sistema com a porta 445/TCP acessível na Internet.

Graças à junção de todos estes fatos, o balanço final do surto foi o seguinte: em questão de poucas horas, mais de 230.000 computadores foram infectados em 150 países, e acredito que este número deva ser bem maior, porque nem todas as ocorrências devem ter sido relatadas.

Segundo a análise de especialistas, o WannaCry espalha-se da seguinte forma: primeiro ele verifica se pode encontrar um site específico em http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com. Ele também verifica a existência de uma determinada chave no registro do Windows. Ele não irá continuar se a chave de registro estiver presente ou se o site puder ser acessado.

Horas depois do início do surto, o especialista em segurança inglês Marcus Hutchins, conhecido como MalwareTech, que vive na Inglaterra e trabalha para a Kryptos Logic, dos EUA, descobriu que o malware tentava acessar o domínio. O domínio foi então registrado e a taxa de infecção começou à baixar.

Várias ferramentas de definição das chaves de registro foram lançadas, dentre elas a chamada Tearst0pper, lançada pela Rendition Infosec; também podem ter auxiliado na redução da infecção.

No entanto, no dia seguinte ao surto, foram encontradas novas versões do malware que utilizam outros domínios.

Tudo isso indica o seguinte: somente a atualização dos sistemas e o bloqueio da porta 445/TCP na Internet é que podem parar o alastramento do malware.

Para um leigo, até pode parecer que surtos deste tipo não afetem as vidas das pessoas não diretamente relacionadas com computadores e estas coisas todas. O problema é que, atualmente, todos dependemos de algum tecnologia que, por sua vez, quase sempre estão conectadas de alguma forma a computadores.

Por exemplo, no dia 17/05/2017, cinco dias depois do surto e quando as coisas já estavam relativamente sobre controle, o jornalista Thomas Fox-Brewster, do Forbes, divulgou a notícia de relatos de o WannaCry também infectou dispositivos médicos. Ele divulgou algumas imagens de aparelhos, provavelmente da Bayer Medrad, infectado em um hospital dos Estados Unidos. Não há informações exatas sobre qual tipo de equipamento seja, mas há especulações de que seja um dispositivo de injeção de contraste utilizado em exames radiológicos, como os de ressonância magnética. O que ocorre é que, se um computador da rede do hospital for vítima de malwares como o WannaCry, todos os equipamentos conectados à rede poderão ser infectados. Ou seja, todos somos vítimas, direta ou indiretamente, quando os sistemas de computadores são violados.

]]>
Mon, 22 May 2017 00:00:00 -0300
http://www.mariolb.com.br/blog/2017/05/20/typosquatting.html http://www.mariolb.com.br/blog/2017/05/20/typosquatting.html <![CDATA[Typosquatting]]> Typosquatting

Typosquatting lhe parece uma palavra nova e estranha? Pode parecer, mas não é tanto assim. Esta palavra é uma junção das palavras typo, que significa erro de digitação, e squatting, que significa alapardar (esconder-se). Esta palavra é utilizada para expressar o ato de registrar domínios com nomes semelhantes a nomes de domínios populares, com o objetivo de obter algum lucro quando alguém se engana ao escrever o nome de domínio.

Exemplo clássico: mircosoft.com. Este domínio foi registrado em 1997, mas depois foi adquirido pela Microsoft (seja honesto: você leu microsoft.com e não mi*rco*soft.com, não foi?).

Até aí, tudo bem, o objetivo pode ser «apenas» obter algum lucro vendendo o domínio com nome «parecido» para o dono do domínio popular (não que eu ache que isto seja ético, mas sim oportunismo). Só que isto não é tão simples assim: pessoas mal intencionadas podem utilizar-se do typosquatting para registrar domínios e criar sites contendo diversos tipos de malwares.

Funciona assim: o usuário deseja acessar, por exemplo, o domínio dhl.com, mas, por engano, digita dhll.com, que infelizmente existe e que pode ter sido criado com o objetivo de disseminar algum tipo de software mal intencionado. Então, sem saber, o usuário que queria acessar o site dhl.com acabará sendo vítima do malware.

Outro exemplo, ainda usando o domínio dhl.com: um usuário recebe um phishing, que é um tipo de fraude online, onde o usuário recebe uma e-mail falso com a intenção de fazer com que ele clique num link que direciona o acesso para o site malicioso. Mas hoje, muitos usuários já estão se precavendo, isto é, ao receber um link, eles sempre observam para onde o link aponta antes de clicar. Pois é, mas e se o link apontar para dh1.com, quantos usuários precavidos mas não tão atentos aos detalhes cairão nesta cilada? Observe que a letra «l» (ele) do nome do domínio foi substituído pelo número «1». Todos sabemos que, dependendo do tipo de letra utilizando (fonte), ambos os símbolos («1» e «l») são praticamente idênticos, o que torna difícil a diferenciação de dhl.com de dh1.com.

]]>
Sat, 20 May 2017 00:00:00 -0300
http://www.mariolb.com.br/blog/2017/05/04/docker_dicas.html http://www.mariolb.com.br/blog/2017/05/04/docker_dicas.html <![CDATA[Docker: dicas]]> Docker: dicas

Hoje resolvi criar um pequeno site de dicas sobre Docker. Não sou nenhum expert no assunto, e nem pretendo sê-lo. No entanto, como surgiu uma pequena tarefa no meu trabalho onde o Docker é utilizado, decidi fazer algumas anotações que eu julgar interessante.

Não se trata de um tutorial e nem tem a intenção de servir como documentação desta ferramenta. Na verdade, meu objetivo é apenas manter minhas anotações não confidenciais disponíveis para meu fácil acesso e também para o mundo, como forma de disseminar conhecimento.

Veja o site aqui.

Espero que as dicas sirvam para alguém…

Um forte abraço,

Marião

]]>
Thu, 04 May 2017 00:00:00 -0300
http://www.mariolb.com.br/blog/2017/04/03/criando_um_pen_drive_de_instalacao_do_windows_no_linux.html http://www.mariolb.com.br/blog/2017/04/03/criando_um_pen_drive_de_instalacao_do_windows_no_linux.html <![CDATA[Criando um pen drive de instalação do Windows no Linux]]> Criando um pen drive de instalação do Windows no Linux

Algumas vezes me deparo com computadores que precisam ter o sistema operacional reinstalado, mas a unidade de CD/DVD não funciona. Neste caso, podemos substituir a unidade leitora de CD/DVD, utilizar uma unidade externa ou utilizar um pen drive com o software de instalação do sistema operacional. Quando o sistema operacional é Windows, pode-se utilizar aqueles tutoriais disponíveis na Internet e que, invariavelmente utilizam aplicativos específicos para este trabalh, mas que só funcionam no Windows. Aí isto acaba sendo um problema para as pessoas que, como eu, só tem Linux na sua estação de trabalho.

Os passos seguintes ilustram a criação de um pen drive inicializável com o conteúdo do instalador do Windows utilizando ferramentas do Linux.

ATENÇÃO: como o procedimento a seguir envolve alteração de partições, preste muita atenção no que está fazendo e, principalmente, entenda ANTES de fazê-lo, porque um comando errado pode DESTRUIR todos os dados do seu computador. A responsabilidade pela execução dos comandos apresentados neste artigo é totalmente sua. Este não é o tipo de artigo/tutorial que deva ser executado sem o devido conhecimento de suas consequências.

Identifique o Pen drive

Conecte o pen drive ao computador e assegure-se de identificá-lo corretamente (exemplo: /dev/sdb)

Depois de identificado, desmonte o volume do pen drive:

sudo umount /dev/sdX

Atenção: os passos seguintes podem destruir todos os dados do seu computador se você não utilizar o dispositivo correto identificado pelo sistema operacional para o pen drive. É sua responsabilidade entender o que está fazendo e fazê-lo corretamente. Nos exemplos a seguir, será utilizado o nome genérico sdX para identificar o dispositivo identificado pelo sistema operacional. Cabe a você substituir sdX pelo dispositivo identificado pelo seu sistema operacional Linux para o pen drive.

Particionando o Pen Drive

Acesse o USB através do parted:

sudo parted /dev/sdX

Assegure-se de que você está usando o parted no dispositivo USB correto, caso contrário você poderá destruir os dados do seu computador. Você não será mais avisado sobre este risco, porque os próximos comandos já são suficientes para destruir TODOS os dados do seu computador.

Os seguintes comandos irão criar a partição no pen drive:

(parted) mklabel msdos
(parted) mkpart primary ntfs 1 -1
(parted) set 1 boot on
(parted) quit

Formate a partição com NTFS (instale o pacote ntfs-3g se seu sistema não o tiver disponível):

sudo mkfs.ntfs -f /dev/sdX1

Instale o utilitário ms-sys

O utilitário ms-sys será necessário para gravar o MBR do dispositivo. Muitas distribuições não disponibilizam esta ferramenta em seus repositórios, mas sua instalação é bem simples. Baixe-o de http://ms-sys.sourceforge.net/#Download. Depois é só descompactar, compilar e instalar:

tar xzvf ms-sys-2.5.3.tar.gz
cd ms-sys-2.5.3
make
sudo make install

Grave o MBR do Pen Drive

Para gravar o MBR no pen drive:

sudo ms-sys -7 /dev/sdX

Onde -7 indica que desejamos gravar o MBR no formato do Windows 7. Basicamente, o MBR contém um código (programa) básico que possibilita a inicialização do sistema operacional cotido no disco (pen drive, em nosso caso).

Cópia dos Arquivos

Monte o pen drive no sistema:

sudo mkdir -p /mnt/usb
sudo mount /dev/sdX1 /mnt/usb

Monte a imagem ISO do Windows:

sudo mkdir -p /mnt/iso
sudo mount -o loop /tmp/en_windows_7_professional.iso /mnt/iso

Copie o conteúdo da imagem ISO para o pen drive:

sudo cp -av /mnt/iso/* /mnt/usb/

Depois de terminada a cópia, desmonte o pen drive e a imagem ISO do Windows:

sudo umount /mnt/iso
sudo umount /mnt/usb

Observe que o processo de desmontagem da imagem ISO deverá ocorrer de forma quase que instantânea, já a do pen drive pode demorar alguns minutos, dependendo da velocidade da interface USB e do pen drive. Isto acontece porque o sistema operacional usa buffers de gravação que armazenam os dados em RAM antes de serem gravados definitivamente no dispositivo e, quando o dispositivo é desmontado, todos os dados devem ser efetivamente gravados no dispositivo. Então, não desconecte o pen drive do computador até que o comando umount tenha terminado.

Agora é só testar: conecte o pen drive no computador onde o Windows deve ser instalado e ligue o computador. Será necessário selecionar a opção de inicialização do BIOS do computador: em alguns computadores deve-se pressionar a tecla F2, F8 ou F12 assim que o computador for ligado. Consulte o manual da placa mãe do computador para verificar como a opção de escolha de dispositivo de boot pode ser ativada.

]]>
Mon, 03 Apr 2017 00:00:00 -0300
http://www.mariolb.com.br/blog/2017/02/10/qt_5_8_instalacao_no_debian_jessie.html http://www.mariolb.com.br/blog/2017/02/10/qt_5_8_instalacao_no_debian_jessie.html <![CDATA[QT 5.8 - instalação no Debian Jessie]]> QT 5.8 - instalação no Debian Jessie

Eu vou apresentar a minha experiência na instalação do Qt5.8 no Debian Jessie.

Qt5.8 no Debian Jessie

Apesar destas dicas terem sido realizadas no Debian, com certeza elas servirão para outras distribuições, talvez com pequenas alterações.

Para início de conversa, a versão usada nestes testes foi a Qt-5.8.0, disponível em: Qt 5.8

Uma vez obtido o pacote de instalação, atribua permissão de execução e execute o instalador com privilégio de administrador:

chmod +x qt-opensource-linux-x64-5.8.0.run
sudo ./qt-opensource-linux-x64-5.8.0.run

Observe que, se você preferir, pode instalar o pacote sem permissão de administrador, mas aí ele estará disponível apenas para seu usuário, além de trazer alguns inconvenientes para fazer as aplicações funcionarem para outros usuários. A decisão é sua.

O instalador irá sugeriu a instalação em /opt/Qt5.8.0. Eu aceitei a sugestão.

Depois de instalado, é preciso configurar as variáveis de ambiente. Aqui vale uma advertência: se você ajustar as variáveis a seguir, então se você atualizar a biblioteca Qt, também terá que atualizar as variáveis para todos os usuários!

Se você optar por não configurar as variáveis, é possível que tudo funcione apenas criando as configurações das bibliotecas compartilhadas do sistema, porém, você deve se certificar de que não existe nenhuma configuração padrão no sistema.

As variáves de ambiente necessárias podem ser adicionadas ao /etc/bash.bashrc (global) ou ao ~/.bashrc (específico para cada usuário). As configurações são simples:

export QTDIR=/opt/Qt5.8.0/5.8/gcc_64/lib
export LD_LIBRARY_PATH=/opt/Qt5.8.0/5.8/gcc_64/lib

Na minha humilde opinião, a principal configuração é a atualização da configuração de bibliotecas do sistema, ou seja, uma vez instalado o Qt, o que devemos fazer é informar ao sistema operacional onde as novas bibliotecas se encontram. Para fazer isto, é bastante simples: crie o arquivo /etc/ld.so.conf.d/qt5.8.conf com o seguinte conteúdo:

sudo vim /etc/ld.so.conf.d/qt5.8.conf

Adicione neste arquivo o caminho do diretório das bibliotecas compartilhadas do Qt, conforme o exeplo a seguir (você deve ajustar o caminho de acordo com a sua instalação):

/opt/Qt5.8.0/5.8/gcc_64/lib

Grave o arquivo e, finalmente, atualize o cache de bibliotecas do sistema:

sudo ldconfig

Pronto. Agora é só usar! Você pode, inclusive, adicionar o caminho do diretório das ferramentas de compilação na variável PATH do usuário ou do sistema (se o uso for global, isto é, para todos os usuários do computador). Exemplo:

export PATH=/opt/Qt5.8.0/5.8/gcc_64/bin/:$PATH

Este comando adiciona o caminho para as ferramentas de compilação no início da variável PATH. Para tornar isto permanente, altere o .bashrc do usuário.

É isso. Boa sorte!

]]>
Fri, 10 Feb 2017 00:00:00 -0200
http://www.mariolb.com.br/blog/2017/01/22/seguranca_10_maiores_hacks_vazamentos_e_bugs_de_ciberseguranca_de_2016.html http://www.mariolb.com.br/blog/2017/01/22/seguranca_10_maiores_hacks_vazamentos_e_bugs_de_ciberseguranca_de_2016.html <![CDATA[Segurança: 10 maiores hacks, vazamentos e bugs de cibersegurança de 2016]]> Segurança: 10 maiores hacks, vazamentos e bugs de cibersegurança de 2016

Bem, não é bem o que eu gosto de fazer, mas enfim, segue um artigo que saiu no IDGNow sobre as maiores falhas de segurança da informação no ano de 2016. Eu prefiro escrever meus próprios artigos, mas achei que este valeria a pena, já que mantém no meu site um registro sobre o evento. Lembre-se, no entanto, que o artigo é do IDGNow, e pode não refletir exatamente a minha opinião. Para ler o original, vá diretamente para o site do IDGNow:

IDGNow - Especial: 10 maiores hacks, vazamentos e bugs de cibersegurança de 2016, acesso em 24.dez.2016.

Segue o conteúdo do artigo, na íntegra, conforme disponível na data de publicação deste artigo:

O ano que está chegando ao fim foi cheio de notícias negativas no universo de cibersegurança.

O Yahoo revelou dois hacks gigantescos, incluindo o maior vazamento da história. Milhões de DVRs e webcams «zumbificadas» derrubaram a Internet nos EUA. A Rússia foi acusada de tentar influenciar as eleições dos EUA por meio de hacks, e um novo tipo de malware conseguiu ganhar muito dinheiro roubando usuários de Bitcoin.

Yahoo em apuros

Em setembro, o Yahoo chocou o mundo ao revelar que pelo menos 500 milhões de contas dos seus usuários foram invadidas em 2014. Na época, acreditava-se que esse era o maior vazamento de dados pessoais da história da Internet. Mas o Yahoo conseguiu superar o próprio recorde negativo ao revelar em dezembro que um outro hack, ocorrido lá em 2013, vazou os dados de 1 bilhão dos seus usuários.

Ransomware em alta

A ameaça online que definiu 2016 mais do que qualquer outra tem de ser o chamado ransomware. Esse malware criptografa seus arquivos e os toma como reféns, exigindo um pagamento do usuário para liberar os arquivos de volta. Muitas e muitas variações de ransomware tomaram as manchetes em 2016, incluindo ameaças como Locky, DMA Locker, Surprise e uma versão amadora (mas eficaz) chamada Ranscam, que rouba seu dinheiro e ainda assim apaga seus arquivos. Houve até ransomware mobile, e em julho os pesquisadores de segurança descobriram uma versão do Locky que conseguia operar offline para ser ainda mais efetiva. Um estudo publicado em agosto pela Malwarebytes apontava que o ransomware era tão comum que estava atingindo quase metade de todas as empresas dos EUA.

DDoS contra Dyn

Em outubro, uma botnet impulsionou um grande ataque de negação de serviço (DDoS) contra o Dyn, um importante provedor de sistema nomes de domínio (DNS). O DNS é o sistema de direcionamento que transforma um nome de um site como google.com em um endereço de IP (Protocolo de Internet) como 172.217.21.110 para os computadores lerem. Sem DNS, um navegador web não consegue encontrar o site que você quer acessar - e foi exatamente isso que aconteceu com milhões de usuários dos EUA durante esse ataque DDoS. O acesso a sites como Twitter, GitHub e Netflix ficou indo e voltando durante o dia. Alguns dias depois ficamos sabendo que a botnet que causou todo esse problema consistia em 100 mil aparelhos residenciais (como webcams e DVRs) que tinham sido infectados pelo malware Mirai. Sim, um exército de aparelhos inteligentes «burros e inseguros» atacaram a web.

Apple pára de liberar patches para o QuickTime

O QuickTime costumava ser um dos softwares mais onipresentes em um computador. Era algo vital para assistir muitos vídeos antigos, especialmente no iTunes. Com o tempo, no entanto, o QuickTime tornou-se menos e menos importante, e agora é quase desnecessários. Há alguns meses, após serem descobertas duas vulnerabilidades críticas para o software, a Apple aparentemente decidiu «jogar contra» o QuickTime para Windows em vez de corrigir os problemas. Em outras palavras, se você ainda está rodando o QuickTime no Windows já passou da hora de desinstalá-lo.

Cartões de crédito

As medidas de segurança do seu cartão de crédito não são tão seguras quanto você pensa. Pesquisadores de Universidade de Newcastle, no Reino Unido, demonstraram que descobrir a data de expiração e o código CVV de um cartão pode ser algo relativamente simples. Os especialistas mostraram uma maneira de descobrir esses números usando uma técnica chamada distributed guessing. Basicamente, um laptop carrega centenas de conjecturas simultaneamente em vários sites de pagamento, usando detalhes de expiração e código CVV do cartão levemente diferentes. Em cerca de seis segundos, você vai encontrar a sequência numérica correta para desbloquear os códigos secretos de um cartão, segundo os pesquisadores. A fraqueza é uma falha em limitar corretamente o número de tentativas de preencher os detalhes de pagamento, e os sistemas de cartão de crédito que não monitoram ativamente em busca de tentativas simultâneas incorretas de inserção de dados de cartão de crédito.

Hack contra o Partido Democrata

Neste ano, os ataques hackers «subiram na vida», passando de apenas prejudicar empresas e agências do governo para intervir de maneira direta na eleição presidencial dos EUA. O primeiro exemplo disso foi um vazamento da rede de computadores do Comitê Nacional Democrata (DNC). Em julho, o site Wikileaks publicou um grande número de documentos, que incluíam cerca de 20 mil e-mails e milhares de arquivos anexos de membros do comitê.

Muitos escândalos estouraram depois disso, incluindo implicações de que o Comitê Democrata teria trabalhado contra a campanha do também democrata Bernie Sanders para favorecer a nomeação de Hillary Clinton como a candidata democrata contra Donald Trump. A diretora do comitê, Debbie Wasserman Schultz, acabou tendo de abandonar o cargo por conta das revelações. Um hacker denominado Guccifer 2.0 assumiu a autoria do roubo de dados, mas as agências dos EUA acreditaram que o trabalho tinha sido feito por setores do governo russo.

Rússia e eleições dos EUA

Em setembro, autoridades dos EUA começaram a investigar a possibilidade de a Rússia ter tentado influenciar a eleição presidencial norte-americana. Mais para o final do ano, a CIA, o FBI e outras agências de inteligência dos EUA concluíram com «grande confiança» que a Rússia tentou influenciar de maneira direta as eleições dos EUA com a intenção de beneficiar o vencedor Donald Trump.

Apple x FBI

Em dezembro de 2015, extremistas islâmicos realizaram um ataque terrorista em San Bernardino, na Califórnia, matando 14 pessoas e ferindo seriamente outras 22. Os criminosos depois foram mortos pela polícia em uma troca de tiros.

Em 2016, um iPhone que pertencia a um dos terroristas dominou as manchetes porque o FBI queria que a Apple criasse um software especial para permitir que seus investigadores invadissem o smartphone, que estava bloqueado. A Apple se negou a fazer isso, argumentando que o que o FBI realmente queria que a empresa fizesse era criar um «malware customizado» para burlar os recursos de segurança da própria companhia.

O FBI eventualmente retirou o pedido depois que uma empresa de segurança conseguiu ajudar o órgão a acessar os dados no aparelho. O legado do caso continua vivo à medida que legisladores consideram qual tipo de ajuda as empresas de tecnologia devem fornecer às autoridades.

NSA hackeada

Em agosto, um grupo hacker anônimo chamado Shadow Brokers afirmou que tinha obtido as ferramentas de hacking da Equation Group, uma equipe de ciberespionagem relacionada à Agência Nacional de Segurança dos EUA, a NSA. Durante a invasão, os hackers conseguiram colocar as mãos em exploits sofisticadas que teriam sido usadas pela NSA. Após revelar uma pequena parte desse tesouro, o Shadow Brokers tentou vender as ferramentas na Internet, mas até outubro tinha conseguido gerar pouco interesse com tal oferta.

Fonte: IDGNow

]]>
Sun, 22 Jan 2017 00:00:00 -0200
http://www.mariolb.com.br/blog/2017/01/22/nautilus_atalho_para_abrir_terminal.html http://www.mariolb.com.br/blog/2017/01/22/nautilus_atalho_para_abrir_terminal.html <![CDATA[Nautilus: atalho para abrir terminal]]> Nautilus: atalho para abrir terminal

Dica rápida: como criar um atalho no Nautilus para abrir um terminal no diretório ativo.

Edite o arquivo ~/.config/nautilus/accels e configure a seguinte linha:

(gtk_accel_path "<Actions>/ExtensionsMenuGroup/TerminalNautilus:OpenFolderLocal" "F12")

Esta configuração funcionou para a versão 3.14 do Nautilus (Debian Jessie / 8.x).

Fui,

Marião

]]>
Sun, 22 Jan 2017 00:00:00 -0200
http://www.mariolb.com.br/blog/2016/10/20/console_kit_para_que_serve_e_como_remove_lo.html http://www.mariolb.com.br/blog/2016/10/20/console_kit_para_que_serve_e_como_remove_lo.html <![CDATA[Console-kit: para que serve e como removê-lo]]> Console-kit: para que serve e como removê-lo

O console-kit-daemon gerencia consoles de login no modo gráfico, como o gdm. Se o servidor não possui o modo gráfico instalado, o console-kit-daemon não é necessário. Além disso, segundo o próprio site do projeto (https://www.freedesktop.org/wiki/Software/ConsoleKit/), o ConsoleKit não está mais sendo ativamente mantido. O foco foi transferido para o systemd.

Para remover o pacote consoleKit:

aptitude remove consolekit

Dependendo da instalação, pode ser necessário remover também o pacote dbus-x11:

aptitude remove dbus-x11
]]>
Thu, 20 Oct 2016 00:00:00 -0200
http://www.mariolb.com.br/blog/2016/08/28/bind9_desabilitar_consulta_ipv6.html http://www.mariolb.com.br/blog/2016/08/28/bind9_desabilitar_consulta_ipv6.html <![CDATA[Bind9 desabilitar consulta IPv6]]> Bind9 desabilitar consulta IPv6

Hoje tive um probleminha em minha rede pessoal doméstica: resolvi habilitar um serviço de DNS no meu computador pessoal. O motivo foi simples: não costumo confiar nos serviços de DNS das operadoras, pois já vi, no passado, muitos DNSs com falhas incríveis de configuração e susceptíveis a ataques de cache poisoning (envenenamento de cache).

No Debian 8.x, instalei o Bind9 que, por padrão, já vem pré-configurado em modo cache, que era bem o que eu precisava. O problema é que ele vem configurado para efetuar consultas AAAA (IPv6), e minha rede doméstica conta apenas com IPv4, assim como meu provedor ainda fornece link em IPv4.

Agora, vamos à saga:

Primeiro, eu não quis desabilitar o IPv6 na minha interface de rede, pelo simples fato de que pretendo efetuar alguns testes futuramente.

Então, comecei por desabilitar o IPv6 no Bind: então editei o arquivo /etc/bind/named.conf.options e alterei o parâmetro:

listen-on-v6 { any; };

Para:

listen-on-v6 { none; };

Aproveitando, adicionei os seguintes parâmetros neste mesmo arquivo:

version "Not available";
filter-aaaa-on-v4 yes;

O primeiro parâmetro, na verdade, não tem nenhuma relação com IPv6, mas é apenas um parâmetro de segurança que impede que a versão do Bind seja consultada pelos seus clientes.

Por padrão, no Debian, parâmetros de inicialização do Bind podem ser adicionados no arquivo /etc/default/bind9. Assim, eu editei este arquivo e adicionei a opção -4 ao parâmetro OPTIONS, que ficou assim:

OPTIONS="-4 -u bind"

Reiniciei o serviço, mas para minha surpresa, não funcionou. continuei a ver as seguintes mensagens de log em /var/log/messages:

2016-08-28T12:40:09.332992-03:00 joshua named[10172]: error (network
   unreachable) resolving 'ns-1878.awsdns-42.co.uk/A/IN':
   2a01:618:400::1#53

O que significa que o Bind ainda está fazendo consultas em IPv6. O efeito colateral disso é que a resolução de nomes fica extremamente lenta e, muitas vezes, ocorrem timeouts.

Depois de algumas pesquisas, acabei encontrando uma solução. Não a considero das melhores, porque acredito que o fato do arquivo /etc/default/bind9 existir ainda na distribuição me faz acreditar que ele deveria ser honrado pelo iniciador do serviço bind. No entanto, o Debian 8.x utiliza o systemd como gerenciador de serviços e, por algum motivo, ele não utiliza os arquivos em /etc/default. Ainda não sei se este comportamento é normal ou é um bug, de qualquer forma, me fez perder bastante tempo na busca por uma solução.

Consegui resolver o problema da seguinte forma:

Primeiro, copiei o arquivo de configuração do serviço bind para o diretório de configuração do systemd:

cp /lib/systemd/system/bind9.service /etc/systemd/system/

Depois, editei o arquivo /systemd/system/bind9.service e alterei o parâmetro ExecStart adicionando a opção -4, conforme a seguir:

ExecStart=/usr/sbin/named -f -u bind -4

Depois, solicitei ao systemd que recarregasse sua configuração e reinicie o bind:

systemctl daemon-reload
systemctl restart bind9.service

Depois disso, o Bind resolveu desistir de tentar resolver registros AAAA.

Ainda não sei se haverá algum efeito colateral quando ocorrer alguma atualização do Bind nas atualizações do sistema. Mas, na teoria, não devem ocorrer, porque os arquivos em /etc contém justamente as configurações que poder ser personalizadas pelo usuário (administardor, na verdade) e o gerenciador de pacotes APT normalmente não altera estes arquivos com novas versões sem a autorização do usuário.

Por enquanto, é isso.

]]>
Sun, 28 Aug 2016 00:00:00 -0300
http://www.mariolb.com.br/blog/2016/08/25/windows_server_2012r2_e_a_porta_80.html http://www.mariolb.com.br/blog/2016/08/25/windows_server_2012r2_e_a_porta_80.html <![CDATA[Windows Server 2012R2 e a porta 80]]> Windows Server 2012R2 e a porta 80

Recentemente me deparei com uma instalação do Windows Server 2012 R2 na qual um colega de trabalho estava tendo dificuldades. A dificuldade foi a seguinte: ele instalou o Apache, mas não conseguia fazê-lo executar o serviço.

Observando o sistema, vi a porta 80 ativa, mesmo com o Apache não estando em execução. A primeira coisa que me veio à mente foi que o IIS poderia estar instalado e em execução, mas não: ele nem estava instalado.

Depois de algumas pesquisas, já que não sou expert em Windows, acabei descobrindo que o Windows habilita um serviço na porta 80.

Para poder utilizar o Apache (ou outro servidor web), é necessário desabilitar o serviço interno do Windows na posta 80, que pode ser feito da seguinte forma:

net stop http
sc config http start= disabled

Muita atenção ao formato do comando.

Sds.

]]>
Thu, 25 Aug 2016 00:00:00 -0300
http://www.mariolb.com.br/blog/2016/05/24/python3_5_1_e_pyside2_no_debian_jessie.html http://www.mariolb.com.br/blog/2016/05/24/python3_5_1_e_pyside2_no_debian_jessie.html <![CDATA[Python3.5.1 e PySide2 no Debian Jessie]]> Python3.5.1 e PySide2 no Debian Jessie

Pessoal, atualizei meu artigo sobre a instalação do Python3 no Debian Jessie. Desta vez, cobri a instalação do Python-3.5.1 e PySide2, que agora suporta Python3.5.x e utiliza a biblioteca Qt5 (contra Qt4 da versão anterior).

O artigo está no meu site de dicas de Python: PythonDocs.

Se preferir acessar diretamente o artigo: Python3: Instalação no Debian 8.x (Jessie).

]]>
Tue, 24 May 2016 00:00:00 -0300
http://www.mariolb.com.br/blog/2016/04/22/ddos_praticas_de_mitigacao.html http://www.mariolb.com.br/blog/2016/04/22/ddos_praticas_de_mitigacao.html <![CDATA[DDOS: Práticas de Mitigação]]> DDOS: Práticas de Mitigação

O CERT.BR publicou um excelente artigo com recomendações para a mitigação de ataques de negação de serviço distribuído (DDoS): Recomendações para Melhorar o Cenário de Ataques Distribuídos de Negação de Serviço (DDoS).

Para saber o básico sobre ataques DDoS, dê uma olhada no excelente artigo publicado pelo Team Cymru: DDoS Basics.

]]>
Fri, 22 Apr 2016 00:00:00 -0300
http://www.mariolb.com.br/blog/2016/03/07/erro_na_atualização_da_lista_de_pacotes_do_apt_i386_no_amd64.html http://www.mariolb.com.br/blog/2016/03/07/erro_na_atualização_da_lista_de_pacotes_do_apt_i386_no_amd64.html <![CDATA[Erro na atualização da lista de pacotes do APT (i386 no amd64)]]> Erro na atualização da lista de pacotes do APT (i386 no amd64)

O Google anunciou já há algum tempo que não suportaria mais a versão 32-bit do seu navegador Google Chrome para Linux, mantendo apenas a versão 64-bit.

Bem, se você ainda usa a versão 32-bit do sistema operacional linux, sugiro que repense sua situação e avalie a possibilidade de instalar uma versão 64-bit.

De qualquer forma, mesmo para aqueles que já utilizam a versão 64-bit do sistema operacional do pinguim, a finalização do suporte à versão 32-bit do Chrome (e de outras aplicações) pode acabar gerando um erro na atualização do sistema. O erro é o seguinte (para o caso do Google Chrome):

sudo aptitude update
[sudo] password for mario:

Get: 1 http://ftp.br.debian.org jessie-updates InRelease [142 kB]
Get: 2 http://ftp.br.debian.org jessie-backports InRelease [166 kB]
...
W: Failed to fetch http://dl.google.com/linux/chrome/deb/dists/stable/Release:
Unable to find expected entry 'main/binary-i386/Packages' in Release file
(Wrong sources.list entry or malformed file)
E: Some index files failed to download. They have been ignored, or
old ones used instead.
E: Couldn't rebuild package cache

Este problema ocorrerá se o Linux estiver configurado para suportar aplicações 32-bit também:

sudo dpkg --print-architecture
amd64

mario@vctntb021 ~$ sudo dpkg --print-foreign-architectures
i386

Observe que, apesar da arquitetura principal do sistema ser amd64, também foi adicionado o suporte à arquitetura i386 (32-bit). Normalmente este suporte tem que ser feito manualmente, e se faz necessário quando deseja-se executar aplicações 32-bit no sistema operacional 64-bit.

Para resolver, basta fixar a arquitetura no arquivo de configuração do APT. Por exemplo, no caso do Chrome, editei o arquivo /etc/apt/sources.list.d/google-chrome.list e adicionar o parâmetro [arch=amd64], conforme ilustrado a seguir:

deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main

Na próxima atualização da lista de pacotes, o sistema não solicitará apenas a lista de pacotes 64-bit do Google Chrome.

Sds,

Marião

]]>
Mon, 07 Mar 2016 00:00:00 -0300
http://www.mariolb.com.br/blog/2016/02/26/como_usar_ferramentas_de_console_com_o_tor.html http://www.mariolb.com.br/blog/2016/02/26/como_usar_ferramentas_de_console_com_o_tor.html <![CDATA[Como usar ferramentas de console com o TOR]]> Como usar ferramentas de console com o TOR

Se você está lendo este artigo, então você já deve ter usado (ou ouvido falar) da rede TOR (The Onion Router).

A rede TOR é formada por um grupo de servidores operados por voluntários, cuja ideia é oferecer o anonimato de seus usuários durante o acesso à Internet.

Na rede TOR, as conexões dos usuários são realizadas através de uma série de túneis virtuais ao invés de efetuarem uma conexão direta de seu computador com o servidor final. Teoricamente, esta técnica permite aos usuários da rede TOR compartilhar informações através de uma rede pública (a Internet) de forma anônima.

Apesar de parecer ótima esta ideia (e é), ainda assim fique atento: apesar de usar criptografia internamente, a rede TOR não oferece privacidade fim-a-fim. Isto porque o tráfego só é cifrado entre os servidores da rede TOR. Funciona mais ou menos assim: seu navegador, por exemplo, envia uma solicitação de conexão para um site qualquer. Como ele está configurado para usar o proxy SOCKS, a solicitação de conexão é enviada para o proxy, que a encaminha para um dos servidores da rede TOR. Este servidor estabelece um túnel cifrado através de vários outros servidores da rede TOR, sendo que, no último servidor do túnel, os dados são decifrados e finalmente enviados para o destino final. Observe que, neste processo, o servidor final recebe os dados decifrados, isto é, da mesma forma como eles saíram do seu computador. Então, o uso da rede TOR não livra as pessoas do uso de protocolos que garantam a privacidade, como, por exemplo o HTTPS.

Mas então, para que serve a rede TOR? Bem, de uma forma simplificada, o objetivo da rede TOR é garantir o acesso anônimo na Internet, ou seja, o servidor de destino não saberá o endereço IP real do cliente. A privacidade dos dados só é garantida enquanto eles trafegam entre os servidores da rede TOR, pois são cifrados. No entanto, a rede TOR não tem como proteger seus dados até a entrega ao servidor de destino simplesmente porque o destino final não é um nó da rede TOR.

Além disso, o uso de comunicação P2P, como torents, não deve ser usada na rede TOR. Os nós de saída da rede TOR são configurados para bloquear o tráfego redes de compartilhamento de arquivos e, além disso, os protocolos P2P normalmente enviam o endereço IP do seu computador para o destino, acabando com o anonimato oferecido pela rede TOR.

Então, fica a dica: mesmo usando a rede TOR, nunca dispense o uso de protocolos seguros, como o HTTPS e VPNs, proteja seus dados com criptografia antes de enviá-los para o servidor de destino e jamais utilize protocolos P2P pensando que a rede TOR irá garantir o seu anonimato.

Lembre-se: a rede TOR não protege seus dados, apenas proporciona anonimato.

Deixando os detalhes técnicos para uma outra oportunidade, vamos ao que interessa.

Para os testes, utilizei a distribuição Linux Debian Jessie (8.3).

Para instalar o TOR:

sudo aptitude install tor

Depois de instalado, próprio instalador já inicia o serviço. Neste caso, o serviço TOR instalado funciona como um proxy SOCKS. Na configuração padrão, o serviço espera conexões na porta 9050/TCP. Cabe aqui uma dica: a rede TOR só opera com o protocolo TCP, ou seja, ela não funciona com o protocolo UDP.

Se seu objetivo é apenas navegar pela Internet, então basta configurar o proxy SOCKS no seu navegador, apontando para o servidor 127.0.0.1:9050.

Para o propósito deste artigo, no entanto, o objetivo é utilizar a rede TOR em aplicativos de linha de comando, independente de terem ou não suporte ao proxy SOCKS.

Então, entram em cena as ferramentas torify e o torsocks, que fazem parte do pacote TOR. O uso delas é extremamente simples: basta executar uma dela passando na linha de comando o comando que você deseja executar através da rede TOR.

Para testar o acesso à Internet vamos fazer o seguinte: vamos obter o IP de acesso à Internet usando a ferramenta cURL em duas etapas: com e sem o uso da rede TOR.

Existe um site chamado ifconfig.me que retorna o endereço IP de acesso internet, o que torna a verificação do endereço de acesso muito simples.

Como primeiro teste, vamos obter o endereço IP sem o uso da TOR:

curl ifconfig.me
201.0.164.131

Agora, vamos repetir o teste usando a ferramenta torify:

torify curl ifconfig.me
193.90.12.90

Da mesma forma, podemos usar o torsocks:

torsocks curl ifconfig.me
193.90.12.90

O torify parece ser igual ao torsocks, no entanto, há várias diferenças. Ambos são o que costumamos chamar wrappers, que são uma espécia de encapsuladores de comandos. No entanto, o torsocks é mais completo e permite o uso de alguns parâmetros específicos. No final das contas, quando o torify é executado, ele executa o torsocks.

Para entender melhor como estas ferramentas funcionam, consulte aa páginas de manual:

man torify
man torsocks

Lembre-se apenas do seguinte: o acesso à Internet via rede TOR é mais lento, pois além da criptografia utilizada, a comunicação segue através de vários túneis virtuais e pode viajar o mundo antes de chegar ao seu destino (a maioria dos servidores da rede TOR parece estar na Europa). Além disso, o tráfego na rede TOR tem aumentado consideravelmente e, com isso, o tempo de resposta tende naturalmente a aumentar.

Um detalhe interessante: a rede TOR cuida de alterar o caminho de acesso à Internet a cada 10 minutos automaticamente. Resta saber se um download demorado será prejudicado.

Por hoje é só.

]]>
Fri, 26 Feb 2016 00:00:00 -0300
http://www.mariolb.com.br/blog/2016/02/05/visualizando_ideogramas_emoji_no_debian.html http://www.mariolb.com.br/blog/2016/02/05/visualizando_ideogramas_emoji_no_debian.html <![CDATA[Visualizando ideogramas emoji no Debian]]> Visualizando ideogramas emoji no Debian

Recentemente percebi que meus navegadores Firefox e Google Chrome em Linux não mostravam os ideogramas (smileys) Emoji presentes no site http://br-linux.org. Fui pesquisar um pouco e descobri uma forma de solucionar este problema: basta instalar o pacote de fontes ttf-ancient-fonts, depois reiniciar os navegadores e voi-lá:

sudo aptitude install ttf-ancient-fonts

Em outras distribuições, pode ser necessário instalar outros pacotes, possivelmente relacionado à fonte Symbola. Por exemplo, no openSuse, instale o pacote gdouros-symbola-fonts.

Sds,

Marião

]]>
Fri, 05 Feb 2016 00:00:00 -0200
http://www.mariolb.com.br/blog/2016/02/03/gnome_adicionar_templates_de_documentos_no_nautilus.html http://www.mariolb.com.br/blog/2016/02/03/gnome_adicionar_templates_de_documentos_no_nautilus.html <![CDATA[Gnome: adicionar templates de documentos no Nautilus]]> Gnome: adicionar templates de documentos no Nautilus

Dica rápida: no Nautilus (Gnome), quando cicamos com o botão direito numa área vazia da tela, nos é apresentado um menu suspenso com várias opções de ação. Uma destas opções é a de criação de um novo documento, como, por exemplo, um docuemnto em formato texto.

Pois bem, é possível criar templates de documentos que apareçam neste menu suspenso e, o melhor, quando selecionarmos o tipo de documento desejado, o Nautilus irá criar o arquivo basseado no template que definido. Para uq isto seja possível, crie no seu diretório home (/home/usuario), o diretório Templates (observe que a primeira letra tem que ser maiúscula). Depois disso, crie seus templates de documento. No nome do arquivo criado no diretório Templates aparecerá no menu suspenso, no item Novo documento, sem a extensão.

Por exemplo, eu criei dois templates: um para documentos em formato texto, e outro para documentos no formato RestructuredText. Veja o exemplo:

cd Templates
ls -l
total 4
-rw-r--r-- 1 mario mario 276 Sep  8 09:36 ReStructuredText.rst
-rw-r--r-- 1 mario mario   0 Sep  8 08:51 TextDocument.txt

Observe que o arquivo TextDocument.txt é um arquivo vazio. Pois é isto mesmo que eu quero: quando eu selecionar a opção Novo Documento/TextDocument no Nautilus, eu quero que ele crie um arquivo vazio.

Por outro lado, quando eu selecionar a opnção Novo Documento/ReStructuredText do menu, quero que o Nautilus crie um arquivo com a extensão rst com o mesmo conteúdo do arquivo ReStructuredText.rst contido no diretório Templates. Como exemplo, veja o conteúdo do arquivo ReStructuredText.rst que eu criei no diretório Templates:

=====
TITLE
=====

:Autor: Mario Luiz Bernardinelli <mariolb@gmail.com>
:Versão: 0.1

.. contents::
    Conteúdo

.. section-numbering::


.. footer::

    .. class:: header-table

        +----------+-------------------+-----------------+
        |          | .. class:: center |.. class:: right |
        |          |                   |                 |
        | XXXXX    | XXXXXXXX          | ###Page###      |
        +----------+-------------------+-----------------+


Chapter Level 1
===============

Chapter Level 2
---------------

Chapter Level 3
~~~~~~~~~~~~~~~

Chapter Level 4
^^^^^^^^^^^^^^^
]]>
Wed, 03 Feb 2016 00:00:00 -0200
http://www.mariolb.com.br/blog/2016/02/03/gnome3_adicionar_script_no_login.html http://www.mariolb.com.br/blog/2016/02/03/gnome3_adicionar_script_no_login.html <![CDATA[Gnome3: adicionar script no login]]> Gnome3: adicionar script no login

Quando precisamos adicionar um programa na inicialização do ambiente do usuário no Gnome3, é bem simples adicioná-lo usando um aplicativo de controle, como o Gnome Tweak. O problema fica mais chato quando queremos adicionar, por exemplo, um script particular, que não foi instalado no sistema seguindo os mecanismos padrões de instalação, isto é, você criou um programa ou script e simplesmente quer que ele seja iniciado sempre que você fizer o login no sistema.

Bem, para estes caso, o Gnome Tweak não serve (ainda), porque ele só oferece a opção de adicionar uma aplicação padrão do sistema (ou, ao menos, que tenha sido instalada e que apareça no menu de aplicações do sistema).

Mas, sempre há uma forma, ainda mais quando falamos de Linux.

Uma forma relativamente simples é criar diretamente o arquivo de atalho da aplicação no diretório:

${HOME}/.config/autostart

Por exemplo, vamos supor que escrevemos uma aplicação, que vamos chamar logonscript.sh, que está localizada em /home/usuario/bin/logonscript.sh». Vamos supor também que o usuário deseje que esta aplicação seja executada sempre que ele fizer o *logon no Gnome (isto não funcionará se o acesso for remoto ou diretamente no console do sistema).

Seguindo o cenário, o usuário deve criar o arquivo /home/usuario/.config/autostart/logonscript.desktop:

cd
cd .config/autostart
vim logonscript.desktop

Neste arquivo, adicione a seção [Desktop Entry] e adicione os seguintes parâmetros:

[Desktop Entry]
Name=LogonScript
GenericName=Mount all rmote volumes
Comment=Simple mount
Exec=/home/usuario/bin/logonscript.sh
Terminal=false
Type=Application
X-GNOME-Autostart-enabled=true

Obviamente, substitua a palavra «usuário» pelo nome da conta do usuário em questão, e faça os ajustes nos parâmetros conforme suas necessidades.

Pronto, no próximo login no Gnome3 o programa será executado.

Além disso, ele também será mostrado no painel do utilitário Gnome Tweak.

Nem é tão trabalhoso assim e, o melhor, permite que seja entendido como as coisas funcionam no Gnome.

Até mais,

Marião

]]>
Wed, 03 Feb 2016 00:00:00 -0200
http://www.mariolb.com.br/blog/2016/01/18/ftp_vs_ftps_vs_sftp.html http://www.mariolb.com.br/blog/2016/01/18/ftp_vs_ftps_vs_sftp.html <![CDATA[FTP vs FTPS vs SFTP]]> FTP vs FTPS vs SFTP

FTP (Fie Transfer Protocol)

O FTP é um protocolo bastante antigo, com uns 40 anos de idade.

Comunicação

O protocolo FTP utiliza dois canais de comunicação independentes: um pada comandos e outro para dados.

Por padrão, o canal de comando utiliza a porta 21/TCP no servidor e é responsável pelo recebimento da conexão dos clientes e o tratamento dos comandos recebidos do mesmos. Como exemplo, os comandos USER e PASS são utilizados para autenticação do usuário. O canal de comando permanece estabelecido até que o cliente envie o comando QUIT para desconectar, ou até que o servidor force a desconexão por qualquer outra razão.

O canal de dados utiliza portas temporárias alocadas sob demanda pelo servidor (modo passivo) ou no cliente (modo ativo). O canal de dados é responsável pela troca de dados na forma de listagens de diretórios e transferência de arquivos. Ao contrário do canal de comandos, que permanece aberto (conectado) durante toda a sessão so usuário, o canal de dados é fechado assim que a transferência de dados é finalizada.

Segurança

No FTP, ambos os canais de comunicação (comandos e dados) trafegam em texto em claro, isto é, não possuem nenhuma proteção. Quaisquer dados enviados por estes canais podem ser interceptados e interpretados. Técnicas simples de roubos de dados, tais como ataques do tipo MITM (man-in-the-middle) usando ARP poisoning (envenenamento de ARP) ou até mesmo um simples sniffer de rede podem ser utilizadas para a captura e interpretação dos dados trafegados entre o cliente e o servidor.

Firewall

No servidor, deve ser liberado o acesso para conexões à porta 21. No modo ativo, deve ser liberada uma faixa de portas para as conexões dos canais de dados (conexões realizadas do servidor para o cliente) e, no modo passivo, será necessário liberar o acesso à conexões entrantes (do cliente para o servidor) numa faixa específica de portas. Consulte a documentação do servidor para obter a faixa de portas utilizada no modo passivo.

No cliente, o firewall deve permitir conexões de saída para a porta 21 e para as portas definidas pelo servidor no modo passivo. Alguns firewalls possuem recursos de análise de conexão que avaliam as conexões e permitem a configuração das portas definidas na conexão FTP de uma forma bastante simples. No entanto, observe que este tratamento de conexões consome recursos do firewall, motivo pelo qual não gosto muito do FTP (além da falta de segurança do protocolo).

FTPS (File Transfer Protocol over SSL)

Quando o FTP foi desenvolvido, a segurança não era uma preocupação. Desde então, muita coisa mudou e o envio de dados pela Internet sem nenhum tipo de proteção é considerado um risco enorme e proibitivo em muitos casos. Normas reguladoras como, por exemplo, o PCI_DSS e o HIPAA contém requisitos que exigem a proteção criptográfica dos dados em trânsito.

Para contornar esta fraqueza do protocolo FTP, foi criado um mecanismo de protação so FTP através da criptografia dos dados usando SSL (Security Socket Layer), conforme descrito na RFC2228.

Comunicação

No FTPS a troca de dados ocorre da mesma forma que no FTP original.

Segurança

Há dois modos de operação do FTPS: com SSL implícito e com SSL explícito.

FTPS com SSL implícito

No modo SSL implícito, a sessão SSL é estabelecida entre o cliente e o servidor antes de qualquer troca de dados. Como o nome sugere, o SSL é implícito e qualquer tentativa de conexão realizada pelo cliente sem usar SSL é rejeitada pelo servidor. Os serviços FTPS com SSL implícito geralmente são executados na porta 990. Apesar de ainda ser utilizado, o FTPS com SSL implícito é considerado por muitos como sendo obsoleto em favor do FTPS com SSL explícito.

FTPS com SSL explícito

No modo SSL explícito, o cliente e o servidor negociam o nível de proteção a ser utilizado. Isto é útil por permitir que o servidor suporte sessões criptografadas ou não numa mesma porta.

Numa sessão com SSL explícito, o cliente estabalece uma conexão não criptografada com o serviço FTP e, antes de enviar as credenciais de uauário (autenticação), o cliente solicita ao servidor que comute o canal de comando para um canal cifrado com SSL através do envio do comando AUTH SSL ou AUTH TLS. Uma vez que o canal cifrado tenha sido estabelecido, o cliente envia as credenciais de usuário para o servidor.

De maneira similar ao mecanismo de proteção do canal de comandos, o canal de dados pode ser protegido através da negociação entre o cliente e o servidor através do comando PROT.

Firewall

No servidor, devem ser permitidas conexões entrantes (para o servidor) nas portas 21 e/ou 990, permitir conexões de saída na faixa de portas configuradas no servidor para o modo ativo, e permitir conexões de entrada para a faixa de portas configuradas no servidor para o modo ativo.

No cliente, devem ser permitidas conexões de saída para a porta 21 dos servidores e a faixa de portas definidas pelo servidor.

SFTP (Secure File Transfer Protocol)

SFTP é, muitas vezes, confundido com o FTPS e vice-versa mas, na verdade, excetuando-se o fato de que estes protocolos permitem a transferência segura de arquivos, eles não têm nanhuma relação um com o outro.

O SFTP é baseado no protocolo SSH (Secure Shell) que, por sua vez, é mais conhecido pelo seu uso no acesso remoto seguro à contas de usuários em servidores remotos. Quem usa sistemas Unix e Linux já deve tê-lo usado.

Comunicação

Ao contrário do FTPS, o SFTP não utiliza canais exclusivos para comandos e dados. Tanto comandos como dados são transferidos em pacotes especialmente formatados através de uma única conexão.

Segurança

Todos os dados enviados entre cliente e servidor são cifrados usando uma cifra acordada no processo de conexão. As sessões SFTP também podem ser protegidas através do uso de chaves assimétricas (chaves públicas e privadas), que é conhecida como autenticação de chave pública. Este método pode ser usado como alternativa ou em conjunto com a autenticação tradicional de usuário e senha.

Firewall

No servidor, o firewall deve permitir conexões de entrada à porta 22/TCP.

No cliente, deve ser liberada a saída de conexões com destino à porta 22/TCP.

]]>
Mon, 18 Jan 2016 00:00:00 -0200
http://www.mariolb.com.br/blog/2016/01/02/morre_ian_murdock_o_criador_do_debian.html http://www.mariolb.com.br/blog/2016/01/02/morre_ian_murdock_o_criador_do_debian.html <![CDATA[Morre Ian Murdock, o criador do Debian]]> Morre Ian Murdock, o criador do Debian

Hoje fiquei sabendo que no dia 30/dezembro/2015 Ian Murdock faleceu.

Ian foi o criador do Debian em 1993. Além deste maravilhoso trabalho, Ian trabalhou na Sun Microsystems, na Linux Foundation e, por fim, atuava na Docker.

Foi uma perda lastimável para o mundo do software livre. Que Deus dê muita força à sua família.

A família informou que gostaria que as mensagens de condolências sejam registradas na nesta página.

]]>
Sat, 02 Jan 2016 00:00:00 -0200
http://www.mariolb.com.br/blog/2016/01/01/dicas_sobre_linux.html http://www.mariolb.com.br/blog/2016/01/01/dicas_sobre_linux.html <![CDATA[Dicas sobre Linux]]> Dicas sobre Linux

Coloquei no ar um espaço onde pretendo adicionar minhas anotações sobre Linux. Resolvi publicá-las por alguns motivos:

  1. Permitir que eu possa acessar as anotações sempre que eu precisar;
  2. Compartilhar conhecimento. Apesar de serem anotações simples na maioria dos casos, acredito que ainda assim elas possam ser interessantes para alguma outra pessoa;
  3. Agrupar o conhecimento por tema.

Pretendo atualizar as dicas sempre que possível. Inclusive, algumas dicas que estão disponíveis aqui neste blog devem ser migradas para os sites de documentação (em breve, pretendo produzir dicas sobre outros temas, como segurança e Python).

Se você quiser verificar se há algo de útil para você, dê uma olhada na minha página LinuxDocs.

]]>
Fri, 01 Jan 2016 00:00:00 -0200
http://www.mariolb.com.br/blog/2016/01/01/feliz_2016.html http://www.mariolb.com.br/blog/2016/01/01/feliz_2016.html <![CDATA[Feliz 2016]]> Feliz 2016

Mais um ano que se inicia. Mais uma esperança que se renova.

Esperemos que este ano seja marcado pela organização do nosso país, que os corruptos sejam punidos, que todo o dinheiro roubado seja devolvido.

Como notícia boa (eu acho), estou tentando rever esta porcaria de site. Montei um novo modelo, não porque o antigo não funcionava, não é isso. É que possuo muita documentação sobre o que faço e estudo, mas sinto falta de uma forma de organizar isso tudo, mantendo o os assuntos juntos.

Desta vez, estou pensando em ter pequenos sites, um para o blog (este), outro para os documentos sobre Linux, outro para Python, Segurança etc. Com isso, se um dia eu voltar a lecionar, terei um bom material agrupado por assunto.

Para tanto, migrei os antigos artigos e postagens para este novo modelo. Confesso que este modelo é menos poderoso que o anterior, não usa banco de dados e nem é dinâmico (pois é, o site é todo estático, mas como o volume de postagens é muito pequeno, talvez esta solução atenda, além de tornar fácil a migração para outro servidor - já que a crise chegou para ficar e a grana está no fim!).

Minha ideia é que, sempre que eu criar um novo artigo nos sites de documentação, adicionar o link aqui.

Estou usando algumas ferramentas escritas em Python para Pythonistas, como o Tinkerer e o Sphinx. Vamos ver se funciona. Para mim, a principal vantagem é poder escrever tudo no formato RST (ReStructured Text), que facilia a geração de formatos diversos, como HTML, EPUB e PDF.

Uma outra vantagem é que posso manter todos os sites em projetos separados num repositório Git.

Para ser sincero, não sei se isso vai funcionar. Vamos testar.

Feliz 2016 a todos.

Marião

]]>
Fri, 01 Jan 2016 00:00:00 -0200
http://www.mariolb.com.br/blog/2015/11/20/gnome_shell_desabilitar_janela_maximizada_na_inicializacao_da_aplicacao.html http://www.mariolb.com.br/blog/2015/11/20/gnome_shell_desabilitar_janela_maximizada_na_inicializacao_da_aplicacao.html <![CDATA[Gnome Shell: desabilitar janela maximizada na inicialização da aplicação]]> Gnome Shell: desabilitar janela maximizada na inicialização da aplicação

20/11/2015 -

O Gnome Shell, ao menos no Debian Jessie (8.x), vem configurado por padrão a execução de aplicações em janela maximizada. Se você, como eu, não gosta deste comportamento, faça o seguinte:

Abra o DConf e ajuste a seguinte chave para False:

org.gnome.mutter.auto.maximize

Na linha de comando também é possível alterar o parâmetro usando o gsettings:

gsettings set org.gnome.mutter auto-maximize false

Fui

]]>
Fri, 20 Nov 2015 00:00:00 -0200
http://www.mariolb.com.br/blog/2015/07/27/gravacao_do_desktop_no_gnome_shell.html http://www.mariolb.com.br/blog/2015/07/27/gravacao_do_desktop_no_gnome_shell.html <![CDATA[Gravação do desktop no Gnome-Shell]]> Gravação do desktop no Gnome-Shell

27/07/2015 -

O Gnome-Shell possui o recurso de gravação do desktop integrado. Para utilizá-lo, basta digitar a seguinte sequência:

<CTRL><Shitf><Alt>R

Para finalizar a gravação, pressione novamente a mesma sequência de teclas.

O problema é que, por padrão, o tempo máximo de gravação é de 30 segundos. Mas é possível alterá-lo.

Para ver a configuração atual do tempo máximo de gravação, em segundos, digite o seguinte comando:

gsettings get org.gnome.settings-daemon.plugins.media-keys \
       max-screencast-length

Para alterar o valor, execute o comando a seguir, lembrando que o valor deve ser dado em segundos:

gsettings set org.gnome.settings-daemon.plugins.media-keys \
        max-screencast-length 1800

Este recurso, no entanto, não grava o aúdio.

Também é possível usar a extensão EasyScreenCast que inclui a gravação de áudio também.

]]>
Mon, 27 Jul 2015 00:00:00 -0300
http://www.mariolb.com.br/blog/2015/01/02/tcc_thin_client_com_ltsp.html http://www.mariolb.com.br/blog/2015/01/02/tcc_thin_client_com_ltsp.html <![CDATA[TCC: Thin Client com LTSP]]> TCC: Thin Client com LTSP

Segue mais um Trabalho de Conclusão de Curso (TCC), cujo título é um pouco extenso: Thin Client com LTSP - Linux Terminal Server Project: Uma Solução Alternativa Para Pequenas e Médias Empresas.

Não conheço pessoalmente o autor deste artigo mas, a pedido do meu grande amigo Eduardo Martins Pereira, acabei dando algumas dicas para o Wellington durante a elaboração do trabalho.

Veja o resumo do artigo e, se interessar, o download está disponível logo após o resumo, com a devida autorização do autor.

«Um dos grandes desafios das empresas atualmente é a redução de custos sem a perda de qualidade no produto ou serviço. Este desafio é ainda maior para a área de tecnologia da informação, pois os constantes avanços nos programas de computador, impulsionados pela demanda por novos recursos, acabam por exigir investimentos em novos equipamentos de hardware. Este cenário gera dois grandes problemas para os gestores: como manter os custos em níveis aceitáveis e o que fazer com os equipamentos que serão substituídos simplesmente porque não atendem à nova demanda de recursos. Este artigo apresenta uma solução alternativa e racional para este desafio principalmente para empresas de pequeno e médio porte. Esta solução é o uso de clientes leves e tecnologias de código aberto (gratuitas). As tecnologias de código aberto, como o LTSP (Linux Terminal Server Project), permitem a continuidade no uso de computadores já ultrapassados: enquanto que o uso de clientes leves reduz os custos com manutenção do parque computacional, já que são equipamentos de baixo custo e de alta durabilidade.»

Se interessar, leia na íntegra AQUI.

]]>
Fri, 02 Jan 2015 00:00:00 -0200
http://www.mariolb.com.br/blog/2015/01/02/feliz_2015.html http://www.mariolb.com.br/blog/2015/01/02/feliz_2015.html <![CDATA[Feliz 2015]]> Feliz 2015

Finalmente consegui reativar o site.

Pelo que sofri desde o dia 16/12/2014 até hoje, 02/01/2015, as alterações foram poucas e simples: foi alterado o acesso via SSH. Trocaram o nome do servidor de acesso via SSH, mas esqueceram de me avisar. Enfim, o cliente sempre em primeiro lugar…

Leia mais...

]]>
Fri, 02 Jan 2015 00:00:00 -0200
http://www.mariolb.com.br/blog/2014/12/10/enviar_e_mail_via_linha_de_comando.html http://www.mariolb.com.br/blog/2014/12/10/enviar_e_mail_via_linha_de_comando.html <![CDATA[Enviar e-mail via linha de comando]]> Enviar e-mail via linha de comando

Esta é uma dica super rápida. Eis o cenário: você precisa enviar e-mails à partir da linha de comando (ou de algum script), mas não tem um servidor de e-mail configurado na máquina, porém, seu computador tem acesso a um servidor de e-mails (SMTP) e você tem uma conta de acesso para este tipo de uso.

Leia mais...

]]>
Wed, 10 Dec 2014 00:00:00 -0200
http://www.mariolb.com.br/blog/2014/09/25/shellshock_vulnerabilidade_no_bash.html http://www.mariolb.com.br/blog/2014/09/25/shellshock_vulnerabilidade_no_bash.html <![CDATA[shellshock: vulnerabilidade no Bash]]> shellshock: vulnerabilidade no Bash

Uma falha crítica foi encontrada no gerenciado de linha de comando Bash utilizado em muitos sistemas operacionais Linux, Unix e IOS, conforme descrtito pelo CVE-2014-6271. Este bug afeta todas as versões do Bash até a 4.3.

Leia mais...

]]>
Thu, 25 Sep 2014 00:00:00 -0300
http://www.mariolb.com.br/blog/2014/09/07/pendrive_no_debian_jessie.html http://www.mariolb.com.br/blog/2014/09/07/pendrive_no_debian_jessie.html <![CDATA[Pendrive no Debian Jessie]]> Pendrive no Debian Jessie

Estou utilizando o Debian Jessie (8.0) já há algum tempo. Hoje deparei-me com um pequeno problema: quando eu conectei um pendrive no computador, ele foi montado automaticamente, mas com permissões de administrador (root), ou seja, eu, como usuário normal do sistema, só conseguia ler os dados do dispositivo, mas não alterá-los e nem apagá-los.

Depois de algum tempo de pesquisa, descobri que o dispositivo USB estava presente o fstba da seguinte forma:

/dev/sdb1  /media/usb0  auto  rw,user,noauto  0  0

A solução para o problema da montagem do pendrive foi muito simples: comentei esta linha do fstab e o dispositivo passou a ser montado automaticamente pelo ambiente gráfico com as permissões do usuário ativo no momento.

Fui.

]]>
Sun, 07 Sep 2014 00:00:00 -0300
http://www.mariolb.com.br/blog/2014/09/03/telemetria_conceito_basico.html http://www.mariolb.com.br/blog/2014/09/03/telemetria_conceito_basico.html <![CDATA[Telemetria: conceito básico]]> Telemetria: conceito básico

Telemetria é um processo (ou tecnologia) de comunicação que permite a realização de medições e coleta de dados em locais remotos e/ou inacessíveis e a sua transmissão para um equipamento ou ponto de monitoração. A palavra telemetria vem do grego tele=remoto e metron=medir.

Pode-se dizer então que a telemetria é a coleta de dados remotos e a sua transmissão para um local específico. Existe a contrapartida da telemetria, que é chamada telecomando. O telecomando é utilizado quando os sistemas e/ou equipamentos localizados em locais remotos e/ou inacessíveis necessitam de instruções e dados externos para poder operar. Telecomando pode ser definido como o processo de envio de dados e informações para locais remotos e/ou inacessíveis.

Normalmente os conceitos de telemetria e telecomando são associados às tecnologias de comunicação sem fio (wireless), tais como sistemas de rádio, ultrassom e infravermelho. No entanto, atualmente estes conceitos aplicam-se à quaisquer meios de comunicação como, por exemplo, redes de computadores e linhas de transmissão ópticas e cabeadas. Muitos sistemas de telemetria modernos tiram vantagem dos custos cada vez mais acessíveis e qualidades cada vez melhores das redes GSM para a troca de dados.

]]>
Wed, 03 Sep 2014 00:00:00 -0300
http://www.mariolb.com.br/blog/2014/07/24/aprendendo_a_programar.html http://www.mariolb.com.br/blog/2014/07/24/aprendendo_a_programar.html <![CDATA[Aprendendo a programar]]> Aprendendo a programar

Recentemente um amigo e ex-aluno do curso de redes disse-me que estava com problemas para construir alguns programas de computador. Como eu sempre procuro ajudar, acabei escrevendo um exemplo para ele, na tentativa de ajudá-lo. Como ele gostou, resolvi publicar.

Imagine que você tenha que analisar um log, separando um determinado evento e vocẽ precisa de todas as datas e horas nas quais eles ocorreram. Parece simples, mas é esta mesmo a ideia.

Leia mais...

]]>
Thu, 24 Jul 2014 00:00:00 -0300
http://www.mariolb.com.br/blog/2014/05/30/como_saber_quando_um_sistema_linux_foi_instalado.html http://www.mariolb.com.br/blog/2014/05/30/como_saber_quando_um_sistema_linux_foi_instalado.html <![CDATA[Como saber quando um sistema Linux foi instalado?]]> Como saber quando um sistema Linux foi instalado?

Bem, esta não é uma resposta fácil, pois o sistema pode ter sofrido inúmeras alterações.

Supondo que se tenha certeza de que o disco rígido nunca tenha sido clonado e posteriormente restaurado em outro disco rígido e que o sistema utilize a partição raiz (/) com sistema de arquivos ext2, ext3 ou ext4, então pode-se ter uma ideia da «idade» do sistema verificando a data de criação do sistema de arquivos raiz, já que ele é criado durante a instalação do sistema. Novamente, certifique-se de que o disco rígido nunca tenha sido trocado e nem que o sistema tenha sido fruto da restauração de uma imagem de outro HD.

Se você confiar nestas informações, então o seguinte comando retorna a data de criação do sistema de arquivos raiz do sistema operacional (/) (execute o comando como administrador do sistema):

dumpe2fs $(mount | grep "on \/ ") | grep -i "Filesystem created"
]]>
Fri, 30 May 2014 00:00:00 -0300
http://www.mariolb.com.br/blog/2014/02/18/tcc_infraestrutura_com_samba4.html http://www.mariolb.com.br/blog/2014/02/18/tcc_infraestrutura_com_samba4.html <![CDATA[TCC: Infraestrutura com Samba4]]> TCC: Infraestrutura com Samba4

18/02/2014 -

Finalmente, depois de um longo tempo sem publicar nada, segue mais um TCC, relacionado ao software Samba4, gentilmente cedido para publicação pelos autores Marcel Henrique Gomes dos Santos e Rodrigo Lourenço de Araújo.

Tive a honra de ter alguma participação na elaboração deste trabalho, já que fui orientador. Acho importante dizer que este trabalho é bastante técnico, podendo ser utilizado como um guia de instalação, o que muitos poderiam criticar, já que um TCC deve ter um foco mais acadêmico e não tanto como manual. Mas o objetivo deste trabalho foi oferecer para a comunidade uma documentação concisa de como instalar o Samba4 na função de Windows Active Directory, sem deixar de lado o embasamento teórico básico relacionado.

Veja o resumo do trabalho:

«O Active Directory é um serviço de diretório desenvolvido pela Microsoft, que permite um gerenciamento de forma centralizada dos recursos e serviços na rede. O Samba é um servidor de arquivos que permite compartilhar recursos entre sistemas Linux, Windows e outros. Surgiu a partir de uma necessidade, onde o seu criador Andrew Tridgell, desenvolveu uma aplicação, que necessitava de suporte ao protocolo NetBIOS. O Samba em sua primeira versão permitiu que o computador de Andrew, com sistema operacional DOS, pudesse encontrar em sua rede a máquina UNIX como um servidor de arquivos. Desta forma, ele não utilizaria mais o protocolo NFS. A utilização do Active Directory da Microsoft, só é possível mediante ao pagamento de licenças. O Samba 4 permite sua utilização como Active Directory, e por ser um software livre, não tem custo adicional de licenças, ou seja, gratuito. Objetivo deste trabalho é explorar os protocolos envolvidos na implantação do Active Directory, tal como LDAP, Kerberos, DNS, SMB/CIFS e a implementação do Samba 4, bem como apresentar um cenário prático de aplicação do Samba 4 operando como Active Directory numa rede contendo clientes Microsoft Windows XP, Microsoft Windows 7 e Linux.»

Leia na íntegra AQUI.

]]>
Tue, 18 Feb 2014 00:00:00 -0300
http://www.mariolb.com.br/blog/2013/02/13/tcc_virtualizacao_alta_disponibilidade_performance_e_reducao_de_custos.html http://www.mariolb.com.br/blog/2013/02/13/tcc_virtualizacao_alta_disponibilidade_performance_e_reducao_de_custos.html <![CDATA[TCC: Virtualização: alta disponibilidade, performance e redução de custos]]> TCC: Virtualização: alta disponibilidade, performance e redução de custos

«A informatização, a automação dos processos e atividades nas corporações e na sociedade vem fazendo com que o número de dados a serem armazenados e de computadores capazes de servir aumente gradativamente, juntamente com isso algumas barreiras e obstáculos surgem. Os Data Centers começam a exigir espaços maiores e a infraestrutura para suportar tal crescimento começa a ficar demasiadamente cara, adicionando-se o fato de que aquisição de hardware, consumo de energia para manter o resfriamento do ambiente e os equipamentos ativos e, consequentemente, a manutenção dos equipamentos, tem onerado os gastos com tecnologia da informação (T.I.). A virtualização ganha força como uma tecnologia que devido à evolução do hardware dos computadores, principalmente os computadores de pequeno e médio porte, e dos softwares que possibilitam a tecnologia de máquinas virtuais, como uma solução para a redução de custos e otimização dos recursos, mas sem deixar de lado a alta disponibilidade, desempenho e capacidade de expansão dos negócios. Um estudo de caso pôde demonstrar a configuração e a redução na quantidade de equipamentos empregados para suportar a rede com a virtualização.» (TOSADORE, 2012)

Este é o resumo do melhor trabalho de conclusão de curso Superior de Tecnologia em Redes de Computadores das Faculdades Integradas Politec de 2012. O Rafael de Almeida Tosadore, autor do trabalho, honrou-me com uma autorização para disponibilizá-lo aqui no meu singelo site. Leitura altamente recomendada.

Gostou? Leia na íntegra AQUI.

]]>
Wed, 13 Feb 2013 00:00:00 -0200
http://www.mariolb.com.br/blog/2013/02/13/tcc_clusters_de_alta_disponibilidade_em_linux.html http://www.mariolb.com.br/blog/2013/02/13/tcc_clusters_de_alta_disponibilidade_em_linux.html <![CDATA[TCC: Clusters de Alta Disponibilidade em Linux]]> TCC: Clusters de Alta Disponibilidade em Linux

«Cluster é um conjunto de computadores interconectados entre si que trabalham de maneira conjunta para realizar grandes processamentos. Tem como finalidade melhorar o desempenho de aplicações e criar redundância, formando um ambiente de alta disponibilidade. Disponibilidade é a probabilidade de se encontrar recursos e/ou aplicações em perfeito estado e condições de uso; Alta Disponibilidade é a capacidade de um sistema de ficar ininterrupto. Esses tipos de clusters são usados em aplicações de missão crítica, pois são eficientes na proteção e detecção de falhas. Este trabalho tem por objetivo demonstrar a construção de um cluster de alta disponibilidade em Linux utilizando-se de ferramentas de código aberto, dentre as quais se destacam o Distributed Replicated Block Device (DRBD), Heartbeat e Mon. Será demonstrado um estudo de caso no qual serão realizadas a instalação e configuração destas ferramentas em sistemas Debian. A solução será baseada em: replicação de discos, monitoramento dos servidores e alta disponibilidade em um servidor de arquivos Samba, bem como os resultados obtidos.» (SÁ, Diego; NEVES, Vinícius H., 2012).

Este é o resumo de mais um trabalho de excelente qualidade técnica e dos melhores trabalhos de conclusão de curso Superior de Tecnologia em Redes de Computadores das Faculdades Integradas Politec de 2012, publicado aqui com a devida autorização dos autores Diego de Sá e Vinícius Hiuri Neves.

Leia na íntegra AQUI.

]]>
Wed, 13 Feb 2013 00:00:00 -0200
http://www.mariolb.com.br/blog/2013/02/13/tcc_automacao_residencial.html http://www.mariolb.com.br/blog/2013/02/13/tcc_automacao_residencial.html <![CDATA[TCC: Automação Residencial]]> TCC: Automação Residencial

«Esse trabalho apresenta conceitos de automação residencial, como ela deve ser projetada e o que podemos controlar neste ambiente. Uma das aplicações mais utilizadas, a rede Zigbee, será abordada de forma plena com todos os seus tópicos. O trabalho como um todo visa mostrar como a automação residencial pode ser projetada e construída de forma simples obedecendo aos conceitos de redes e segurança para o usuário. Sabemos que automação residencial já é realidade em países desenvolvidos e o profissional de redes deverá dominar e interagir com esse meio tanto para uso em residência quanto na indústria.» (ROVERI, 2012).

Este é o resumo de um dos melhores trabalhos de conclusão de curso Superior de Tecnologia em Redes de Computadores das Faculdades Integradas Politec de 2012, publicado aqui com a devida autorização do Michael Rubens Roveri, autor do mesmo.

Leia na íntegra AQUI.

]]>
Wed, 13 Feb 2013 00:00:00 -0200
http://www.mariolb.com.br/blog/2012/04/27/determinando_a_equacao_da_reta_usando_python.html http://www.mariolb.com.br/blog/2012/04/27/determinando_a_equacao_da_reta_usando_python.html <![CDATA[Determinando a equação da reta usando Python]]> Determinando a equação da reta usando Python

Da série «Resolvendo problemas simples», apresento aqui um artigo com uma forma de utilizar números fracionários em Python. A ideia é bem simples: construir um programa capaz de determinar a equação da reta a partir das coordenadas de dois pontos quaisquer desta reta, permitindo o uso de números fracionários.

O programa é bastante simples, sem nenhum tratamento de exceções. O objetivo é mostrar um pouco do uso de números fracionários em Python usando uma estrutura de programa bem simples.

O artigo pode ser lido na íntegra AQUI.

]]>
Fri, 27 Apr 2012 00:00:00 -0300
http://www.mariolb.com.br/blog/2012/02/22/autenticacao_centralizada_com_openldap_com_exemplos_com_linux_e_samba.html http://www.mariolb.com.br/blog/2012/02/22/autenticacao_centralizada_com_openldap_com_exemplos_com_linux_e_samba.html <![CDATA[Autenticação centralizada com OpenLDAP com exemplos com Linux e Samba]]> Autenticação centralizada com OpenLDAP com exemplos com Linux e Samba

22/02/2012 -

A autenticação centralizada evita vários problemas enfrentados por usuários e administradores: memorização de várias contas (e senhas) e o gerenciamento de contas, respectivamente.

No GNU/Linux, é possível implementar a autenticação centralizada usando o OpenLDAP. Este documento foi escrito usando um ambiente com GNU/Linux e Samba (operando como PDC), ambos autenticando diretamente no serviço OpenLDAP.

Como o intuito é fornecer o caminho das pedras para uma configuração básica, questões como backup, replicação de dados e suporte ao SSL/TLS, todas suportadas pelo OpenLDAP, não são abordadas neste documento.

Leia o artigo na íntegra AQUI.

Espero que isto ajude alguém.

Marião

]]>
Wed, 22 Feb 2012 00:00:00 -0200
http://www.mariolb.com.br/blog/2012/08/16/compartilhar_dados_sigilosos.html http://www.mariolb.com.br/blog/2012/08/16/compartilhar_dados_sigilosos.html <![CDATA[Compartilhar dados sigilosos]]> Compartilhar dados sigilosos

Se você precisa compartilhar alguma informação sigilosa, então é melhor não utilizar e-mails, a não ser que ele seja cifrado e que o receptor possua a chave (senha) para decifrá-lo. Similarmente, também é possível enviar os dados via mensagem instantânea (Skype, MSN etc). Mas, além do risco de captura da mensagem, há um problema que considero ainda maior: não há como garantir que a mensagem será removida no destinatário e, mesmo que removida, ela ainda pode permanecer nos logs da comunicação (no caso de mensagens instantâneas).

O que fazer então? Bem, o site OneShar.es disponibilizou um serviço que promete resolver este problema.

Leia mais...

]]>
Thu, 16 Aug 2012 00:00:00 -0300
http://www.mariolb.com.br/blog/2012/05/16/clamav_configuracao_de_proxy_autenticado.html http://www.mariolb.com.br/blog/2012/05/16/clamav_configuracao_de_proxy_autenticado.html <![CDATA[Clamav: configuração de proxy autenticado]]> Clamav: configuração de proxy autenticado

O antivirus Clamav utiliza o aplicativo freshclam para atualizar sua base de dados de vírus. Esta atualização pode ser feita manualmente ou automaticamente, sendo esta última configurada automaticamente durante a instalação.

Para que o freshclam consiga acessar a Internet através de um proxy, precisamos efetuar algumas configurações básicas. Edite o arquivo /etc/clamav/freshclam.conf e adicione os seguintes parâmetros no final do arquivo (se o proxy de sua rede não utilizar autenticação, adicione apenas os parâmetros de servidor e porta, ignorando os de identificação do usuário):

HTTPProxyServer   nome_ou_ip_do_servidor_proxy
HTTPProxyPort     porta_do_proxy
HTTPProxyUsername usuário
HTTPProxyPassword senha
]]>
Wed, 16 May 2012 00:00:00 -0300
http://www.mariolb.com.br/blog/2012/05/09/problema_ao_remover_usuario_no_debian_wheezy.html http://www.mariolb.com.br/blog/2012/05/09/problema_ao_remover_usuario_no_debian_wheezy.html <![CDATA[Problema ao remover usuário no Debian Wheezy]]> Problema ao remover usuário no Debian Wheezy

09/05/2012

Estou testando a versão Wheezy (7.0) do Debian e percebi o seguinte: ao tentar remover um usuário com os comandos userdel ou deluser, ocorre uma falha de segmentação e o usuário não é removido.

Pesquisando um pouco, descobri que este problema não parece ocorrer em todas as arquiteturas. Como estou usando a arquitetura i386 (32 bits), descobri que o problema só ocorre quando o locale é diferente de C (vi alguns comentários de que com en_US também funciona). Como uso o locale en_US.UTF-8, resolvi o problema da seguinte forma (sem ter que alterar o locale de todo o sistema): basta executar o comando deluser (ou userdel) com a variável LANG=C:

LANG=C deluser usuario

Até mais,

Marião

]]>
Wed, 09 May 2012 00:00:00 -0300
http://www.mariolb.com.br/blog/2012/02/06/lista_de_padroes_de_codificacao_segura.html http://www.mariolb.com.br/blog/2012/02/06/lista_de_padroes_de_codificacao_segura.html <![CDATA[Lista de Padrões de Codificação Segura]]> Lista de Padrões de Codificação Segura

O link a seguir possui uma lista de links interessantes sobre programação segura. List of Secure Coding Standards Links.

Marião

]]>
Mon, 06 Feb 2012 00:00:00 -0200
http://www.mariolb.com.br/blog/2012/02/02/erro_na_inicializacao_do_x11_no_debian_squeeze.html http://www.mariolb.com.br/blog/2012/02/02/erro_na_inicializacao_do_x11_no_debian_squeeze.html <![CDATA[Erro na inicialização do X11 no Debian Squeeze]]> Erro na inicialização do X11 no Debian Squeeze

Hoje, pela manhã, precisei copiar um arquivo do meu computador e, para a minha surpresa, o modo gráfico não funcionou. A mensagem foi algo como a seguinte:

Error: /usr/lib/libgconf2-4/gconf-sanity-check-2 exited with code 256.

Depois de muito procurar pelo erro nos logs, acabei verificando que o diretório /tmp teve suas permissões alteradas, de 1777 para 750.

Ajustei as permissões para 1777 (que é como deve ser), reiniciei o modo gráfico e tudo voltou a funcionar. O que me intriga é: que processo fez esta alteração? Ainda não sei e, provavelmente nunca descobrirei, mas desconfio que pode ter sido uma tentativa de instalação de uma versão atual do wine, que não está no repositório oficial (e que não funcionou). Voltei a instalação disponível no repositório oficial, e tudo parecia ter voltado a funcionar, inclusive por vários dias.

Mistério!

]]>
Thu, 02 Feb 2012 00:00:00 -0200
http://www.mariolb.com.br/blog/2012/01/18/tcc_plano_de_seguranca_da_informacao.html http://www.mariolb.com.br/blog/2012/01/18/tcc_plano_de_seguranca_da_informacao.html <![CDATA[TCC - Plano de Segurança da Informação]]> TCC - Plano de Segurança da Informação

Este documento foi apresentado como trabalho de conclusão do curso de pós-graduação em Segurança da Informação realizado em 2009.

Ele apresenta um plano de segurança para uma empresa fictícia, tratando de vários aspectos relacionados à SI e que devem ser considerados quando da implementação de um plano de SI corporativo.

Veja o resumo do trabalho:

«Este trabalho de conclusão de curso apresenta como a segurança da informação muitas vezes é negligenciada pelas organizações até a ocorrência de incidentes graves, quando então são tomadas medidas para evitá-los. Apresenta as dificuldades em manter seguras as informações e demonstra que a segurança da informação é um processo cíclico, que deve ser mantido e atualizado permanentemente. Apresentamos o cenário de uma empresa envolvida num desses incidentes e que teve informações confidenciais do projeto de um novo produto descobertos no equipamento de um funcionário e que possivelmente foram enviadas para um concorrente. Este incidente provocou prejuízos financeiros diretos, o comprometimento de vendas futuras e a imagem da empresa. Diante de tal situação e da sensação de fragilidade, a empresa contratou os serviços de um CSO que definiu uma metodologia de análise de riscos, identificou os principais processos da empresa e os ativos envolvidos, realizou a análise de riscos inicial e apresentou para a presidência as vulnerabilidades, o impacto para o negócio e os custos envolvidos na sua mitigação e/ou controle. Concomitantemente à análise de riscos inicial iniciou-se o processo de criação das políticas de segurança da informação, procedimentos, plano de continuidade dos negócios, treinamento de colaboradores e o plano de gestão da segurança. Após aprovação pela presidência, diversos controles foram implementados, e uma nova análise de riscos realizada. As informações foram disponibilizadas para os executivos compararem os resultados e a evolução do serviço realizado.»

Interessou? Leia na íntegra AQUI.

Sds,

Marião

]]>
Wed, 18 Jan 2012 00:00:00 -0200
http://www.mariolb.com.br/blog/2011/12/16/artigo_gerenciamento_do_valor_agregado_no_controle_do_desempenho_do_projeto.html http://www.mariolb.com.br/blog/2011/12/16/artigo_gerenciamento_do_valor_agregado_no_controle_do_desempenho_do_projeto.html <![CDATA[Artigo: Gerenciamento do Valor Agregado no Controle do Desempenho do Projeto]]> Artigo: Gerenciamento do Valor Agregado no Controle do Desempenho do Projeto

Este artigo foi escrito pelo meu amigo Eduardo Martins Pereira, que autorizou a sua publicação. Este artigo foi o trabalho de conclusão da Pós Graduação em Gestão de Projetos em TI – Metodologia PMI, que o eduardo cursou na Faculdade IBTA (atual Veris).

Veja o resumo do artigo (retirado do próprio artigo):

«O objetivo deste trabalho é apresentar como os conceitos da técnica de Gerenciamento do Valor Agregado (EVM – Earned Value Management) podem contribuir com a equipe para avaliação do desempenho do projeto e direcionar as ações necessárias para manteê-lo de acordo com a linha base (baseline), integrando as medidas de tempo, custo e escopo. A primeira parte aborda os conceitos de gerenciamento de projeto com foco no escopo, prazo e custo e porque elas se tornaram tão fundamentais para as empresas. Na segunda parte estão abordados os conceitos e benefícios que o gerenciamento do valor agregado podem trazer para a gestão do projeto.»

Leia o artigo na íntegra AQUI.

Marião

]]>
Fri, 16 Dec 2011 00:00:00 -0200
http://www.mariolb.com.br/blog/2011/01/04/monografia_seguranca_da_informacao_e_certificados_digitais.html http://www.mariolb.com.br/blog/2011/01/04/monografia_seguranca_da_informacao_e_certificados_digitais.html <![CDATA[Monografia: Segurança da Informação e certificados digitais]]> Monografia: Segurança da Informação e certificados digitais

Monografia escrita pelo meu sobrinho Mário César Reato Bernardinelli que trata da segurança da informação no ambiente de Internet com ênfase em certificação digital.

Veja o resumo:

«A tecnologia da informação vem passando por um processo de evolução muito rápido e torna a vida de seus adeptos e usuários cada vez mais acessível, interativa, funcional e com possibilidades ilimitadas através principalmente das redes de computadores que estão distribuídas por todo o mundo, na qual, a internet vem alavancando esse processo, porém, com ela a necessidade de garantir a segurança da informação com intuito de salvaguardar e manter o sigilo de informações confidenciais ou até mesmo identificar computadores, pessoas e diversos dispositivos, para então, disponibilizar acesso a estes de conteúdos e serviços diferenciados e restritos. A Certificação digital é uma solução para o problema de segurança da informação em redes públicas e privadas, no qual, permite uma maior garantia de confidencialidade, autenticidade, integridade, disponibilidade e controle de acesso no ambiente virtual, porém, é necessário conciliar outros recursos com ela para obter-se um melhor resultado, como análises de ameaças, politicas de seguranças e outras ferramentas que visem minimizar o problema que envolve a segurança e dificultar as perdas de informações.»

Leia o artigo na íntegra AQUI.

]]>
Tue, 04 Jan 2011 00:00:00 -0200
http://www.mariolb.com.br/blog/2011/01/04/artigo_seg_info_no_ambiente_de_internet.html http://www.mariolb.com.br/blog/2011/01/04/artigo_seg_info_no_ambiente_de_internet.html <![CDATA[Artigo: Seg Info no ambiente de Internet]]> Artigo: Seg Info no ambiente de Internet

Artigo escrito pelo meu sobrinho Mário César Reato Bernardinelli et. all e trata da segurança da informação na Internet, com ênfase em certificação digital. Leia o artigo na SegInfo.

]]>
Tue, 04 Jan 2011 00:00:00 -0200
http://www.mariolb.com.br/blog/2010/12/25/configuracao_de_teclado_no_xorg_debian_squeeze.html http://www.mariolb.com.br/blog/2010/12/25/configuracao_de_teclado_no_xorg_debian_squeeze.html <![CDATA[Configuração de teclado no Xorg (Debian Squeeze)]]> Configuração de teclado no Xorg (Debian Squeeze)

A poucos dias instalei o Debian Squeeze no meu desktop doméstico. Achei bem legal o GDM3, mas ainda estou apanhando um pouco para descobrir como personalizá-lo.

Por questões pessoais (e para treino mesmo), sempre que instalo o SO procuro fazê-lo utilizando a língua inglesa.

Durante a instalação utilizei um teclado padrão americano (sem cedilha). Depois, resolvi adotar um teclado ABNT-2. Foi aí que começou a dor de cabeça.

A nova versão do Xorg não utiliza mais o xorg.conf, a menos que você o crie por completo. Como tenho uma placa de vídeo NVidia, instalei o driver e ele criou o xorg.conf. Funcionou pereitamente, exceto pelo teclado.

Leia mais...

]]>
Sat, 25 Dec 2010 00:00:00 -0200
http://www.mariolb.com.br/blog/2010/10/18/copiando_maquinas_virtuais_do_virtualbox.html http://www.mariolb.com.br/blog/2010/10/18/copiando_maquinas_virtuais_do_virtualbox.html <![CDATA[Copiando máquinas virtuais do VirtualBox]]> Copiando máquinas virtuais do VirtualBox

Quando criamos uma máquina virtual no VirtualBox, a VM possui um UUID. Se precisarmos fazer uma cópia da VM para, por exemplo, executar uma instância da máquina virtual, teremos problemas porque o UUID será o mesmo da máquina original e o virtualBox não deixará que a nova unidade seja adicionada. Podemos, então trocar o UUID da nova VM. Assim, primeiro copiamos o arquivo VDI (com a máquina virtual parada, claro) e depois executamos o seguinte comando para que o UUID seja alterado:

VBoxManage internalcommands setvdiuuid ARQUIVO.VDI

No VirtualBox-4.1, o comando setvdiuuid não existe mais. Neste caso, use:

VBoxManage internalcommands sethduuid ARQUIVO.VDI

Para verificar o UUID da VM, pode ser usado o comando showhdinfo, conforme exemplo a seguir:

VBoxManage showhdinfo Debian.vdi
UUID:                 d31e9f66-2742-4ae0-98ed-b35f294fccf7
Accessible:           yes
Logical size:         5632 MBytes
Current size on disk: 5367 MBytes
Type:                 normal (base)
Storage format:       VDI
Format variant:       dynamic default
Location:             /tmp/Debian.vdi

Sds, Marião

]]>
Mon, 18 Oct 2010 00:00:00 -0200
http://www.mariolb.com.br/blog/2010/09/08/interceptacao_telefonica.html http://www.mariolb.com.br/blog/2010/09/08/interceptacao_telefonica.html <![CDATA[Interceptação telefônica]]> Interceptação telefônica

Esta monografia, apesar de ser um texto voltado para os aspectos jurídicos, tem tudo a ver com a área de segurança. Trata-se de um trabalho de conclusão do curso de direito do meu amigo Fernando Marcondes que trata da interceptação telefônica, que sempre trás à tona questões de segurança, tais como o sigilo. Leia o artigo na íntegra aqui.

]]>
Wed, 08 Sep 2010 00:00:00 -0300
http://www.mariolb.com.br/blog/2010/08/24/expressoes_regulares_o_basico_do_basico.html http://www.mariolb.com.br/blog/2010/08/24/expressoes_regulares_o_basico_do_basico.html <![CDATA[Expressões Regulares: o básico do básico]]> Expressões Regulares: o básico do básico

Expressões regulares são utilizadas para especificar padrões de texto. Uma expressão regular é composta por caracteres comuns e também por alguns com funções especiais que, quando agrupados entre si, formam uma sequência ou expressão. Essa expressão é interpretada como uma regra e é utilizada no processamento de uma entrada de dados em formato texto, produzindo como saída apenas os dados que casarem com esta regra. Neste pequeno artigo são apresentados os conceitos básicos de exmpressões regulares.

Leia o artigo na íntegra AQUI.

]]>
Tue, 24 Aug 2010 00:00:00 -0300
http://www.mariolb.com.br/blog/2010/06/12/virus_pirataria_e_software_livre.html http://www.mariolb.com.br/blog/2010/06/12/virus_pirataria_e_software_livre.html <![CDATA[Vírus, pirataria e software livre]]> Vírus, pirataria e software livre

Sou uma pessoa preocupada com segurança da informação, principalmente depois que frequentei um curso de pós-graduação na área e conheci algumas pessoas feras no assunto.

Hoje vi uma notícia que não foi nenhuma surpresa para mim, mas pode ser novidade para muitos, principalmente para aqueles que não são muito envolvidos no mundo da segurança e que acabou me dando vontade de escrever algumas linhas…

Leia mais...

]]>
Sat, 12 Jun 2010 00:00:00 -0300
http://www.mariolb.com.br/blog/2010/05/03/desabilitando_o_ipv6_no_debian_squeeze.html http://www.mariolb.com.br/blog/2010/05/03/desabilitando_o_ipv6_no_debian_squeeze.html <![CDATA[Desabilitando o IPv6 no Debian Squeeze]]> Desabilitando o IPv6 no Debian Squeeze

Até o Debian Lenny, para desabilitar o IPv6 eu fazia seguinte:

Adicionava as seguintes linhas no arquivo /etc/modprobe.d/aliases.conf:

alias net-pf-10 off alias ipv6 off

Depois, era só reiniciar o sistema.

No Debian Squeeeze, isto não funcionou. Consegui resolver o problema adcionando a seguinte linha ao arquivo /etc/systcl.conf:

net.ipv6.conf.all.disable_ipv6 = 1

O melhor de tudo é que, até agora não percebi nenhum efeito colateral. :)

Marião

]]>
Mon, 03 May 2010 00:00:00 -0300
http://www.mariolb.com.br/blog/2010/04/30/htaccess_restringindo_o_acesso_a_diretorios_no_apache.html http://www.mariolb.com.br/blog/2010/04/30/htaccess_restringindo_o_acesso_a_diretorios_no_apache.html <![CDATA[htaccess: restringindo o acesso à diretórios no Apache]]> htaccess: restringindo o acesso à diretórios no Apache

Numa instalação do Apache num Debian Squeeeze, precisei fazer o seguinte para habilitar o uso do .htaccess que serve, entre outras coisas, para restringir o acesso a determinados diretórios disponíveis no servidor Web Apache.

Leia mais...

]]>
Fri, 30 Apr 2010 00:00:00 -0300
http://www.mariolb.com.br/blog/2010/04/29/convertendo_repositorios_do_svn_para_o_git.html http://www.mariolb.com.br/blog/2010/04/29/convertendo_repositorios_do_svn_para_o_git.html <![CDATA[Convertendo repositórios do SVN para o GIT]]> Convertendo repositórios do SVN para o GIT

O script a seguir ilustra a minha tentativa de migrar os projetos do meu repositório SVN (Subversion) para o GIT.

Alguém poderia perguntar: «Mas, por que migrar para o Git? O Subversion não é bom?». Eu responderia assim: «Sim, o SVN é muito bom e o tenho usado há vários anos. O que ocorreu foi um pequeno impasse ocorrido numa mudança de ambiente operacional, além da vontade de experimentar uma nova solução.».

Explicando:

Em primeiro lugar, quero deixar claro que esta «migração» foi apenas em caráter de teste e me parece que funcionou. Ainda estou brincando com o Git…

Leia mais...

]]>
Thu, 29 Apr 2010 00:00:00 -0300
http://www.mariolb.com.br/blog/2010/04/04/corsa_removendo_a_mensagem_insp_do_painel.html http://www.mariolb.com.br/blog/2010/04/04/corsa_removendo_a_mensagem_insp_do_painel.html <![CDATA[Corsa: removendo a mensagem InSP do painel]]> Corsa: removendo a mensagem InSP do painel

Nada a ver esta dica, mas aconteceu comigo. Tenho um Corsa Sedan 1.0 e surgiu a mensagem InSP no painel do relógio nestes dias.

Eu removi esta mensagem, mas não posso garantir que não haja nenhum efeito colateral, portanto, se quiser, faça por sua própria conta e risco.

Pesquisando, descobri que a mensagem aparece após 52 semanas ou 15000Km (o que vencer primeiro), para indicar que uma revisão deve ser executada. O mais legal disso é que o carro já tem dois anos e está com mais de 20000Km. Então, ou a fonte onde obtive a informação está errada, ou o treco pirou!

Pesquisei mais um pouco e descobri como remover esta mensagem:

  • Ligue o carro (não precisa dar a partida).
  • Desligue o carro, mas não remova a chave do contato
  • Ligue a lanterna, assim o relógio também ligará.
  • Pressione o botão do relógio até que o hodômetro parcial apareça.
  • Pressione o botão do relógio como se desejasse zerar o hodômetro (e isto vai acontecer mesmo). Mas não solte o botão.
  • Mantendo o botão do relógio pressionado, ligue o carro (não precisa dar a partida). Não solte o botão.
  • Depois de alguns segundos (10 segundos aproximadamente), a inscrição InSP deve desaparecer, ficando apenas os caracteres «—–».
  • Pode desligar o carro: a mensagem não deve mais aparecer.

Não sei se isso tem algum efeito colateral, de qualquer forma, funcionou comigo: a mensagem desapareceu (só não sei por quanto tempo).

Sds,

Marião

]]>
Sun, 04 Apr 2010 00:00:00 -0300
http://www.mariolb.com.br/blog/2010/04/02/gerenciando_entradas_no_arquivo_known_hosts.html http://www.mariolb.com.br/blog/2010/04/02/gerenciando_entradas_no_arquivo_known_hosts.html <![CDATA[Gerenciando entradas no arquivo known_hosts]]> Gerenciando entradas no arquivo known_hosts

O arquivo known_hosts armazena os nomes dos hosts e as chaves dos equipamentos acessados remotamente. Nas versões atuais do openssh, o parâmetro HashKnownHosts vem habilitado por padrão, o que faz com que as entradas do arquivo known_hosts não sejam mais armazenadas em texto em claro, mas sim os hashes dos nomes dos hosts (além, é claro, das chaves dos mesmos).

Veja mais AQUI.

]]>
Fri, 02 Apr 2010 00:00:00 -0300
http://www.mariolb.com.br/blog/2010/01/31/script_de_cronometro_simples.html http://www.mariolb.com.br/blog/2010/01/31/script_de_cronometro_simples.html <![CDATA[Script de cronômetro simples]]> Script de cronômetro simples

Há alguns dias atrás, precisei criar um pequeno mecanismo de contagem de tempo que me desse a hora inicial, a hora final e o tempo de coriddo, em segundos. Eu precisava disso para um treinamento de memorização que exige que façamos uma série de cálculos simples e anotemos o tempo diariamente.

Pensei em usar algo pronto, mas por preguiça de procurar na Internet (é tão difícil procurar no Google, não é mesmo…) resolvi fazer um pequeno script.

Observe que este script não é tão preciso, pois o seu algoritmo é bastante simples e eu não estava preocupado com precisão: o que eu precisava era algo um pouco mais simples de usar do que o meu velho relógio de pulso analógico (de ponteiros mesmo!).

O script é muito simples de usar: basta executá-lo que a contagem do tempo inicia. Ao terminar sua tarefa, pressione ENTER para que o mesmo se encerre e mostre o resultado: a hora inicial, a hora final e o tempo decorrido.

Depois de terminado, olhei para o script e disse: nossa, que coisa mais simples e achei-o até inútil. No entanto, ele supriu a minha necessidade. Talvez sirva para mais alguém que, como eu, que goste de telinhas de terminal, scripts etc (tem maluco para tudo!).

Eis um exemplo de execução do script:

$ cronometro.sh
Starting counting...
Sun Jan 31 12:24:03 BRST 2010
Press ENTER to stop counting...
Elapsed time: 329s
Elapsed time: 329s
Counting stopped
Sun Jan 31 12:29:32 BRST 2010
------------------------------------------
Start time..: Sun Jan 31 12:24:03 BRST 2010
End time....: Sun Jan 31 12:29:32 BRST 2010
Elapsed time: 329s (5'29")
------------------------------------------

O código fonte é o seguinte:

#!/bin/bash
echo "Starting counting... $(date)"
START=$(date +%s)
END=$(date +%s)
echo "Press ENTER to stop counting..."
DONE=0

while [ "$DONE" == "0" ] ; do
  read -t 1 x
  if [ "$?" == "0" ] ; then
    DONE=1
  fi
  END=$(date +%s)
  let ETIME=${END}-${START}
  echo -n -e "
  Elapsed time: ${ETIME}s"
done

echo -n -e "
Counting stopped $(date)"
echo
MIN=0
SEC=0

let MIN=${ETIME}/60
let SEC=${ETIME}%60
echo "------------------------------------------"
echo "Start time..: $(date --date @${START}"
echo "End time....: $(date --date @${END})"
echo "Elapsed time: ${ETIME}s (${MIN}'${SEC}")"
echo "------------------------------------------"

Até mais,

Marião

]]>
Sun, 31 Jan 2010 00:00:00 -0200
http://www.mariolb.com.br/blog/2009/12/04/google_libera_o_servico_de_dns_publico.html http://www.mariolb.com.br/blog/2009/12/04/google_libera_o_servico_de_dns_publico.html <![CDATA[Google libera o serviço de DNS público]]> Google libera o serviço de DNS público

O Google anunciou o seu serviço de DNS público, que pode ser acessado através dos seguintes servidores

  • Primário: 8.8.8.8
  • Secundário: 8.8.4.4

Eis o link: http://code.google.com/speed/public-dns/docs/using.html

Leia mais...

]]>
Fri, 04 Dec 2009 00:00:00 -0200
http://www.mariolb.com.br/blog/2009/10/23/redimensionando_particoes_ntfs_com_o_ntfsresize.html http://www.mariolb.com.br/blog/2009/10/23/redimensionando_particoes_ntfs_com_o_ntfsresize.html <![CDATA[Redimensionando partições NTFS com o ntfsresize]]> Redimensionando partições NTFS com o ntfsresize

O software ntfsresize, que é parte do pacote ntfsprogs no Debian, é uma ferramenta muito útil para redimensionamento de partições NTFS.

Para exemplificar o seu uso, vou usar como exemplo um notebook que recebi com Windows XP instalado, usando uma única partição (parece que esta prática é padrão), no qual era preciso manter a instalação do Windows XP e instalar o Linux.

Leia mais...

]]>
Fri, 23 Oct 2009 00:00:00 -0200
http://www.mariolb.com.br/blog/2009/07/29/monitoramento_de_e_mail_corporativo.html http://www.mariolb.com.br/blog/2009/07/29/monitoramento_de_e_mail_corporativo.html <![CDATA[Monitoramento de e-mail corporativo]]> Monitoramento de e-mail corporativo

A evolução tecnológica tem afetado as relações pessoais desde o advento da Internet. Existem atualmente mecanismos que permitem a comunicação instantânea independentemente da distância entre as partes e praticamente sem nenhum custo.

Esta evolução também chegou às empresas, como uma forma de agilizar as operações, reduzir os custos e melhorar a sua posição no mercado.

Porém, nem só de vantagens vive a evolução tecnológica. Para as empresas, toda a versatilidade que o e-mail proporciona também acarreta alguns perigos: existe a possibilidade de entrada de códigos maliciosos na rede da empresa, a perda de tempo ocasionada pelo mau uso desta ferramenta e ainda a possibilidade de vazamento de informações confidenciais.

No Brasil, não há leis específicas para os crimes digitais. Desta forma, todos os crimes devem ser julgados perante leis muitas vezes chamadas de antiquadas e antigas, obrigando os juristas a recorrerem aos princípios básicos cobertos pelas leis vigentes.

Assim surge uma questão, muitas vezes polêmica, relacionada ao e-mail corporativo: a empresa pode ou não monitorá-lo? Se sim, como ficam os direitos à privacidade e à inviolabilidade das comunicações, garantidos pela Constituição Brasileira a todos os cidadãos brasileiros? Se não, como a empresa pode se proteger dos perigos inerentes ao mau uso desta importante ferramenta?

É a legalidade do monitoramento do e-mail corporativo que será discutido neste artigo, que pode ser obtido AQUI.

]]>
Wed, 29 Jul 2009 00:00:00 -0300
http://www.mariolb.com.br/blog/2009/05/31/dhclient_fixando_o_servidor_dns.html http://www.mariolb.com.br/blog/2009/05/31/dhclient_fixando_o_servidor_dns.html <![CDATA[dhclient: fixando o servidor DNS]]> dhclient: fixando o servidor DNS

Atualizado em agosto 28, 2016

Esta é uma dica rápida.

Uso a Internet via ADSL e quando meu micro solicita o IP via DHCP, o arquivo /etc/resolv.conf é atualizado com os servidores do provedor. Este é o comportamento desejado para a maioria dos usuários, já que não dá trabalho nenhum. Já no meu caso, prefiro não confiar em nenhum DNS de provedores, principalmente depois da descoberta da falha de DNS por Kaminsky, quando fiquei semanas testando servidores DNS do meu provedor e descobri que eles não estão nem aí para o problema dos seus usuários…

Então, quem usa Linux tem uma vantagem: instale um servidor DNS de sua preferência e use-o como cache. Eu gosto do BIND, mas existem outros muito bons, como o DNSMasq.

Depois de instalado o DNS, o problema foi fazer com que o cliente dhcp não alterasse o arquivo /etc/resolv.conf quando recebesse as configurações da rede.

Eu uso o dhclient3 e, depois de pesquisar um pouco, descobri que é possível definir opções locais que se sobrepõem às configurações entregues pelo servidor DHCP.

Para de valor fixo para o servidor DNS, edite o arquivo dhclient.conf que fica no diretório /etc/dhcp ou /etc/dhcp3 e adicione a seguinte linha ao final do arquivo:

supersede domain-name-servers 127.0.0.1;

Pode ser adicionado mais de um servidor de nomes, bastando separá-los por vírgulas.

Com esta configuração, no entanto, apenas os servidores de nomes serão assumidos. Também é possível adicionar um ou mais servidores de nomes à lista dos servidores fornecidos pelo servidor DHCP. Neste caso, os servidores de nomes especificados no arquivo dhclient.conf serão colocados no início da lista de servidores de no no arquivo /etc/resolv.conf, o que significa que eles serão sempre os primeiros a serem consultados. Se eles falharem, então serão consultados os servidores de nomes fornecidos pelo DHCP. Para esta configuração, ao invés do parâmetro supersede, use o prepend, conforme ilustrado a seguir:

prepend domain-name-servers 127.0.0.1;

Use o endereço IP do seu servidor de nomes desejado.

Ah, e não se esqueça do ponto-e-vírgula no final da linha.

Até mais.

Marião

]]>
Sun, 31 May 2009 00:00:00 -0300
http://www.mariolb.com.br/blog/2009/05/31/criando_imagens_iso_de_diretorios.html http://www.mariolb.com.br/blog/2009/05/31/criando_imagens_iso_de_diretorios.html <![CDATA[Criando imagens ISO de diretórios]]> Criando imagens ISO de diretórios

31/05/2009

Este é um pequeno script que gera um arquivo de imagem ISO do diretório corrente. O arquivo de imagem pode ser gravado num CD ou DVD.

Leia mais...

]]>
Sun, 31 May 2009 00:00:00 -0300
http://www.mariolb.com.br/blog/2009/05/14/entendendo_as_permissoes_de_arquivos_no_gnu_linux.html http://www.mariolb.com.br/blog/2009/05/14/entendendo_as_permissoes_de_arquivos_no_gnu_linux.html <![CDATA[Entendendo as Permissões de Arquivos no GNU/Linux]]> Entendendo as Permissões de Arquivos no GNU/Linux

Cada sistema operacional possui características próprias e o entendimento de seu funcionamento permite que o usuário personalize o sistema de acordo com as suas necessidades. O grau de personalização depende é claro das características do sistema operacional utilizado.

Dentre as várias características existentes em cada sistema operacional, as permissões de acesso estão entre as mais importantes. Um simples atributo de arquivo pode significar proteger uma senha ou permitir que todos os usuários do sistema possam lê-la.

O Linux utiliza um esquema de permissões de acesso bastante simples, baseado basicamente em dono, grupo e outros, definindo assim que é o dono do arquivo (quem o criou), o grupo do arquivo e o que os demais usuários do sistema podem fazer com o arquivo. É sem dúvida um esquema bastante simples, herdado do sistema operacional Unix mas que, mesmo sendo simples, possui algumas características que podem confundir um pouco o usuário menos experiente, como é o caso dos bits SUID, SGID e Sticky. Entender a função e funcionamento destes atributos é essencial para uma boa administração do sistema, podendo inclusive ser utilizado para melhorar alguns aspectos de segurança do sistema operacional.

Baixe o artigo AQUI.

]]>
Thu, 14 May 2009 00:00:00 -0300
http://www.mariolb.com.br/blog/2009/05/08/apt_com_proxy_no_debian_e_ubuntu.html http://www.mariolb.com.br/blog/2009/05/08/apt_com_proxy_no_debian_e_ubuntu.html <![CDATA[APT com Proxy no Debian e Ubuntu]]> APT com Proxy no Debian e Ubuntu

Se seu computador está atrás de um proxy para acesso à Internet, você deve configurar o proxy no APT para que ele possa realizar as atualizações e instalações de softwares.

Se você usa apenas a interface gráfica, configure diretamente no synaptic. Esta dica cobre apenas os usuários mais avançados e que gostam da linha de comando…

Leia mais...

]]>
Fri, 08 May 2009 00:00:00 -0300
http://www.mariolb.com.br/blog/2009/04/21/latex_no_linux.html http://www.mariolb.com.br/blog/2009/04/21/latex_no_linux.html <![CDATA[LaTeX no Linux]]> LaTeX no Linux

21/04/2009 -

Esta é uma dica rápida!

Faço uso do LaTeX regularmente e gosto de mantê-lo instalado em meu computador. No Debian Lenny, tenho usado o tetex sem nenhum problema.

O comando que instala tudo o que eu uso é o seguinte:

aptitude install \
  abntex latex-beamer latex-xcolor latex-xft-fonts \
  latex2html latex2rtf latex2rtf-doc tetex-bin tetex-extra \
  tex-common texinfo texlive texlive-base texlive-base-bin \
  texlive-base-bin-doc texlive-bibtex-extra \
  texlive-common texlive-doc-base texlive-extra-utils \
  texlive-font-utils texlive-fonts-extra \
  texlive-fonts-extra-doc texlive-fonts-recommended \
  texlive-fonts-recommended-doc texlive-generic-extra \
  texlive-generic-recommended texlive-lang-latin \
  texlive-lang-portuguese texlive-latex-base \
  texlive-latex-base-doc texlive-latex-extra \
  texlive-latex-extra-doc texlive-latex-recommended \
  texlive-latex-recommended-doc texlive-math-extra \
  texlive-pictures texlive-pictures-doc texlive-pstricks \
  texlive-pstricks-doc texlive-publishers \
  texlive-publishers-doc texpower texpower-manual prosper

Como ferramentas, gosto do Kile e do Texmaker além, é claro, do Vim:

aptitude install vim-latexsuite kile texmaker

As dicas anteriores funcionaram no Debian Lenny. Agora, como estou migrando para uma instalação do Debian Squeeze a partir do zero, segue o que instalei para o LaTeX. Ainda não testei completamente, mas é muito parecido com a instalação do Lenny, exceto pelo fato de que alguns pacotes mudaram de nome:

aptitude install abntex latex-beamer latex-xcolor \
  latex-xft-fonts latex2html latex2rtf \
  latex2rtf-doc tex-common texinfo texlive \
  texlive-base texlive-binaries texlive-bibtex-extra \
  texlive-common texlive-doc-base texlive-extra-utils \
  texlive-font-utils texlive-fonts-extra \
  texlive-fonts-extra-doc texlive-fonts-recommended \
  texlive-fonts-recommended-doc texlive-generic-extra \
  texlive-generic-recommended texlive-lang-latin \
  texlive-lang-portuguese texlive-latex-base \
  texlive-latex-base-doc texlive-latex-extra \
  texlive-latex-extra-doc texlive-latex-recommended \
  texlive-latex-recommended-doc texlive-math-extra \
  texlive-pictures texlive-pictures-doc texlive-pstricks \
  biblatex biblatex-dw texlive-pstricks-doc \
  texlive-publishers texlive-publishers-doc \
  texpower texpower-manual prosper vim-latexsuite \
  kile texmaker

É isso.

Marião

]]>
Tue, 21 Apr 2009 00:00:00 -0300
http://www.mariolb.com.br/blog/2009/03/20/entendendo_o_ciclo_de_vida_das_chaves_criptograficas.html http://www.mariolb.com.br/blog/2009/03/20/entendendo_o_ciclo_de_vida_das_chaves_criptograficas.html <![CDATA[Entendendo o Ciclo de Vida das Chaves Criptográficas]]> Entendendo o Ciclo de Vida das Chaves Criptográficas

As chaves criptográficas possuem um papel importantíssimo na segurança dos dados, pois elas são os insumos para que os algoritmos criptográficos possam garantir um ou mais requisitos básicos da segurança da informação: a autenticidade, a confidencialidade, a integridade e o não-repúdio de acordo com as necessidades das aplicações e transações eletrônicas.

Desde a sua criação até a sua destruição, as chaves criptográficas passam por várias fases, cada uma delas contendo características próprias. As fases descrevem de uma forma geral e de alto nível a situação da chave. Em cada fase, as chaves criptográficas passam por ou mais estágios. A transição de estágios é comandada por eventos característicos que definem para qual será o novo estágio da chave como, por exemplo, o comprometimento da chave, a expiração do criptoperíodo etc.

Neste artigo são apresentadas as fases do ciclo de vida das chaves criptográficas, suas características, os estágios que compõem cada uma das fases e os eventos que promovem a transição entre os mesmos.

Dada a importância das chaves criptográficas na segurança da informação, o conhecimento do seu ciclo de vida é essencial para que se possa elaborar e gerenciar o conjunto de chaves criptográficas utilizadas pela organização em seus sistemas computacionais. Falhas de gerenciamento aparentemente simples, como simples fato de se deixar o criptoperíodo de uma chave expirar pode trazer vários transtornos e prejuízos para a organização.

Leia o artigo na íntegra AQUI.

]]>
Fri, 20 Mar 2009 00:00:00 -0300
http://www.mariolb.com.br/blog/2008/12/27/script_de_gravacao_de_dvd_burn_dvd_sh.html http://www.mariolb.com.br/blog/2008/12/27/script_de_gravacao_de_dvd_burn_dvd_sh.html <![CDATA[Script de gravação de DVD (burn-dvd.sh)]]> Script de gravação de DVD (burn-dvd.sh)

O script a seguir, que costumo chamar de burn-dvd.sh, pode ser utilizado para gravar imagens ISO em DVDs.

Altere as seguintes variáveis no script:

  • RECORDER Deve conter o path completo para o utilitário growisofs.
  • CDRW Define o dispositivo que identifica a unidade de DVD-RW do computador.
  • SPEED Define a velocidade de gravação. Eu prefiro gravar em velocidade 1 porque o DVD player que tenho em casa é um modelo antigo e ele não se dá muito bem com mídias gravadas em velocidades maiores.

A velocidade de gravação é aproximadamente a seguinte (considere N como sendo o valor ajustado na variável SPEED):

N*1385KBps para gravação de DVDs
N*4496KBps para a gravação de Blu-ray

Só um detalhe: você sabe por que no nome é Blu-ray e não Blue-ray, já que o nome foi dado devido ao laser azul utilizado para a leitura do disco? Deveria ser Blue-ray, mas em alguns países não é permitido registrar um nome comercial contendo palavras comuns.

Eis o código (use-o por sua conta e risco):

#!/bin/bash
RECORDER="/usr/bin/growisofs"
CDRW="/dev/cdrw"
SPEED=1

if [ "$1" = "" ] ; then
  echo "Ooops! You need to inform the iso to burn!"
  exit
fi

if [ -f "$1" ] ; then
  time $RECORDER -dvd-compat -speed=$SPEED -Z $CDRW="$1"
else
  echo "OOOPS! ISO file not found ($1)"
fi
]]>
Sat, 27 Dec 2008 00:00:00 -0200
http://www.mariolb.com.br/blog/2008/12/27/script_de_gravacao_de_cd_burn_cd_sh.html http://www.mariolb.com.br/blog/2008/12/27/script_de_gravacao_de_cd_burn_cd_sh.html <![CDATA[Script de gravação de CD (burn-cd.sh)]]> Script de gravação de CD (burn-cd.sh)

O script a seguir, que costumo chamar de burn-cd.sh, pode ser utilizado para gravar imagens ISO em CDs.

Altere as seguintes variáveis no script:

  • CDRECORD Deve conter o path completo para o utilitário cdrecord.
  • CDRW Define o dispositivo que identifica a unidade de CD-RW do computador.
  • SPEED Define a velocidade de gravação

Eis o código (use por sua conta risco):

#!/bin/bash
CDRECORD="/usr/bin/cdrecord"
CDRW="/dev/cdrw"
SPEED=12

if [ "$1" = "" ] ; then
  echo "Ooops! You need to inform the iso to burn!"
  exit
fi

if [ -f "$1" ] ; then
  $CDRECORD dev=$CDRW speed=$SPEED -dao -v -eject -data "$1"
else
  echo "OOOPS! ISO file not found ($1)"
fi
]]>
Sat, 27 Dec 2008 00:00:00 -0200
http://www.mariolb.com.br/blog/2008/11/20/o_ataque_de_mitnick.html http://www.mariolb.com.br/blog/2008/11/20/o_ataque_de_mitnick.html <![CDATA[O ataque de Mitnick]]> O ataque de Mitnick

20/11/2008

Este artigo que escrevi junto com os amigos Eduardo, Fernando e Marcelo descreve o ataque desferido por Kevin Mitnick contra os computadores de Tsutomu Shimomura na noite de Natal de 1994 e quais as chances de ele ocorrer nos dias atuais.

Este artigo foi escrito durante o curso de Segurança da Informação, do IBTA, em 2008.

Baixe o artigo AQUI.

]]>
Thu, 20 Nov 2008 00:00:00 -0200
http://www.mariolb.com.br/blog/2008/11/18/ajustando_o_horario_de_verao_no_gnu_linux.html http://www.mariolb.com.br/blog/2008/11/18/ajustando_o_horario_de_verao_no_gnu_linux.html <![CDATA[Ajustando o horário de verão no GNU/Linux]]> Ajustando o horário de verão no GNU/Linux

Muita gente acha que o horário de verão deve ser ajustado usando-se o console, como root logo no primeiro horário de trabalho depois do fatídico final de semana escolhido pelo governo para o ajuste do horário. Para estações de trabalho, isso pode até funcionar. Por outro lado, imagine um servidor onde trafegam dados sensíveis ao horário, como fazer? Devemos acessar o servidor no sábado às 23:59 e ficar aguardando o domingo começar para ajustar a hora do servidor? Claro que não!

No GNU/Linux, é possível programar a mudança do horário de verão. Assim, quando é publicado o decreto instituindo o horário de verão, eu costumo criar um arquivo com os ajustes necessários e distribuo para os servidores sob minha responsabilidade.

O procedimento é bastante simples: basta algum conhecimento de um editor de textos qualquer (o vi por exemplo) e uma conta de acesso com direitos administrativos num computador com GNU/Linux.

Leia mais...

]]>
Tue, 18 Nov 2008 00:00:00 -0200
http://www.mariolb.com.br/blog/2008/11/07/enfim_o_inicio.html http://www.mariolb.com.br/blog/2008/11/07/enfim_o_inicio.html <![CDATA[Enfim, o início]]> Enfim, o início

Este texto foi postado por mim na primeira versão do site:

Depois de muito tempo tentando montar um site, acabei registrando um domínio e ele finalmente saiu do projeto e virou realidade. Mas isso só foi possível graças à ajuda do meu amigo Junior (da Bravanet), que é o cara em termos de desenvolvimento de sites web. Sem a ajuda do Junior, este site com certeza iria demorar muito para sair e, com certeza, se saísse, não teria a mesma qualidade.

Espero ter persistência suficiente para alimentar este site com posts periódicos. Tudo vai depender do tempo…

O objetivo inicial deste projeto é disponibilizar informações e dicas sobre Linux, redes, desenvolvimento e segurança em geral. Outros assuntos, no entanto, poderão aparecer no decorrer do tempo.

No mais, quero agradecer a todos que me ajudam diretamente, fornecendo-me informações e esclarecendo minhas dúvidas e também aos que me auxiliam de forma indireta, tentando tirar a suas dúvidas comigo (como se eu fosse uma boa referência…) o que, muitas vezes, me obriga a pesquisar e aprender mais.

E já que estamos no capítulo de agradecimento, eu não poderia deixar de agradecer à minha esposa, Elizete, pelo apoio constante e incondicional em todos os meus projetos, e também ao meu filho, Pedro Francisco, pela companhia, amor, inteligência e alegria: sem você filhão, nada disso teria sentido.

Finalmente, obrigado a todos que têm paciência suficiente para ler o que escrevo e criticar o modo como o faço…

Afinal, as críticas muitas vezes nos mostram como melhorarmos.

Boa leitura a todos.

Marião

]]>
Fri, 07 Nov 2008 00:00:00 -0200
http://www.mariolb.com.br/blog/2014/10/01/shellshock_atualizacao_do_bash.html http://www.mariolb.com.br/blog/2014/10/01/shellshock_atualizacao_do_bash.html <![CDATA[ShellShock: atualização do Bash]]> ShellShock: atualização do Bash

Apresento a seguir o procedimento de atualização do Bash com a finalidade de remover a vulnerabilidade conhecida como shellshock.

Leia mais...

]]>
Wed, 01 Oct 2014 00:00:00 -0300
http://www.mariolb.com.br/blog/2014/06/01/python_um_easter_egg_para_uso_com_chaves.html http://www.mariolb.com.br/blog/2014/06/01/python_um_easter_egg_para_uso_com_chaves.html <![CDATA[Python: um easter egg para uso com chaves]]> Python: um easter egg para uso com chaves

Python é uma linguagem conhecida por não utilizar chaves para delimitar os blocos de código e isto tem gerado muitas discussões favoráveis e contrárias a esta característica. Eu mesmo, quando comecei a estudar e utilizar Python fiquei um tanto quanto dividido, afinal, para um programador C/C++ com mais de 10 anos de experiência, abandonar as chaves parecia uma heresia.

Leia mais...

]]>
Sun, 01 Jun 2014 00:00:00 -0300
http://www.mariolb.com.br/blog/2009/06/01/coso.html http://www.mariolb.com.br/blog/2009/06/01/coso.html <![CDATA[COSO]]> COSO

Este artigo foi escrito em conjunto com os amigos Marcelo Dinofre, Fernando Bracalente e Eduardo Martins Pereira como parte das avaliações disciplinares do curso de pós graduação em Segurança da Informação.

Leia mais...

]]>
Mon, 01 Jun 2009 00:00:00 -0300
http://www.mariolb.com.br/blog/2011/05/01/o_que_fazer_e_como_agir_em_casos_de_crimes_na_internet.html http://www.mariolb.com.br/blog/2011/05/01/o_que_fazer_e_como_agir_em_casos_de_crimes_na_internet.html <![CDATA[O que fazer e como agir em casos de crimes na Internet]]> O que fazer e como agir em casos de crimes na Internet

No site da Legaltech há um F.A.Q. sobre cybercrime desde 2009 e foi atualizado recentemente.

Leia mais...

]]>
Sun, 01 May 2011 00:00:00 -0300
http://www.mariolb.com.br/blog/2015/09/10/tcc_thin_client_com_ltsp.html http://www.mariolb.com.br/blog/2015/09/10/tcc_thin_client_com_ltsp.html <![CDATA[TCC: Thin Client com LTSP]]> TCC: Thin Client com LTSP

Segue mais um Trabalho de Conclusão de Curso (TCC), cujo título é um pouco extenso: Thin Client com LTSP - Linux Terminal Server Project: Uma Solução Alternativa Para Pequenas e Médias Empresas.

Não conheço pessoalmente o autor deste artigo mas, a pedido do meu grande amigo Eduardo Martins Pereira, acabei dando algumas dicas para o Wellington durante a elaboração do trabalho.

Leia mais...

]]>
Thu, 10 Sep 2015 00:00:00 -0300
http://www.mariolb.com.br/blog/2015/09/10/smart_monitorando_a_saude_do_disco_rigido.html http://www.mariolb.com.br/blog/2015/09/10/smart_monitorando_a_saude_do_disco_rigido.html <![CDATA[1   SMART: Monitorando a Saúde do Disco Rígido]]> 1   SMART: Monitorando a Saúde do Disco Rígido
author:Mario Luiz Bernardinelli <mariolb@gmail.com>
version:0.1

Uma surpresa que nenhum administrador de sistemas e mesmo o usuário final quer é se deparar com um disco rígido inoperante. Operações de backup e espelhamento de discos, entre outras, ajudam em muito, mas chegar num final de dia de trabalho e se deparar com um crash de disco é muito chato e dispendioso, porque normalmente a restauração (reinstalação de tudo) é um processo demorado.

Leia mais...

]]>
Thu, 10 Sep 2015 00:00:00 -0300