다음 문제를 해결하는 데 어려움을 겪고 있으며 도움이 필요합니다.
나는 가지고있다:
- Server1은 인터넷에 연결되어 있고 LAN1(Debian)에 연결되어 있습니다. 공용 IP: xx.xx.xx.xx LAN1의 개인 IP: 192.168.1.10
- Server2는 인터넷에서 격리되어 LAN1(Ubuntu) 개인 IP인 LAN1: 192.168.1.17에 연결됩니다.
내가 달성하고 싶은 것:
원격 노트북에서 다음 명령을 사용하여 서버 2에 대한 SSH 연결을 설정합니다.
ssh -p1110 [email protected]
내가 지금까지 얻은 곳 :
Server1은 LAN1에서 Server2를 ping할 수 있습니다(또는 그 반대로). 원격 랩톱을 사용하여 SSH를 통해 Server1에 로그인할 수 있습니다.
ssh -p 20 [email protected]
Server2를 사용하여 SSH를 통해 로그인할 수 있습니다
ssh -p 1110 [email protected]
Server2 SSH 구성은 포트 1110을 허용하도록 설정되었습니다(물론 서비스는 다시 시작되었습니다).
두 개의 명확한 iptables에서 Server1에 설정했습니다.
iptables -t nat -I PREROUTING -p tcp -d xx.xx.xx.xx --dport 1110 -j DNAT --to-destination 192.168.1.17:1110
(참고: 테스트 목적으로 두 ufw는 모두 비활성화되고 기본적으로 "양방향 연결 허용"으로 설정됩니다.)
현재 원격 노트북에서 server2에 액세스할 수 없습니다.
문제 해결: 지금까지 SSH 세션이 server2에 도달할 수 있는지 확인하려고 노력했습니다.
내가 server1에서 사용하는 것:
sudo tcpdump -i ens1 port 1110
실제로 server1에서 활동 흔적을 찾을 수 있습니다.
서버 2에서도 마찬가지
sudo tcpdump -i ens18 port 2201
원격 SSH 세션 시도에 대한 일부 추적도 볼 수 있습니다.
그래서 요청이 server1을 거쳐 server2에 도달한다고 생각합니다.
내 이론
iptables 규칙이 양방향이 아닐 수도 있나요? 어쩌면 server2의 일부 ipatable 설정도 필요할 수 있습니까?
도움이 되는 아이디어가 있으시면 감사하겠습니다. 미리 감사드립니다
추신: 라우터를 제어할 수 없기 때문에 서버 수준에서만 라우팅할 수 있습니다.
답변1
SSH를 사용하여 server1에 연결할 수 있는 한 리디렉션된 포트를 통해 iptables
server2 IMHO에 연결하는 가장 좋은(안전한) 방법은 아닙니다.
보고하지는 않았지만 작성하신 내용에 따르면 이 명령은 이론적으로 작동합니다.
ssh -p 20 [email protected] ssh -p 1110 [email protected]
이는 구성 파일 ~/.ssh/config에서 다음과 같이 번역될 수 있습니다.
Host server1
Port 20
HostName xx.xx.xx.xx
User login
Host server2
Port 1100
HostName 192.168.1.17
User login
ProxyCommand ssh server1 -W %h:%p
이는 ProxyCommand
192.168.1.17:1100으로 SSH를 시도하기 전에 먼저 server1로 SSH를 보내도록 ssh에 지시합니다.
ssh server1
이제 ssh를 server1로, ssh를 server2로 연결하기만 하면 됩니다 ssh server2
(iptable 규칙을 삭제할 수 있습니다).
답변2
라우터를 제어할 수 없기 때문에 서버 수준에서만 라우팅할 수 있습니다.
잘? 그러나 호스트에 iptables 규칙을 적용할 수 있으며 호스트에서 트래픽을 라우팅하려고 합니다.
iptables -t nat -I 사전 설정 -p tcp -d xx.xx.xx.xx --dport 1110 -j DNAT --대상 192.168.1.17:1110
패킷 가져오기도착하다server2이지만 server2는 라우팅 없이 패킷을 올바른 방향으로 다시 보내지 않습니다. 변장이나 프록시를 사용해야 합니다.
가장 간단하고 유연한 솔루션은 chienne이 제안한 대로 호스트에 대해 ssh_config 파일을 설정하는 것입니다.