Nodogsplash는 인증된 클라이언트에 대한 인터넷 제공을 중단합니다.

Nodogsplash는 인증된 클라이언트에 대한 인터넷 제공을 중단합니다.

나는 Hostapd를 사용하여 무선 액세스 포인트를 설정했고, dhcp에는 dnsmasq를, 종속 포털에는 nodogsplash를 사용하고 있습니다. 초기 설정에서는 모든 것이 예상대로 작동합니다. 며칠 후 다시 테스트를 해보니 클라이언트가 인증되자 nodogsplash에서 클라이언트가 인증됐다고 보고했는데, 클라이언트를 통해 인터넷에 접속하려고 했더니 접속이 되지 않았습니다. nodogsplash 없이 이 작업을 수행하는 경우 다음 규칙을 수동으로 추가하세요.

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

클라이언트가 인터넷에 액세스할 수 있습니다.

구성 파일이나 종속 포털 페이지에서는 아무것도 변경하지 않았습니다.

클라이언트를 인증하는 부분인 nodogsplash 출력에서 ​​가장 자세한 모드를 활성화했습니다.

[5][Thu Jun 18 12:44:19 2020][2075](src/fw_iptables.c:839) Authenticating 10.0.10.160 64:cc:2e:d6:a5:a4
[7][Thu Jun 18 12:44:19 2020][2075](src/util.c:90) Executing command: iptables --wait -t mangle -A ndsOUT -s 10.0.10.160 -m mac --mac-source 64:cc:2e:d6:a5:a4 -j MARK --or-mark 0x30000 
[7][Thu Jun 18 12:44:19 2020][2075](src/util.c:93) Setting default SIGCHLD handler SIG_DFL
[7][Thu Jun 18 12:44:19 2020][2075](src/util.c:90) Executing command: iptables --wait -t mangle -A ndsINC -d 10.0.10.160 -j MARK --or-mark 0x30000
[7][Thu Jun 18 12:44:19 2020][2075](src/util.c:93) Setting default SIGCHLD handler SIG_DFL
[7][Thu Jun 18 12:44:19 2020][2075](src/util.c:90) Executing command: iptables --wait -t mangle -A ndsINC -d 10.0.10.160 -j ACCEPT
[7][Thu Jun 18 12:44:19 2020][2075](src/util.c:93) Setting default SIGCHLD handler SIG_DFL 
[7][Thu Jun 18 12:44:19 2020][2075](src/auth.c:288) Unlocking client list
[7][Thu Jun 18 12:44:19 2020][2075](src/auth.c:288) Client list unlocked
[5][Thu Jun 18 12:44:19 2020][2075](src/http_microhttpd.c:459) Client [64:cc:2e:d6:a5:a4, 10.0.10.160] authenticated
[7][Thu Jun 18 12:44:23 2020][2075](src/http_microhttpd.c:317) access: GET /nodogsplash_auth/ 
[7][Thu Jun 18 12:44:23 2020][20751(src/main.c:97) SIGCHLD handler: Trying to reap a child
[7][Thu Jun 18 12:44:23 2020][20751(src/main.c:103) SIGCHLD handler: waitpid(): No child exists now. 
[7][Thu Jun 18 12:44:23 2020][2075](src/http_microhttpd.c:317) access: GET /splash.css
[7][Thu Jun 18 12:44:23 2020][2075](src/main.c:97) SIGCHLD handler: Trying to reap a child
[7][Thu Jun 18 12:44:23 2020][2075](src/main.c:103) SIGCHLD handler: waitpid(): No child exists now.

SIGCHLD에 무슨 일이 일어나고 있는지 모르겠지만 그 외에는 어떤 문제도 보고되지 않는 것 같습니다.

내가 사용하고 있는 도구의 구성에는 아무것도 변경되지 않았으므로 이는 기본 시스템(Kali Linux)의 일부 변경으로 인해 발생할 수 있습니다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

업데이트 1

tcpdump를 사용하여 액세스 포인트의 iface(wlan0)와 인터넷 액세스가 가능한 인터페이스(eth0)의 두 인터페이스에서 트래픽을 검사하면 패킷이 삭제되지 않습니다. 그래서 내 생각에는 Kali 시스템에서 응답이 다시 전송되지 않기 때문에 클라이언트가 인터넷에 액세스할 수 없다는 것입니다. 이번에도 라우팅 테이블 설정 방법을 변경하지 않았습니다. wlan0 인터페이스에 IP와 넷마스크를 할당했습니다.

ifconfig wlan0 up 10.0.10.1 netmask 255.255.255.0

경로를 설정합니다.

route add -net 10.0.10.0 netmask 255.255.255.0 gw 10.0.10.1

답장이 반송되지 않는 이유를 알아내야 합니다.

답변1

nodogsplash가 작동하려면 NAT가 있어야 합니다. 따라서 nodogsplash를 실행하기 전에 다음 iptables 규칙을 추가해야 합니다.

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

관련 정보