| Protegendo o Servidor Linux |
|
|
|
| Escrito por Jeffrey Orloff | ||||||||||||||||||||
| Dom, 06 de Março de 2011 00:42 | ||||||||||||||||||||
|
Resumo: Servidores—utilizados por testes ou produção—são os alvos principais dos hackers. Ao executar as etapas apropriadas, você pode tornar um servidor vulnerável em um servidor protegido e ajudar a impedir hackers externos. Aprenda como proteger sessões SSH, configurar regras de firewall e configurar a detecção de intrusão para alertá-lo sobre qualquer possível ataque em seu servidor GNU/Linux® . Assim que tiver obtido uma base sólida sobre os conceitos básicos de segurança do seu servidor, você pode criar com base neste conhecimento para proteger ainda mais seus sistemas. Para entender os conceitos básicos de proteção de um servidor executando o GNU/Linux como o sistema operacional, você precisa estar atento ao fato de que embora muitos conceitos principais de segurança se apliquem ao sistema operacional do desktop e ao sistema operacional do servidor, as maneiras pelas quais eles são protegidos são completamente diferentes. Proteger um servidor é muito diferente de proteger um computador desktop por uma variedade de motivos. Por padrão, um sistema operacional do desktop é instalado para fornecer ao usuário um ambiente que pode ser executado automaticamente. Os sistemas operacionais de desktop são vendidos com a premissa de que requerem configuração mínima e vêm carregados com o máximo de aplicativos possível para que o usuário esteja ativo e em execução. De modo inverso, um sistema operacional do servidor deve seguir o Princípio do Privilégio Mínimo, que determina que ele deve ter apenas os serviços, o software e as permissões necessárias para executar as tarefas pelas quais é responsável.
Revisitando as Leis Imutáveis da Segurança Em novembro de 2000, Scott Culp da Microsoft redigiu o que ele chamou de 10 Leis Imutáveis da Segurança (consulteRecursos para obter um link). Há duas versões destas leis: uma para usuários e uma para administradores de sistema. Ao longo dos anos, estas leis têm sido revisadas e desprezadas por pessoas no segmento de mercado de segurança. Apesar de algumas críticas negativas, as 10 leis para administradores podem servir como uma base excelente para proteger qualquer sistema se aplicadas corretamente. Primeiro, a seguinte lei é aplicável a práticas gerais de segurança: A segurança só funciona se a maneira segura também for a maneira fácil. Esta é a lei mais importante para qualquer administrador do sistema. Se uma política de segurança é tão firme que as pessoas não conseguem realizar suas tarefas, elas encontrarão maneiras de evitar a segurança estabelecida, algumas vezes criando uma maior vulnerabilidade do que a política que foi estabelecida para evitar. O melhor exemplo está relacionado às senhas. Senhas fortes devem fazer parte de qualquer política de segurança, mas algumas vezes, as políticas vão longe demais. Exigir que os usuários se lembrem de uma senha que tenha 15 caracteres e que consista em letras maiúsculas, letras minúsculas, números e símbolos é pedir que uma alta porcentagem de usuários escreva sua senha em um post-it e coloque-o em seu monitor. Quatro das leis de Culp aplicam-se diretamente ao material coberto neste tutorial:
Planejar a Instalação do Servidor A primeira etapa na proteção de um servidor GNU/Linux é determinar a função do servidor. Para que você utilizar o seu servidor determina quais serviços precisam ser instalados no servidor. Por exemplo, se o servidor em questão é utilizado como um servidor da Web, você deve instalar serviços LAMP. Por outro lado, se o servidor for utilizado para serviços de diretório, o Linux Apache MySQL PHP/Perl/Python (LAMP) não tem motivos para ser instalado nesta máquina. Os únicos aplicativos e serviços que devem ter permissão para executar em seus servidores são aqueles que são necessários para a tarefa que o servidor deve executar. Nenhum item extra deve ser instalado, por dois motivos:
Entre outras coisas, você deve decidir se vai ou não instalar uma interface gráfica com o usuário. Por anos, os administradores do GNU/Linux mantiveram certo orgulho por poderem administrar suas redes e servidores completamente a partir de uma interface da linha de comandos. Mas, recentemente, alguns administradores começaram a administrar seus servidores GNU/Linux através de uma GUI. A opção de instalar uma GUI como o Sistema Window X causou debates em diversos fóruns. De um lado, os defensores da interface da linha de comandos alegam o fato de que a GUI pode sobrecarregar os recursos de um sistema e, como ela é um serviço extra que não é necessário, fornece aos hackers vulnerabilidades adicionais. Este lado também destaca que os comandos podem ser digitados rapidamente através da linha de comandos, sem a necessidade de procurar em menus e pastas ao executar uma tarefa. Do outro lado do debate, aqueles que apóiam um ambiente de GUI argumentam que o processo da GUI pode ser encerrado quando não estiver mais em uso para economizar recursos e evitar que qualquer vulnerabilidade seja explorada. Eles também argumentam que a GUI torna determinadas tarefas, tais como trabalhar com um banco de dados, muito mais fáceis para o administrador. Instalar uma GUI em seu servidor é uma opção totalmente pessoal. Tudo neste tutorial é feito através da linha de comandos; mas se você desejar instalar uma GUI, as seguintes instruções mostram como instalar o Gnome com uma GUI de desktop:
Protegendo o SSH O SSH fornece a o usuário uma conexão com um computador remoto. Como uma substituição ao Remote Shell (RSH) e ao Telnet, o SSH é comumente utilizado pelos administradores de sistema para efetuar login em seus servidores a partir de um computador remoto para executar tarefas de manutenção e administração. Embora o SSH forneça um nível muito maior de segurança do que os protocolos que substituiu, você pode fazer algumas coisas para torná-lo mais seguro.
Um dos métodos mais comuns para proteger o SSH é alterar o número da porta que é utilizada para acessá-lo. A teoria é que um hacker utilizando a porta padrão ou TCP 22 para estabelecer uma conexão terá o acesso negado porque o serviço está em execução em uma porta segura. Este método de proteção do SSH é o centro de vários debates em fóruns. Alterar o número da porta não evita que a porta do SSH seja localizada por um hacker com um scanner de porta que tenha tempo de varrer todas as portas em seu servidor; e por este motivo, muitos administradores de sistema não se dão ao trabalho de alterar a porta. Mas esta abordagem evita que script kiddies (hackers amadores) ataquem o SSH sem ferramentas automatizadas dedicadas a localizar portas TCP 22 abertas e hackers impacientes podem cansar de varrer seu servidor se não localizarem o SSH em execução no primeiro intervalo de portas que varrerem. Para alterar o endereço de porta do SSH, primeiro você precisa instalar o SSH em seu servidor. Digite
Pressione Enter e digite sua senha. Este comando instala o openssh para uso para logins remotos em seu servidor. Assim que você tiver um arquivo SSH para configurar, deve copiar o arquivo no caso de algo acontecer durante a configuração. Sempre é possível reverter para o original. Siga estas etapas:
Agora, você precisa alterar as permissões para o arquivo sshd_config de forma que possa alterá-lo:
Deixe o emacs ou o vi aberto enquanto faz mais alterações neste arquivo.
O usuário root está desativado em todas as distribuições do Ubuntu, mas é possível ativar esta conta. Se você estiver utilizando o SSH, não deve conceder permissão à conta root para efetuar login no servidor remotamente no caso de você ou um hacker ter ativado esta conta. Enquanto estiver com o editor aberto, role até a linha onde se lê
Outra etapa que você executar para proteger o SSH em seu servidor é permitir que apenas determinados usuários utilizem este serviço. Este processo é conhecido como lista de desbloqueio. Para criar uma lista de desbloqueio, primeiro você precisa dos nomes de usuário das pessoas que terão permissão para utilizar o SSH para acessar o servidor remotamente. Então, siga estas etapas
Há muitas outras maneiras de proteger ainda mais o SSH que são destinadas a usuários mais avançados. Quando você tiver adquirido mais experiência trabalhando com o GNU/Linux e o SSH, deve considerar executar estas etapas.
Criar Regras de Firewall Você pode negar acesso ao seu servidor através do seu firewall. O Servidor Ubuntu utiliza um firewall denominado Uncomplicated FireWall (UFW), que é na verdade uma ferramenta de gerenciamento para iptables. Os pacotes de rede de filtros iptables baseados em uma série de regras criadas pelo administrador do sistema. Os iptables podem ser complicados para iniciantes, portanto, o UFW torna-os mais simples. Utilizar o UFW pode ajudá-lo a proteger seu servidor; mas se você estiver realmente interessado em segurança de servidores, aprender como criar regras para iptables permitirá que você aprimore a segurança de um servidor. Para começar a utilizar o UFW, você precisa instalá-lo. Siga estas etapas:
Você se lembra que alterou a porta do SSH anteriormente? Para abrir a porta através do UFW criando uma regra, digite o seguinte na linha de comandos:
Este comando permite acessar sobre a porta 65000 e permite que o SSH trafegue no seu servidor. Para negar o acesso sobre esta porta, utilize o seguinte:
Para permitir ou negar tráfego, especificamente na porta TCP 65000, utilize o seguinte comando:
Você também pode permitir ou negar o tráfego de acordo com o protocolo que ele utiliza. Por exemplo, para bloquear todo o tráfego do HTTP, também é possível utilizar este comando:
Também é possível criar regras mais complicadas para negar ou permitir um serviço baseado em seu endereço IP. Por exemplo, se o seu desktop tinha o endereço IP 192.168.1.30 e seu servidor tinha um endereço IP 192.168.1.5, poderia possibilitar apenas ao endereço IP do seu computador a habilidade de estabelecer uma conexão SSH:
Para verificar quais regras estão sendo executadas atualmente com o UFW, utilize
Será apresentada uma lista de regras que você já criou para o seu firewall. Se você visualizar uma regra que deseja excluir, digite
Monitorar seu Sistema Há um ditado nos círculos de segurança em computadores de que a única forma de realmente proteger um computador é desconectá-lo completamente e trancá-lo em uma caixa. Não tão simples, mas a mensagem subjacente é que se um hacker realmente quiser invadir um sistema, é provável que ele encontrará uma maneira. Após executar as etapas em direção à prevenção da intrusão, você precisa configurar um sistema de monitoramento para detectar se um ataque contra o seu servidor foi estabelecido. Em seguida, se você for alertado sobre um ataque, é melhor preparar-se para lidar com ele antecipadamente. As seguintes seções percorrem as etapas da instalação e da configuração de dois programas que ajudam a detectar intrusões. O Tripwire o alerta sobre atividades não-autorizadas que ocorrem com arquivos de sistema no seu servidor e o Logwatch é uma ferramenta que pode ser utilizada para criar relatórios para você analisar.
O Tripwire é um programa que configura uma linha de base de binários normais do sistema para o seu computador. Ele, então, relata quaisquer anomalias junto a esta linha de base através de um alerta por e-mail ou através de um log. Essencialmente, se os binários do sistema tiverem sido alterados, você saberá sobre isso. Se uma instalação legítima causar uma alteração dessas, não há nenhum problema. Mas se os binários forem alterados como um resultado de um cavalo de Tróia ou rootkit sendo instalado, tem um ponto inicial a partir do qual pesquisar o ataque e corrigir os problemas. Para instalar e configurar o Tripwire através da linha de comando, siga estas etapas:
Você pode executar a inicialização do banco de dados digitando
Pressione Enter. Você também será solicitado a fornecer a passphrase local criada durante a instalação do Tripwire. Forneça a passphrase e, novamente, pressione Enter. Agora, o Tripwire criou a captura instantânea da linha de base do seu sistema de arquivos. Esta linha de base será utilizada para verificar se há alterações nos arquivos críticos. Se uma alteração deste tipo for detectada, um alerta será enviado. É possível executar uma verificação de integridade a qualquer momento seguindo estas etapas:
À medida que suas habilidades se desenvolvem, você pode consultar o twadmin para aprimorar ainda mais os recursos do Tripwire. Também é possível configurar uma tarefa cron para enviar a você uma cópia por e-mail deste relatório a cada dia ou configurar o Tripwire para enviar a você um e-mail se uma anomalia for relatada.
O Logwatch é uma excelente ferramenta para monitorar os arquivos de log do seu sistema. Este programa requer um servidor de e-mail em funcionamento em sua rede para enviar os logs por e-mail para você. Se desejar alterar o arquivo .conf, você precisa abrir /usr/share/logwatch/default.conf/logwatch.conf e consultar a linha onde se lê Você pode instalar o Logwatch com este comando:
Para enviar os logs por e-mail para você mesmo, digite
Pressionar Enter envia uma cópia do relatório para o endereço de e-mail especificado. Se você não estiver executando um servidor de e-mail em sua rede mas ainda desejar visualizar um relatório do Logwatch, o seguinte comando o fornece na tela:
A saída possui várias telas; pressione Shift-Page Up para mover para o início do relatório.
Usuários e Grupos o GNU/Linux trata grupos e permissões de maneira diferente do sistema operacional Microsoft® Windows® . Você pode organizar usuários em grupos para facilitar a administração, mas também é necessário fornecer acesso a arquivos e pastas através de permissões. Nenhum "usuário avançado" geral fornece aos usuários acesso a praticamente tudo em um computador ou rede. O sistema GNU/Linux foi projetado para ser mais seguro; ele usa um sistema 3x3 para concessão de permissões:
As permissões de usuário são concedidas primeiro: por exemplo, r/w/x significa que o usuário pode ler, gravar e executar o arquivo ou os arquivos na pasta. É possível aplicar o valor numérico a cada permissão. Deste modo, se um usuário pode ler, gravar e executar, você inclui os números correspondentes 4, 2 e 1, para um total de 7. A seguir, vêm as permissões de grupo. Por exemplo, os outros membros do grupo do usuário podem ter a capacidade de ler e executar, mas não de gravar. A inclusão dos valores numéricos correspondentes representa 5. Aqueles em outras categorias podem apenas ler os arquivos, portanto, seu valor numérico é 4. Deste modo, as permissões para o arquivo ou pasta são 754.
Quando as permissões são configuradas como 777, todos têm a habilidade de ler, gravar e executar. O comando
Criptografia Criptografia é o processo de obter dados armazenados em um computador e misturá-los de uma forma que os torne ilegíveis por qualquer pessoa que não possua a chave para recriar os dados em seu formato original. Os dados que foram criptografados podem ser armazenados no computador local, armazenados em um compartilhamento de rede ou transmitido para outros usuários e computadores. É possível criptografar um disco rígido inteiro ou as partições do disco. Isto deve ser feito na instalação. Também é possível proteger dados através da criptografia criando um diretório e criptografando-o. Por exemplo, se você tiver configurado um servidor de arquivos, pode desejar criptografar um diretório que contenha informações sensíveis. Antes de continuar com a proteção dos seus dados, é necessário instalar eCryptfs a partir dos repositórios do Ubuntu digitando
Pressione Enter e digite sua senha root.
A próxima etapa é criar um diretório para criptografar. O exemplo utiliza um diretório denominado secure, mas você pode nomeá-lo como desejar. Siga estas etapas:
Etapas Adicionais de Segurança Agora você estabeleceu uma base sólida para proteger seu servidor, deve executar algumas poucas etapas para aprimorar ainda mais as medidas de segurança já definidas. Estas últimas dicas apresentam alguns dos pontos extra a ter em mente ao proteger o seu servidor GNU/Linux.
Um servidor de produção nunca deve ter atualizações e correções instaladas sem antes terem sido testadas em um servidor de teste ou de desenvolvimento. Como uma GUI pode não estar instalada em seu servidor, você precisa fazer o download de quaisquer atualizações e correções através do terminal. Quando estiver pronto para instalar as atualizações, insira o comando
Muitos administradores de sistema descobrem que a instalação de software antivírus em um servidor executando o GNU/Linux é um desperdício de recursos porque nenhum vírus solto por aí pode atacar o sistema operacional GNU/Linux. Mas qualquer administrador do GNU/Linux que esteja executando o SAMBA para compartilhar arquivos Windows deve definitivamente garantir que um scanner antivírus como o ClamAV esteja instalado para garantir que arquivos infectados não se espalhem pelo sistema. Embora os vírus não representem mais do que uma ameaça ao servidor GNU/Linux, os rootkits podem lhe causar uma dor de cabeça. Rootkits são ferramentas que os hackers utilizam para obter permissões de nível-root a um sistema, capturar senhas, interceptar tráfego e criar outras vulnerabilidades. Para combater esta ameaça, você deve instalar ferramentas como RKHunter e chkrootkit no servidor (consulte instruções no tutorial " Protegendo o Desktop do Linux").
Servidores que hospedam gigabytes de informações, Web sites corporativos ou catálogos para serviços de diretório precisam ter uma estratégia de backup e recuperação estabelecida. A maioria das redes corporativas pode proporcionar redundância através de vários servidores e redes menores podem ficar despreocupadas através da virtualização e do software de backup e recuperação. Se você está planejando executar o software de backup e recuperação a partir dos repositórios do Ubuntu, o Sbackup é uma excelente ferramenta porque ele pode ser executado a partir de uma linha de comandos ou de uma GUI. Ao fazer backup dos dados do servidor em uma rede corporativa, é importante que os arquivos de backup sejam armazenados fora do servidor. Dispositivos de armazenamento portáteis fornecem grandes quantidades de espaço de armazenamento a preços extremamente razoáveis e são excelentes opções para o armazenamento de arquivos e diretórios de backup.
Como o administrador do sistema, você precisa configurar senhas para a conta root do seu servidor e possivelmente outras contas sensíveis em sua organização, tais como bancos de dados MySQL ou conexões FTP. Você não pode obrigar senhas fortes para os seus usuários com o Ubuntu Server, mas pode certificar-se de treinar os usuários e como criar uma senha forte. Certifique-se de que as senhas dos usuários contenham pelo menos três das seguintes opções: uma letra maiúscula, uma letra minúscula, um número ou um símbolo. Para fortalecer ainda mais a senha, crie uma política para que todas as senhas tenham pelo menos oito caracteres. Uma maneira de ensinar aos usuários a utilizar senhas fortes mas impedir que eles escrevam senhas complexas em notas adesivas é fazer com que utilizem passphrases. Algo como Myf@voritecolorisBlue! é muito mais fácil de lembrar do que M$iuR78$ e ambos atendem aos padrões mínimos de complexidade.
Conclusão Ao concluir este tutorial e "Protegendo o Desktop do Linux", você deve ter uma base sólida de conhecimento sobre o tópico de segurança sistemas. Tenha em mente que estes tutoriais são destinados a iniciantes, para fornecer uma base para aprender mais sobre a segurança GNU/Linux.
Aprender
Obter produtos e tecnologias
Discutir
|
||||||||||||||||||||
| Última atualização em Dom, 06 de Março de 2011 01:02 |


