2 개의 네트워크가 있습니다 (아래 링크의 그래프).
A : 10.0.0.0/24
B : 192.168.1.0/24
네트워크 A에서 모든 장치는 스위치를 통해 연결됩니다. 일부 장치는 ssh 또는 데이터베이스 서버에 대한 액세스와 같은 특정 서비스를 제공합니다.
Compter (PC1)에는 Ubuntu 20 운영 체제가 있습니다. 나는 그 시스템에 머물고 싶습니다.
네트워크 A (PC1)의 컴퓨터는 Wi-Fi를 통해 네트워크 B에 연결하고 이더넷을 통해 네트워크 A에 연결할 수 있습니다. 특정 포트의 한 주소를 통해 네트워크 B의 일부 서비스 (네트워크 A에서)에 액세스하고 싶습니다. 네트워크의 나머지 서비스를 사용할 수 없어야합니다.
DNAT와 SNAT를 사용하려는 시도는 실패했습니다. NAT를 설정하는 컴퓨터에 액세스했지만 다른 장치가 패킷을 수신하지 못했습니다.
'포트 포워딩이 활성화되었습니다'
PC1에는 주소가 있습니다.
A) 172.17.10.2
B) 192.168.1.196
sudo iptables -t nat -A PREROUTING -d 192.168.1.196 -j DNAT --to-destination 172.17.10.2
sudo iptables -t nat -A POSTROUTING -s 172.17.10.2 -j SNAT --to-source 192.168.1.196
네트워크 B로 라우팅되는 네트워크 A에 게이트웨이를 사용해야한다고 생각하지만이 목표를 달성하는 방법을 모르겠습니다.
나는 당신이 달성하려는 것은 Ubuntu를 실행하는 PC1이 네트워크 B의 클라이언트에서 네트워크 A의 특정 서버로의 IP 트래픽에 대한 DNAT (대상 주소 및 포트 변경)를 제공하고 서비스를 매핑하려는 것입니다. 이러한 서버를 PC1의 네트워크 B IP 주소에있는 특정 포트에 연결합니다. 그러나 네트워크 A에서 B로 또는 그 반대로 일반 NAT 라우팅을 수행하고 싶지 않으며 인터넷 트래픽이 A와 B 사이를 통과 할 필요가 없습니다.
이를 기본적으로 "포트 포워딩"또는 DNAT라고하며, 이는 ISP (단일 공용 IP 주소)와 개인 로컬 네트워크 사이에있는 일반 홈 NAT 라우터에서 제공하는 기능 중 하나입니다. 그러나 응용 프로그램은 DHCP 서버 또는 인터넷에 대한 업스트림 NAT와 같은 가정용 NAT 라우터의 다른 일반적인 기능을 원하지 않습니다.
iptables 방화벽 규칙을 사용하고 패킷 전달을 활성화하는 올바른 길을 가고 있습니다. iptables를 직접 구성하는 것은 이해하기 복잡합니다., 그러나 당신의 필요는 매우 간단합니다. 안타깝게도 귀하의 애플리케이션을위한 iptables에 대한 DNAT 레시피는 없지만 다음에 대한 자세한 내용을 살펴 보겠습니다. 먼저 전달하려는 각 서비스에 대해 PC1 네트워크 B : portX에서 네트워크 A : portY의 서버로 DNAT 매핑을 수행하는 규칙이 필요하며 양쪽에서 사용되는 포트 번호를 포함해야하며 두 번째 규칙이 필요합니다. 첫 번째 규칙의 상태에 의존하는 네트워크 A 서버로부터의 역방향 트래픽 (iptables에서 두 개의 별도 규칙이라고 생각합니다). DNAT 대상이 PC1 네트워크 A IP 주소가 아닌 네트워크 A의 서버 IP 주소가되도록 예제 DNAT 규칙을 수정해야합니다. 마지막으로 일반적으로 B의 트래픽이 A에 도달하지 못하도록하는 기본 DROP 규칙을 재정의하는 규칙이 필요합니다.
iptables 규칙을 직접 작성하는 대신 방화벽 빌더 (그래픽 입력) 및 FireHOL (텍스트 기반 입력) 과 같은 방화벽 규칙 생성 프로그램 을 사용하여 매우 복잡한 방화벽 및 NAT 라우팅 규칙을 구축하고 유지하는 데 도움이됩니다.
이것이 해결책을 찾는 데 도움이되기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다