iptables를 사용하여 SSH 전달

iptables를 사용하여 SSH 전달

나는 그것을 수행하는 방법에 대한 여러 튜토리얼을 찾았지만 그 중 아무것도 작동하지 않았습니다 :/

내 설정:

방화벽 - 인터넷에서 연결 가능 - eth0: xxx.xxx.xxx.xxx(공용 IP) - eth1: 192.168.1.1

서버 - 방화벽에서 연결 가능 - eth0: 192.168.1.5

여전히 포트 22에서 방화벽에 연결할 수 있기를 원하기 때문에 포트 2222에서 들어오는 연결을 192.168.1.5:22로 전달하고 싶습니다.

FIREWALL에서 SERVER로의 ping 및 ssh가 작동합니다. SERVER에서 FIREWALL로의 ping 및 ssh도 작동합니다(로그인은 공개 키로만 허용되고 SERVER는 허용되지 않습니다...)

어디서나 FIREWALL로 ping 및 ssh를 사용할 수 있습니다.

IP 전달이 활성화되었습니다:

# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

내 iptables-rules를 게시하는 것은 어떤 규칙도 작동하지 않고(PREROUTING, POSTROUTING, FORWARD... 사용) 다른 규칙도 없기 때문에 별 의미가 없습니다.

예, 내 방화벽은 아무것도 차단하지 않습니다. 그러나 이것은 (아직) 보안에 관한 것이 아닙니다.

나는 다음 페이지의 첫 번째 페이지에서 찾은 모든 것을 시도했습니다. https://www.google.de/search?q=iptables+forward+ssh

어떤 제안이 있으십니까?

감사합니다, 젠스

업데이트tcpdump -n -i anyKhaled의 iptables 명령을 사용한 후의 출력은 다음과 같습니다 .

15:42:33.852718 IP home-ip.56008 > firewall-public-ip.2222: Flags [S], seq 1141341765, win 14600, options [mss 1460,sackOK,TS val 871214 ecr 0,nop,wscale 7], length 0
15:42:33.852752 IP home-ip.56008 > 192.168.1.5.22: Flags [S], seq 1141341765, win 14600, options [mss 1460,sackOK,TS val 871214 ecr 0,nop,wscale 7], length 0

나는 두 번째 줄에 ... IP 192.168.1.1.45678 > 192.168.1.5.22 ...와 같은 것이 있을 것이라고 추측했을 것입니다.

내 SSH 클라이언트가 연결을 여러 번 시도할 때 이 두 줄이 몇 번 반복됩니다. 그러나 대답이 없습니다.

2차 업데이트 서버(192.168.1.5)의 경로는 다음과 같습니다.여기. 방금 경로를 추가했습니다.

public-firewall-ip  255.255.255.255      192.168.1.1     192.168.1.5       1

그러나 이것은 아무런 효과가 없습니다. 서버에서는 cygwin의 sshd가 설치된 Win XP를 실행합니다. 방화벽에서 서버로의 ssh가 잘 작동하기 때문에 이전에는 이것을 언급하지 않았습니다. 그러나 라우팅에 관해서는 Windows가 다소 제한적이라고 생각합니다.

이제 서버에 Wireshark를 설치하고 몇 분 안에 결과를 붙여넣겠습니다.

서버에서 추적 서버의 추적에는 포트 22에 도착하는 SYN과 내 홈 IP로 나가는 SYN,ACK가 표시됩니다. 오류가 있는 것 같아요. 나가는 패키지에서 현재 소스 IP/포트가 192.168.1.5:22이기 때문에 ACK는 위장되기보다는 방화벽으로 전송되어야 합니다. NAT 뒤에 있는 집에 있는 내 노트북에는 이것이 도달할 수 없습니다... 아니면 방법이 있습니까?

답변1

트래픽이 방화벽을 통과하도록 허용하고 IP 전달을 활성화한 경우 포트 2222에서 SSH 트래픽을 전달하려면 하나의 NAT 규칙만 있으면 됩니다. 다음과 같은 규칙이 작업을 수행해야 합니다.

$ iptables -t nat -A PREROUTING -d x.x.x.x -p tcp --dport 2222 -j DNAT --to-destination 192.168.1.5:22

업데이트:

네트워크 스니퍼는 이러한 문제를 디버깅할 때 도움이 되는 친구입니다. 방화벽 시스템에서 tcpdump를 실행하여 들어오는 요청을 포착할 수 있는지 확인하고 동일한 요청이 방화벽 시스템을 떠나야 하는지 확인할 수 있습니다.

관련 정보