이게 내 네트워크야
집 밖에서 ip_camera(192.168.3.4:80)를 보고 싶습니다. dd-wrt 라우터(192.168.3.1)에 있으며 인터넷이 없습니다. 라우터 192.168.1.1에는 인터넷이 있습니다. 그러나 두 개의 라우터(eth0 192.168.1.0/24 및 eth1 192.168.3.0/24)에 연결된 두 개의 인터페이스가 있는 Raspberry Pi 서버가 있습니다.
그래서 제가 한 일은 다음과 같습니다.
라우터 dd-wrt 192.168.1.1, 웹 프런트엔드, 포트 전달 부분에서 모든 tcp/ip(wan에서)를 10080에서 lan 192.168.1.2:10080으로 전달합니다.
그런 다음 Raspberry에서(iface eth0 192.168.1.2 및 eth1 192.168.3.2를 모두 사용) 다음과 같이 UFW를 구성합니다.
DEFAULT_FORWARD_POLICY="ACCEPT" (/etc/default/ufw)
그리고
net.ipv4.ip_forward=1 (/etc/ufw/sysctl.conf)
before.rules(파일 시작 부분)에 다음 줄을 추가합니다.
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp -d 192.168.1.2 --sport 10080 -j DNAT --to-destination 192.168.3.4:80
COMMIT
따라서 임의의 클라이언트 PC(예: 192.168.1.15)를 사용하면 브라우저 주소에서 내 카메라에 완벽하게 액세스할 수 있습니다.
http://192.168.1.2:10080
이는 잘 작동한다는 것을 의미합니다. 하지만 인터넷 외부에서는 내 카메라를 볼 수 없습니다.
UFW에 추가해 보았습니다:
ufw allow proto tcp from any to 192.168.3.4 port 80
UFW를 다시 시작했지만 운이 없었습니다.
누구든지 나를 도와줄 수 있나요?
인터넷(179.39.4.14)에서 Raspberry 서버에 액세스하면 tcpdumping에서 다음 출력이 표시됩니다.
03:19:11.324244 IP 179.39.4.14.41346 > 192.168.1.2.10080: Flags [S], seq 2032441512, win 14600, options [mss 1452,sackOK,TS val 16154060 ecr 0,nop,wscale 8], length 0
03:19:27.131917 IP 179.39.4.14.41345 > 192.168.1.2.10080: Flags [S], seq 389083091, win 14600, options [mss 1452,sackOK,TS val 16155640 ecr 0,nop,wscale 8], length 0
03:19:27.359709 IP 179.39.4.14.41346 > 192.168.1.2.10080: Flags [S], seq 2032441512, win 14600, options [mss 1452,sackOK,TS val 16155664 ecr 0,nop,wscale 8], length 0
192.168.1.15(내 홈 네트워크)에서 접속했을 때
03:21:54.799050 IP 192.168.1.15.13094 > 192.168.1.2.10080: Flags [S], seq 2661860721, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
03:21:54.802330 IP 192.168.1.2.10080 > 192.168.1.15.13094: Flags [S.], seq 3834946478, ack 2661860722, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 1], length 0
03:21:54.803718 IP 192.168.1.15.13094 > 192.168.1.2.10080: Flags [.], ack 1, win 68, length 0
다양한 효과를 관찰했습니다. LAN(정상적으로 작동)에서는 양방향 통신이 이루어지고 있습니다. 그러나 내 Raspberry 서버는 인터넷에서 들어오는 요청만 볼 수 있을 뿐 어떤 반환도 등록하지 않습니다. 내 문제의 핵심은 거기에 있다고 생각하지만, 이 양방향 교환을 허용하기 위해 UFW(또는 다른 곳)에서 무언가를 편집해야 하는지 모르겠습니다.
아마도 "관련되고 확립된" 개념과 관련이 있을까요? 나는 전혀 모른다 ...
매우 감사합니다. GTZ, 세르지오.
답변1
개념적으로 원하는 것은 다음과 같습니다.
- 192.168.1.2의 NAT: (r-Pi 서버 IP?)에서 192.168.3.4:80(카메라)까지 [완료]
- 192.168.1.2를 통해 카메라에 액세스하여 이 포트 전달이 작동하는지 확인하세요. [확인]
- 192.168.1.1:에서 192.168.1.2로 NAT: [완료되지 않았나요? ]
- 192.168.1.2의 트래픽을 관찰하여 이 포트 전달이 제대로 작동하는지 확인하십시오.
- 아웃바운드 라우터에서 포트 192.168.1.1 [알 수 없음]을 엽니다.
첫 번째 단계를 올바르게 완료했습니다. 이제 필요한 것은 인터넷과 192.168.1.0/24 네트워크 간의 또 다른 매핑입니다. 동일한 프로세스이므로 구현하기 쉬워야 합니다. 저는 ufw나 dd-wrt를 사용하지 않으므로 이것이 어떻게 수행되는지 조사해야 합니다.
관련 있고 확립된 규칙이 방해되어서는 안 됩니다. 이는 일반적으로 알려진 인바운드 연결을 추적하고 나머지 규칙 세트를 건너뛰기 위해 INPUT 체인에서 사용됩니다.