Linux Hardenining: dicas para proteger sua distribuição e torná-la mais segura

Endurecendo Linux dois smokings, um indefeso e um em armadura

Muitos artigos foram publicados em Distribuições Linux mais seguras, como TAILS (que garante sua privacidade e anonimato na web), Whonix (um Linux para paranóico de segurança) e outras distros voltadas para a segurança. Mas é claro que nem todos os usuários desejam usar essas distribuições. É por isso que neste artigo vamos dar uma série de recomendações para o «Proteção do Linux«, Ou seja, torne a sua distribuição (seja ela qual for) mais segura.

Red Hat, SUSE, CentOS, openSUSE, Ubuntu, Debian, Arch Linux, Linux Mint, ... que diferença isso faz. Qualquer distribuição pode ser segura como o mais seguro se você o conhece a fundo e sabe como se proteger dos perigos que o ameaçam. E, para isso, você pode atuar em vários níveis, não apenas no nível do software, mas também no nível do hardware.

Coelhos de segurança genéricos:

Circuito de segurança de hardware com cadeado

Nesta seção, darei a você alguns dicas muito básicas e simples que não precisam de conhecimentos de informática para compreendê-los, são apenas senso comum mas que às vezes não realizamos por descuido ou descaso:

  • Não faça upload de dados pessoais ou confidenciais para a nuvem. A nuvem, independentemente de ser gratuita ou não e mais ou menos segura, é uma boa ferramenta para descartar seus dados onde quer que você vá. Mas tente não fazer upload de dados que você não deseja "compartilhar" com os espectadores. Este tipo de dados mais sensíveis deve ser transportado em um meio mais pessoal, como um cartão SD ou pendrive.
  • Se você usa um computador para acessar a Internet e trabalhar com dados importantes, por exemplo, imagine que você entrou na mania do BYOD e levou alguns dados de negócios para casa. Bem, neste tipo de circunstâncias, não trabalhe online, tente se desconectar (por que você deseja se conectar para trabalhar, por exemplo, com o LibreOffice editando um texto?). Um computador desconectado é o mais seguro, lembre-se disso.
  • Relacionado com o acima, não deixe dados importantes no disco rígido local ao trabalhar online. Recomendo que você tenha um disco rígido externo ou outro tipo de memória (cartões de memória, pen drives, etc.) em que você tenha essas informações. Assim, colocaremos uma barreira entre nosso equipamento conectado e aquela memória "não conectada" onde estão os dados importantes.
  • Faça cópias de segurança dos dados que você considera interessantes ou não quer perder. Quando eles usam vulnerabilidades para entrar em seu computador e escalar privilégios, o invasor será capaz de apagar ou manipular quaisquer dados sem impedimentos. É por isso que é melhor ter um backup.
  • Não deixe dados sobre seus pontos fracos em fóruns ou comentários nas redes. Se por exemplo você tem problemas de segurança em seu computador e ele tem portas abertas que deseja fechar, não deixe seu problema em um fórum de ajuda, pois pode ser usado contra você. Alguém com más intenções pode usar essas informações para procurar sua vítima perfeita. É melhor que você encontre um técnico de confiança para ajudá-lo a resolvê-los. Também é comum que as empresas coloquem anúncios na Internet como "Estou procurando um especialista em segurança de TI" ou "É necessário pessoal para o departamento de segurança". Isso pode indicar uma possível fraqueza na referida empresa e um cibercriminoso pode usar esses tipos de páginas para procurar vítimas fáceis ... Também não é bom para você deixar informações sobre o sistema que você usa e versões, alguém pode usar exploits para explorar vulnerabilidades dessa versão. Resumindo, quanto mais o invasor desconhece você, mais difícil será para ele atacar. Lembre-se de que os invasores geralmente realizam um processo anterior ao ataque denominado “coleta de informações” e consiste em coletar informações sobre a vítima que podem ser usadas contra eles.
  • Mantenha seu equipamento atualizado Com as atualizações e patches mais recentes, lembre-se de que, em muitas ocasiões, eles não apenas melhoram as funcionalidades, mas também corrigem bugs e vulnerabilidades para que não sejam explorados.
  • Use senhas fortes. Nunca coloque nomes que estão no dicionário ou senhas como 12345, pois com ataques de dicionário eles podem ser removidos rapidamente. Além disso, não deixe as senhas como padrão, pois são facilmente detectáveis. Também não use datas de nascimento, nomes de parentes, animais de estimação ou sobre seus gostos. Esses tipos de senhas podem ser facilmente adivinhados pela engenharia social. É melhor usar uma senha longa com números, letras maiúsculas e minúsculas e símbolos. Não use senhas mestras para tudo, ou seja, se você tem uma conta de email e uma sessão de sistema operacional, não use as mesmas para ambos. Isso é algo que no Windows 8 eles bagunçaram até o fim, já que a senha para fazer login é a mesma da sua conta do Hotmail / Outlook. Uma senha segura é do tipo: "auite3YUQK && w-". Podia ser conseguido pela força bruta, mas o tempo dedicado a isso não vale a pena ...
  • Não instale pacotes de fontes desconhecidas e se possível. Use os pacotes de código-fonte do site oficial do programa que deseja instalar. Se os pacotes forem questionáveis, recomendo que você use um ambiente sandbox como o Glimpse. O que você vai conseguir é que todos os aplicativos que você instalar no Glimpse possam rodar normalmente, mas ao tentar ler ou escrever dados, isso só se reflete no ambiente sandbox, isolando seu sistema de problemas.
  • uso privilégios de sistema o mínimo possível. E quando você precisa de privilégios para uma tarefa, é recomendável usar "sudo" de preferência antes de "su".

Outras dicas um pouco mais técnicas:

Segurança informática, cadeado no teclado

Além do conselho visto na seção anterior, também é altamente recomendável que você siga as etapas a seguir para tornar sua distribuição ainda mais segura. Lembre-se de que sua distribuição pode ser tão seguro quanto você quiserQuero dizer, quanto mais tempo você gasta configurando e protegendo, melhor.

Suítes de segurança em Linux e Firewall / UTM:

uso SELinux ou AppArmor para fortalecer seu Linux. Esses sistemas são um tanto complexos, mas você pode ver manuais que irão ajudá-lo muito. O AppArmor pode restringir até mesmo aplicativos sensíveis a explorações e outras ações de processo indesejadas. O AppArmor foi incluído no kernel do Linux a partir da versão 2.6.36. Seu arquivo de configuração está armazenado em /etc/apparmor.d

Feche todas as portas que você não usa freqüentemente. Seria interessante mesmo se você tivesse um Firewall físico, isso é o melhor. Outra opção é dedicar um equipamento antigo ou não utilizado para implementar um UTM ou Firewall para sua rede doméstica (você pode usar distribuições como IPCop, m0n0wall, ...). Você também pode configurar o iptables para filtrar o que você não quer. Para fechá-los, você pode usar "iptables / netfilter" que integra o próprio kernel do Linux. Recomendo que você consulte os manuais do netfilter e do iptables, pois são bastante complexos e não poderiam ser explicados em um artigo. Você pode ver as portas abertas digitando no terminal:

netstat -nap

Proteção física do nosso equipamento:

Você também pode proteger fisicamente o seu computador caso não confie em alguém ao seu redor ou caso tenha que deixá-lo em algum lugar ao alcance de outras pessoas. Para isso, você pode desativar a inicialização de outros meios que não o seu disco rígido no BIOS / UEFI e senha protegem o BIOS / UEFI para que não possam modificá-lo sem ele. Isso impedirá que alguém pegue um USB inicializável ou um disco rígido externo com um sistema operacional instalado e seja capaz de acessar seus dados a partir dele, sem precisar fazer login em sua distro. Para protegê-lo, acesse o BIOS / UEFI, na seção Segurança você pode adicionar a senha.

Você pode fazer o mesmo com GRUB, protegendo com senha:

grub-mkpasswd-pbkdf2

Introduzir o senha para GRUB você deseja e será codificado em SHA512. Em seguida, copie a senha criptografada (aquela que aparece em “Seu PBKDF2 é”) para uso posterior:

sudo nano /boot/grub/grub.cfg

Crie um usuário no início e coloque o senha criptografada. Por exemplo, se a senha copiada anteriormente era "grub.pbkdf2.sha512.10000.58AA8513IEH723":

set superusers=”isaac”
password_pbkdf2 isaac grub.pbkdf2.sha512.10000.58AA8513IEH723

E salve as alterações ...

Menos software = mais segurança:

Minimize o número de pacotes instalados. Instale apenas os necessários e, se for parar de usar um, é melhor desinstalá-lo. Quanto menos software você tiver, menos vulnerabilidades. Lembre se. O mesmo aconselho com os serviços ou daemons de certos programas que são executados quando o sistema é iniciado. Se você não os usar, coloque-os no modo "desligado".

Exclua informações com segurança:

Quando você apaga informações de um disco, cartão de memória ou partição, ou simplesmente um arquivo ou diretório, faça-o com segurança. Mesmo se você achar que o excluiu, ele pode ser facilmente recuperado. Da mesma forma que fisicamente não adianta jogar um documento com dados pessoais no lixo, porque alguém pode tirar do contêiner e ver, então você tem que destruir o papel, o mesmo acontece na informática. Por exemplo, você pode preencher a memória com dados aleatórios ou nulos para substituir os dados que não deseja expor. Para isso, você pode usar (para que funcione, você deve executá-lo com privilégios e substituir / dev / sdax pelo dispositivo ou partição em que deseja atuar no seu caso ...)

dd if=/dev/zeo of=/dev/sdax bs=1M
dd if=/dev/unrandom of=/dev/sdax bs=1M

Se o que você quer é exclua um arquivo específico para sempre, você pode usar "destruir". Por exemplo, imagine que você deseja excluir um arquivo chamado passwords.txt no qual você tem as senhas do sistema anotadas. Podemos usar fragmentar e substituir, por exemplo, 26 vezes acima para garantir que não possa ser recuperado após a exclusão:

shred -u -z -n 26 contraseñas.txt

Existem ferramentas como HardWipe, Eraser ou Secure Delete que você pode instalar "Limpar" (excluir permanentemente) memórias, Partições SWAP, RAM, etc.

Contas e senhas de usuário:

Melhorar o sistema de senhas com ferramentas como S / KEY ou SecurID para criar um esquema de senha dinâmico. Certifique-se de que não haja senha criptografada no diretório / etc / passwd. Temos que usar melhor o / etc / shadow. Para isso você pode usar "pwconv" e "grpconv" para criar novos usuários e grupos, mas com uma senha oculta. Outra coisa interessante é editar o arquivo / etc / default / passwd para expirar suas senhas e forçá-lo a renová-las periodicamente. Portanto, se eles obtiverem uma senha, ela não durará para sempre, pois você a mudará com frequência. Com o arquivo /etc/login.defs, você também pode fortalecer o sistema de senhas. Edite-a procurando as entradas PASS_MAX_DAYS e PASS_MIN_DAYS para especificar os dias mínimo e máximo que uma senha pode durar antes de expirar. PASS_WARN_AGE exibe uma mensagem para avisar que a senha irá expirar em X dias em breve. Aconselho a consultar um manual sobre este arquivo, pois as entradas são muito numerosas.

Os contas que não estão sendo usadas e eles estão presentes em / etc / passwd, eles devem ter a variável Shell / bin / false. Se for outro, mude para este. Dessa forma, eles não podem ser usados ​​para obter uma concha. Também é interessante modificar a variável PATH em nosso terminal para que o diretório atual "." Não apareça. Ou seja, ele deve mudar de “./user/local/sbin/:/usr/local/bin:/usr/bin:/bin” para “/ user / local / sbin /: / usr / local / bin: / usr / bin: / bin ”.

Seria recomendado que você use Kerberos como método de autenticação de rede.

PAM (Módulo de Autenticação Pluggable) é algo como o Microsoft Active Directory. Ele fornece um esquema de autenticação comum e flexível com vantagens claras. Você pode dar uma olhada no diretório /etc/pam.d/ e pesquisar por informações na web. É bastante extenso para explicar aqui ...

Fique de olho nos privilégios dos diferentes diretórios. Por exemplo, / root deve pertencer ao usuário root e ao grupo root, com permissões "drwx - - - - - -". Você pode encontrar informações na web sobre quais permissões cada diretório na árvore de diretórios do Linux deve ter. Uma configuração diferente pode ser perigosa.

Criptografe seus dados:

Criptografa o conteúdo de um diretório ou partição onde você tem informações relevantes. Para isso, você pode usar LUKS ou com eCryptFS. Por exemplo, imagine que queremos criptografar / home de um usuário chamado isaac:

sudo apt-get install ecryptfs-utils
ecryptfs-setup-private
ecryptfs-migrate-home -u isaac

Após o acima, indique a senha ou senha quando solicitado ...

Para criar um diretório privadoPor exemplo, chamado de "privado", também podemos usar o eCryptFS. Nesse diretório, podemos colocar o que queremos criptografar para removê-lo da vista de outras pessoas:

mkdir /home/isaac/privado
chmod 700 /home/isaac/privado
mount -t ecryptfs /home/isaa/privado

Ele nos fará perguntas sobre diferentes parâmetros. Primeiro, vamos escolher entre as senhas, OpenSSL, ... e devemos escolher 1, ou seja, "passphrase". Em seguida, inserimos a senha que queremos verificar duas vezes. Depois disso, escolhemos o tipo de criptografia que queremos (AES, Blowfish, DES3, CAST, ...). Eu escolheria o primeiro, AES, e então introduziríamos o tipo de byte da chave (16, 32 ou 64). E finalmente respondemos a última pergunta com um "sim". Agora você pode montar e desmontar este diretório para usá-lo.

Se você só quer criptografar arquivos específicos, você pode usar scrypt ou PGP. Por exemplo, um arquivo chamado passwords.txt, você pode usar os seguintes comandos para criptografar e descriptografar, respectivamente (em ambos os casos, ele solicitará uma senha):

scrypt <contraseñas.txt>contraseñas.crypt
scrypt <contraseñas.crypt>contraseñas.txt

Verificação em duas etapas com o Google Authenticator:

Google AUthenticator no terminal Ubutnu

Adicionar verificação em duas etapas em seu sistema. Assim, mesmo que sua senha seja roubada, eles não terão acesso ao seu sistema. Por exemplo, para o Ubuntu e seu ambiente Unity, podemos usar LightDM, mas os princípios podem ser exportados para outras distros. Você vai precisar de um tablet ou smartphone para isso, nele você deve instalar o Google Authenticator da Play Store. Então, no PC, a primeira coisa é instalar o PAM do Google Authenticator e inicializá-lo:

sudo apt-get install libpam-google-authenticator
google-authenticator

Quando você nos pergunta se as chaves de verificação serão baseadas no tempo, respondemos afirmativamente com um y. Agora ele nos mostra um código QR para ser reconhecido com Google Authenticator do smartphone, outra opção é inserir a chave secreta diretamente do aplicativo (é a que apareceu no PC como “Seu novo segredo é:”). E nos dará uma série de códigos caso não carreguemos o smartphone conosco e que seria bom tê-los em mente no caso de voar. E continuamos respondendo com você de acordo com nossas preferências.

Agora abrimos (com nano, gedit ou seu editor de texto favorito) o arquivo de configuração com:

sudo gedit /etc/pam.d/lightdm

E adicionamos a linha:

auth required pam_google_authenticator.so nullok

Nós salvamos e da próxima vez que você fizer login, ele nos solicitará o chave de verificação que nosso celular irá gerar para nós.

Se um dia você deseja remover a verificação em duas etapas?, você só precisa excluir a linha "auth required pam_google_authenticator.so nullok" do arquivo /etc/pam.d/lightdm
Lembre-se de que o bom senso e a cautela são os melhores aliados. Um ambiente GNU / Linux é seguro, mas qualquer computador conectado a uma rede não é mais seguro, não importa quão bom seja o sistema operacional que você usa. Se você tiver alguma dúvida, problema ou sugestão, pode deixar o seu comentário. Espero que ajude…


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Nuria dito

    Olá bom, olha eu comento; Instalei o google-authenticator em um Raspbian sem problemas e o aplicativo móvel se registra bem e me fornece o código, mas ao reiniciar o raspberry e reiniciar o sistema ele não me pede para digitar o código de autenticação dupla Só aparece para mim para inserir o nome de usuário e a senha.

    Muito obrigado. Uma saudação.