Quando preciso administrar um servidor Linux existente, qual é a melhor maneira de verificar se ele é seguro?

9

Existem muitos tutoriais sobre como configurar um novo servidor seguro.

Mas e se eu tiver que administrar um servidor que outra pessoa configurou há algum tempo e ainda não sei muito sobre sua configuração?

Existe alguma ferramenta que verifique automaticamente os "suspeitos do costume" ou alguma lista de verificação que eu possa percorrer para garantir que não haja falhas óbvias de segurança? Existem serviços da Web que verificam remotamente por vulnerabilidades?

Daniel Rikowski
fonte

Respostas:

13

Baixe o Nessus e faça uma verificação de rede nele. Ele informará sobre vulnerabilidades exploráveis ​​remotamente.

Além disso, instale o Ossec ; embora não seja seu objetivo principal, ele encontrará algumas configurações incorretas comuns (contas configuradas incorretamente, por exemplo). E sua função principal - detecção de intrusão baseada em host - ajudará a descobrir se alguém está tentando explorar vulnerabilidades.

niXar
fonte
5
O Nessus não é mais de código aberto. Seu fork de código aberto é chamado openvas.
Anônimo
1
Eu sei. Mas ainda é o IIRC gratuito como cerveja, e o pôster nunca disse que ele só queria F / OSS.
NiXar 11/08/2009
+1 O Nessus é muito bom, eu também realizaria e a varredura do Nmap ao carregar os resultados no Nessus pode ajudá-lo a detectar mais algumas vulnerabilidades em alguns casos.
Mark Davidson
1
+1 para OSSEC. Ele também tem um módulo de auditoria de rootkit / sistema que você pode executar autônomo: ossec.net/rootcheck
sucuri
5

Eu começaria com as listas de verificação de "referência" do Center for Internet Security . Estas são listas de verificação baseadas em consenso compiladas por profissionais de segurança para uma variedade de plataformas e pacotes de software. Algumas ferramentas mencionadas nas listas de verificação ou recomendadas de outra maneira comum que ajudarão na sua busca por problemas de segurança:

  • Nessus / OpenVAS (verificador de vulnerabilidades)
  • Nmap (scanner de porta)
  • TCPdump / Wireshark (captura de pacote libpcap)
  • SNORT (sistema de detecção de intrusão)

(o tcpdump é instalado em muitos sistemas Linux por padrão, ou pode ser facilmente instalado em um repositório de pacotes e possui uma página de manual abrangente)

Se for para a empresa em que trabalha, verifique se a análise de segurança é autorizada pela gerência e se as verificações não causarão nenhuma interrupção ou bobagem de aplicativo. Sim, um simples scan de porta pode causar problemas - o portscan imprime impressoras HP Laserjet mais antigas e elas cospem pilhas de papel.

jtimberman
fonte
4

Como uma primeira verificação muito rápida:

Corre

netstat -ltnp

como raiz. Isso mostrará todos os serviços que estão ouvindo na rede:

Isso pode mostrar o que você deseja desligar imediatamente. Então você pode continuar com as soluções nas outras respostas.

Para serviços que precisam ser executados, mas que não podem ser acessados ​​de fora (como um servidor de banco de dados local), considere alterar a configuração para que ela escute apenas em localhost / 127.0.0.1. Dessa forma, ele só pode ser acessado por usuários locais.

sleske
fonte
4

Gostaria de verificar o Bastille-Linux em http://www.bastille-unix.org/ , é um conjunto de scripts que você pode executar e verificará as configurações do sistema, permissões de arquivo, configuração do usuário etc. uma ou duas vezes em minhas próprias caixas e se encontrar problemas nas instalações padrão (principalmente r_x nos utilitários rsh / rsync). Ele gera como html / java + maldições / texto simples.

Jimsmithkka
fonte
3

Que distro?

Geral:

  • Revise as configurações de iptables e / ou firewall
  • Analisar configurações de SSHD
  • Revise todas as configurações de serviço acessíveis externamente
  • Verifique se você está executando o software mais recente disponível
  • Verifique as vulnerabilidades do kernel (uname -a e, em seguida, google)
  • Revise a permissão do usuário e as permissões do grupo em arquivos editáveis
David Rickman
fonte
Nenhuma distribuição especial / todas as distribuições
Daniel Rikowski
Além disso, convém pegar uma lista de pacotes instalados. Algo como dpkg --get-selections> installed_pkgs.txt para distribuições debian.
21480 David Rickman
2
Você também pode precisar procurar por arquivos setuid / setgid incomuns, quais contas possuem senhas definidas, qual é o shell de login deles, etc. para eliminar as portas traseiras fáceis.
Más
Ótima sugestão, mas esqueci completamente essa, que é potencialmente um enorme buraco.
21410 David Rickman
3

Outra boa primeira verificação é executar o nmap hostname de outro host na rede. Isso fornece uma visão externa do que o netstat mostrou no host.

kmarsh
fonte
3

Se você estiver preocupado, eu recomendaria seguir os tutoriais mencionados e reconstruir o servidor. Especialmente se você acha que o outro administrador pode ter deixado algo ruim. Como novo administrador, você deve saber como implantar qualquer serviço que esteja executando novamente de qualquer maneira.

Apenas certifique-se de fazer o backup de tudo primeiro, você pode criar uma imagem de todas as partições para garantir que realmente esteja certo.

Se seu chefe não deixar, então as recomendações de todos os outros me parecerão boas :-)

Kyle Brandt
fonte
+1: se a criação / configuração não estiver documentada e você tiver tempo, talvez aproveite a oportunidade para reconstruí-la. Em vez de ter que fazê-lo sob coação posteriormente. Então você pode ter certeza de que é seguro e será documentado para referência futura.
11119 Dan Carley
2

Além de algumas das respostas muito boas aqui, consulte http://www.sans.org/ . Eles têm alguns documentos muito bons, se você estiver disposto a fazer uma pequena leitura para obter uma melhor compreensão da "defesa em profundidade".

Algumas das premissas muito básicas:

  • mantenha seus servidores atualizados
  • execute apenas os serviços que precisam estar em execução
  • limitar o acesso do usuário ao servidor
Greeblesnort
fonte
1
Lembre-se de limitar também o acesso físico, não apenas da rede.
iny
1

Tente também o chkrootkit , ele vem no repositório padrão da maioria das distribuições e é de qualquer maneira muito fácil de instalar. Ele verificará seu sistema em busca de muitas vulnerabilidades conhecidas, rootkit e worms.

wazoox
fonte
1

Uma coisa que você pode fazer para ter uma idéia do sistema é diferenciar a pasta / etc em uma nova instalação (com as mesmas atualizações aplicadas). Isso informará o que mudou, para que você possa concentrar suas preocupações de segurança.

Chris Nava
fonte
1

Para expandir o que disse, aqui está um simples comando find para listar todos os arquivos setuid e setgid no sistema para revisão.

find / -type f \( -perm -4000 -o -perm -2000 \) -print

É claro que, como outros já disseram, tudo isso pressupõe que a máquina ainda não possui um rootkit ...

Brad
fonte
1

Chrootkit / rkhunter são os frutos pendurados. Se você tiver um rootkit instalado, tudo o que for relatado será comprometido e, portanto, não ajudará muito; portanto, faça o download de uma fonte conhecida, não use as que já estão na caixa. Outro bom truque é instalar um kernel que você sabe que é bom (seja de pacotes ou faça o seu próprio). Verifique se há backdoors (lsof -i e 0 uid contas não raiz). A inspeção das regras de firewall geralmente pode dizer muito sobre os hábitos dos administradores anteriores. Coloque um wireshark / snort nele, tente detectar algo incomum. Olhe para onde os logs estão indo. Confira todos os arquivos .profile / .bashrc para obter comandos incomuns. Procure em .ssh / known_hosts quaisquer hosts duvidosos.

Marcin
fonte