[ anterior ] [ Conteúdo ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ G ] [ H ] [ próximo ]
Abaixo está uma pós-instalação, um procedimento passo-a-passo para tornar no sistema Debian 2.2 GNU/Linux mais seguro. Esse procedimento é uma alternativa para tornar os serviços de redes mais seguros. Será mostrado o processo completo do que deve ser feito durante a configuração. Também, veja Checklist de configuração, Apêndice B.
Instale o sistema, levando em conta as informações sobre o particionamento que foi citada anteriormente neste documento. Depois da instalação básica, vá à instalação personalizada. Não selecione os pacotes de tarefa. Selecione senhas no formato shadow.
Usando dselect
, exclua todos os pacotes desnecessários, exceto os
selecionados, antes de proceder com o [I]nstall. Mantenha um número reduzido
de pacotes para o sistema.
Atualize todos os softwares para a última versão disponível dos pacotes em security.debian.org como explicado anteriormente em Executar uma atualização de segurança, Seção 4.2.
Implementar as sugestões apresentadas neste manual com relação às cotas de
usuários, definições de login e lilo
Fazer uma lista de serviços que estão rodando no seu sistema. Tente:
$ ps -aux $ netstat -pn -l -A inet # /usr/sbin/lsof -i | grep LISTEN
Você precisará instalar o lsof-2.2
para o terceiro comando acima
funcionar (execute como super-usuário). Você deve estar ciente de que o
lsof
pode traduzir a palavra LISTEN para suas configurações de
localização.
Para excluir serviços desnecessários, primeiro determine qual pacote fornece o
serviço e como ele é inicializado. Isto pode ser feito verificando os
programas que escutam no soquete. O shell script abaixo, que utiliza os
programas lsof
e dpkg
, faz isso:
#!/bin/sh # FIXME: this is quick and dirty; replace with a more robust script snippet for i in `sudo lsof -i | grep LISTEN | cut -d " " -f 1 |sort -u` ; do pack=`dpkg -S $i |grep bin |cut -f 1 -d : | uniq` echo "Service $i is installed by $pack"; init=`dpkg -L $pack |grep init.d/ ` if [ ! -z "$init" ]; then echo "and is run by $init" fi done
Se você encontrar algum serviço desnecessário, exclua o pacote associado (com
dpkg --purge
), ou desabilite a inicialização automática durante a
fase de boot usando o comando update-rc.d
(veja Desabilitando daemons de serviço, Seção
3.6.1).
Para os serviços inetd (iniciados pelo superdaemon), verifique quais serviços
estão ativados em /etc/inetd.conf
através de:
$ grep -v "^#" /etc/inetd.conf | sort -u
Então desative estes serviços desnecessários comentando a linha referente em
/etc/inetd.conf
, excluindo o pacote ou utilizando o comando
update-inetd
.
Se você utiliza serviços wrapped (aqueles que utilizam
/usr/sbin/tcpd
), verifique se os arquivos
/etc/hosts.allow
e /etc/hosts.deny
são configurados
de acordo com sua política de serviço.
Se o servidor usa mais que uma interface externa, dependendo do seu serviço, você pode limitar o serviço para escutar em uma interface específica. Por exemplo, se você quiser somente acesso interno para o FTP, você deve configurar o daemon FTP para escutar somente na sua interface de gerência, não em todas interfaces (i.e, 0.0.0.0:21).
Reinicie o computador, ou troque o modo de single user para multiuser usando os comandos:
$ init 1 (....) $ init 2
Então verifique agora os serviços que estão disponíveis, e se necessário, repita os passos acima.
Agora instale os serviços necessários, se não tiver feito isso ainda, e os configure corretamente.
Use o comando shell abaixo para determinar com que usuário cada serviço disponível está sendo executado:
$ for i in `/usr/sbin/lsof -i |grep LISTEN |cut -d " " -f 1 |sort -u`; \ > do user=`ps -ef |grep $i |grep -v grep |cut -f 1 -d " "` ; \ > echo "Service $i is running as user $user"; done
Considere alterar esses serviços para um usuário/grupo específico e talvez até
enjaulá-los (chroot
'ing) para aumentar nível de segurança. Você
pode fazer isto alterando os scripts de inicialização em
/etc/init.d
. A maioria dos serviços no Debian usa o
start-stop-daemon
com as opções (--change-uid e
--chroot) para fazer isso. Uma observação com relação ao
enjaulamento (chroot
'ing) dos serviços: você precisa colocar todos
os arquivos instalados pelo pacote (use dpkg -L) que fornece o serviço, assim
como qualquer pacote dependente, na jaula chroot
. Informações
sobre a configuração de um ambiente chroot
para o programa
ssh
podem ser encontrada em Ambiente chroot
para
SSH
, Apêndice G.
Repita os passos acima para certificar que somente os serviços desejados estejam rodando e esteja sendo usada a combinação de usuário/grupo correta.
Teste os serviços instalados para ver se estão funcionando corretamente.
Verifique o sistema usando um vulnerability assessment scanner (tipo o
nessus
), para determinar as vulnerabilidades no sistema (i.e.,
mal-configuração, serviços antigos e desnecessários).
Instale ferramentas de detecção de intrusão de rede e host como
snort
e logsentry
.
Repita o passo de varredura da rede e verifique se os sistemas de detecção de intrusão estão funcionando corretamente.
Para paranóia real, também considere o seguinte:
Adicione as capacidades de firewall do sistema, conexões de entrada só devem ser feitas para os serviços oferecidos e limite as conexões de saída somente para aqueles que são autorizados.
Verifique novamente a instalação com uma nova vulnerability assessment usando um varredor de rede.
Usando um varredor de rede, verifique as conexões de saídas do sistema para um host remoto e certifique-se que as conexões indesejadas sejam estabelecida.
FIXME: este procedimento engloba o fortalecimento de serviços, mas não o fortalecimento a nível de usuário, incluindo informações sobre verificação de permissões de usuários, arquivos SETUID e congelamento de alterações no sistema utilizando o sistema de arquivo ext2.
[ anterior ] [ Conteúdo ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ G ] [ H ] [ próximo ]
Securing Debian Manual
v3.1,mailto:jfs@debian.org