Changeset 277 for trunk/wifidog/src/fw_iptables.c
- Timestamp:
- 11/18/04 17:22:51 (9 years ago)
- Files:
-
- 1 modified
-
trunk/wifidog/src/fw_iptables.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/wifidog/src/fw_iptables.c
r276 r277 73 73 } 74 74 75 void 76 iptables_fw_clear_authservers(void) 77 { 78 iptables_do_command("-t nat -F " TABLE_WIFIDOG_AUTHSERVERS); 79 } 80 81 void 82 iptables_fw_set_authservers(void) 83 { 84 s_config *config; 85 t_auth_serv *auth_server; 86 87 config = config_get_config(); 88 89 LOCK_CONFIG(); 90 91 iptables_do_command("-t nat -N " TABLE_WIFIDOG_AUTHSERVERS); 92 for (auth_server = config->auth_servers; auth_server != NULL; 93 auth_server = auth_server->next) { 94 iptables_do_command("-t nat -A " TABLE_WIFIDOG_AUTHSERVERS " -d %s -j ACCEPT", auth_server->authserv_hostname); 95 } 96 97 UNLOCK_CONFIG(); 98 } 99 75 100 /** Initialize the firewall rules 76 101 */ … … 79 104 { 80 105 s_config *config; 81 t_auth_serv *auth_server;82 106 83 107 config = config_get_config(); 84 108 fw_quiet = 0; 85 109 86 LOCK_CONFIG(); 87 88 iptables_do_command("-t nat -N " TABLE_WIFIDOG_AUTHSERVERS); 89 for (auth_server = config->auth_servers; auth_server != NULL; 90 auth_server = auth_server->next) { 91 iptables_do_command("-t nat -A " TABLE_WIFIDOG_AUTHSERVERS " -d %s -j ACCEPT", auth_server->authserv_hostname); 92 } 93 94 UNLOCK_CONFIG(); 95 110 iptables_fw_set_authservers(); 111 112 LOCK_CONFIG(); 113 96 114 iptables_do_command("-t nat -N " TABLE_WIFIDOG_VALIDATE); 97 115 iptables_do_command("-t nat -A " TABLE_WIFIDOG_VALIDATE " -j " TABLE_WIFIDOG_AUTHSERVERS); 98 116 iptables_do_command("-t nat -A " TABLE_WIFIDOG_VALIDATE " -d %s -j ACCEPT", config->gw_address); 117 118 UNLOCK_CONFIG(); 99 119 100 120 /** Insert global rules BEFORE the "defaults" */ … … 113 133 iptables_do_command("-t nat -A " TABLE_WIFIDOG_VALIDATE " -j DROP"); 114 134 135 LOCK_CONFIG(); 136 115 137 iptables_do_command("-t nat -N " TABLE_WIFIDOG_UNKNOWN); 116 138 iptables_do_command("-t nat -A " TABLE_WIFIDOG_UNKNOWN " -j " TABLE_WIFIDOG_AUTHSERVERS); 117 139 iptables_do_command("-t nat -A " TABLE_WIFIDOG_UNKNOWN " -d %s -j ACCEPT", config->gw_address); 118 140 141 UNLOCK_CONFIG(); 142 119 143 /** Insert global rules BEFORE the "defaults" */ 120 144 … … 122 146 iptables_do_command("-t nat -A " TABLE_WIFIDOG_UNKNOWN " -p tcp --dport 67 -j ACCEPT"); 123 147 iptables_do_command("-t nat -A " TABLE_WIFIDOG_UNKNOWN " -p udp --dport 53 -j ACCEPT"); 148 149 LOCK_CONFIG(); 150 124 151 iptables_do_command("-t nat -A " TABLE_WIFIDOG_UNKNOWN " -p tcp --dport 80 -j REDIRECT --to-ports %d", config->gw_port); 152 153 UNLOCK_CONFIG(); 154 125 155 iptables_do_command("-t nat -A " TABLE_WIFIDOG_UNKNOWN " -j DROP"); 126 156 … … 135 165 136 166 iptables_do_command("-t nat -N " TABLE_WIFIDOG_CLASS); 167 168 LOCK_CONFIG(); 169 137 170 iptables_do_command("-t nat -A " TABLE_WIFIDOG_CLASS " -i %s -m mark --mark 0x%u -j " TABLE_WIFIDOG_VALIDATE, config->gw_interface, FW_MARK_PROBATION); 138 171 iptables_do_command("-t nat -A " TABLE_WIFIDOG_CLASS " -i %s -m mark --mark 0x%u -j " TABLE_WIFIDOG_KNOWN, config->gw_interface, FW_MARK_KNOWN); … … 147 180 iptables_do_command("-t mangle -I FORWARD 1 -i %s -j " TABLE_WIFIDOG_INCOMING, config->external_interface); 148 181 182 UNLOCK_CONFIG(); 183 149 184 return 1; 150 185 } … … 170 205 iptables_do_command("-t nat -F " TABLE_WIFIDOG_KNOWN); 171 206 iptables_do_command("-t nat -F " TABLE_WIFIDOG_LOCKED); 207 iptables_do_command("-t nat -X " TABLE_WIFIDOG_AUTHSERVERS); 172 208 iptables_do_command("-t nat -X " TABLE_WIFIDOG_VALIDATE); 173 209 iptables_do_command("-t nat -X " TABLE_WIFIDOG_UNKNOWN);
