데비안에서 포트 포워딩 / 리 디렉팅을하는 방법은 무엇입니까?


12

두 가지 질문이 있습니다.

질문 1 : 내 데비안 머신은 ip 192.168.57.28 인터페이스 eth3을 가지고 있습니다. 누군가 192.168.57.28:1234에 연결하려고하면 요청을 다른 컴퓨터로 어떻게 리디렉션합니까 : 192.168.57.25:80?

질문 2 : 데비안 머신에 192.168.57.28의 eth3 인터페이스와 일부 동적 IP의 ppp0 인터페이스가 있고 누군가 포트 1234의 ppp0을 통해 연결을 시도하면 요청을 192.168.57.25:80으로 리디렉션하려면 어떻게해야합니까?

나는 이것을 시도했다 :

$ iptables -t nat -A PREROUTING -p tcp --dport 1234 -j DNAT --to-destination 192.168.57.25:80
$ echo 1 > /proc/sys/net/ipv4/ip_forward

그러나 작동하지 않습니다.

답변:


12
iptables -A PREROUTING -t nat -i eth3 -p tcp --dport 1234 -j DNAT --to-destination 192.168.57.25:80
iptables -A FORWARD -p tcp -d 192.168.57.25 --dport 80 -j ACCEPT
iptables -A POSTROUTING -t nat -s 192.168.57.25 -o eth3 -j MASQUERADE

첫 번째 포트는 포트 1234로 들어오는 모든 TCP 연결이 내부 시스템 192.168.57.25의 포트 80으로 전송되도록 지정합니다. iptables는 들어오는 모든 연결을 거부하기 때문에이 규칙만으로는 작업을 완료 할 수 없습니다. 그런 다음 두 번째 규칙으로 공개 IP로 인터넷에 연결하는 eth3에서 포트 1234로 들어오는 연결을 수락합니다. FORWARD 체인에 두 번째 규칙을 추가하여 패킷을 192.168.57.25의 포트 80으로 전달할 수 있습니다.

편집 : POSTROUTING이 추가되었습니다.

연결을 추적합니다. 그렇지 않으면 외부 호스트는 내부 IP 192.168.57.25를 볼 수 있습니다.

EDIT2 : 방금 --to (sry) 대신 --to-destination이어야한다는 힌트를 얻었습니다.


나는 당신의 제안을 시도했지만 작동하지 않습니다. 192.168.57.25로 이동하면 웹 페이지가 반환되지만 192.168.57.28:1234로 이동해도 작동하지 않습니다.
Dánjal Salberg Adlersson

@ DánjalSalbergAdlersson 내 게시물 업데이트 (뭔가를 놓쳤습니다. sry.)
Daywalker

3
나는 당신의 제안을 시도했지만 작동하지 않았습니다. 그런 다음 iptables -A POSTROUTING -t nat -j MASQUERADE로 마지막으로 변경하면 효과가 있습니다!
Dánjal Salberg Adlersson

8

Daywalker와 Dánjal Salberg Adlersson에게 감사합니다. 몇 시간의 맹세 후, iptables를 통한 포트 포워딩이 마침내 작동합니다. (데비안에서 테스트)

bash-script

#!/bin/bash

IPTBL=/sbin/iptables

IF_IN=eth0
PORT_IN=40022

IP_OUT=172.16.93.128
PORT_OUT=22

echo "1" > /proc/sys/net/ipv4/ip_forward
$IPTBL -A PREROUTING -t nat -i $IF_IN -p tcp --dport $PORT_IN -j DNAT --to-destination ${IP_OUT}:${PORT_OUT}
$IPTBL -A FORWARD -p tcp -d $IP_OUT --dport $PORT_OUT -j ACCEPT
$IPTBL -A POSTROUTING -t nat -j MASQUERADE

POSTROUTING 줄에서 "-s 192.168.57.25"가 생략 된 이유는 무엇입니까?
edwardsmarkf

또한 "-o eth3에"생략
edwardsmarkf

POSTROUTING 줄의 -s 및 -o가 선택 사항 인 것으로 보입니다. SSL 사용에 대한 의견이 있으십니까? 스크립트를 참조하여 여기에 질문했습니다 : superuser.com/questions/1387902/…
edwardsmarkf
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.