Protegendo seu PC com GNU/Linux [Parte 1/4: Básico]
Que nenhum sistema é 100% seguro, isto é fato! Ameaças sempre vão existir, independente da plataforma e neste guia, a segurança em Sistemas com GNU/Linux será o foco. Já tratamos em outros artigos (Mitos do Linux) que esta plataforma também pode ser alvo de malwares como os vírus e/ou outras ameaças. Entretanto, o que deve ser dito é que os riscos que um usuário de Linux corre são um pouco diferentes quando comparados a outros sistemas.
É muito importante que você tenha lido nosso artigo “GNU/Linux é 100% Seguro?“, para tornar este tutorial mais eficaz.
Índice
O que este guia não garante?
Em resumo, este guia trata diretrizes com um conjunto básico de regras de segurança fundamentais para um bom uso do sistema. Porém, não visa detalhar procedimentos de segurança em sistemas Linux; e sim uma tentativa de oferecer um conjunto de recomendações básicas para evitar que o usuário cometa erros comuns que atinjam a segurança do sistema.
Boas Práticas de Uso do Sistema
Basicamente, os riscos de ameaças e ataques para um usuário Linux se concentram na maneira como ele usa e mantém o seu sistema. Por exemplo, velhas dicas como “nunca clique em um link que não conhece” ou “se não tem certeza absoluta não abra” ainda são válidas independente do sistema.
1 – Fique atento aos feedbacks do sistema
Mantenha o hábito de ler os avisos e informações de feedback ao usuário. Praticamente todas as distribuições atuais, avisam e informam diariamente o usuário em diversas situações, principalmente em erros identificados e/ou falhas de softwares e novas atualizações disponíveis.
2 – Utilize dois browsers diferentes
Ao utilizar um navegador de internet (browser), só instale plugins/addons/extensões de fontes que você conheça e sejam confiáveis. Evite instalar qualquer plugin desnecessário.
Usando dois browsers diferentes, um para o trabalho / locais de alta segurança, e outro para todo o resto vai ajudar a evitar que um atacante obtenha acesso a todos os cookies salvos pelo navegador, reduzindo a possibilidade de roubo de sessão ou outros métodos de ataques.
O principal inconveniente será a quantidade de memória consumida por dois processos diferentes do navegador.
2.1 – Mozilla Firefox
É recomendado o uso do Mozilla Firefox para alta segurança, e se possível instale os seguintes add-ons:
- NoScript: previne e bloqueia execução de scripts, permitindo ao usuário que escolha quando executar ou não os scripts da página.
- Privacy Badger: bloqueia a maioria dos anúncios indesejados, principalmente com espiões digitais e evita rastreadores ocultos.
- HTTPS Everywhere: força a execução de um site utilizando o protocolo criptografado HTTPS, quando disponível. Previne ataques do tipo Man-In-The-Middle (MITM).
- Certificate Patrol: verificações e controle de autenticidade e atualização de certificados digitais dos sites acessados. Não está disponível para todas as versões.
2.2 – Chrome / Chromium
Utilize o Chrome / Chromium para todas as demais atividades, principalmente para as rotinas domésticas. Se preferir, instale no Chrome os seguintes plugins:
- ScriptSafe: Para bloquear a execução de scripts. Por padrão ele bloqueia todos os ambientes, portanto muitos sites que necessitam da permissão podem não funcionar, necessitando que libere a execução de scripts durante o seu acesso.
- Allow/Trust: Permite execução / Marca como confiável (lista branca);
- Deny/Distrust: Bloqueia execução / Marca como não confiável (lista negra).
É possível obter mais privacidade em um navegador, utilizando o recurso “modo anônimo” ou “modo privativo”, dependendo do browser. Este permite faz com que o navegador não salve informações como histórico de navegação, cookies nem dados de formulários preenchidos em sites.
3 – Não trabalhe no sistema como “root”
“Nunca” utilize o sistema logado como usuário “root”, para realizar atividades de rotina ou apenas acessar a internet.
O usuário root no GNU/Linux é o usuário que tem o acesso administrativo e total do sistema. Os usuários normais não têm este acesso por razões da segurança. Há distribuições Linux, como as baseadas em Debian (Ubuntu, Mint, etc) que permitem aos usuários comuns elevar seus “poderes” para um nível de root temporariamente através do “sudo”.
Por razões de segurança, só utilize o usuário “root” ou as permissões de “sudo” quando for realizar tarefas administrativas que você tenha total controle e conhecimento.
Para muitos, lidar com o SUDO é algo desaconselhado, portanto teremos um artigo para tratar apenas desta situação.
4 – Utilize senhas fortes
Essa já é uma recomendação bastante prática do dia-a-dia, porém ainda há muitos usuários que utilizam “123456” como sua principal senha de acesso. De acordo com a empresa de segurança Keeper, em um estudo publicado no início deste ano (2017), demonstra que a senha mais utilizado no mundo em 2016 foi “123456“.
Não fugindo desse padrão, ainda há aquelas com repetição consecutiva de números, como “7777777” ou algo parecido, além de senhas que correspondem a padrões pessoais como “data de nascimento”. Nesses casos, as dicas de segurança não costumam variar:
- evite senhas curtas e que contenham apenas um tipo de caractere;
- não escolha datas de aniversários, palavras fáceis de relacionar à sua família e nem verbetes de dicionário;
- combinações óbvias, como “123456”, é claro, devem ser descartadas o mais rápido possível;
- procure misturar caracteres especiais, letras maiúsculas e minúsculas, juntamente com números aleatórios;
- de preferência a senhas maiores que 10 caracteres.
Faça um teste com a sua senha e veja se ela é ou não segura e o grau de dificuldade que um atacante teria ao tentar desvendar por ataques de força bruta. Acesse o site “How Secure Is My Password?” e faça um teste:
- https://howsecureismypassword.net/
A segurança de uma senha é medida baseada na quantidade de tempo que essa senha leva para ser descoberta por tentativa e erro. (Fernando Amatte, especialista em segurança da empresa de consultoria Fortivs).
https://pt.vpnmentor.com/ferramentas/passwordmeter/
O link da ferramenta logo acima (“Password Meter“), do site VPN Mentor, também verifica a mesma situação testando o nível de complexidade em ataques de força-bruta para quebra da senha. A página está em português e foi uma contribuição do leitor “Jackie H”.
Segundo Amatte, um invasor com conhecimentos adequados irá estudar bastante a vítima para montar, manualmente e com o auxílio de ferramentas adequadas, uma lista de possíveis senhas. Essas, então, serão usadas para serem descobertas.
5 – Não utilize o auto login
Algumas distribuições Linux, seja durante a instalação ou através do painel de configurações, permitem ao usuário ativar o recurso de entrada automática no sistema: o auto login.
Não ative o auto login se seu computador puder ser usado por outras pessoas.
O auto login é uma característica muito interessante, mas, se você tem informações que deseja manter confidenciais, não é uma boa política que este recurso esteja ativado.
Mantenha seu Sistema Atualizado
Conforme já dito em outro guia de segurança para sistemas, manter sua plataforma sempre na versão mais recente é uma forte recomendação. Recentemente (em maio de 2017), o mundo foi abalado pelo ataque massivo de um malware da categoria Ransonware (saiba mais, clicando aqui), conhecido como WannaCry. Embora o ataque tivesse como foco os sistemas Windows, a porta de entrada para a ameaça, foi uma falha que já havia sido corrigida anteriormente, ou seja, todos os computadores infectados estavam com o sistema desatualizado.
Como citado anteriormente, a maneira como um usuário utiliza o sistema está diretamente ligada aos riscos que este enfrentará mediante a presença de uma ameaça, sendo ele (o usuário) responsável por parte da infecção.
Entenda melhor da seguinte forma: pacotes de atualização de segurança são divulgados com rapidez sempre que identificado alguma falha ao ponto de deixar disponível para que todo usuário, distribuições e fabricantes de softwares atualizem seus repositórios. Estes pacotes são os famosos “updates”.
Bugs e correções em sistemas, de uma forma geral, sempre existiram.
No fim das contas, o grande risco recai para o próprio usuário, pois independente do fluxo de descoberta/correção de uma brecha no sistema/software, o usuário, no mínimo, deve manter seu sistema atualizado, seja de forma automática ou manual.
1 – Atualizando o sistema via terminal (Debian)
1 – Abra o terminal e entre com o usuário root utilizando o comando abaixo (será necessário informar a senha):
1 |
su root |
2 – Utilize o comando abaixo para atualizar os repositórios e o sistema:
1 |
apt-get update && apt-get upgrade |
“update” atualiza o repositório do sistema com as versões mais recentes dos softwares para a distribuição incluindo pacotes de segurança (quando disponíveis e habilitados). “upgrade” efetua atualização de segurança, kernel e softwares.
2 – Atualizando o sistema via terminal (para distribuições baseadas em Debian e Ubuntu)
1 – Após abrir um terminal digite o comando abaixo (não é necessário entrar com o usuário root):
1 |
sudo apt-get update && sudo apt-get upgrade |
3 – Atualizando o sistema via terminal (para distribuições Red Hat / RHEL / CentOS / Fedora e suas variações)
Para atualizar todo o sistema, comece usando o parâmetro “check-update“, que lista as atualizações disponíveis. Utilize o comando “su root” para acessar o terminal em modo administrativo:
1 |
yum check-update |
O comando acima, irá exibir uma lista de todas as aplicações e recursos que estão desatualizados. Para confirmar a atualização completa do sistema em sua atual versão execute “yum update“. Se usado sem especificar um pacote, o “update” vai atualizar de uma vez só todos os pacotes do sistema, de forma similar ao “apt-get upgrade” do Debian:
1 |
yum update |
Se desejar, após executar o comando “yum check-update”, você pode executar o comando abaixo, para que o Yum atualize as definições internas de listas de pacotes disponíveis. Isto fará com que na próxima execução do comando “update”, o sistema não necessitará baixar as definições novamente, já que foram buscadas recentemente.
1 |
yum makecache fast -y |
Se desejar atualizar apenas um software específico utilize a estrutura “yum update nomedosoftware“. No exemplo abaixo, se desejar atualizar apenas o SAMBA digite:
1 |
yum update samba |
O comando “yum install” também pode ser usado para atualizar pacotes. A diferença entre o “install” e o “update” é que o “update” se limita a atualizar pacotes já instalados. Ao perceber que o pacote solicitado não está instalado, ele exibe um aviso e aborta a instalação. Isso reduz a possibilidade de você acabar instalando novos pacotes por engano.
Vale lembrar que em algumas versões do Fedora, o “yum” foi substituído pelo “dnf“. A utilização é basicamente a do yum, apenas usando dnf no lugar de yum na linha de comando.
Existe ainda o comando “yum upgrade“, que é um pouco mais incisivo, incluindo também pacotes marcados como obsoletos (que não existem mais na versão atual). Ele é útil em casos em que é necessário atualizar uma versão antiga do sistema:
1 |
yum upgrade |
Rotinas de Backup
Faça cópias de segurança (backup) periodicamente dos seus arquivos.
Ter um HD Externo é uma ótima dica, onde se pode fazer backups completos sem ter que se preocupar com coisas como acesso a internet.
Não somente enviar dados para o armazenamento secundário, mas se possível armazene-os criptografados usando uma ferramenta de backup que cria backups seguros.
Uma boa aplicação para se utilizar em backups no GNU/Linux é o Duplicaty. Para saber mais sobre esta maravilhosa ferramenta, separei um artigo do blog “Edivaldo Brito” com um guia prático para instalar a aplicação em seu sistema:
Outra alternativa é o Deja Dup Backup. Para saber mais, confira o artigo abaixo do blog “Diolinux“:
Além disso, há outras formas também utilizadas para realizar suas cópias de segurança utilizando os drives virtuais, através do Cloud Computing (Computação em Nuvem).
Existem diversos serviços online que permitem o armazenamento de arquivos em nuvem, como o Google Drive e Dropbox, todos contam com planos gratuitos e pagos. Todos permitem acessar os dados online, sem precisar de mídia física, além da possibilidade de sincronização automática com algum diretório localizado em seu PC. Fazer backups usando estes serviços permite não só manter os arquivos salvos com segurança, como também ter maior facilidade na hora de acessá-los em qualquer outro computador ou dispositivo móvel como tablets e smartphones.
Confira nosso artigo “O que é um Backup?” para conhecer mais sobre este procedimento e por que ele é tão importante para sua informação.
1 – Rotinas de backup usando o Crontab
Alternativamente você pode utilizar o próprio crontab do Linux para automatizar uma cópia de segurança, para isto, siga os passos a seguir e customize conforme sua necessidade.
Se quiser conhecer melhor os serviços cron e crontab para automatizar tarefas, acesse nosso artigo “Automatizando tarefas no GNU/Linux com cron e crontab“.
Digite o comando abaixo (caso seja perguntado por um editor de textos, escolha o de sua preferência), em seguida se não houver já uma lista previamente configurada, podes limpar todas as linhas:
1 |
crontab -e |
Agora, vamos criar a seguinte rotina de backup: Cópia de segurança de todos os arquivos do diretório pessoal do usuário admUser. A cópia deverá ser feita semanalmente, no último dia da semana, sempre às 17h.
1 |
0 17 * * 7 tar -zcf /var/backups/admUser.tgz /home/admUser >> /var/log/log_crontab.log 2>&1 |
O diretório “/var/backups/” é um diretório exemplo. Em recomendação de segurança, opte por armazenar seus backups (no caso o arquivo admUser.tgz) sempre em locais remotos, externos às pastas locais do PC, como um HD Externo ou um diretório em outro servidor, por exemplo.
Conclusão
Os sistemas GNU/Linux, quando comparados a outros são em diversos aspectos, mais robustos. Contudo, não são impenetráveis!
Medidas de segurança são extremamente importantes para que qualquer sistema esteja mais seguro e imune a quaisquer falhas de segurança.
Não deixe de lado a segurança do sistema só porque instalou o Linux.
Este guia abordou algumas dicas e conceitos básicos de segurança para utilização do sistema. Nas próximas etapas serão abordados softwares para proteção contra malwares além de permissões de acesso dos usuários e grupos. Não deixe de acompanhar!
Viu algum erro ou gostaria de adicionar alguma sugestão a essa ou outra matéria? Colabore, clique aqui.
Fontes
Pentester, Especialista em Segurança de Redes e Testes de Invasão, Programador, Consultor e Professor de T.I.. Geek Inveterado, Apaixonado por Segurança da Informação e Louco por GNU/Linux. Dedica grande parte do seu tempo para criar soluções que ajudem dezenas de milhares de pessoas com dicas e artigos em Tecnologia e Segurança da Informação. Possui algumas Certificações em Ethical Hacking, Cabling System, Security+, SIEM Netwitness, SIEM SNYPR Securonix e Proficiência em Soluções de Vulnerability Management da Tenable.