사용자가 먼저 EULA에 동의한 경우에만 통과할 수 있는 액세스 포인트를 설정해야 합니다. 일을 좀 더 쉽게 하기 위해 이더넷과 Wi-Fi에 있는 사람의 연결을 공유하는 유닉스 시스템을 사용하여 이 작업을 수행할 생각입니다. 이 문제를 해결하는 가장 좋은 방법은 무엇입니까?
나는 생각하고 있었다
- 모든 새로운 http 연결을 EULA 페이지로 리디렉션하고 사용자가 "동의"를 클릭하면 테이블에 ip+mac를 추가하고 다른 모든 항목을 필터링합니다.
- dnsmasq를 사용하여 리디렉션(사용자가 "수락"을 클릭한 후 리디렉션을 중지하는 방법을 모르지만)
어떤 제안이 있으십니까?
답변1
나는 당신의 접근 방식에 동의합니다. 사용자의 MAC 주소가 화이트리스트에 추가되기 전에 HTTP 요청을 제외한 해당 사용자의 모든 패킷을 삭제해야 합니다. 이는 Apache IP:port로 리디렉션되어야 합니다(여기서는예). 사용자가 EULA에서 "동의"를 클릭하면 MAC 주소를 화이트리스트에 추가하고 iptables 내에 예외를 추가하며 패킷 삭제를 중지하는 프로세스를 트리거해야 합니다. 쉽다고는 말할 수 없지만 적어도 가능합니다.