contrib/meshwizard: Add wan configuration
authorManuel Munz <freifunk@somakoma.de>
Wed, 26 Oct 2011 12:53:40 +0000 (12:53 +0000)
committerManuel Munz <freifunk@somakoma.de>
Wed, 26 Oct 2011 12:53:40 +0000 (12:53 +0000)
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/read_defaults.sh
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_network.sh
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wan_static.sh [new file with mode: 0755]
contrib/package/meshwizard/files/usr/bin/meshwizard/wizard.sh

index 67469e3c2ceaf8087a52b0ce4b117c1cc9b1a3b7..89f788ecd2e107581222a9e290c7c4a09c203acf 100755 (executable)
@@ -20,6 +20,6 @@ for v in system wifi_device wifi_iface interface alias dhcp olsr_interface olsr_
 done
 
 # read values from meshwizard
 done
 
 # read values from meshwizard
-for v in system luci_main contact community; do
+for v in system luci_main contact community wan; do
         get_var meshwizard.$v
 done
         get_var meshwizard.$v
 done
index 9958af1ac9a740ef35b157dad9e1c1faaae7f50b..1d4c3ba7e196be9b896228c5b794e57c04b90aa0 100755 (executable)
@@ -61,11 +61,11 @@ if [ "$net_dhcp" == 1 ]; then
                uci set network.${netrenamed}dhcp.interface="$netrenamed"
        fi
 
                uci set network.${netrenamed}dhcp.interface="$netrenamed"
        fi
 
-uci batch << EOF
-set network.${netrenamed}dhcp.proto=static
-set network.${netrenamed}dhcp.ipaddr="$START"
-set network.${netrenamed}dhcp.netmask="$NETMASK"
-uci_commitverbose  "Setup interface for ${netrenamed}dhcp" network
+       uci batch << EOF
+       set network.${netrenamed}dhcp.proto=static
+       set network.${netrenamed}dhcp.ipaddr="$START"
+       set network.${netrenamed}dhcp.netmask="$NETMASK"
+       uci_commitverbose  "Setup interface for ${netrenamed}dhcp" network
 EOF
 
 fi
 EOF
 
 fi
diff --git a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wan_static.sh b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wan_static.sh
new file mode 100755 (executable)
index 0000000..e41695f
--- /dev/null
@@ -0,0 +1,48 @@
+#!/bin/sh
+# Setup static interface settings for wan if wan is not an olsr interface
+
+[ ! "$(uci -q get network.wan)" == "interface" ] && exit
+
+. /etc/functions.sh
+. $dir/functions.sh
+
+uci batch << EOF
+set network.wan.proto='$wan_proto'
+set network.wan.ipaddr='$wan_ip4addr'
+set network.wan.netmask='$wan_netmask'
+set network.wan.gateway='$wan_gateway'
+set network.wan.dns='$wan_dns'
+EOF
+
+uci_commitverbose "Setup static ip settings for wan" network
+
+uci delete meshwizard.wan && uci commit meshwizard
+
+# Firewall rules to allow incoming ssh and web
+
+if [ "$wan_allowssh" == 1 ]; then
+       uci batch << EOF
+set firewall.wanssh=rule
+set firewall.wanssh.src=wan
+set firewall.wanssh.target=ACCEPT
+set firewall.wanssh.proto=tcp
+set firewall.wanssh.dest_port=22
+EOF
+       uci_commitverbose "Allow incoming connections to port 22 (ssh) on wan" firewall
+fi
+
+if [ "$wan_allowweb" == 1 ]; then
+       uci batch << EOF
+set firewall.wanweb=rule
+set firewall.wanweb.src=wan
+set firewall.wanweb.target=ACCEPT
+set firewall.wanweb.proto=tcp
+set firewall.wanweb.dest_port=80
+set firewall.wanwebhttps=rule
+set firewall.wanwebhttps.src=wan
+set firewall.wanwebhttps.target=ACCEPT
+set firewall.wanwebhttps.proto=tcp
+set firewall.wanwebhttps.dest_port=443
+EOF
+       uci_commitverbose "Allow incoming connections to port 80 and 443 (http and https) on wan" firewall
+fi
index 2b85b737991a4056e21d0289b9142ca804f26b8d..fd9d95ebf8090277f4ff33839e9642f467d32c3f 100755 (executable)
@@ -12,7 +12,7 @@
 . /etc/functions.sh
 
 echo "
 . /etc/functions.sh
 
 echo "
-/* Meshwizard 0.0.5 */
+/* Meshwizard 0.0.4 */
 "
 
 # config
 "
 
 # config
@@ -36,6 +36,7 @@ $dir/helpers/rename-wifi.sh
 community=$(uci -q get meshwizard.community.name || uci -q get freifunk.community.name)
 [ -z "$community" ] && echo "Error: Community is not set in /etc/config/freifunk, aborting now." && exit 1
 export community="$community"
 community=$(uci -q get meshwizard.community.name || uci -q get freifunk.community.name)
 [ -z "$community" ] && echo "Error: Community is not set in /etc/config/freifunk, aborting now." && exit 1
 export community="$community"
+echo $community
 
 # Get a list of networks we need to setup
 networks=$(uci show meshwizard.netconfig | grep -v "netconfig=" | sed -e 's/meshwizard.netconfig\.\(.*\)\_.*/\1/' |sort|uniq)
 
 # Get a list of networks we need to setup
 networks=$(uci show meshwizard.netconfig | grep -v "netconfig=" | sed -e 's/meshwizard.netconfig\.\(.*\)\_.*/\1/' |sort|uniq)
@@ -58,6 +59,10 @@ $dir/helpers/setup_system.sh
 $dir/helpers/setup_olsrd.sh
 $dir/helpers/setup_firewall.sh
 
 $dir/helpers/setup_olsrd.sh
 $dir/helpers/setup_firewall.sh
 
+if [ "$wan_proto" == "static" ] && [ -n "$wan_ip4addr" ] && [ -n "$wan_netmask" ]; then
+       $dir/helpers/setup_wan_static.sh
+fi
+
 # Configure found networks
 for net in $networks; do
        # radioX devices need to be renamed
 # Configure found networks
 for net in $networks; do
        # radioX devices need to be renamed
@@ -80,4 +85,4 @@ done
 
 ##### Reboot the router (because simply restarting services gave errors)
 
 
 ##### Reboot the router (because simply restarting services gave errors)
 
-#reboot
+reboot