SSH 트래픽을 원격 서버로 전달

SSH 트래픽을 원격 서버로 전달

내 Linux VM에는 두 개의 IP가 있습니다.

192.168.11.88 192.168.11.99

포트 8889의 192.168.11.99에서 SSH 트래픽을 사용하여 포트 22의 원격 서버 172.16.5.80으로 트래픽을 전달하고 싶습니다.

IPTables를 사용하여 이를 달성하는 방법

감사해요


FelixJN이 제안한대로. IPtables 대신 socat 유틸리티를 사용하고 있는데 아래 구성이 작동하고 트래픽이 원격 서버로 전달됩니다.

[Unit]
Description=forwards local port 192.168.56.70:8889 to 192.168.56.70:22
After=multi-user.target

[Service]
ExecStart=/usr/bin/socat -lf /var/log/socat-ssh.log TCP-LISTEN:8889,fork,bind=192.168.56.71 TCP:192.168.56.70:22
Restart=On-Failure
RestartSec=5
User=root

[Install]
WantedBy=multi-user.target

답변1

포워딩 포트의 경우 socat아마도 가장 간단할 것입니다.

socat TCP-LISTEN:8889,fork,bind=192.168.11.99 TCP:172.16.5.80:22

포트에서 수신 대기 8889하되 로컬 IP에서만 수신합니다 192.168.11.99. 들어오는 모든 트래픽을 다음으로 전달합니다.172.16.5.80:22


가능한 시스템 서비스 파일( /etc/systemd/system/socat-ssh.service)

[Unit]
Description=forwards local port 192.168.11.99:8889 to 172.16.5.80:22
After=ssh

[Service]
ExecStart=/usr/bin/socat -lf /var/log/socat-ssh.log TCP-LISTEN:8889,fork,bind=192.168.11.99 TCP:172.16.5.80:22
Restart=On-Failure
RestartSec=5

[Install]
WantedBy=default.target

socat(시스템의 경로를 확인하세요)

활성화(부팅 시 자동 시작) 및 시작(첫 번째 초기화):

systemctl enable socat-ssh
systemctl start socat-ssh

관련 정보