홈 네트워크에 헤어핀을 설정하려고 합니다.기사그리고이전 질문. 내 네트워크는 다음과 같습니다. 호스트는 B
일부 서비스를 제공합니다. SSH 포트를 선택하겠습니다 22
.
머리핀이 있는 이유는 일반적입니다. 인터넷 DNS에 머리핀을 정의했고 포트()의 공용 IP를 ssh.example.com
가리킵니다 . 포트는 ( ) 를 통해 호스트로 리디렉션됩니다.200.200.200.200
2223
B
192.168.10.2:22
iptables -t nat -A PREROUTING -i nicWan -p tcp --dport 2223 -j DNAT --to-destination 192.168.10.2:22
다음 을 통해 192.168.10.2:22
호스트에게 연락 하고 싶습니다.A
ssh 200.200.200.200 -p 2223
iptables
나는 1994년부터 리눅스 머신을 관리해 왔지만, 리눅스 머신을 사용하기 때문에 자세히 살펴본 적이 없습니다.shorewall
그리고 간략하다firehol
.
나의 초기 질문은 헤어핀이 "LAN의" 전체 트래픽에 적용되는지 또는 대상 포트당 하나의 규칙이 필요한지 이해하는 것이었습니다(제가 언급한 참조는 다른 참조와 다르므로 전자를 선호합니다).
주요 문제는 iptables
컨텍스트(체인)에서 설정해야 하는 것이 무엇인지 이해하지 못하는 데서 발생합니다. 작업 이유를 이해하지만(첫 번째 참조에 잘 설명되어 있음) 어디에 넣어야 할지 모르겠습니다.
iptables
구체적으로, 패킷을 NAT하는 언어를 어떻게 알 수 있습니까?어느192.168.10.0/24
어딘가로 가서 200.200.200.200
다시 돌아올 수 있도록 위장 하려는 장치가 있습니까 ?
답변1
호스트 A의 트래픽이 nicWan이 아닌 nicLan으로 이동하기 때문에 인터페이스가 잘못되었다고 말하고 싶습니다.
말씀하신 대로 반품 패키지가 올바른 장소로 이동하려면 변장이 필요합니다. 두 번째 규칙은 로컬 서브넷에서 시작되어 로컬 서버로 반환되는 모든 트래픽을 가장합니다.
iptables -t nat -A PREROUTING -i nicLan --destination 200.200.200.200/32 --jump DNAT --to-destination 192.168.10.2
iptables -t nat -A POSTROUTING -o nicLan --source 192.168.10.0/24 --destination 192.168.10.2/32 --jump MASQUERADE
보시다시피 저는 포트를 정의하지 않았으므로 LAN에서 공개 주소로의 모든 트래픽이 로컬 LAN에 있는 서버로 DNAT 처리됩니다.
필요한 경우 필터 테이블에 허용 규칙을 추가하는 것을 잊지 마세요.