Use a regra 8 por 4 para criar uma senha segura.

Sempre que se vai criar uma nova conta, em um website (rede social, forum, email, portal etc) o dilema senha segura vs senha fácil de lembrar volta à tona.
Neste artigo, vou abordar o problema e mostrar algumas soluções práticas que você pode adotar agora mesmo. As dicas, que seguem, podem e devem ser adaptadas para atender às suas próprias necessidades. Afinal, as senhas são suas.
Cadeados

LEIA MAIS:

As 10 dicas dos hackers sobre senhas.

O processo de criação de senhas tem, essencialmente, duas regras

Ao seguir estas duas premissas, você estará no caminho para criar uma senha de relevantemente segura.

  • O comprimento da senha: Senhas devem ter, no mínimo 8 caracteres. Quanto maior o comprimento da sua senha, melhor. Senhas com mais de 10 caracteres são mais difíceis para quebrar através da força bruta.
  • Complexidade da senha: Alguns grupos de caracteres devem estar sempre incluídos na formulação das suas senhas:
    355232758_4689237613_m

    • letras minúsculas;
    • letras maiúsculas;
    • números;
    • caracteres especiais.

Alguns autores chamam a combinação das duas regras de regra 8 por 4, uma vez que se resume a escolher senhas que tenham, pelo menos 8 caracteres, dentre os quais, 4 (no mínimo) satisfazem a regra anterior, da complexidade da senha.
Se você satisfizer estas duas exigências a cada senha criada, já estará no caminho mais seguro.

Guia para criar suas novas senhas

  • Siga a regra acima: 8 por 4. Este é o fundamento de todo o processo;
  • Use caracteres únicos: dos 8 caracteres contidos na sua senha, 5 não se repetem – ou seja, são únicos;
  • Use um gerenciador de senhas: uma vez que as senhas mais fortes são mais difíceis de lembrar, um bom software pode ser de grande valia para te ajudar neste ponto;
  • Crie senhas baseadas em frases que lhe sejam fáceis de lembrar. Vale usar letras, estrofes, títulos de músicas etc. Por exemplo:

    “I used to buy my faith in worship” pode se transformar em “Iu2bmFiW”

    Como evitar as senhas fracas

    Há uma série de práticas que devem ser evitadas a todo custo, na hora de criar uma senha. Fuja destas ciladas:

    1. senha igual ao nome de usuário;
    2. nomes de pessoas da sua família, do seu cachorro, gato etc;
    3. que contenham informações pessoais sobre você ou membros da sua família: o que inclui datas de nascimento/casamento, números de telefone, placa do veículo, nome da sua rua etc;
    4. sequencias, quaisquer que sejam, alfabéticas ou numéricas. Evite coisas como abcde, 12345, poiuy etc;
    5. palavras do dicionário. Se a sua senha pode ser encontrada em um dicionário, ela é ruim. Ainda que você acrescente um ou outro caractere alfanumérico para “complicar”, ela não serve;
    6. palavras do dicionário de outro idioma também não serve;
    7. substituição de letras por números nas palavras é um truque velho e previsível para qualquer invasor;
    8. qualquer uma das situações anteriores, só que em ordem inversa;
    9. senha nenhuma;

4 comandos fatais e proibidos pro Linux.

Há comandos que são extremamente danosos pro seu sistema operacional Linux, se executados inadvertidamente.
Felizmente, nenhum deles pode ser executado sem privilégios administrativos — mas você deve ser cuidadoso, mesmo assim.
Captura_de_tela-Breaking.Bad.S01E04.avi-1Se o seu objetivo é o aprendizado, o ambiente mais seguro para testar estes e muitos outros comandos é o virtual. Aprenda a criar uma máquina virtual e vá brincar com segurança dentro dela.

O comando que apaga tudo

A função do comando rm é remover arquivos — e ele pode remover diretórios inteiros também, sem pedir qualquer confirmação.
Ao executar o comando rm -rfv /, com privilégios de root todos os arquivos e diretórios do seu sistema serão eliminados.
Veja o que ele faz:

  • r — indica a recursividade. Todos os arquivos do diretório atual e seus subdiretórios sofrerão a ação do comando;
  • f — indica a ‘forçabilidade’. Todos os arquivos serão forçosamente removidos, independente de suas permissões;
  • v — liga a ‘verbosidade’. Torna tudo mais lindo ao exibir os arquivos à medida em que são eliminados no seu terminal;
  • / — indica o local em que a operação ocorrerá. Neste caso, a raiz. É isto que torna o comando todo tão perigoso;

Se você executar a linha sem privilégios administrativos, só os arquivos nos quais você tem permissão de escrita serão afetados.

Como executar uma fork bomb

Esta é uma das formas de se fazer um ataque de negação de serviços, que consiste em, basicamente, saturar os recursos de um servidor ao ponto de torná-lo indisponível.
A fork bomb apresentada a seguir faz com que o Linux ou o Unix opere definindo uma função, chamada ‘:’ e que refira-se a si mesma duas vezes – em background e foreground:

: (){ : | : & };:

No Linux, o administrador pode prevenir este tipo de ataque com o comando ulimit que impõe restrições à quantidade de processos simultâneos por usuário.

Formatar uma partição

Qualquer instalação decente do Linux estará distribuída em várias partições. O comando:

mkfs.ext4 /dev/sdaX</code>

vai aplicar uma formatação completa à partição /dev/sdaX.
Formatar um disco completamente, desta forma, pode ser útil no caso de se estar repassando a máquina para uma outra pessoa.

Escrever diretamente no disco rígido

Ao enviar a saída de um comando diretamente pro endereço do dispositivo de disco rígido não é apenas desaconselhável. É uma ação muito perigosa e danosa pro sistema de arquivos, em sua máquina.
Pode ser feito da seguinte forma:

ls > /dev/sda

Há várias outras formas de se danificar um sistema Linux/Unix — e, na maior parte delas, é necessário ter privilégios especiais para ter sucesso.
Distribuições Linux voltadas para usuários com menor nível de conhecimento costumam vir com algumas configurações que previnem a maior parte dos acidentes.

Seja responsável! 😉

Como fazer backup do seu banco de dados MySQL?

Cluster (Imagem: WikiMedia.)
Cluster (Imagem: WikiMedia.)

A segurança em TI, começa com as cópias de segurança (os backups):

  1. Sempre faça Backup de tudo o que é importante
  2. Teste frequentemente os seus backups — poucas coisas, em sua vida, serão tão frustrantes quanto, ao tentar se recuperar de um desastre, descobrir que não foram feitos adequadamente ou se corromperam
  3. Armazene adequadamente — mantenha as cópias de segurança longe do local em que se encontram os dados originais, para que não corram riscos de sofrer o mesmo incidente (roubo, incêndio, sabotagem etc).

Nenhum ‘esquema’ de segurança está completo se o foco for apenas a prevenção dos eventos sinistros. Política de segurança vai além da prevenção — uma vez que as possibilidades de ser vítima de invasão e acidentes são reais — por isso é fundamental ter um plano eficaz para uma rápida recuperação. Se os danos são inevitáveis, ter um plano B, C… pode minimizar significativamente os prejuízos.

Você é blogueiro? Tem um website ou portal?

Donos de sites e blogueiros têm razões adicionais para se preocupar com backup de todos os seus posts. O provedor pode tirar do ar e remover de seus servidores todo o seu trabalho, se acreditar que termos do seu contrato foram violados.
Veja como se colocar do lado seguro.

O nosso cenário

Neste post, vou mostrar como usar o comando mysqldump para fazer guardar cópias de segurança dos dados armazenados no seu servidor. Se você não se sente à vontade com comandos em modo texto, pode usar uma excelente ferramenta web, chamada phpMyAdmin, que faz o mesmo trabalho com alguns cliques.
Vamos usar algumas variáveis em meio aos comandos, para tentar torná-los mais compreensíveis. Se você não souber como preencher algumas destas variáveis, consulte o administrador do banco de dados. Veja quais são:

  • dbname — o nome do banco de dados
  • dbuser — o nome de usuário que vai acessar o banco. Em alguns casos, vamos usar o root (administrador)
  • dbpass — a senha do usuário do banco
  • dbhost — o servidor em que se encontra o banco. Em uma instalação local, normalmente é localhost

Como fazer backup do banco de dados com o mysqldump

O mysqldump é uma ferramenta eficiente para fazer backup do seu banco de dados na linha de comando, no servidor local ou remoto (via SSH). Ele cria um arquivo .sql com os comandos DROP, CREATE e INSERT. Veja como usar o comando mysqldump como root:

mysqldump -u root -p dbname > backup.sql

No exemplo acima, direcionamos uma cópia integral do banco de dados dbname pro arquivo backup.sql. Todos os comandos sql necessários para a criação de uma nova versão daquele banco, estão incluídos em backup.sql.
Para copiar mais de um banco de dados, separe seus nomes com espaços:

mysqldump -u root -p dbname1 dbname2 dbname3 > backup.sql

Se você quiser fazer backup de todos os bancos de dados do servidor, usar o parâmetro --all-databases torna tudo mais fácil:

mysqldump -u root -p --all-databases > backup-de-tudo.sql

Nota: O comando mysqldump bloqueia o banco de dados enquanto trabalha. Portanto, ele deixa os usuários sem acesso, enquanto está sendo executado. Em casos de bancos de dados muito extensos, ele pode demorar para ser concluído. O bom senso manda avisar os usuários com antecedência e não fazer backups demorados em horários de pico.

Como comprimir o arquivo de backup

Há vários motivos para comprimir o seu arquivo de backup:

  • arquivos de texto .sql grandes, atingem excelentes taxas de compressão;
  • quando comprimidos, podem ser enviados de um ponto a outro na rede muito mais rápido, consumindo muito menos banda;
  • você pode armazenar uma quantidade maior de cópias de segurança em uma mídia física (CD, DVD ou BluRay) ou em uma conta na nuvem.
    • Veja como é fácil realizar este processo, usando o exemplo anterior:

      mysqldump -u root -p --all-databases | gzip -9 > backup-de-tudo.sql.gz 

      Usamos o aplicativo gzip, presente na maioria das distro Linux, com o nível de compressão máximo (9), neste exemplo.
      Para descompactar, posteriormente, use o gunzip:

      gunzip backup-de-tudo.sql.gz

      Como restaurar o backup feito com mysqldump

      Não esqueça de substituir as variáveis pelos valores adequados, a seguir:

      mysql -u dbuser -pdbpass dbname < backup.sql

      Nota: A senha deve ser digitada “grudada” ao parâmetro -p.
      Para restaurar um arquivo de backup comprimido, faça assim:

      gunzip < backup.sql.gz | mysql -u dbuser -pdbpass dbname

      Se você deseja inserir os dados de backup.sql em um banco de dados já existente:

      mysqlimport -u dbuser -pdbpass backup.sql

      Como fazer um backup local e restaurar no servidor remoto

      Aqui, vou descrever o meu modo preferido de fazer backups. O problema é que nem sempre ele é aplicável — alguns provedores proíbem conexões, de fora, ao banco de dados. Ou seja, só aceitam conexões no localhost ou de dentro da sua própria rede. Quando isto ocorre, você recebe a seguinte mensagem ao tentar se conectar:

      mysqldump: Got error: 1045: Access denied for user ... 

      Neste caso, o correto é se conectar ao provedor primeiro. Depois, ao banco de dados. Clique aqui, para saber como se conectar ao MySQL, em um servidor remoto via SSH.
      Uma vez conectado, o mysqldump pode ser usado para realizar o serviço. Veja como:

      mysqldump -u dbuser-local -pdbpass-local dbname-local | mysql -u dbuser-remoto -pdbpass-remoto --host=dbhost-remoto -C dbname-remoto

      Nota: Fique atento, para usar os nomes e senhas corretos. Os valores e nomes locais são possivelmente diferentes dos valores remotos.
      Enfim, muito mais pode ser escrito sobre backups e, com toda certeza, há muitas outras formas de realizá-los para bancos de dados MySQL. O importante, mesmo, é fazê-los com frequência. Não se esqueça disto.

Use sync e sysctl para esvaziar a memória cache no Linux

Neste post, vou mostrar como usar algumas ferramentas de linha de comando para escoar o cache da memória RAM.
O objetivo deste post é dar aos iniciantes um pouco mais de conhecimento sobre gerenciamento de memória no Linux e alguns comandos para gestão do sistema de cache.

cache memória RAM
Clique, para mais detalhes.

Em que casos é necessário limpar a memória cache do meu sistema?

Em duas palavras: quase nunca.
O sistema já tem um excelente gerenciamento de memória e a tendência é sempre aproveitar toda a quantidade de memória disponível no seu computador ou smartphone, caso você esteja usando o Android.
A função do caching é tornar o sistema mais veloz, na medida em que ele mantém sempre à mão as informações mais requisitadas. O Linux é extremamente eficiente nisto e não há por que “se meter” neste processo e fazer o trabalho “manualmente”.
Em alguns casos, contudo, o processo de escoamento do cache pode ser útil.
Ao transferir arquivos muito volumosos (vídeos, por exemplo) do seu HD para um pendrive ou um HD externo, conectado na entrada USB, o Linux usa muito o sistema de caching, como sistema intermediário de armazenamento.
O motivo de o Linux usar intensivamente o caching é que o seu dispositivo interno transfere os dados muito mais rápido do que os dispositivos externos conseguem absorver.
Este é um dos motivos para você não conseguir desmontar/ejetar um pendrive ou qualquer outro dispositivo conectado — por que ele ainda não gravou todos os dados, ainda armazenados no cache.

Como esvaziar o cache

Os comandos sysctl e o sync podem ser usados em conjunto ou separados para realizar a tarefa.
Vamos verificar, antes, se o cache está sendo usado. Para isto, abra um terminal e digite o seguinte comando:

free -m
             total       usado      livre    compart.  buffers     em cache
Mem:          3,6G       2,9G       723M       172M       3,5M       1,5G
-/+ buffers/cache:       1,4G       2,2G
Swap:          15G         0B        15G

Observe a última coluna em cache.
No exemplo acima, há quase 1,5 Gb da memória cache em uso.
Para limpar o cache será necessário executar comandos com privilégios administrativos.
Veja como:

sudo sync
sudo sysctl -w vm.drop_caches=3
sudo sysctl -w vm.drop_caches=0

alternativamente, você pode executar os 3 comandos, em uma linha só:

sudo sync && sudo sysctl -w vm.drop_caches=3 && sudo sysctl -w vm.drop_caches=0

Saiba o que a linha de comando acima faz:

  • sync — este comando, assegura que os dados pendentes no sistema de cache sejam escoados pro disco.
  • sysctl -w vm.drop_caches = 3 — limpa o cache na memória
  • sysctl -w vm.drop_caches = 0 — reinicia o drop cache.

Veja o resultado:

             total       usado      livre    compart.  buffers     em cache
Mem:          3,6G       1,7G       1,8G       124M         0B       351M
-/+ buffers/cache:       1,4G       2,2G
Swap:          15G       156K        15G

Observe como o uso do cache foi drasticamente reduzido.
Esta linha de comando pode ser usada para limpar o cache armazenado na memória RAM.

Método alternativo

O método anterior funciona bem no Ubuntu.
Mas pode não dar resultado em outras distros. Neste caso, recomendo usar o comando sync das seguintes formas:
Para liberar pagecache, dentries e inodes, use o sync desta maneira:

sudo sync; sudo echo 3 > /proc/sys/vm/drop_caches

Para liberar dentries e inodes use-o assim:

sudo sync; sudo echo 2 > /proc/sys/vm/drop_caches

Para liberar apenas o pagecache, faça assim:

sudo sync; sudo echo 1 > /proc/sys/vm/drop_caches

Se você conhece outras maneiras para realizar o serviço, seja bem vindo para comentar sobre isso.
Não esqueça de compartilhar o post! 😉

GLOSSÁRIO

  • drop cache — versões superiores à 2.6.15 do kernel do Linux, dispõem de um mecanismo que faz o kernel eliminar o page cache e/ou o cache de inodes e o cache dentry — o que pode auxiliar significativamente na liberação de memória no sistema.
    Para fazer uso manual do /proc/sys/vm/drop_caches, basta gravar um número nele — o que pode ser feito com o comando echo.
  • page cache — também chamado de disk cache é uma cópia de parte dos dados do disco, mantida na memória RAM, pelo sistema operacional.
    O objetivo é dar acesso mais rápido a estes dados ao usuário.
  • dentries — A palavra “dentry” é uma abreviatura para “directory entry” (entrada de diretório).
    Uma dentry é nada além de um componente específico no caminho para um arquivo a partir da raiz do sistema. Sua função é prover acesso a arquivos e diretórios. Mohan, I. Chandra (2013)
  • inodes — “inode” é abreviatura para “index node“. Em um sistema de arquivos Unix, um inode é uma estrutura de dados usada para representar um objeto do sistema de arquivos – qual seja um arquivo, um diretório etc.
    Cada inode armazena os atributos e localizações dos blocos do disco referentes ao sistema de arquivos.
  • buffers — memória usada temporariamente para armazenar dados em tráfego no sistema.

Se quiser ler mais sobre o assunto:
O sistema de arquivos /proc.
http://www.commandlinefu.com/commands/view/1026/empty-the-linux-buffer-cache
http://duopetalflower.blogspot.com.br/2009/09/clearing-cache-memory-in-linux-using.html

Como montar um sistema de arquivos FTP remoto com o curlftps

É possível montar nativamente um sistema de arquivos FTP remoto, com o uso de um gerenciador de arquivos gráfico, presente em qualquer distribuição Linux — todos eles permitem acessar servidores remotos, através de diversos protocolos.
Se você precisa de mais recursos de conectividade, vou descrever, neste post, uma solução mais flexível e completa para a realização da tarefa — para quem não tem medo digitar (ou copiar e colar) alguns comandos no console.

Como instalar o curlftps no Debian ou Ubuntu

Vamos precisar instalar pelo menos um pacote de softwares, o curlftps – sistema de arquivos para acessar hosts FTP baseado em FUSE e cURL.
Comece abrindo um terminal (Ctrl+Alt+T, no Ubuntu). Agora, use o apt, para instalar:

sudo apt-get install curlftpfs

Após a instalação, vamos criar um diretório local dentro do qual vamos montar o diretório remoto via FTP:

sudo mkdir /mnt/meu_ftp

Para executar o curlftps, você precisa saber 3 coisas:

  • endereço do Servidor FTP
  • Nome de usuário;
  • Sua senha;

Substitua, no comando que segue, os valores pelos que se adequam ao seu caso:

sudo curlftpfs endereco_ftp.com /mnt/meu_ftp/ -o user=meuNomeDeUsuario:MinhaSenha -o allow_other

A opção -o allow_other serve para permitir que outros usuários na rede também tenham acesso a este diretório. Se isto não te interessa, basta remover do comando.
A esta altura você já pode acessar o seu diretório:

ls /mnt/meu_ftp/

Quer que este diretório seja montado já na inicialização do sistema ou da sessão?

Superfácil.
Abra e edite o arquivo /etc/fstab:

sudo editor /etc/fstab

Agora vá até a última linha do arquivo aberto no seu editor e insira o seguinte comando:

curlftpfs#ftp://username:password@ftp.myhost.com/ /meu_ftp fuse defaults 0 0

Captura de tela - 13-06-2013 - 20:23:31
Não esqueça de substituir

  • username, pelo seu nome de usuário no servidor;
  • password, pela senha correspondente ao usuário no servidor;
  • ftp.myhost.com, pelo endereço do seu servidor;
  • e meu_ftp pelo diretório local em que você pretende montar o diretório remoto.

Para montar tudo agora, execute o comando:

sudo mount -a

Para desmontar o diretório, a qualquer momento, use o comando:

sudo umount /mnt/meu_ftp

LEIA MAIS!

Além dos artigos sugeridos, abaixo, você pode realizar uma busca neste site, por qualquer assunto — na caixa de busca, no canto superior direito do site.