Sfoglia il codice sorgente

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

Bob Mottram 7 anni fa
parent
commit
07d43725f9

BIN
img/avatars/icon_routing.png Vedi File


BIN
img/icon_routing.png Vedi File


+ 36
- 3
src/freedombone-image-customise Vedi File

701
     echo 'After=network.target' >> $rootdir/etc/systemd/system/olsr2.service
701
     echo 'After=network.target' >> $rootdir/etc/systemd/system/olsr2.service
702
     echo '' >> $rootdir/etc/systemd/system/olsr2.service
702
     echo '' >> $rootdir/etc/systemd/system/olsr2.service
703
     echo '[Service]' >> $rootdir/etc/systemd/system/olsr2.service
703
     echo '[Service]' >> $rootdir/etc/systemd/system/olsr2.service
704
-    echo 'Type=forking' >> $rootdir/etc/systemd/system/olsr2.service
705
     echo 'User=root' >> $rootdir/etc/systemd/system/olsr2.service
704
     echo 'User=root' >> $rootdir/etc/systemd/system/olsr2.service
706
     echo 'Group=root' >> $rootdir/etc/systemd/system/olsr2.service
705
     echo 'Group=root' >> $rootdir/etc/systemd/system/olsr2.service
707
     echo 'ExecStart=/usr/local/sbin/olsrd2_static wlan0' >> $rootdir/etc/systemd/system/olsr2.service
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
     echo 'Restart=on-failure' >> $rootdir/etc/systemd/system/olsr2.service
707
     echo 'Restart=on-failure' >> $rootdir/etc/systemd/system/olsr2.service
711
     echo '' >> $rootdir/etc/systemd/system/olsr2.service
708
     echo '' >> $rootdir/etc/systemd/system/olsr2.service
712
     echo '[Install]' >> $rootdir/etc/systemd/system/olsr2.service
709
     echo '[Install]' >> $rootdir/etc/systemd/system/olsr2.service
1299
         chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Desktop/vpn.desktop
1296
         chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/Desktop/vpn.desktop
1300
     fi
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
     if [ -f /tmp/.ipfs-users ]; then
1332
     if [ -f /tmp/.ipfs-users ]; then
1303
         echo '[Desktop Entry]' > /home/$MY_USERNAME/Desktop/sites.desktop
1333
         echo '[Desktop Entry]' > /home/$MY_USERNAME/Desktop/sites.desktop
1304
         echo 'Type=Application' >> /home/$MY_USERNAME/Desktop/sites.desktop
1334
         echo 'Type=Application' >> /home/$MY_USERNAME/Desktop/sites.desktop
1459
         if [ -f /home/$MY_USERNAME/Desktop/tox.desktop ]; then
1489
         if [ -f /home/$MY_USERNAME/Desktop/tox.desktop ]; then
1460
             rm /home/$MY_USERNAME/Desktop/tox.desktop
1490
             rm /home/$MY_USERNAME/Desktop/tox.desktop
1461
         fi
1491
         fi
1492
+        if [ -f /home/$MY_USERNAME/Desktop/routing.desktop ]; then
1493
+            rm /home/$MY_USERNAME/Desktop/routing.desktop
1494
+        fi
1462
         pkill qtox
1495
         pkill qtox
1463
     fi
1496
     fi
1464
 
1497
 

+ 3
- 0
src/freedombone-mesh-batman Vedi File

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

+ 15
- 10
src/freedombone-mesh-install Vedi File

107
         rm $rootdir/etc/avahi/services/udisks.service
107
         rm $rootdir/etc/avahi/services/udisks.service
108
     fi
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
     # keep the daemon running
120
     # keep the daemon running
122
     WATCHDOG_SCRIPT_NAME="keepon"
121
     WATCHDOG_SCRIPT_NAME="keepon"
228
     echo "ip6tables -A INPUT -p tcp --dport $TRACKER_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
227
     echo "ip6tables -A INPUT -p tcp --dport $TRACKER_PORT -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
229
     echo "iptables -A INPUT -p udp --dport 1900 -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
228
     echo "iptables -A INPUT -p udp --dport 1900 -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
230
     echo "ip6tables -A INPUT -p udp --dport 1900 -j ACCEPT" >> $MESH_FIREWALL_SCRIPT
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
     chmod +x $MESH_FIREWALL_SCRIPT
236
     chmod +x $MESH_FIREWALL_SCRIPT
232
 
237
 
233
     echo '[Unit]' > $FIREWALL_FILENAME
238
     echo '[Unit]' > $FIREWALL_FILENAME

+ 79
- 0
src/freedombone-mesh-routing Vedi File

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 Vedi File

88
         rm $rootdir/etc/avahi/services/udisks.service
88
         rm $rootdir/etc/avahi/services/udisks.service
89
     fi
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
     # keep the daemon running
101
     # keep the daemon running
103
     WATCHDOG_SCRIPT_NAME="keepon"
102
     WATCHDOG_SCRIPT_NAME="keepon"

+ 12
- 0
src/freedombone-utils-mesh Vedi File

195
     iptables -A INPUT -p tcp --dport 8008 -j ACCEPT
195
     iptables -A INPUT -p tcp --dport 8008 -j ACCEPT
196
     iptables -A INPUT -p udp --dport 8010 -j ACCEPT
196
     iptables -A INPUT -p udp --dport 8010 -j ACCEPT
197
     iptables -A INPUT -p tcp --dport 8010 -j ACCEPT
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
     ip6tables -A INPUT -p ipv6-icmp -j ACCEPT
203
     ip6tables -A INPUT -p ipv6-icmp -j ACCEPT
225
     ip6tables -A INPUT -p tcp --dport 8008 -j ACCEPT
228
     ip6tables -A INPUT -p tcp --dport 8008 -j ACCEPT
226
     ip6tables -A INPUT -p udp --dport 8010 -j ACCEPT
229
     ip6tables -A INPUT -p udp --dport 8010 -j ACCEPT
227
     ip6tables -A INPUT -p tcp --dport 8010 -j ACCEPT
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
     # vpn over the internet
236
     # vpn over the internet
273
     iptables -D INPUT -p tcp --dport 8008 -j ACCEPT
279
     iptables -D INPUT -p tcp --dport 8008 -j ACCEPT
274
     iptables -D INPUT -p udp --dport 8010 -j ACCEPT
280
     iptables -D INPUT -p udp --dport 8010 -j ACCEPT
275
     iptables -D INPUT -p tcp --dport 8010 -j ACCEPT
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
     ip6tables -D INPUT -p tcp --dport $TRACKER_PORT -j ACCEPT
287
     ip6tables -D INPUT -p tcp --dport $TRACKER_PORT -j ACCEPT
302
     ip6tables -D INPUT -p tcp --dport 8008 -j ACCEPT
311
     ip6tables -D INPUT -p tcp --dport 8008 -j ACCEPT
303
     ip6tables -D INPUT -p udp --dport 8010 -j ACCEPT
312
     ip6tables -D INPUT -p udp --dport 8010 -j ACCEPT
304
     ip6tables -D INPUT -p tcp --dport 8010 -j ACCEPT
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
     # vpn over the internet
319
     # vpn over the internet