Protegendo um BMC SuperMicro IPMI

16

Adquiri recentemente uma placa-mãe SuperMicro X8DTU-F, que possui um BMC integrado, que basicamente executa o sistema IPMI. Acontece que é um pequeno sistema Linux rodando em um processador ARM.

Infelizmente, ele está carregando uma grande quantidade de software, muitos dos quais eu não preciso, e não tenho a capacidade de colocá-lo atrás de um firewall. No entanto, eu quero a funcionalidade IPMI. Alguém que usou um destes tem algumas sugestões específicas sobre como proteger a coisa? Ele inicializa a partir do que é essencialmente um sistema de arquivos ROM, e nem parece haver nenhum gancho para desligar qualquer um dos vários servidores que ele executa ....

Também gostaria de saber como posso verificar a lista de nomes e senhas que podem ser usadas para acessar o sistema por meio de todos os vários serviços. O padrão é ADMIN / ADMIN , mas nenhum dos arquivos em / conf ou / etc tem 'ADMIN' neles, o que me preocupa. Existem arquivos /conf/shadow e /conf/webshadow , com misteriosos IDs de 'teste' neles, o que também não me deixa particularmente confortável.

    
por Curt J. Sampson 02.06.2009 / 07:35

6 respostas

5

Usar /conf/crontab , como apontou Dlawson, soa como uma excelente ideia para mim. Isso me permite executar um script uma vez por minuto que garante tudo, mas http e ssh é desligar:

/etc/init.d/cdserver stop
/etc/init.d/fdserver stop
/etc/init.d/cim_sfcb stop
/etc/init.d/webgo stop

Isso ainda me deixa com um servidor web com controle de acesso baseado em senha (não vejo como validar certificados de clientes) e quem sabe quais são as vulnerabilidades remotas. Desligá-lo quando não o estou usando (o que é na maioria das vezes) parece uma solução razoável; adicionar uma entrada crontab para desligá-la a cada cinco ou dez minutos capturaria os casos em que alguém esquece de desligá-la quando estiver pronto.

O daemon ssh é uma versão do dropbear que parece ser bastante modificado. Ele lê nomes de usuário e senhas em texto puro de /conf/PMConfig.dat (que também é usado pelo servidor da web), registra qualquer nome e senha válidos como usuário root e ignora o arquivo ~/.ssh/authorized_keys . Este último problema é chato; ele força você a permitir logins de senha e abre a possibilidade de backdoors dependendo de onde - todos os seus nomes e senhas são obtidos.

Então esse é o dilema que você enfrenta: o quanto você realmente confia neste daemon ssh modificado instalado em um sistema que foi obviamente projetado por desenvolvedores ingênuos de segurança? Não muito, dado o número de bits quebrados que vi em seus scripts de shell. Existem convenções de nomenclatura incomuns (/etc/rc?.d/sshd é um link simbólico para /etc/init.d/ssh), grande quantidade de código que parece não ser usado e recursos apenas no script de inicialização ssh, como o arquivo /conf/portcfg_ssh e até mesmo o comando restart estão totalmente quebrados. (Não tente usá-los; o sshd não irá reiniciar e você será parafusado a menos que você tenha um login existente. Nós reinicializamos o BMC e acabamos tendo que reformulá-lo.)

A melhor opção que posso imaginar, se alguém vai usar a coisa, é iniciar o ssh em uma porta alternativa usando um cron job, então pelo menos é menos provável que apareça em um portscan.

O componente final é as portas de gerenciamento de rede da IPMI; Não consigo ver como desativar isso.

    
por 05.06.2009 / 10:13
6

Idealmente, sua rede de gerenciamento seria uma rede diferente da sua outra rede, ou pelo menos uma vlan diferente com acesso roteado limitado.

No entanto, esses sistemas não estão executando muitos serviços:

PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
443/tcp  open  https
555/tcp  open  dsf
5120/tcp open  unknown
5900/tcp open  vnc
5988/tcp open  unknown
MAC Address: 00:30:48:D9:3A:71 (Supermicro Computer)

(e UDP / 623 para o próprio IPMI)

A maioria deles é necessária se você quiser fazer qualquer tipo de gerenciamento remoto. Se você não quiser fazer o gerenciamento remoto, considere não ativar o controlador IPMI ou comprar uma placa X9DTU (o -F denota "BMC interno")

Se você deseja fazer o gerenciamento remoto completo, não pode executar seus controladores IPMI em uma rede diferente e ainda deseja desativar algum acesso, então sempre é possível obter o controlador da IPMI para executar os comandos do iptables. Você pode fazer o script de um login ssh para executar os comandos, ou pedir ao Supermicro o devkit para o BMC e construir uma nova imagem com um script personalizado do iptables.

UPDATE

Eu dei outra olhada em nossos sistemas aqui e o sistema de arquivos / conf está montado rw. Nenhum dos scripts init chamou qualquer coisa diretamente em / conf (que eu pude ver), mas há um arquivo crontab. Então, eu acho que você poderia copiar em um script iptables, e editar / conf / crontab para chamá-lo em algum intervalo adequado. Você quer que ele seja executado o mais rápido possível no init BMC, mas você não precisa que ele seja executado a cada minuto. Ou talvez você não se importe.

    
por 04.06.2009 / 05:33
4

Uma coisa a considerar ao proteger um Supermicro IPMI é o servidor ssh. Versões mais antigas do código X8SIL-F IPMI aceitavam conexões ssh independentemente da senha fornecida. O software verificaria a senha e rejeitaria ou aceitaria a conexão, mas havia uma breve janela para criar a porta ssh para frente. As pessoas estavam recebendo reclamações de spam / abuso por seus IPMI IPs por causa disso . Para a placa-mãe X8SIL-F, a versão do firmware 2.60 IPMI corrigiu o problema (pode ter sido corrigido anteriormente, a entrada do changelog 2.54 parece que pode ser).

Um segundo problema é um usuário anônimo com uma senha padrão. O usuário anônimo parece estar corrigido na versão de firmware 2.22.

    
por 15.02.2012 / 16:02
2

Existe um pequeno truque para ativar o HTTPS para a interface web do IPMI.

Se o seu firmware IPMI suportar isso (meu firmware 2.04 para X8DTH-iF suporta), você pode, a princípio, habilitar o acesso HTTPS indo para Configuração - > SSL, upload de dois arquivos PEM (certificado e chave privada) e, em segundo lugar, reinicie manualmente o módulo IPMI.

Finalmente, você pode acessar a interface web da IPMI pelo link . Não posso dizer que o HTTPS funciona mais lentamente que o HTTP.

    
por 08.05.2012 / 18:35
0

Algum de vocês tentou proteger a coisa com o iptables? Parece que o iptables está instalado, e eu quero fazer um conjunto de regras que negue tudo que aceite de alguns IPs confiáveis para torná-lo um pouco mais seguro ... Mas como eu li acima, nenhum script está sendo lido em / config. O crontab é a única opção? E se você estragou o iptables?

    
por 26.06.2009 / 03:41
0

Como você visualizou o sistema de arquivos? Se eu fizer telnet para a porta 22, posso ver que o dropbear está em execução, mas se eu tentar o SSH com vários nomes de usuário, ele não solicitará uma senha. Eu adicionei um novo usuário com privilégios de administrador, mas o SSH também não responde por esse usuário. Estou usando uma placa-mãe Supermicro X7SPA-HF que tem um chip Winbond Hermon IPMI 2.0, revisão de firmware 01.29, tempo de compilação 2009-12-31.

    
por 25.06.2010 / 12:44