Przeglądaj źródła

Merge branch 'stretch' of https://github.com/bashrc/freedombone

Bob Mottram 7 lat temu
rodzic
commit
07d43725f9

BIN
img/avatars/icon_routing.png Wyświetl plik


BIN
img/icon_routing.png Wyświetl plik


+ 36
- 3
src/freedombone-image-customise Wyświetl plik

@@ -701,12 +701,9 @@ EOF
701 701
     echo 'After=network.target' >> $rootdir/etc/systemd/system/olsr2.service
702 702
     echo '' >> $rootdir/etc/systemd/system/olsr2.service
703 703
     echo '[Service]' >> $rootdir/etc/systemd/system/olsr2.service
704
-    echo 'Type=forking' >> $rootdir/etc/systemd/system/olsr2.service
705 704
     echo 'User=root' >> $rootdir/etc/systemd/system/olsr2.service
706 705
     echo 'Group=root' >> $rootdir/etc/systemd/system/olsr2.service
707 706
     echo 'ExecStart=/usr/local/sbin/olsrd2_static wlan0' >> $rootdir/etc/systemd/system/olsr2.service
708
-    echo 'ExecStop=/usr/bin/kill -15 $MAINPID' >> $rootdir/etc/systemd/system/olsr2.service
709
-    echo 'PIDFile=/var/run/olsr2/pid' >> $rootdir/etc/systemd/system/olsr2.service
710 707
     echo 'Restart=on-failure' >> $rootdir/etc/systemd/system/olsr2.service
711 708
     echo '' >> $rootdir/etc/systemd/system/olsr2.service
712 709
     echo '[Install]' >> $rootdir/etc/systemd/system/olsr2.service
@@ -1299,6 +1296,39 @@ if [ \$no_of_users -gt 0 ]; then
1299 1296
         chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Desktop/vpn.desktop
1300 1297
     fi
1301 1298
 
1299
+    if [ ! -f /home/$MY_USERNAME/Desktop/routing.desktop ]; then
1300
+        echo '[Desktop Entry]' > /home/$MY_USERNAME/Desktop/routing.desktop
1301
+        echo 'Type=Application' >> /home/$MY_USERNAME/Desktop/routing.desktop
1302
+        echo 'Name=Routing Protocol' >> /home/$MY_USERNAME/Desktop/routing.desktop
1303
+        echo 'Name[el]=Πρωτόκολλο δρομολόγησης' >> /home/$MY_USERNAME/Desktop/routing.desktop
1304
+        echo 'Name[ar]=بروتوكول التوجيه' >> /home/$MY_USERNAME/Desktop/routing.desktop
1305
+        echo "Name[ca]=Protocol d'enrutament" >> /home/$MY_USERNAME/Desktop/routing.desktop
1306
+        echo 'Name[hi]=रूटिंग प्रोटोकॉल' >> /home/$MY_USERNAME/Desktop/routing.desktop
1307
+        echo 'Name[fr]=Protocole de routage' >> /home/$MY_USERNAME/Desktop/routing.desktop
1308
+        echo 'Name[de]=Routingprotokoll' >> /home/$MY_USERNAME/Desktop/routing.desktop
1309
+        echo 'Name[es]=Protocolo de enrutamiento' >> /home/$MY_USERNAME/Desktop/routing.desktop
1310
+        echo 'Name[it]=Protocollo di routing' >> /home/$MY_USERNAME/Desktop/routing.desktop
1311
+        echo 'Name[ru]=Протокол маршрутизации' >> /home/$MY_USERNAME/Desktop/routing.desktop
1312
+        echo 'Name[zh]=路由协议' >> /home/$MY_USERNAME/Desktop/routing.desktop
1313
+        echo 'Comment=Select the mesh routing protocol' >> /home/$MY_USERNAME/Desktop/routing.desktop
1314
+        echo 'Comment[el]=Επιλέξτε το πρωτόκολλο δρομολόγησης πλέγματος' >> /home/$MY_USERNAME/Desktop/routing.desktop
1315
+        echo 'Comment[ar]=حدد بروتوكول توجيه الشبكة' >> /home/$MY_USERNAME/Desktop/routing.desktop
1316
+        echo "Comment[ca]=Seleccioneu el protocol d'enrutament de malles" >> /home/$MY_USERNAME/Desktop/routing.desktop
1317
+        echo 'Comment[hi]=जाल रूटिंग प्रोटोकॉल का चयन करें' >> /home/$MY_USERNAME/Desktop/routing.desktop
1318
+        echo 'Comment[fr]=Sélectionnez le protocole de routage de maillage' >> /home/$MY_USERNAME/Desktop/routing.desktop
1319
+        echo 'Comment[de]=Wählen Sie das Mesh-Routing-Protokoll' >> /home/$MY_USERNAME/Desktop/routing.desktop
1320
+        echo 'Comment[es]=Seleccione el protocolo de enrutamiento de malla' >> /home/$MY_USERNAME/Desktop/routing.desktop
1321
+        echo "Comment[it]=Seleziona il protocollo di instradamento della mesh" >> /home/$MY_USERNAME/Desktop/routing.desktop
1322
+        echo 'Comment[ru]=Выберите протокол маршрутизации сетки' >> /home/$MY_USERNAME/Desktop/routing.desktop
1323
+        echo 'Comment[zh]=选择网状路由协议' >> /home/$MY_USERNAME/Desktop/routing.desktop
1324
+        echo "Exec=mate-terminal -e \"/usr/local/bin/${PROJECT_NAME}-mesh-routing\"" >> /home/$MY_USERNAME/Desktop/routing.desktop
1325
+        echo 'Icon=/usr/share/$PROJECT_NAME/avatars/icon_routing.png' >> /home/$MY_USERNAME/Desktop/routing.desktop
1326
+        echo 'Terminal=false' >> /home/$MY_USERNAME/Desktop/routing.desktop
1327
+        echo 'Categories=Application' >> /home/$MY_USERNAME/Desktop/routing.desktop
1328
+        chmod +x /home/$MY_USERNAME/Desktop/routing.desktop
1329
+        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Desktop/routing.desktop
1330
+    fi
1331
+
1302 1332
     if [ -f /tmp/.ipfs-users ]; then
1303 1333
         echo '[Desktop Entry]' > /home/$MY_USERNAME/Desktop/sites.desktop
1304 1334
         echo 'Type=Application' >> /home/$MY_USERNAME/Desktop/sites.desktop
@@ -1459,6 +1489,9 @@ else
1459 1489
         if [ -f /home/$MY_USERNAME/Desktop/tox.desktop ]; then
1460 1490
             rm /home/$MY_USERNAME/Desktop/tox.desktop
1461 1491
         fi
1492
+        if [ -f /home/$MY_USERNAME/Desktop/routing.desktop ]; then
1493
+            rm /home/$MY_USERNAME/Desktop/routing.desktop
1494
+        fi
1462 1495
         pkill qtox
1463 1496
     fi
1464 1497
 

+ 3
- 0
src/freedombone-mesh-batman Wyświetl plik

@@ -260,16 +260,19 @@ function start {
260 260
     if grep -q "bmx6" $MESH_DEFAULT_PROTOCOL; then
261 261
         systemctl enable bmx6
262 262
         systemctl restart bmx6
263
+        sed -i 's|<type>.*|<type>_bmx6._tcp</type>|g' /etc/avahi/services/routing.service
263 264
     fi
264 265
 
265 266
     if grep -q "bmx7" $MESH_DEFAULT_PROTOCOL; then
266 267
         systemctl enable bmx7
267 268
         systemctl restart bmx7
269
+        sed -i 's|<type>.*|<type>_bmx7._tcp</type>|g' /etc/avahi/services/routing.service
268 270
     fi
269 271
 
270 272
     if grep -q "olsr" $MESH_DEFAULT_PROTOCOL; then
271 273
         systemctl enable olsr2
272 274
         systemctl restart olsr2
275
+        sed -i 's|<type>.*|<type>_olsr2._tcp</type>|g' /etc/avahi/services/routing.service
273 276
     fi
274 277
 
275 278
     systemctl restart avahi-daemon

+ 15
- 10
src/freedombone-mesh-install Wyświetl plik

@@ -107,16 +107,15 @@ function mesh_avahi {
107 107
         rm $rootdir/etc/avahi/services/udisks.service
108 108
     fi
109 109
 
110
-    # Add an ssh service
111
-    echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > $rootdir/etc/avahi/services/ssh.service
112
-    echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> $rootdir/etc/avahi/services/ssh.service
113
-    echo '<service-group>' >> $rootdir/etc/avahi/services/ssh.service
114
-    echo '  <name replace-wildcards="yes">%h SSH</name>' >> $rootdir/etc/avahi/services/ssh.service
115
-    echo '  <service>' >> $rootdir/etc/avahi/services/ssh.service
116
-    echo '    <type>_ssh._tcp</type>' >> $rootdir/etc/avahi/services/ssh.service
117
-    echo "    <port>$SSH_PORT</port>" >> $rootdir/etc/avahi/services/ssh.service
118
-    echo '  </service>' >> $rootdir/etc/avahi/services/ssh.service
119
-    echo '</service-group>' >> $rootdir/etc/avahi/services/ssh.service
110
+    # Add a mesh routing protocol service
111
+    echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > $rootdir/etc/avahi/services/routing.service
112
+    echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> $rootdir/etc/avahi/services/routing.service
113
+    echo '<service-group>' >> $rootdir/etc/avahi/services/routing.service
114
+    echo '  <name replace-wildcards="yes">%h routing</name>' >> $rootdir/etc/avahi/services/routing.service
115
+    echo '  <service>' >> $rootdir/etc/avahi/services/routing.service
116
+    echo '    <type>_bmx6._tcp</type>' >> $rootdir/etc/avahi/services/routing.service
117
+    echo '  </service>' >> $rootdir/etc/avahi/services/routing.service
118
+    echo '</service-group>' >> $rootdir/etc/avahi/services/routing.service
120 119
 
121 120
     # keep the daemon running
122 121
     WATCHDOG_SCRIPT_NAME="keepon"
@@ -228,6 +227,12 @@ function mesh_firewall {
228 227
     echo "ip6tables -A INPUT -p tcp --dport $TRACKER_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
229 228
     echo "iptables -A INPUT -p udp --dport 1900 -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
230 229
     echo "ip6tables -A INPUT -p udp --dport 1900 -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
230
+
231
+    echo '# OLSR2/MANET' >> $MESH_FIREWALL_SCRIPT
232
+    echo 'iptables -A INPUT -p udp --dport 269 -j ACCEPT' >> $MESH_FIREWALL_SCRIPT
233
+    echo 'ip6tables -A INPUT -p udp --dport 269 -j ACCEPT' >> $MESH_FIREWALL_SCRIPT
234
+    echo 'iptables -A INPUT -p tcp --dport 138 -j ACCEPT' >> $MESH_FIREWALL_SCRIPT
235
+    echo 'ip6tables -A INPUT -p tcp --dport 138 -j ACCEPT' >> $MESH_FIREWALL_SCRIPT
231 236
     chmod +x $MESH_FIREWALL_SCRIPT
232 237
 
233 238
     echo '[Unit]' > $FIREWALL_FILENAME

+ 79
- 0
src/freedombone-mesh-routing Wyświetl plik

@@ -0,0 +1,79 @@
1
+#!/bin/bash
2
+#
3
+# .---.                  .              .
4
+# |                      |              |
5
+# |--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-.
6
+# |    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-'
7
+# '    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'
8
+#
9
+#                    Freedom in the Cloud
10
+#
11
+# Select the mesh routing protocol
12
+#
13
+# License
14
+# =======
15
+#
16
+# This program is free software: you can redistribute it and/or modify
17
+# it under the terms of the GNU Affero General Public License as published by
18
+# the Free Software Foundation, either version 3 of the License, or
19
+# (at your option) any later version.
20
+#
21
+# This program is distributed in the hope that it will be useful,
22
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
23
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24
+# GNU Affero General Public License for more details.
25
+#
26
+# You should have received a copy of the GNU Affero General Public License
27
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
28
+
29
+PROJECT_NAME='freedombone'
30
+
31
+export TEXTDOMAIN=${PROJECT_NAME}-mesh-routing
32
+export TEXTDOMAINDIR="/usr/share/locale"
33
+
34
+source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-wifi
35
+source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-mesh
36
+
37
+bmx6_peers=$(avahi-browse -at | grep routing | grep bmx6 | wc -l)
38
+olsr2_peers=$(avahi-browse -at | grep routing | grep olsr2 | wc -l)
39
+
40
+data=$(zenity --list 1 $"BMX6 ($bmx6_peers)" 2 $"OLSR2 ($olsr2_peers)" $"Select Mesh Protocol" --column="id" --title $"Mesh Protocol" --column=$"Choose the mesh protocol:" --hide-column=1 --print-column=1 --height=150)
41
+
42
+sel=$?
43
+case $sel in
44
+    1) exit 1;;
45
+    255) exit 1;;
46
+esac
47
+
48
+echo '#!/bin/bash' > /tmp/change_routing
49
+echo "echo '$1' > $MESH_DEFAULT_PROTOCOL" >> /tmp/change_routing
50
+echo "echo '$1' > $MESH_CURRENT_PROTOCOL" >> /tmp/change_routing
51
+chmod +x /tmp/change_routing
52
+
53
+clear
54
+echo ''
55
+echo $'Authentication to change mesh protocol'
56
+echo ''
57
+
58
+case $data in
59
+    1)  sudo /tmp/change_routing 'bmx6'
60
+        sudo systemctl stop bmx7
61
+        sudo systemctl disable bmx7
62
+        sudo systemctl stop olsr2
63
+        sudo systemctl disable olsr2
64
+        sudo systemctl enable bmx6
65
+        sudo systemctl start bmx6
66
+        ;;
67
+    2)  sudo /tmp/change_routing 'olsr2'
68
+        sudo systemctl stop bmx7
69
+        sudo systemctl disable bmx7
70
+        sudo systemctl stop bmx6
71
+        sudo systemctl disable bmx6
72
+        sudo systemctl enable olsr2
73
+        sudo systemctl start olsr2
74
+        ;;
75
+esac
76
+
77
+rm /tmp/change_routing
78
+
79
+exit 0

+ 9
- 10
src/freedombone-utils-avahi Wyświetl plik

@@ -88,16 +88,15 @@ function mesh_avahi {
88 88
         rm $rootdir/etc/avahi/services/udisks.service
89 89
     fi
90 90
 
91
-    # Add an ssh service
92
-    echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > $rootdir/etc/avahi/services/ssh.service
93
-    echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> $rootdir/etc/avahi/services/ssh.service
94
-    echo '<service-group>' >> $rootdir/etc/avahi/services/ssh.service
95
-    echo '  <name replace-wildcards="yes">%h SSH</name>' >> $rootdir/etc/avahi/services/ssh.service
96
-    echo '  <service>' >> $rootdir/etc/avahi/services/ssh.service
97
-    echo '    <type>_ssh._tcp</type>' >> $rootdir/etc/avahi/services/ssh.service
98
-    echo "    <port>$SSH_PORT</port>" >> $rootdir/etc/avahi/services/ssh.service
99
-    echo '  </service>' >> $rootdir/etc/avahi/services/ssh.service
100
-    echo '</service-group>' >> $rootdir/etc/avahi/services/ssh.service
91
+    # Add a mesh routing protocol service
92
+    echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > $rootdir/etc/avahi/services/routing.service
93
+    echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> $rootdir/etc/avahi/services/routing.service
94
+    echo '<service-group>' >> $rootdir/etc/avahi/services/routing.service
95
+    echo '  <name replace-wildcards="yes">%h routing</name>' >> $rootdir/etc/avahi/services/routing.service
96
+    echo '  <service>' >> $rootdir/etc/avahi/services/routing.service
97
+    echo '    <type>_bmx6._tcp</type>' >> $rootdir/etc/avahi/services/routing.service
98
+    echo '  </service>' >> $rootdir/etc/avahi/services/routing.service
99
+    echo '</service-group>' >> $rootdir/etc/avahi/services/routing.service
101 100
 
102 101
     # keep the daemon running
103 102
     WATCHDOG_SCRIPT_NAME="keepon"

+ 12
- 0
src/freedombone-utils-mesh Wyświetl plik

@@ -195,6 +195,9 @@ function enable_mesh_firewall {
195 195
     iptables -A INPUT -p tcp --dport 8008 -j ACCEPT
196 196
     iptables -A INPUT -p udp --dport 8010 -j ACCEPT
197 197
     iptables -A INPUT -p tcp --dport 8010 -j ACCEPT
198
+    # OLSR2/MANET
199
+    iptables -A INPUT -p udp --dport 269 -j ACCEPT
200
+    iptables -A INPUT -p tcp --dport 138 -j ACCEPT
198 201
 
199 202
 
200 203
     ip6tables -A INPUT -p ipv6-icmp -j ACCEPT
@@ -225,6 +228,9 @@ function enable_mesh_firewall {
225 228
     ip6tables -A INPUT -p tcp --dport 8008 -j ACCEPT
226 229
     ip6tables -A INPUT -p udp --dport 8010 -j ACCEPT
227 230
     ip6tables -A INPUT -p tcp --dport 8010 -j ACCEPT
231
+    # OLSR2/MANET
232
+    ip6tables -A INPUT -p udp --dport 269 -j ACCEPT
233
+    ip6tables -A INPUT -p tcp --dport 138 -j ACCEPT
228 234
 
229 235
 
230 236
     # vpn over the internet
@@ -273,6 +279,9 @@ function disable_mesh_firewall {
273 279
     iptables -D INPUT -p tcp --dport 8008 -j ACCEPT
274 280
     iptables -D INPUT -p udp --dport 8010 -j ACCEPT
275 281
     iptables -D INPUT -p tcp --dport 8010 -j ACCEPT
282
+    # OLSR2/MANET
283
+    iptables -D INPUT -p udp --dport 269 -j ACCEPT
284
+    iptables -D INPUT -p tcp --dport 138 -j ACCEPT
276 285
 
277 286
 
278 287
     ip6tables -D INPUT -p tcp --dport $TRACKER_PORT -j ACCEPT
@@ -302,6 +311,9 @@ function disable_mesh_firewall {
302 311
     ip6tables -D INPUT -p tcp --dport 8008 -j ACCEPT
303 312
     ip6tables -D INPUT -p udp --dport 8010 -j ACCEPT
304 313
     ip6tables -D INPUT -p tcp --dport 8010 -j ACCEPT
314
+    # OLSR2/MANET
315
+    ip6tables -D INPUT -p udp --dport 269 -j ACCEPT
316
+    ip6tables -D INPUT -p tcp --dport 138 -j ACCEPT
305 317
 
306 318
 
307 319
     # vpn over the internet