
나는 이론적으로 프록시 서버가 내부와 외부에서 어떻게 작동하는지 알고 있지만 실습을 통해 최대한 활용하고 있습니다.
사용자로부터 추상화된 상태로 유지되도록 관리 IP와 동일한 네트워크 내에서 SOCKS 프록시를 구성해야 합니다. 권장 OS를 배포할 수 있는 vCenter 클러스터가 있지만 여기서는 단순화하기 위한 설정이 있습니다.
- 스토리지 시스템 관리 IP = 10.244.244.15
- SUSE11 VM IP = 10.244.244.10
- 윈도우 XP IP = 10.244.244.5
SUSE 시스템에서 를 실행했지만 ssh -ND 1080 <user>@<storage mgmt ip>
종단 간 연결이 이루어지지 않았습니다.
tcpdump
그 당시 동일한 포트에서 실행 중이었고 일부 트래픽이 시도되는 것을 보았습니다.
17:42:26.669953 IP 10.x.x.x.54214 > x.x.com.socks: S 3287828135:3287828135(0) win 5840 <mss 1460,sackOK,timestamp 6708230 0,nop,wscale 6>
17:42:26.669968 IP x.x.com.socks > 10.x.x.x.54214: R 0:0(0) ack 3287828136 win 0
전반적인 질문:
- 덜 중요한 것은 위에서 내가 무엇을 했는지입니다.
- 더 중요한 것은 이 환경에서 SOCKS 프록시를 어떻게 구성할 수 있습니까?
답변1
SSHD 구성의 GatewayPorts 설정으로 인해 SSH 연결은 루프백 인터페이스(127.0.0.1)에서만 수신 대기 중일 수 있습니다. GatewayPorts가 yes로 설정된 경우 명령이 작동합니다.
netstat -an | grep LISTEN
공개 인터페이스에서 수신 중인지 표시됩니다. 다음을 사용하여 공개 인터페이스에서 강제로 수신하도록 할 수 있습니다.
ssh -ND <ip address>:<port> <user>:<host>
그러나 GatewayPorts가 허용하는 경우에만 가능합니다.
GatewayPorts
Specifies whether remote hosts are allowed to connect to ports
forwarded for the client. By default, sshd binds remote port
forwardings to the loopback address. This prevents other remote
hosts from connecting to forwarded ports. GatewayPorts can be
used to specify that sshd should allow remote port forwardings to
bind to non-loopback addresses, thus allowing other hosts to con-
nect. The argument may be "no" to force remote port forwardings
to be available to the local host only, "yes" to force remote
port forwardings to bind to the wildcard address, or
"clientspecified" to allow the client to select the address to
which the forwarding is bound. The default is "no".
내 생각엔 GatewayPorts가 기본값인 no로 설정되어 있는 것 같습니다. yes(in)로 변경 /etc/ssh/sshd_config
하면 ssh 명령이 변경되지 않고 작동해야 하지만 만일의 경우에 대비해 인터페이스의 IP 주소를 구체적으로 사용할 수 있습니다.
주의: 또한 인바운드 연결을 차단하는 iptables 규칙이 없는지 확인해야 합니다.
같은 SSH 프록시가 작동하지만 상당히 느릴 수 있습니다(암호화 오버헤드). 다음과 같은 전용 양말 프록시를 살펴보고 싶을 수도 있습니다.양말.