등록되지 않은 사용자를 로컬 시스템의 사이트로 리디렉션

등록되지 않은 사용자를 로컬 시스템의 사이트로 리디렉션
  • 서버 192.168.0.3(SERVER)이 있습니다. Ubuntu Server + DHCP 서버 + Apache 실행;
  • 라우터 192.168.0.1(ROUTER)(액세스할 수 없음)
  • 특정 구성(DHCP 서버에서)을 적용하여 네트워크에 사용자를 등록하기 위한 웹 응용 프로그램이 SERVER에 있습니다.
  • 사용자는 서브넷 192.168.0.0/16에 있습니다.

등록되지 않은 컴퓨터에 내 서버를 기본 게이트웨이로 제공하도록 DHCP 서버를 구성할 수 있습니다.
그럼 내가 어떻게 할 수 있니?리디렉션등록되지 않은 컴퓨터에서 내 컴퓨터로 들어오는 모든 http 요청로컬 웹앱192.168.0.3?

답변1

echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A PREROUTING -p tcp -dport 80 -j DNAT –to-destination 1.2.3.4:80 iptables -t nat -A POSTROUTING -j MASQUERADE

답변2

서버의 IP로 모든 DNS 쿼리에 응답하는 특수 DNS 서버를 설정하고 모든 호스트에 대한 요청을 수락하도록 Apache의 가상 서버를 설정해야 합니다(예: *:80 + *:443).

중요한 점은 로그인 후 DNS 서버가 가짜 DNS 결과가 아닌 올바른 DNS 결과를 제공하기 시작해야 한다는 것입니다. 기본 임대 시간이 너무 길거나 사용자가 새 설정을 가져오려면 연결을 끊어야 하기 때문에 DHCP에서 설정을 다시 변경할 수는 없습니다.

많은 Wi-Fi 로그인 시스템이 이 아키텍처를 사용하므로 오픈 소스 솔루션을 찾을 수 있습니다.

답변3

나는 서로 다른 방법을 찾았습니다.

  1. 등록되지 않은 시스템 SERVER를 기본 게이트웨이로 제공합니다.
  2. 리디렉션포트 80다음을 사용하여 웹 서버에iptables

하지만 정확히 어떻게 해야 할지 모르겠어요 :)

관련 정보