3 개의 IP 주소 100.200.130.121, 100.200.130.122 및 100.200.130.123으로 hub-server.tld라고하는 서버가 있습니다. 방화벽 뒤에 3 개의 서로 다른 시스템이 있지만 SSH를 사용하여 하나의 시스템을 각 IP 주소로 전달하려고합니다. 예를 들어, machine-one은 100.200.130.121의 포트 22에서 SSH를 수신해야하지만 machine-two는 100.200.130.122에서 동일하게 수행해야하며, 모든 머신에서 동일 할 수있는 포트의 다른 서비스에 대해서도 동일해야합니다.
SSH 매뉴얼 페이지에 -R [bind_address:]port:host:hostport
게이트웨이 포트가 활성화되어 있지만 -R
특정 IP 주소와 함께 사용할 때 서버는 모든 인터페이스에서 포트를 계속 수신합니다.
기계 하나 :
# ssh -NR 100.200.130.121:22:localhost:22 root@hub-server.tld
hub-server.tld (포트 2222의 SSH 수신) :
# netstat -tan | grep LISTEN
tcp 0 0 100.200.130.121:2222 0.0.0.0:* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 :::80 :::* LISTEN
특정 IP 주소의 SSH 만 연결을 machine-one으로 전달하는 방법이 있습니까? 다른 IP 주소의 포트 22를 동시에들을 수 있습니까, 아니면 iptables로 무언가를 수행해야합니까? 주석 / 기본값이 아닌 ssh 구성의 모든 줄은 다음과 같습니다.
Port 2222
Protocol 2
SyslogFacility AUTHPRIV
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication no
GSSAPICleanupCredentials no
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL
AllowTcpForwarding yes
GatewayPorts yes
X11Forwarding yes
ClientAliveInterval 30
ClientAliveCountMax 1000000
UseDNS no
Subsystem sftp /usr/libexec/openssh/sftp-server
clientspecified
"enabled"라고 말하지 않고 필요하다고 명시하고 싶습니다. "원격 bind_address 지정은 서버의 GatewayPorts 옵션이 활성화 된 경우에만 성공합니다 (sshd_config (5) 참조)". 그로부터 나는 그것이로 설정되어야한다고 생각했다yes
.