서버에서 httpd 서비스를 실행하고 있습니다.
방화벽이 있어요
데스크톱 컴퓨터의 인터넷 브라우저.
서버에는 방화벽만 서버에 액세스할 수 있다는 규칙이 있습니다.
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -s firewall -j ACCEPT
데스크탑의 브라우저가 방화벽에 연결되고 방화벽이 데스크탑 서버에 연결하여 http 페이지를 가져오고 해당 페이지를 데스크탑으로 되돌리려면 방화벽에 어떤 규칙을 설정해야 합니까? 즉, 방화벽을 통해 서버에서 페이지를 가져오는 브라우저를 데스크탑에서 열고 싶습니다.
server <-> firewall <-> desktop
다음 단계는 방화벽입니다. 모든 컴퓨터가 동일한 네트워크에 있으면 작동하지만 이것이 최선의 접근 방식인지는 모르겠습니다.
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination server
iptables -t nat -A POSTROUTING -s desktop -j MASQUERADE
어떤 제안이 있으십니까? 또한 다양한 유형의 시나리오에 대해서도 궁금합니다. 모든 컴퓨터는 동일한 네트워크에 있고 데스크톱은 다른 네트워크에 있습니다. 매우 감사합니다
답변1
DNAT 및 SNAT는 영향을 받는 시스템의 주소에 관계없이 작동합니다. DNATting 시스템이 해당 서브넷의 라우터이고 DNAT 대상이 서브넷 외부에 있는 경우 응답 패킷이 시스템에 도달하므로 SNAT가 필요하지 않습니다. 그러나 상황을 무시하는 것이 더 쉽습니다.
코드가 이상해요
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination server
iptables -t nat -A POSTROUTING -s desktop -j MASQUERADE
문제는 SNAT(MASQUERADE)는 desktop
소스로 제한되어 있지만 DNAT는 그렇지 않다는 점입니다. 차라리 이렇게 하고 싶습니다:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination server
iptables -t nat -A POSTROUTING -m conntrack --ctstate DNAT -j MASQUERADE