두 대의 컴퓨터가 있지만 하나에서 다른 컴퓨터로 SSH를 통해서만 연결할 수 있습니다(왜? 가끔 다시 물어보세요...). 그래서 저는 이것을 해킹하여 양방향으로 효과적으로 SSH를 연결하고 싶습니다.
라는 장치를 만들었습니다.h-리눅스-a(IP 주소는 10.10.20.20 입니다)
ssh -R 2222:127.0.0.1:22 h-linux-b
h-linux-b에서 다음을 수행하여 h-linux-a에 성공적으로 다시 연결할 수 있는지 테스트했습니다.
ssh -p 2222 127.0.0.1
그래서 h-linux-b에 다음을 추가했습니다.
iptables -t nat -A OUTPUT -p tcp -d 10.10.20.20 --dport 22 -j DNAT --to-destination 127.0.0.1:2222
내가 할 때
ssh 10.10.20.20
내 SSH가 거기에 매달려 있습니다. iptables의 히트 카운터가 올라가는 것을 보고(1씩 증가하므로 재시도할 필요가 없음) h-linux-a의 임시 포트에서 tcpdump를 확인하여 트래픽이 다시 돌아오고 있는지 확인했습니다(아무 것도 표시되지 않음). 살아 있는).
그래서 내 iptables 명령이 문제인 것 같습니다. 저는 INPUT 체인을 그다지 많이 사용하지 않고 주로 PREROUTING과 POSTROUTING을 사용하므로 뉘앙스를 모르겠습니다.
답변1
바꾸다:
iptables -t nat -A OUTPUT -p tcp -d 10.10.20.20 --dport 22 -j DNAT --to-destination 127.0.0.1:2222
노력하다:
iptables -t nat -A OUTPUT -p tcp -d 10.10.20.20 --dport 22 -j REDIRECT --to-ports 2222
리디렉션 체인을 사용하면 트래픽을 동일한 시스템으로 다시 루프할 수 있습니다.