dnat를 SSH 전달 포트로 구성하는 방법

dnat를 SSH 전달 포트로 구성하는 방법

두 대의 컴퓨터가 있지만 하나에서 다른 컴퓨터로 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

리디렉션 체인을 사용하면 트래픽을 동일한 시스템으로 다시 루프할 수 있습니다.

관련 정보