프록시 뒤에 Supermicro IPMI를 사용하십니까?


12

이것은 온보드 IPMI BMC를 포함하는 X8DT3 마더 보드가있는 SuperMicro 서버입니다. 이 경우 BMC는 Winbond WPCM450 입니다. 많은 Dell 서버가 이와 유사한 BMC 모델을 사용한다고 생각합니다.

IPMI의 일반적인 관행은 라우팅 할 수없는 개인용 네트워크에 격리하는 것입니다. 우리의 경우 모든 IPMI 카드는 192.168.1.0/24의 개인 관리 LAN에 연결되어 외부 세계로 연결되지 않습니다. 랩탑을 192.168.1.0/24 네트워크에 연결하면 원격 콘솔을 포함하여 모든 IPMI 기능이 예상대로 작동하는지 확인할 수 있습니다.

암호화 된 연결을 통해 다른 네트워크에서 모든 IPMI 기능에 액세스해야합니다.

SSH 포트 전달을 시도했습니다. 이것은 몇 대의 서버에서 잘 작동하지만 100 대의 서버에 가깝고 100 대의 서버에서 6 포트를 전달하기 위해 SSH 클라이언트 구성을 유지 관리하는 것은 실용적이지 않습니다.

그래서 나는 SOCKS 프록시를 시도 할 것이라고 생각했다 . 이것은 작동하지만 원격 콘솔 응용 프로그램이 시스템 전체의 프록시 설정을 따르지 않는 것 같습니다.

  1. SOCKS 프록시를 설정했습니다. 상세 로깅을 사용하면 네트워크 활동 및 포트가 전달되고 있는지 확인할 수 있습니다.

    ssh -v -D 3333 stefanl@gateway.example.org
    
  2. SOCKS 프록시를 사용하도록 시스템을 구성했습니다. Java가 SOCKS 프록시 설정을 사용하고 있음을 확인했습니다.

  3. SOCKS 프록시가 작동 중입니다. 웹 브라우저를 사용하여 http://192.168.1.100/ 에서 BMC에 연결합니다 . 로그인, 서버 상태보기, 시스템 전원 켜기 / 끄기 등을 수행 할 수 있습니다. SSH 상세 로깅이 활성화되어 있으므로 진행 상황을 확인할 수 있습니다.

까다로운 곳은 다음과 같습니다.

  1. "Launch Console"버튼을 클릭하여라는 파일을 다운로드합니다 jviewer.jnlp. JNLP 파일 은 Java Web Start로 열립니다.

  2. Java 창이 열립니다. 제목 표시 줄에 제목 표시 줄에 "리디렉션 뷰어"라고 표시되어 있습니다. "비디오" "키보드" "마우스"등의 메뉴가 있습니다. 이는 Java가 프록시를 통해 응용 프로그램을 다운로드하고 응용 프로그램을 시작할 수 있음을 확인합니다.

  3. 60 초 후 응용 프로그램이 시간 초과되고 "비디오 소켓을 여는 동안 오류가 발생했습니다"라고 표시됩니다. 여기의 스크린 샷 . 이것이 효과가 있다면 VNC 스타일의 창이 나타납니다. SSH 로그에 포트 5900/5901에 대한 연결 시도가 표시되지 않습니다. 이는 Java 응용 프로그램이 VNC 응용 프로그램을 시작했지만 VNC 응용 프로그램이 시스템 전체 프록시 설정을 무시하므로 원격 호스트에 연결할 수 없음을 나타냅니다.

Java가 시스템 전체의 프록시 설정을 따르는 것 같지만이 VNC 애플리케이션은이를 무시하는 것 같습니다.

이 VNC 애플리케이션이 시스템 전체 프록시 설정을 사용하도록 할 수있는 방법이 있습니까?

답변:


4

VPN이 실제로 가장 좋은 방법 인 것 같습니다. 로컬 트래픽 이외의 트래픽 만 VPN을 통과해야하므로 라우터에 ACL이 있어야합니다. 매우 간단하고 안전하게 관리 할 수 ​​있습니다.


1
VPN은 여러 IPMI 시스템의 도관으로 우리에게 큰 도움이됩니다. Tomato와 OpenVPN을 사용하여 최신 (128mb, 고속 CPU Asus RT-N16) 라우터를 설정하면 문제없이 작동합니다. OpenVPN 을 설정하는 것이 더 쉬울 수 있습니다 . 그러나 일단 설정하면 작동합니다!
Jeff Atwood

마침내 SOCKS를 포기하고 VPN을 사용하고 있습니다. 아마도 OpenVPN과 함께 갈 것입니다.
Stefan Lasiewski

21

이것을 위해 양말 프록시를 사용하지 않는 것이 가장 좋습니다. 대신 localhost IP에 필요한 모든 포트를 전달하십시오. 기존 서비스를 피하기 위해 127.0.0.1과 다른 IP를 사용합니다. 127.0.0.2를 선택하고 프록시 뒤의 서버가 192.168.1.1이라고 가정하면 다음을 사용할 ssh 명령입니다.

ssh user @ proxy-server -L127.0.0.2 : 443 : 192.168.1.1 : 443 -L127.0.0.2 : 5900 : 192.168.1.1 : 5900 -L127.0.0.2 : 5901 : 192.168.1.1 : 5901 -L127 .0.0.2 : 5120 : 192.168.1.1 : 5120 -L127.0.0.2 : 5123 : 192.168.1.1 : 5123 -C

그런 다음 https://127.0.0.2 를 탐색 하고 평소처럼 KVM을 사용할 수 있습니다 .

전달 된 TCP 포트는 제어 및 비디오의 경우 5900 및 5901, 가상 CD의 경우 5120, 가상 플로피의 경우 5123입니다 (후자의 2 개는 테스트하지 않았습니다). 전송 된 것이 압축에 적합한 지 모르겠지만 압축을 위해 -C를 추가했습니다.

또 다른, 약간 더 편안 리눅스에 대한 방법 (이론, 더 나은 수행 등), 사용하는 것입니다 sshuttle을 , 어떤 iptables에 프록시 서버에 파이썬 인터프리터를 사용하여 ssh를 통해 투명하게 전달 모든 TCP 연결.

sshuttle -r user @ proxy-server 192.168.1.1

힌트 : sshuttle은 데비안에서 패키지됩니다.

내가 아직 전달할 수 없었던 것은 IPMI의 CLI 연결 인 ipmitool에 사용할 수있는 UDP 포트 623입니다. 이것에 대한 몇 가지 자습서가 있지만 아무도 나를 위해 해결되지 않았습니다. 어쨌든 Java KVM으로 충분합니다.


SSH가 UDP 트래픽이 아닌 TCP 트래픽 만 전달한다는 것을 알았습니다. IPMI (포트 623 / UDP) 및 Serial-over-LAN (포트 6666 / UDP)은 UDP 전용이므로를 사용하여 일종의 펑키 한 UDP-TCP 변환이 필요 netcat합니다. 얼마나 실망 스러운가.
Stefan Lasiewski 0

1
첫 번째 ssh 명령 (웹 인터페이스 및 Java 원격 콘솔)이 작동하지만 가상 CD 마운트는 623 ( -L127.0.0.2:623:192.168.1.1:623) 도 전달하지 않으면 작동하지 않는 것 같습니다 . 필요한 포트를 나열 해 주셔서 감사합니다. VPN을 설정하는 것보다 훨씬 쉽습니다.
기본 6

2

시도 tsocks를 , 당신이 모든 하위 프로세스에서 작업을해야 LD_PRELOAD를 설정하여 SOCKS 프록시를 통해 모든 프로세스를 실행할 수 있도록해야 볼 사용 예제. 물론 ssh를 사용하여 SOCKS 프록시를 작성하는 경우 여전히 UDP 문제가 있지만 하위 프로세스 문제가 발생합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.