Changeset 136
- Timestamp:
- 12/18/06 12:45:33 (2 years ago)
- Files:
-
- wifidog/wifidog-1.1.3_beta4/config.h (added)
- wifidog/wifidog-1.1.3_beta4/src/auth.c (modified) (1 diff)
- wifidog/wifidog-1.1.3_beta4/src/auth.h (modified) (1 diff)
- wifidog/wifidog-1.1.3_beta4/src/conf.c (modified) (1 diff)
- wifidog/wifidog-1.1.3_beta4/src/firewall.h (modified) (1 diff)
- wifidog/wifidog-1.1.3_beta4/src/fw_iptables.c (modified) (9 diffs)
- wifidog/wifidog-1.1.3_beta4/wifidog.conf (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
wifidog/wifidog-1.1.3_beta4/src/auth.c
r98 r136 232 232 break; 233 233 234 case AUTH_MEMBER: 235 /* Logged in successfully as a member account */ 236 debug(LOG_INFO, "Got MEMBER from central server authenticating token %s from %s at %s - adding to firewall and redirecting them to portal", client->token, client->ip, client->mac); 237 client->fw_connection_state = FW_MARK_MEMBER; 238 fw_allow(client->ip, client->mac, FW_MARK_MEMBER); 239 served_this_session++; 240 safe_asprintf(&newlocation, "Location: %s://%s:%d%sportal/?gw_id=%s", 241 protocol, 242 auth_server->authserv_hostname, 243 port, 244 auth_server->authserv_path, 245 config->gw_id 246 ); 247 httpdSetResponse(r, "307 Redirect to portal\n"); 248 httpdAddHeader(r, newlocation); 249 free(newlocation); 250 http_wifidog_header(r, "Redirection to portal"); 251 httpdPrintf(r, "Please <a href='%s://%s:%d%sportal/?gw_id=%s'>click here</a> for the portal.", 252 protocol, 253 auth_server->authserv_hostname, 254 port, 255 auth_server->authserv_path, 256 config->gw_id 257 ); 258 http_wifidog_footer(r); 259 break; 260 234 261 case AUTH_VALIDATION_FAILED: 235 262 /* Client had X minutes to validate account by email and didn't = too late */ wifidog/wifidog-1.1.3_beta4/src/auth.h
r98 r136 38 38 AUTH_DENIED = 0, /**< Client was denied by the auth server */ 39 39 AUTH_ALLOWED = 1, /**< Client was granted access by the auth server */ 40 AUTH_MEMBER = 2, /**< Client was granted access as a member by the auth server */ 40 41 AUTH_VALIDATION = 5, /**< A misnomer. Client is in 15 min probation to validate his new account */ 41 42 AUTH_VALIDATION_FAILED = 6, /**< @todo DOCUMENT ME */ wifidog/wifidog-1.1.3_beta4/src/conf.c
r135 r136 91 91 oLon, 92 92 oTinyproxyPort, 93 oProxyHost, 93 94 } OpCodes; 94 95 wifidog/wifidog-1.1.3_beta4/src/firewall.h
r98 r136 33 33 @todo: VERIFY THAT THIS IS ACCURATE*/ 34 34 FW_MARK_KNOWN = 2, /**< @brief The client is known to the firewall */ 35 FW_MARK_MEMBER = 3, /**< @brief The client is a member */ 35 36 FW_MARK_LOCKED = 254 /**< @brief The client has been locked out */ 36 37 } t_fw_marks; wifidog/wifidog-1.1.3_beta4/src/fw_iptables.c
r135 r136 192 192 t_trusted_mac *p; 193 193 int tinyproxy_port; 194 194 195 195 fw_quiet = 0; 196 196 … … 236 236 iptables_do_command("-t nat -N " TABLE_WIFIDOG_WIFI_TO_ROUTER); 237 237 iptables_do_command("-t nat -N " TABLE_WIFIDOG_WIFI_TO_INTERNET); 238 iptables_do_command("-t nat -N " TABLE_WIFIDOG_WIFI_TO_INTERNET_FOR_MEMBERS);239 238 iptables_do_command("-t nat -N " TABLE_WIFIDOG_GLOBAL); 240 239 iptables_do_command("-t nat -N " TABLE_WIFIDOG_UNKNOWN); … … 252 251 debug(LOG_INFO,"Tinyproxy port set, setting tinyproxy rule"); 253 252 iptables_do_command("-t nat -A " TABLE_WIFIDOG_WIFI_TO_INTERNET " -p tcp --dport 80 -m mark --mark 0x%u -j REDIRECT --to-port %u", FW_MARK_KNOWN, tinyproxy_port); 254 iptables_do_command("-t nat -A " TABLE_WIFIDOG_WIFI_TO_INTERNET _FOR_MEMBERS " -p tcp --dport 80 -m mark --mark 0x%u -j REDIRECT --to-port %u", FW_MARK_KNOWN, tinyproxy_port);253 iptables_do_command("-t nat -A " TABLE_WIFIDOG_WIFI_TO_INTERNET " -p tcp --dport 80 -m mark --mark 0x%u -j REDIRECT --to-port %u", FW_MARK_MEMBER, tinyproxy_port); 255 254 } else { 256 255 iptables_do_command("-t nat -A " TABLE_WIFIDOG_WIFI_TO_INTERNET " -m mark --mark 0x%u -j ACCEPT", FW_MARK_KNOWN); 257 iptables_do_command("-t nat -A " TABLE_WIFIDOG_WIFI_TO_INTERNET _FOR_MEMBERS " -m mark --mark 0x%u -j ACCEPT", FW_MARK_KNOWN);256 iptables_do_command("-t nat -A " TABLE_WIFIDOG_WIFI_TO_INTERNET " -m mark --mark 0x%u -j ACCEPT", FW_MARK_MEMBER); 258 257 } 259 258 260 259 iptables_do_command("-t nat -A " TABLE_WIFIDOG_WIFI_TO_INTERNET " -m mark --mark 0x%u -j ACCEPT", FW_MARK_PROBATION); 261 260 iptables_do_command("-t nat -A " TABLE_WIFIDOG_WIFI_TO_INTERNET " -j " TABLE_WIFIDOG_UNKNOWN); 262 263 iptables_do_command("-t nat -A " TABLE_WIFIDOG_WIFI_TO_INTERNET_FOR_MEMBERS " -m mark --mark 0x%u -j ACCEPT", FW_MARK_PROBATION);264 iptables_do_command("-t nat -A " TABLE_WIFIDOG_WIFI_TO_INTERNET_FOR_MEMBERS " -j " TABLE_WIFIDOG_UNKNOWN);265 261 266 262 iptables_do_command("-t nat -A " TABLE_WIFIDOG_UNKNOWN " -j " TABLE_WIFIDOG_AUTHSERVERS); … … 277 273 /* Create new chains */ 278 274 iptables_do_command("-t filter -N " TABLE_WIFIDOG_WIFI_TO_INTERNET); 279 iptables_do_command("-t filter -N " TABLE_WIFIDOG_WIFI_TO_INTERNET_FOR_MEMBERS);280 275 iptables_do_command("-t filter -N " TABLE_WIFIDOG_AUTHSERVERS); 281 276 iptables_do_command("-t filter -N " TABLE_WIFIDOG_LOCKED); … … 321 316 iptables_do_command("-t filter -A " TABLE_WIFIDOG_WIFI_TO_INTERNET " -j " TABLE_WIFIDOG_UNKNOWN); 322 317 323 iptables_ load_ruleset("filter", "members-users", TABLE_WIFIDOG_MEMBERS);324 iptables_ do_command("-t filter -A " TABLE_WIFIDOG_WIFI_TO_INTERNET_FOR_MEMBERS " -j " TABLE_WIFIDOG_UNKNOWN);318 iptables_do_command("-t filter -A " TABLE_WIFIDOG_WIFI_TO_INTERNET " -m mark --mark 0x%u -j " TABLE_WIFIDOG_MEMBERS, FW_MARK_MEMBER); 319 iptables_load_ruleset("filter", "member-users", TABLE_WIFIDOG_MEMBERS); 325 320 326 321 iptables_load_ruleset("filter", "unknown-users", TABLE_WIFIDOG_UNKNOWN); … … 371 366 iptables_do_command("-t nat -F " TABLE_WIFIDOG_WIFI_TO_ROUTER); 372 367 iptables_do_command("-t nat -F " TABLE_WIFIDOG_WIFI_TO_INTERNET); 373 iptables_do_command("-t nat -F " TABLE_WIFIDOG_WIFI_TO_INTERNET_FOR_MEMBERS);374 368 iptables_do_command("-t nat -F " TABLE_WIFIDOG_GLOBAL); 375 369 iptables_do_command("-t nat -F " TABLE_WIFIDOG_UNKNOWN); … … 378 372 iptables_do_command("-t nat -X " TABLE_WIFIDOG_WIFI_TO_ROUTER); 379 373 iptables_do_command("-t nat -X " TABLE_WIFIDOG_WIFI_TO_INTERNET); 380 iptables_do_command("-t nat -X " TABLE_WIFIDOG_WIFI_TO_INTERNET_FOR_MEMBERS);381 374 iptables_do_command("-t nat -X " TABLE_WIFIDOG_GLOBAL); 382 375 iptables_do_command("-t nat -X " TABLE_WIFIDOG_UNKNOWN); … … 390 383 iptables_fw_destroy_mention("filter", "FORWARD", TABLE_WIFIDOG_WIFI_TO_INTERNET); 391 384 iptables_do_command("-t filter -F " TABLE_WIFIDOG_WIFI_TO_INTERNET); 392 iptables_do_command("-t filter -F " TABLE_WIFIDOG_WIFI_TO_INTERNET_FOR_MEMBERS);393 385 iptables_do_command("-t filter -F " TABLE_WIFIDOG_AUTHSERVERS); 394 386 iptables_do_command("-t filter -F " TABLE_WIFIDOG_LOCKED); … … 399 391 iptables_do_command("-t filter -F " TABLE_WIFIDOG_UNKNOWN); 400 392 iptables_do_command("-t filter -X " TABLE_WIFIDOG_WIFI_TO_INTERNET); 401 iptables_do_command("-t filter -X " TABLE_WIFIDOG_WIFI_TO_INTERNET_FOR_MEMBERS);402 393 iptables_do_command("-t filter -X " TABLE_WIFIDOG_AUTHSERVERS); 403 394 iptables_do_command("-t filter -X " TABLE_WIFIDOG_LOCKED); wifidog/wifidog-1.1.3_beta4/wifidog.conf
r106 r136 212 212 } 213 213 214 # Rule Set: member-users 215 # 216 # Used for member validated users. 217 FirewallRuleSet member-users { 218 FirewallRule allow to 0.0.0.0/0 219 } 220 221 222 214 223 # Rule Set: unknown-users 215 224 #
