SuperMicro IPMI BMC 보안


17

최근에 기본적으로 IPMI 시스템을 실행하는 BMC가 내장 된 SuperMicro X8DTU-F 마더 보드를 구입했습니다. ARM 프로세서에서 실행되는 작은 Linux 시스템으로 밝혀졌습니다.

불행히도, 그것은 소프트웨어의 보트로드를 실행 중이며, 대부분 필요하지 않으며 방화벽 뒤에 넣을 수 없습니다. 그러나 IPMI 기능을 원합니다. 이 중 하나를 사용한 사람이 보안 방법에 대한 특정 제안이 있습니까? 그것은 본질적으로 ROM 파일 시스템에서 부팅되며, 실행되는 다양한 서버를 끄는 후크조차없는 것 같습니다 ....

또한 다양한 서비스를 통해 시스템에 액세스하는 데 사용할 수있는 이름 및 비밀번호 목록을 확인하는 방법에 관심이 있습니다. 기본값은 ADMIN/ ADMIN이지만 / conf 또는 / etc의 파일에는 'ADMIN'이 없으므로 걱정이됩니다. 거기 /conf/shadow/conf/webshadow저 중 특히 편안하지 않습니다 그들 신비 '테스트'ID를 가진 파일은.


shadow, webshadow 및 실제로 유효한 사용자의 내용 사이의 상관 관계를 아직 찾지 못했습니다. BMC 관리를 통해 추가 된 신규 사용자는이 파일에 나타나지 않습니다. 또한 "익명", "test1", "test2"사용자는 파일 시스템에 존재하지 않는 쉘을 가지고 있습니다.
Daniel Lawson

2
IPMI 보안 모범 사례 의 Dan Farmer 's guide도 참조하십시오 . 그는 ipmi 라는 IPMI의 주요 보안 문제에 대해 자세히 설명하는 최근 논문을 발표했습니다 .
Stefan Lasiewski

1
훌륭한 연결에 감사드립니다. 보안 문제에 대한 간략한 요약은 fish2.com/ipmi/itrain-gz.html에 있으며, 요약은 "완전히 망가졌습니다"입니다. 한숨.
커트 J. 샘슨

답변:


6

/conf/crontabdlawson이 지적했듯이을 사용 하면 훌륭한 아이디어처럼 들립니다. 이렇게하면 http 및 ssh를 제외한 모든 것을 보장하는 스크립트를 1 분에 한 번 실행할 수 있습니다.

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

그래도 암호 기반 액세스 제어 기능이있는 웹 서버 (클라이언트 인증서의 유효성을 검사 할 방법이 없음)와 누가 어떤 원격 취약점을 알고 있는지 알 수 있습니다. 내가 사용하지 않을 때 (대부분의 경우) 끄면 합리적인 해결책처럼 보입니다. crontab 항목을 추가하여 5 분 또는 10 분마다 종료하면 누군가 완료했을 때 종료하는 것을 잊어 버린 경우가 발생합니다.

ssh 데몬은 상당히 많이 수정 된 것으로 보이는 dropbear 버전입니다 . /conf/PMConfig.dat웹 서버에서도 사용되는 사용자 이름과 일반 텍스트 비밀번호를 읽고 유효한 사용자 이름과 비밀번호를 루트 사용자로 로그인하고 ~/.ssh/authorized_keys파일을 무시 합니다. 이 마지막 문제는 성가시다. 암호 로그인을 허용하고 이름과 암호를 얻는 위치에 따라 백도어의 가능성을 엽니 다.

이것이 바로 딜레마입니다. 보안에 익숙하지 않은 개발자가 설계 한 시스템에 설치된이 수정 된 ssh 데몬을 얼마나 신뢰하십니까? 쉘 스크립트에서 본 부스러기 부스러기의 수를 감안할 때별로 많지는 않습니다. 비정상적인 명명 규칙 (/etc/rc?.d/sshd는 /etc/init.d/ssh에 대한 심볼릭 링크), 사용되지 않는 것으로 보이는 대량의 코드 및 ssh 시작 스크립트의 기능 (예 : /conf/portcfg_ssh파일, 심지어 restart명령이 완전히 끊어집니다. (이를 사용하지 마십시오. sshd는 다시 시작되지 않으며 기존 로그인이 없으면 나사로 고정됩니다. BMC를 재부팅하여 다시 플래시해야했습니다.)

내가 생각할 수있는 가장 좋은 옵션은 cron 작업을 사용하여 대체 포트에서 ssh를 시작하는 것이므로 적어도 포트 캔에 나타날 가능성은 적습니다.

마지막 구성 요소는 IPMI 네트워크 관리 포트입니다. 이것들을 끄는 방법을 볼 수 없습니다.


수정과 관련된 대부분의 문제는 문제가되지 않습니다. Dropbear는 인증을 위해 libpamipmi를 사용하는 pam을 사용합니다. 실제로 일반 텍스트 암호를 직접 읽는다는 증거는 보지 못했습니다. Libpamipmi는 ipmi 스택에 ipmi 호출을 할 것이고 일반 텍스트 암호를 읽는 것이 좋을 수도 있지만 dropbear 데몬이 망가진 것처럼 보이지 않습니다. 그러나 당신이 그와 반대로 결정적인 증거를 듣고 싶습니다.
Daniel Lawson

글쎄, 우리는 a) 암호 대신 키를 사용하고 b) 암호 인증을 비활성화 할 수있는 방법이 없다는 것이 깨졌습니다.
Curt J. Sampson

6

이상적으로 관리 네트워크는 다른 네트워크와 다른 네트워크이거나 라우팅 된 액세스가 제한된 다른 VLAN입니다.

이러한 시스템은 실제로 많은 서비스를 실행하지 않습니다.

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)

(IPMI 자체의 경우 UDP / 623)

모든 종류의 원격 관리를 수행하려는 경우 대부분이 필요합니다. 원격 관리를 원하지 않는 경우 IPMI 컨트롤러를 전혀 사용하지 않거나 X9DTU 보드를 대신 구매하는 것을 고려해야합니다 (-F는 "내장 BMC"를 나타냄)

전체 원격 관리를 수행하고 다른 네트워크에서 IPMI 컨트롤러를 실행할 수없고 일부 액세스를 비활성화하려는 경우 항상 IPMI 컨트롤러가 iptables 명령을 실행하도록 할 수 있습니다. ssh 로그인을 스크립팅하여 명령을 실행하거나 Supermicro에게 BMC 용 devkit을 요청하고 사용자 정의 iptables 스크립트로 새 이미지를 작성할 수 있습니다.

최신 정보

여기서 시스템을 다시 살펴 보았으며 / conf 파일 시스템은 rw로 마운트되었습니다. init 스크립트 중 어느 것도 / conf에서 직접 호출 한 것이 없지만 crontab 파일이 있습니다. 따라서 iptables 스크립트로 복사하고 / conf / crontab을 편집하여 적절한 간격으로 호출 할 수 있다고 생각합니다. BMC init에서 최대한 빨리 실행하기를 원하지만 매 순간마다 실행하지 않아도됩니다. 아니면 상관 없어


관리를 위해 별도의 네트워크를 갖고 싶지만 불행히도 이것이 다른 사람의 데이터 센터로 들어가고 있기 때문에 그럴 수 없습니다. 관리에 관해서는, 내가 정말로 원하는 것은 https와 ssh입니다.
Curt J. Sampson

절대 LAN을 통한 KVM을 원하지 않습니까?
Daniel Lawson

DC의 호스트 앞에 별도의 방화벽 장치가있을 수 있습니다. 그것은 다소 문제를 해결할 것입니다. 이에 대한 지원을 받기 위해 Supermicro 지원을 요청 했습니까? 나는 그들이 매우 반응이 좋은 것으로 나타났습니다
Daniel Lawson

아니요. BIOS, Grub 및 Linux 커널이 모두 직렬 콘솔을 지원하므로 KVM over LAN이 필요하지 않습니다.
Curt J. Sampson

4

Supermicro IPMI를 보호 할 때 고려해야 할 사항은 ssh 서버입니다. 이전 버전의 X8SIL-F IPMI 코드는 어떤 암호를 제공하든 ssh 연결을 허용했습니다. 그런 다음 소프트웨어는 암호를 확인하고 연결을 거부하거나 수락하지만 ssh 포트 전달을 작성하는 간단한 창이있었습니다. 이로 인해 IPMI IP에 대한 스팸 / 오용 불만이 접수되었습니다 . X8SIL-F 마더 보드의 경우 2.60 IPMI 펌웨어 버전에서 문제가 해결되었습니다 (이전에 수정되었을 수 있으며 2.54의 변경 로그 항목이 문제인 것처럼 보입니다).

두 번째 문제는 기본 암호를 가진 익명 사용자입니다. 익명 사용자는 펌웨어 버전 2.22에서 수정 된 것으로 보입니다.


2

IPMI의 웹 인터페이스에 HTTPS 를 활성화하는 약간의 트릭이 있습니다 .

IPMI 펌웨어가이를 지원하는 경우 (X8DTH-iF 지원을위한 2.04 펌웨어) 먼저 구성-> SSL로 이동하여 두 개의 PEM 파일 (인증서 및 개인 키)을 업로드하고 두 번째로 수동으로 HTTPS 액세스를 활성화 할 수 있습니다 IPMI 모듈을 재부팅하십시오.

마지막으로 https : // bmc-ip-or-hostname /으로 IPMI의 웹 인터페이스에 액세스 할 수 있습니다 . HTTPS가 HTTP보다 느리게 작동한다고 말할 수는 없습니다.


0

iptables로 물건을 확보하려고 한 사람이 있습니까? iptables가 설치되어있는 것 같고 신뢰할 수있는 몇 가지 IP에서 모든 것을 허용하지 않는 규칙 세트를 사용하여 조금 더 안전하게 만들고 싶습니다 ...하지만 위에서 읽은대로 / config에서 스크립트를 읽지 않습니다. crontab이 유일한 옵션입니까? 그리고 iptables를 망쳤다면 어떨까요?


1
앞에서 말했듯이 IPMI 컨트롤러를 완전히 별도의 VLAN 또는 물리적 네트워크에 배치하거나 경계 방화벽으로 보호하여 외부에서 IPMI 컨트롤러를 보호하는 것이 훨씬 좋습니다. 이 특정 IPMI / BMC 컨트롤러 모델은 linux를 실행하며, iptables로이를 보호 할 수 있다는 개념을 알려줍니다. 그러나 실제로는 BMC / IPMI의 대다수 / 방화벽에는 방화벽 방식이 많지 않으며, 따라서 방화벽에 의존하지 않아야합니다. 번거 로움을 피하고 IPMI 네트워크를 개인, 보안 및 라우팅되지 않은 것으로 취급하십시오.
Daniel Lawson

1
IPMI 컨트롤러를 외부에서 보호하는 것이 더 낫다는 것에 동의하지 않습니다. 방화벽 등은 처음에 제대로 보안 된 호스트보다 보안 오류가 발생하기 쉽습니다. 그러나 별도의 네트워크를 사용할 수 있다면 좋은 것입니다. 이와 같은 IPMI 장치의 경우에는 거의 필수적입니다.
Curt J. Sampson

0

파일 시스템을 어떻게 보았습니까? 포트 22에 텔넷으로 연결하면 dropbear가 실행되고 있음을 알 수 있지만 다양한 사용자 이름으로 SSH를 시도하면 비밀번호를 묻지 않습니다. 관리자 권한으로 새 사용자를 추가했지만 SSH가 해당 사용자에 대해서도 응답하지 않습니다. Winbond Hermon IPMI 2.0 칩이있는 Supermicro X7SPA-HF 마더 보드, 펌웨어 개정판 01.29, 빌드 시간 2009-12-31을 사용하고 있습니다.


2
ssh -v를 수행하여 진행 상황을 확인하고 공개 키 인증을 시도하고 있음을 알았습니다. 나는 그것을 비활성화하여 작동하도록했습니다.

내가 ATEN SMASH-CLP 시스템 관리 셸에서 지금이야, 버전 1.00
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.