• Stars
    star
    229
  • Rank 174,666 (Top 4 %)
  • Language
    Lua
  • License
    GNU Lesser Genera...
  • Created about 7 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Next generation WifiDog implemented in Lua and kernel module.

WifiDog-ng(中文)

license PRs Welcome Issue Welcome Release Version

Next generation WifiDog

WifiDog-ng is a very efficient captive portal solution for wireless router which with embedded linux(LEDE/Openwrt) system implemented in Lua.

Keep Watching for More Actions on This Space

Features

  • Written in Lua, so development is very efficient
  • Use ipset and writing kernel module to implement authentication management instead of using iptables to create firewall rules
  • Support roam
  • Code structure is concise and understandable

Build

UCI Config options

Section gateway

Name Type Required Default Description
enabled bool no 0 Whether to enable wifidog
dhcp_host_white bool no 1 dhcp mac is whitelist
id string no Gateway id. If not set, the mac address of the ifname will be used
interface Openwrt interface no lan The device belong to the interface to listen by wifidog
port port number no 2060 port to listen by wifidog
ssl_port port number no 8443 ssl port to listen by wifidog
ssid ssid no Used for WeChat
checkinterval seconds no 30 How often the gateway will ping the auth server
temppass_time seconds no 30 Temporary pass time

Section server

Name Type Required Default
host string yes no
port port number no 80
ssl bool no 0
path string no /wifidog
login_path string no login
portal_path string no portal
msg_path string no gw_message.php
ping_path string no ping
auth_path string no auth

Section validated_user

Name Type Description
mac string A macaddr
comment string A comment

Section validated_domain

Name Type Description
domain string Can be a domain or ipaddr
comment string A comment

Protocol

Gateway heartbeating (Ping Protocol)

http://authserver/wifidog/ping?gw_id=xx&sys_uptime=xx&sys_memfree=xx&sys_load=xx&wifidog_uptime=xx

To this the auth server is expected to respond with an http message containing the word "Pong".

Login

http://authserver/wifidog/login?gw_address=xx&gw_port=xx&gw_id=xx&ip=xx&mac=xx&ssid=xx

Auth

http://gw_address:gw_port/wifidog/auth?token=xx

Auth confirm

http://authserver/wifidog/auth?stage=login&ip=xx&mac=xx&token=xx&incoming=xx&outgoing=xx

The response of the auth server should be "Auth: 1" or "Auth: 0"

Roam

http://authserver/wifidog/auth?stage=roam&ip=xx&max=xx

The response of the auth server should be "token=xxxxxxx" or other.

Temporary pass

http://gw_address:gw_port/wifidog/temppass?script=startWeChatAuth();

Test Server

Manage

Kick off the term

wget "http://lanip:2060/wifidog/ctl?op=kick&mac=0C:1D:AF:C4:DB:FC" -O /dev/null

Relaod config

wget "http://lanip:2060/wifidog/ctl?op=reload" -O /dev/null

Show device

ipset list wifidog-ng-mac

Donate

Contributing

If you would like to help making wifidog-ng better, see the CONTRIBUTING.md file.

QQ group: 153530783

If the project is helpful to you, please do not hesitate to star. Thank you!

More Repositories

1

rtty

🐛 Access your terminal from anywhere via the web.
C
3,643
star
2

oui

🐛 A framework used to develop Web interface for OpenWrt. Use Lua-eco + Vue3 + Vite + Element Plus.
C
1,030
star
3

rttys

Access your device's terminal from anywhere via the web.
Go
660
star
4

libuhttpd

A very flexible, lightweight and high performance HTTP server library based on libev and http-parser for Embedded Linux.
C
384
star
5

libuwsc

A Lightweight and fully asynchronous WebSocket client library based on libev
C
288
star
6

evmongoose

DEPRECATED. Evmongoose is an asynchronous, event(libev) based multi-protocol embedded networking library with functions including TCP, HTTP, WebSocket, MQTT and much more. It's based on mongoose and libev implementation and it's support Lua API.
C
212
star
7

libumqtt

A Lightweight and fully asynchronous MQTT client C library based on libev
C
192
star
8

xluci2

DEPRECATED. xLuCI2 is a JavaScript Webgui for embedded devices running OpenWRT or LEDE
JavaScript
151
star
9

U-boot-1

U-boot学习笔记
104
star
10

lua-eco

🐛Lua-eco is a Lua interpreter with a built-in event loop for scheduling lightweight coroutines automatically, enabling efficient concurrency in Lua. Build high-performance, scalable applications.
C
71
star
11

wifidog-ng-authserver

A simple auth server for wifidog-ng to test
Go
22
star
12

lua-ffi

A portable lightweight C FFI for Lua, based on libffi and aiming to be mostly compatible with LuaJIT FFI.
C
22
star
13

buffer

A buffer similar to the skbuff in the kernel, but more suitable for application.
C
15
star
14

barebox

Better barebox. Support AR9331, AR9344 and more...
C
14
star
15

ssl

The encapsulation of OpenSSL, WolfSSL, and MBEDTLS aims to make usage easy.
C
8
star
16

log

C
3
star