You are on page 1of 14

Protegendo o Servidor Linux

Uma instrução à segurança do servidor GNU/Linux

Jeffrey Orloff 17/Dez/2008


Director of IT/Security
SafeWave, LLC

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.

Antes de Iniciar
Neste tutorial, você aprende os conceitos básicos de segurança de um servidor GNU/Linux e obtém uma
base sólida na qual construir.

Sobre este tutorial


Este tutorial adota uma abordagem básica para proteger um servidor executando o sistema operacional
GNU/Linux. Juntamente com seu tutorial associado "Protegendo o Desktop do Linux," eles apresentam os
conceitos básicos de segurança e o conduzem por exemplos passo a passo de como proteger os ambientes de
desktop e servidor e a confidencialidade, a integridade e a disponibilidade dos dados que eles contêm.

Objetivos
Neste tutorial, você aprende sobre os conceitos básicos em administração de segurança, incluindo como
proteger os logins remotos Secure Shell (SSH), criar regras de firewall e logs de observação para possíveis
ataques.

Pré-requisitos
Este tutorial é escrito para o usuário do GNU/Linux iniciante. Você deve ter alguma familiaridade com as
instalações do sistema operacional e a linha de comandos. Para compreender completamente os conceitos
neste tutorial, você deve ter percorrido o tutorial acompanhante, " Protegendo o Desktop do Linux."

© Copyright IBM Corporation 2008. Todos os direitos reservados. Marcas Registradas


Protegendo o Servidor Linux Página 1 de 14
developerWorks® ibm.com/developerWorks/br/

Requisitos do sistema
Para executar os exemplos neste tutorial, você precisa instalar o Ubuntu Server Edition em um computador
ou em uma máquina virtual, tal como Sun VirtualBox. Você também precisa de uma conexão com a Internet
para fazer download de pacotes de software específicos utilizados no tutorial.

Introdução
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.

O Princípio do Privilégio Mínimo


Uma rede verdadeiramente segura garante que o Princípio do Privilégio Mínimo seja aplicado na
empresa, não apenas nos servidores. As funções executadas pelos servidores e desktops também
ordenam como o sistema operacional, o próprio computador, devem ser protegidos. O desktop pode
ser um destino atrativo para um script kiddie (hacker amador) cujos ataques são sempre impedidos
pelo software e pelos scanners de malware atualizados, mas um centro de dados hospedando contas de
usuários ou informações de cartão de crédito é um alvo muito mais atrativo para o hacker qualificado
que pode explorar fraquezas sem detecção em um ambiente que não foi protegido.

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 (consulte Recursos 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:

Protegendo o Servidor Linux Página 2 de 14


ibm.com/developerWorks/br/ developerWorks®

• Se você não se mantiver atualizado em relação às correções de segurança, sua rede não será sua
por muito tempo. Os hackers descobrem vulnerabilidades todos os dias. Como um administrador do
sistema, você precisa ter certeza de que o seu sistema está atualizado. Mas isto o leva até uma diferença
entre proteger um desktop e proteger um servidor. Em geral, as atualizações para o desktop do GNU/
Linux devem ser instaladas quando elas são publicadas. Quando você está lidando com o servidor,
deve testá-lo em um ambiente de servidor de pesquisa ou desenvolvimento, para ter certeza de que a
correção não interfira nas operações do servidor ou dos usuários.
• A vigilância eterna é o preço da segurança. Em um esforço para ter certeza de que seu servidor
GNU/Linux está seguro, você deve verificar os logs constantemente, aplicar correções de segurança e
acompanhar alertas. A vigilância é o que mantém seu sistema seguro.
• A segurança não está relacionada a evitar riscos; ela está relacionada ao gerenciamento de risco.
Fatos acontecem. Pode haver uma epidemia de malware ou seu Web site pode ser atacado. Ou pode
acontecer algo completamente fora do seu controle, tal como um desastre natural. Uma hora ou outra,
a segurança do seu sistema será testada. Certifique-se de ter feito todo o possível para proteger seu
sistema e de lidar com a ameaça de uma forma que mantenha seu servidor e recursos disponíveis para
os usuários que contam com eles.
• A tecnologia não é um remédio capaz de curar todas as doenças. Se há uma lei que todos aqueles
que trabalham com tecnologia devem conhecer, é esta. Simplesmente lançar mais tecnologia no
problema de segurança não o resolverá. A vigilância por parte do administrador do sistema, a adesão
por parte do gerenciamento e a aceitação por parte dos usuários devem ser estabelecidas para que uma
política de segurança funcione de maneira efetiva.

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:

• Instalar software extra ou executar serviços extras significa que há mais uma porta que você precisa
trancar. Por exemplo, se você está executando o Lightweight Directory Access Protocol (LDAP) em
um servidor para serviços de diretório, precisa certificar-se de que o sistema operacional e o LDAP
estejam atualizados com suas correções e patches de segurança para que qualquer vulnerabilidade
conhecida seja coberta. Se o LAMP estivesse instalado neste servidor, ele exigiria atualizações e
atenção, mesmo que não estivesse sendo utilizado. Sua simples existência no servidor forneceria a um
hacker outra via de acesso ao seu sistema. Da mesma forma, qualquer outro software instalado neste
servidor deve ser atualizado, receber patches e ser monitorado para garantir que ele não represente uma
vulnerabilidade que um hacker possa explorar.
• Instalar software extra em um servidor significa que alguém será tentado a utilizar tal servidor para
algo que não está relacionado ao seu uso desejado. Utilizar o servidor para outras tarefas não somente
retira recursos da execução de sua tarefa principal como também expõe o servidor a ameaças que
provavelmente não o afetariam sem o software nele instalado.

Protegendo o Servidor Linux Página 3 de 14


developerWorks® ibm.com/developerWorks/br/

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.

Login na GUI
Algumas pessoas que contam com uma GUI como Gnome ou KDE podem estar inclinadas a instalar
um login gráfico como o GDM. Isto não é necessário porque você pode efetuar login a partir da
interface da linha de comandos tão facilmente quanto o faria através de uma tela de login baseada
em GUI. A única diferença é que você precisa utilizar o comando sudo startx se precisar administrar
servidor através de uma GUI.

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:

1. Após ter efetuado login em seu sistema, você deve acessar o prompt de comandos. Para instalar o
núcleo do Gnome, digite o seguinte: sudo aptitude install x-window-system-core gnome-core
2. Pressione Enter. Sua senha sudo será solicitada. Digite-a e, então, pressione Enter novamente. Você
será informado sobre o que está sendo instalado.
3. Para continuar com a instalação, digite Y e, então, pressione Enter. Fazer isso instala uma versão
reduzida do Gnome que mantém os recursos do ambiente de desktop a um mínimo e economiza os
recursos do sistema. Para instalar a versão completa do Gnome, insira sudo aptitude install x-window-system-
core gnome
4. Após pressionar Enter, você será solicitado a percorrer o mesmo processo, conforme anteriormente.
Siga até que o Gnome seja instalado em seu sistema.
5. Quando a instalação de qualquer um dos pacotes tiver sido concluída, ainda estará no prompt de
comandos. Para abrir o Gnome, digite o seguinte: sudo startx

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.

Protegendo o Servidor Linux Página 4 de 14


ibm.com/developerWorks/br/ developerWorks®

Segurança através da obscuridade


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

sudo aptitude install openssh-server

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:

1. Na linha de comandos, digite sudo cp /etc/ssh/sshd_config /ete/ssh/sshd_config.back


2. Pressione Enter e forneça sua senha para concluir o backup deste arquivo.

Instalar emacs
Para instalar emacs, utilize sudo aptitude install emacs Agora, você precisa localizar a parte do
arquivo onde o número da porta está configurado. Assim que tiver localizado (o padrão é a porta
22), você pode alterá-lo para um número arbitrário. Há mais de 65.000 portas; escolha algo na parte
superior da escala, mas um número do qual você se lembrará. Lembre-se, hackers qualificados sabem
com as pessoas pensam. Alterar o número da porta para 22222 ou 22022 é um erro comum—escolha
um número que não seja facilmente adivinhado.

Agora, você precisa alterar as permissões para o arquivo sshd_config de forma que possa alterá-lo:

1. Digite sudo chmod 644 /etc/ssh/sshd_config


2. Pressione Enter. Agora você pode utilizar um editor de texto como emacs ou vi para alterar o arquivo:
emacs /etc/ssh/sshd_config

Deixe o emacs ou o vi aberto enquanto faz mais alterações neste arquivo.

Permissões de login como root


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ê PermitRootLogin. O padrão é yes.

Protegendo o Servidor Linux Página 5 de 14


developerWorks® ibm.com/developerWorks/br/

Usuários na lista de desbloqueio


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

1. Inclua esta linha em seu arquivo sshd_config:


# Permitir apenas determinados usuários
AllowUsers username username username

Substitua os nomes de usuário da sua lista no lugar da palavra username. Alternativamente, você pode
permitir que grupos acessem logins do SSJ utilizando # Permitir apenas determinados grupos AllowGroups
group group Novamente, substitua por seus grupos de usuários a palavra group no exemplo.
2. Salve seu arquivo de configuração e saia do seu editor. É necessário reiniciar o SSH para que as
alterações tomem efeito. Não é necessário encerrar seu computador -- apenas digite sudo service ssh restart
3. Pressione Enter e forneça sua senha. O serviço é reiniciado e informa [OK].

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:

1. A partir da linha de comando, digite sudo aptitude install ufw


2. Pressione Enter e insira sua senha. Pressione Enter novamente para instalar o pacote.
3. Para ativar o firewall, digite o seguinte: sudo ufw enable
4. Pressione Enter. Você verá a mensagem Firewall iniciado e ativado na inicialização do sistema. Agora você
pode criar regras para o seu firewall.

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:

sudo ufw allow 65000

Este comando permite acessar sobre a porta 65000 e permite que o SSH trafegue no seu servidor.

Protegendo o Servidor Linux Página 6 de 14


ibm.com/developerWorks/br/ developerWorks®

Para negar o acesso sobre esta porta, utilize o seguinte:

sudo ufw deny 65000

Para permitir ou negar tráfego, especificamente na porta TCP 65000, utilize o seguinte comando:

sudo ufw allow 65000/tcp

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:

sudo ufw deny http

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:

sudo ufw allow proto tcp from 192.168.1.30 to 192.1681.5 port 65000

Para verificar quais regras estão sendo executadas atualmente com o UFW, utilize

sudo ufw status

Será apresentada uma lista de regras que você já criou para o seu firewall. Se você visualizar uma regra que
deseja excluir, digite

sudo delete [rule]

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.

Tripwire
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

Protegendo o Servidor Linux Página 7 de 14


developerWorks® ibm.com/developerWorks/br/

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:

1. Insira o seguinte comando:


sudo aptitude install tripwire
2. Pressione Enter e digite sua senha. O Tripwire é transferido por download e instalado.
3. Uma tela de configuração é apresentada conforme mostrado na Figura 1.
Figura 1 Configuração do Tripwire.

Esta tela informa aos usuários dos


sistemas baseados no Debian sobre um cenário potencial no qual um hacker pode obter a passphrase
utilizada com o Tripwire enquanto ele não está criptografado. Usuários avançados podem optar por
parar aqui e criar a chave do site e os arquivos de configuração por conta própria. Iniciantes devem
selecionar OK e continuar.
4. A próxima tela pergunta se você deseja criar sua passphrase durante a instalação. Selecione Sim e
pressione Enter.
5. A próxima tela informa sobre como o Tripwire funciona. O programa cria um arquivo de texto que
armazena um banco de dados criptografado da configuração dos sistemas. Este arquivo de texto é a
linha de base. Se alguma alteração for feita na configuração do sistema, o Tripwire visualiza a alteração
e cria um alerta. Para fazer alterações legítimas no sistema, você pode criar uma passphrase. Selecione
Sim e pressione Enter para iniciar a criação do arquivo de configuração.
6. A tela a seguir explica a mesma coisa, mas desta vez você estará criando um arquivo de política do
Tripwire. Novamente, selecione Sim e pressione Enter.
7. Assim que os arquivos tiverem sido criados, você será solicitado a digitar a passphrase chave do site. É
necessário lembrar-se desta passphrase. Selecione OK e, então, pressione Enter. Sua passphrase será
solicitada novamente na próxima tela.
8. Você será levado até a tela da passphrase local. Esta passphrase é necessária para os arquivos locais no
servidor. Insira sua passphrase local, selecione OK e, então, pressione Enter. Também é necessário
digitar novamente esta senha.
9. Agora que o Tripwire foi instalado, você é informado sobre o local do banco de dados e dos binários.
Com o OK selecionado, pressione Enter novamente para concluir o processo de configuração.

Protegendo o Servidor Linux Página 8 de 14


ibm.com/developerWorks/br/ developerWorks®

Você pode executar a inicialização do banco de dados digitando

sudo tripwire --init

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:

1. Digite
sudo tripwire --check
2. Pressione Enter. Você receberá um relatório que é salvo no diretório de relatórios. Para visualizar este
relatório, utilize o comando twprint :
sudo twprint --print-report -r\
3. Pressione Enter e digite a senha sudo . Você receberá um tipo diferente do prompt que tem a seguinte
aparência:
>

Neste prompt, digite o local e o nome do arquivo do relatório que deseja imprimir:
> /var/lib/tripwire/report/<server name>-YYYYMMDD-HHMMSS.twr| less

Se você não souber o horário exato que executou seu relatório, navegue até o diretório /var/lib/tripwire/
reports para visualizar o nome completo do arquivo.

À 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.

Logwatch
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ê MailTo. Altere user.name.domain.tld para o seu endereço de e-mail.

Você pode instalar o Logwatch com este comando:

sudo aptitude install logwatch

Para enviar os logs por e-mail para você mesmo, digite

logwatch --mailto email@youraddress.com --range All

Protegendo o Servidor Linux Página 9 de 14


developerWorks® ibm.com/developerWorks/br/

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:

logwatch --range All --archives --detail Med

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:

Não executar como root


Qualquer um que saiba algo sobre a segurança do GNU/Linux dirá a você para nunca, nunca, nunca
executar nada como o usuário root. Efetuar login como administrador em uma rede Windows é
comum, mas na comunidade do GNU/Linux, não é recomendável fazer isso. É por isso que sempre
que você precisar executar algo como root, deve utilizar o comando sudo. Qualquer administrador do
sistema pode utilizar o comando sudo se você lhe fornecer a senha. Para visualizar como e quando a
senha sudo está sendo utilizada, verifique /var/log/messages. Como você está consultando todos os
usos do sudo, utilize o comando grep para localizá-los.

• Permissões de arquivo -- Ler (r), gravar (w) e executar (x). Cada uma destas permissões também
recebe um número: ler = 4, gravar = 2 e executar = 1.
• Permissões no nível do diretório -- Entrar, que dá permissão para entrar no diretório; mostrar, que dá
permissão para visualizar os conteúdos dos diretórios; e gravar, que dá permissão para criar um novo
arquivo ou subdiretório.
• Como as permissões são designadas -- As permissões são designadas de três maneiras: por nível
de usuário, nível de grupo e outro nível. O nível de usuário define o usuário que criou o arquivo ou
diretório, o nível de grupo define o grupo no qual o usuário está e o outro nível é para qualquer usuário
fora do grupo do usuário.

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 chmod altera as permissões para os arquivos e diretórios. Se desejar alterar a propriedade de um
usuário, utilize o comando chown . Para alterar a propriedade do grupo sobre um arquivo ou diretório, utilize
o comando chgrp .

Protegendo o Servidor Linux Página 10 de 14


ibm.com/developerWorks/br/ developerWorks®

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

sudo aptitude install ecryptfs-utils

Pressione Enter e digite sua senha root.

Criptografar um diretório
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:

1. Insira o seguinte comando:


mkdir ~/secure
2. Apenas para impedir que outras pessoas fiquem bisbilhotando, altere as permissões para 700:
chmod 700 ~/secure
3. Monte o novo diretório com o sistema de arquivos eCryptfs:
sudo mount -t ecryptfs ~/secure ~/secure
4. Você terá de responder a várias perguntas. Certifique-se de lembrar-se das respostas, pois elas são
necessárias quando você remontar. A primeira pergunta é sobre o tipo de chave que você gostaria
de utilizar. Faça sua seleção digitando o número que corresponda à sua opção. A seguir, selecione o
código que deseja utilizar e o tamanho da chave.
5. Assim que tiver respondido a todas as perguntas, seu diretório estará pronto para a inclusão de arquivos
e outros subdiretórios. Quando estiver pronto para tornar seu diretório seguro, desmonte-o com
sudo unmount ~/secure

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.

Atualizações
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,

Protegendo o Servidor Linux Página 11 de 14


developerWorks® ibm.com/developerWorks/br/

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 sudo apt-get update e, então, sudo apt-get dist-upgrade. Em
alguns casos, será necessário reiniciar o servidor.

Malware
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").

Backup e recuperação
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.

Senhas
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.

Política de senha de rede


Se você estiver executando serviços de diretório como OpenLDAP, tem a opção de obrigar senhas
fortes em sua rede com algumas das opções de configuração disponíveis.

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.

Protegendo o Servidor Linux Página 12 de 14


ibm.com/developerWorks/br/ developerWorks®

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.

Protegendo o Servidor Linux Página 13 de 14


developerWorks® ibm.com/developerWorks/br/

Sobre o autor
Jeffrey Orloff

Jeffrey Orloff atua como Diretor de TI e Segurança da SafeWave, LLC. Ele também trabalha
como coordenador de tecnologia para o Departamento de Educação Alternativa/Departamento
de Justiça Juvenil do Distrito Escolar do Condado de Palm Beach.

© Copyright IBM Corporation 2008. Todos os direitos reservados.


(www.ibm.com/legal/copytrade.shtml)
Marcas Registradas
(www.ibm.com/developerworks/br/ibm/trademarks/)

Protegendo o Servidor Linux Página 14 de 14

You might also like