|
@@ -36,382 +36,103 @@ CURR_USER=$USER
|
36
|
36
|
# Version number of this script
|
37
|
37
|
VERSION="1.01"
|
38
|
38
|
|
39
|
|
-WIFI_CHANNEL=2
|
40
|
|
-WIFI_INTERFACE=wlan0
|
41
|
|
-
|
42
|
|
-# B.A.T.M.A.N settings
|
43
|
|
-BATMAN_CELLID='02:BA:00:00:03:01'
|
44
|
|
-WIFI_SSID='mesh'
|
45
|
|
-
|
46
|
|
-# Babel
|
47
|
|
-BABEL_PORT=6696
|
48
|
|
-
|
49
|
39
|
# ssh (from https://stribika.github.io/2015/01/04/secure-secure-shell.html)
|
50
|
40
|
SSH_CIPHERS="chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr"
|
51
|
41
|
SSH_MACS="hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-ripemd160-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160,umac-128@openssh.com"
|
52
|
42
|
SSH_KEX="curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256"
|
53
|
43
|
SSH_HOST_KEY_ALGORITHMS="ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-ed25519,ssh-rsa"
|
54
|
44
|
|
55
|
|
-ZERONET_PORT=15441
|
56
|
|
-IPFS_PORT=4001
|
57
|
|
-TRACKER_PORT=6969
|
58
|
|
-
|
59
|
|
-TOXID_REPO='https://github.com/bashrc/toxid'
|
60
|
|
-
|
61
|
45
|
# see https://stribika.github.io/2015/01/04/secure-secure-shell.html
|
62
|
46
|
function ssh_remove_small_moduli {
|
63
|
|
- sudo awk '$5 > 2000' /etc/ssh/moduli > /home/$CURR_USER/moduli
|
64
|
|
- sudo mv /home/$CURR_USER/moduli /etc/ssh/moduli
|
|
47
|
+ sudo awk '$5 > 2000' /etc/ssh/moduli > /home/$CURR_USER/moduli
|
|
48
|
+ sudo mv /home/$CURR_USER/moduli /etc/ssh/moduli
|
65
|
49
|
}
|
66
|
50
|
|
67
|
51
|
function configure_ssh_client {
|
68
|
|
- #sudo sed -i 's/# PasswordAuthentication.*/ PasswordAuthentication no/g' /etc/ssh/ssh_config
|
69
|
|
- #sudo sed -i 's/# ChallengeResponseAuthentication.*/ ChallengeResponseAuthentication no/g' /etc/ssh/ssh_config
|
70
|
|
- sudo sed -i "s/# HostKeyAlgorithms.*/ HostKeyAlgorithms $SSH_HOST_KEY_ALGORITHMS/g" /etc/ssh/ssh_config
|
71
|
|
- sudo sed -i "s/# Ciphers.*/ Ciphers $SSH_CIPHERS/g" /etc/ssh/ssh_config
|
72
|
|
- sudo sed -i "s/# MACs.*/ MACs $SSH_MACS/g" /etc/ssh/ssh_config
|
73
|
|
- if ! grep -q "HostKeyAlgorithms" /etc/ssh/ssh_config; then
|
74
|
|
- sudo cp /etc/ssh/ssh_config ~/ssh_config
|
75
|
|
- sudo chown $CURR_USER:$CURR_USER ~/ssh_config
|
76
|
|
- echo " HostKeyAlgorithms $SSH_HOST_KEY_ALGORITHMS" >> ~/ssh_config
|
77
|
|
- sudo mv ~/ssh_config /etc/ssh/ssh_config
|
78
|
|
- sudo chown root:root /etc/ssh/ssh_config
|
79
|
|
- fi
|
80
|
|
- sudo sed -i "s/Ciphers.*/Ciphers $SSH_CIPHERS/g" /etc/ssh/ssh_config
|
81
|
|
- if ! grep -q "Ciphers " /etc/ssh/ssh_config; then
|
82
|
|
- sudo cp /etc/ssh/ssh_config ~/ssh_config
|
83
|
|
- sudo chown $CURR_USER:$CURR_USER ~/ssh_config
|
84
|
|
- echo " Ciphers $SSH_CIPHERS" >> ~/ssh_config
|
85
|
|
- sudo mv ~/ssh_config /etc/ssh/ssh_config
|
86
|
|
- sudo chown root:root /etc/ssh/ssh_config
|
87
|
|
- fi
|
88
|
|
- sudo sed -i "s/MACs.*/MACs $SSH_MACS/g" /etc/ssh/ssh_config
|
89
|
|
- if ! grep -q "MACs " /etc/ssh/ssh_config; then
|
90
|
|
- sudo cp /etc/ssh/ssh_config ~/ssh_config
|
91
|
|
- sudo chown $CURR_USER:$CURR_USER ~/ssh_config
|
92
|
|
- echo " MACs $SSH_MACS" >> ~/ssh_config
|
93
|
|
- sudo mv ~/ssh_config /etc/ssh/ssh_config
|
94
|
|
- sudo chown root:root /etc/ssh/ssh_config
|
95
|
|
- fi
|
96
|
|
-
|
97
|
|
- # Create ssh keys
|
98
|
|
- if [ ! -f /home/$CURR_USER/.ssh/id_ed25519 ]; then
|
99
|
|
- ssh-keygen -t ed25519 -o -a 100
|
100
|
|
- fi
|
101
|
|
- if [ ! -f /home/$CURR_USER/.ssh/id_rsa ]; then
|
102
|
|
- ssh-keygen -t rsa -b 4096 -o -a 100
|
103
|
|
- fi
|
104
|
|
-
|
105
|
|
- ssh_remove_small_moduli
|
106
|
|
-
|
107
|
|
- echo ''
|
108
|
|
- echo $'Copy the following into a file called /home/username/.ssh/authorized_keys on the Freedombone server'
|
109
|
|
- echo ''
|
110
|
|
- echo $(cat /home/$CURR_USER/.ssh/id_rsa.pub)
|
111
|
|
- echo $(cat /home/$CURR_USER/.ssh/id_ed25519.pub)
|
112
|
|
- echo ''
|
|
52
|
+ #sudo sed -i 's/# PasswordAuthentication.*/ PasswordAuthentication no/g' /etc/ssh/ssh_config
|
|
53
|
+ #sudo sed -i 's/# ChallengeResponseAuthentication.*/ ChallengeResponseAuthentication no/g' /etc/ssh/ssh_config
|
|
54
|
+ sudo sed -i "s/# HostKeyAlgorithms.*/ HostKeyAlgorithms $SSH_HOST_KEY_ALGORITHMS/g" /etc/ssh/ssh_config
|
|
55
|
+ sudo sed -i "s/# Ciphers.*/ Ciphers $SSH_CIPHERS/g" /etc/ssh/ssh_config
|
|
56
|
+ sudo sed -i "s/# MACs.*/ MACs $SSH_MACS/g" /etc/ssh/ssh_config
|
|
57
|
+ if ! grep -q "HostKeyAlgorithms" /etc/ssh/ssh_config; then
|
|
58
|
+ sudo cp /etc/ssh/ssh_config ~/ssh_config
|
|
59
|
+ sudo chown $CURR_USER:$CURR_USER ~/ssh_config
|
|
60
|
+ echo " HostKeyAlgorithms $SSH_HOST_KEY_ALGORITHMS" >> ~/ssh_config
|
|
61
|
+ sudo mv ~/ssh_config /etc/ssh/ssh_config
|
|
62
|
+ sudo chown root:root /etc/ssh/ssh_config
|
|
63
|
+ fi
|
|
64
|
+ sudo sed -i "s/Ciphers.*/Ciphers $SSH_CIPHERS/g" /etc/ssh/ssh_config
|
|
65
|
+ if ! grep -q "Ciphers " /etc/ssh/ssh_config; then
|
|
66
|
+ sudo cp /etc/ssh/ssh_config ~/ssh_config
|
|
67
|
+ sudo chown $CURR_USER:$CURR_USER ~/ssh_config
|
|
68
|
+ echo " Ciphers $SSH_CIPHERS" >> ~/ssh_config
|
|
69
|
+ sudo mv ~/ssh_config /etc/ssh/ssh_config
|
|
70
|
+ sudo chown root:root /etc/ssh/ssh_config
|
|
71
|
+ fi
|
|
72
|
+ sudo sed -i "s/MACs.*/MACs $SSH_MACS/g" /etc/ssh/ssh_config
|
|
73
|
+ if ! grep -q "MACs " /etc/ssh/ssh_config; then
|
|
74
|
+ sudo cp /etc/ssh/ssh_config ~/ssh_config
|
|
75
|
+ sudo chown $CURR_USER:$CURR_USER ~/ssh_config
|
|
76
|
+ echo " MACs $SSH_MACS" >> ~/ssh_config
|
|
77
|
+ sudo mv ~/ssh_config /etc/ssh/ssh_config
|
|
78
|
+ sudo chown root:root /etc/ssh/ssh_config
|
|
79
|
+ fi
|
|
80
|
+
|
|
81
|
+ # Create ssh keys
|
|
82
|
+ if [ ! -f /home/$CURR_USER/.ssh/id_ed25519 ]; then
|
|
83
|
+ ssh-keygen -t ed25519 -o -a 100
|
|
84
|
+ fi
|
|
85
|
+ if [ ! -f /home/$CURR_USER/.ssh/id_rsa ]; then
|
|
86
|
+ ssh-keygen -t rsa -b 4096 -o -a 100
|
|
87
|
+ fi
|
|
88
|
+
|
|
89
|
+ ssh_remove_small_moduli
|
|
90
|
+
|
|
91
|
+ echo ''
|
|
92
|
+ echo $'Copy the following into a file called /home/username/.ssh/authorized_keys on the Freedombone server'
|
|
93
|
+ echo ''
|
|
94
|
+ echo $(cat /home/$CURR_USER/.ssh/id_rsa.pub)
|
|
95
|
+ echo $(cat /home/$CURR_USER/.ssh/id_ed25519.pub)
|
|
96
|
+ echo ''
|
113
|
97
|
}
|
114
|
98
|
|
115
|
|
-
|
116
|
|
-function mesh_batman {
|
117
|
|
- if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
|
118
|
|
- TOXIC_FILE=$(cat /usr/local/bin/${PROJECT_NAME} | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
|
119
|
|
- else
|
120
|
|
- TOXIC_FILE=$(cat /usr/bin/${PROJECT_NAME} | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
|
121
|
|
- fi
|
122
|
|
-
|
123
|
|
- if [ ! -f /tmp/meshtype ]; then
|
124
|
|
- sudo apt-get -y install iproute bridge-utils libnetfilter-conntrack3 batctl
|
125
|
|
- sudo apt-get -y install python-dev libevent-dev ebtables python-pip
|
126
|
|
- sudo apt-get -y install wireless-tools rfkill
|
127
|
|
- sudo apt-get -y install irssi mumble
|
128
|
|
- if [ ! -f $TOXIC_FILE ]; then
|
129
|
|
- sudo apt-get -y install toxic
|
130
|
|
- echo "n
|
131
|
|
-/nick $USER
|
132
|
|
-/exit
|
133
|
|
-" | $TOXIC_FILE -d
|
134
|
|
- fi
|
135
|
|
- fi
|
136
|
|
-
|
137
|
|
- BATMAN_SCRIPT=/tmp/batman
|
138
|
|
-
|
139
|
|
- echo '#!/bin/bash' > $BATMAN_SCRIPT
|
140
|
|
- echo '' >> $BATMAN_SCRIPT
|
141
|
|
- echo 'if [[ $1 == "start" ]]; then' >> $BATMAN_SCRIPT
|
142
|
|
- echo ' # install avahi' >> $BATMAN_SCRIPT
|
143
|
|
- echo ' apt-get -y install avahi-utils avahi-autoipd avahi-daemon avahi-dnsconfd bittornado' >> $BATMAN_SCRIPT
|
144
|
|
- echo ' sed -i "s|#host-name=.*|host-name=$(hostname)|g" /etc/avahi/avahi-daemon.conf' >> $BATMAN_SCRIPT
|
145
|
|
- echo ' sed -i "s|host-name=.*|host-name=$(hostname)|g" /etc/avahi/avahi-daemon.conf' >> $BATMAN_SCRIPT
|
146
|
|
- echo ' sed -i "s|use-ipv4=.*|use-ipv4=yes|g" /etc/avahi/avahi-daemon.conf' >> $BATMAN_SCRIPT
|
147
|
|
- echo ' sed -i "s|use-ipv6=.*|use-ipv6=no|g" /etc/avahi/avahi-daemon.conf' >> $BATMAN_SCRIPT
|
148
|
|
- echo ' sed -i "s|#disallow-other-stacks=.*|disallow-other-stacks=yes|g" /etc/avahi/avahi-daemon.conf' >> $BATMAN_SCRIPT
|
149
|
|
- echo ' sed -i "s|hosts:.*|hosts: files mdns4_minimal dns mdns4 mdns|g" /etc/nsswitch.conf' >> $BATMAN_SCRIPT
|
150
|
|
- echo ' if [ -f /bin/systemctl ]; then' >> $BATMAN_SCRIPT
|
151
|
|
- echo ' systemctl restart avahi-daemon' >> $BATMAN_SCRIPT
|
152
|
|
- echo ' else' >> $BATMAN_SCRIPT
|
153
|
|
- echo ' service avahi-daemon restart' >> $BATMAN_SCRIPT
|
154
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
155
|
|
- echo 'fi' >> $BATMAN_SCRIPT
|
156
|
|
- echo '' >> $BATMAN_SCRIPT
|
157
|
|
- echo '# Mesh definition' >> $BATMAN_SCRIPT
|
158
|
|
- echo "WIFI_SSID=$WIFI_SSID" >> $BATMAN_SCRIPT
|
159
|
|
- echo "CELLID=$BATMAN_CELLID" >> $BATMAN_SCRIPT
|
160
|
|
- echo "CHANNEL=$WIFI_CHANNEL" >> $BATMAN_SCRIPT
|
161
|
|
- echo '' >> $BATMAN_SCRIPT
|
162
|
|
- echo '# Ethernet bridge definition (bridged to bat0)' >> $BATMAN_SCRIPT
|
163
|
|
- echo 'BRIDGE=br-mesh' >> $BATMAN_SCRIPT
|
164
|
|
- echo "IFACE=$WIFI_INTERFACE" >> $BATMAN_SCRIPT
|
165
|
|
- echo 'EIFACE=eth0' >> $BATMAN_SCRIPT
|
166
|
|
- echo '' >> $BATMAN_SCRIPT
|
167
|
|
- echo 'if [[ $IFACE == "wlan0" ]]; then' >> $BATMAN_SCRIPT
|
168
|
|
- echo ' if grep -q "wlan1" /proc/net/dev; then' >> $BATMAN_SCRIPT
|
169
|
|
- echo ' IFACE=wlan1' >> $BATMAN_SCRIPT
|
170
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
171
|
|
- echo 'fi' >> $BATMAN_SCRIPT
|
172
|
|
- echo 'if [[ $IFACE == "wlan0" ]]; then' >> $BATMAN_SCRIPT
|
173
|
|
- echo ' if grep -q "wlan2" /proc/net/dev; then' >> $BATMAN_SCRIPT
|
174
|
|
- echo ' IFACE=wlan2' >> $BATMAN_SCRIPT
|
175
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
176
|
|
- echo 'fi' >> $BATMAN_SCRIPT
|
177
|
|
- echo 'if [[ $IFACE == "wlan0" ]]; then' >> $BATMAN_SCRIPT
|
178
|
|
- echo ' if grep -q "wlan3" /proc/net/dev; then' >> $BATMAN_SCRIPT
|
179
|
|
- echo ' IFACE=wlan3' >> $BATMAN_SCRIPT
|
180
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
181
|
|
- echo 'fi' >> $BATMAN_SCRIPT
|
182
|
|
- echo '' >> $BATMAN_SCRIPT
|
183
|
|
- echo 'if [ -e /etc/default/batctl ]; then' >> $BATMAN_SCRIPT
|
184
|
|
- echo ' . /etc/default/batctl' >> $BATMAN_SCRIPT
|
185
|
|
- echo 'fi' >> $BATMAN_SCRIPT
|
186
|
|
- echo '' >> $BATMAN_SCRIPT
|
187
|
|
- echo 'start() {' >> $BATMAN_SCRIPT
|
188
|
|
- echo ' if [ -f /tmp/meshtype ] ; then' >> $BATMAN_SCRIPT
|
189
|
|
- echo ' echo "Mesh already running"' >> $BATMAN_SCRIPT
|
190
|
|
- echo ' return' >> $BATMAN_SCRIPT
|
191
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
192
|
|
- echo ' if [ -z "$IFACE" ] ; then' >> $BATMAN_SCRIPT
|
193
|
|
- echo ' echo "error: unable to find wifi interface, not enabling batman-adv mesh"' >> $BATMAN_SCRIPT
|
194
|
|
- echo ' return' >> $BATMAN_SCRIPT
|
195
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
196
|
|
- echo ' echo "info: enabling batman-adv mesh network $WIFI_SSID on $IFACE"' >> $BATMAN_SCRIPT
|
197
|
|
-
|
198
|
|
- echo ' if [ -f /bin/systemctl ]; then' >> $BATMAN_SCRIPT
|
199
|
|
- echo ' systemctl stop network-manager' >> $BATMAN_SCRIPT
|
200
|
|
- echo ' else' >> $BATMAN_SCRIPT
|
201
|
|
- echo ' service network-manager stop' >> $BATMAN_SCRIPT
|
202
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
203
|
|
- echo ' sleep 5' >> $BATMAN_SCRIPT
|
204
|
|
- echo '' >> $BATMAN_SCRIPT
|
205
|
|
- echo " # remove an avahi service which isn't used" >> $BATMAN_SCRIPT
|
206
|
|
- echo ' if [ -f /etc/avahi/services/udisks.service ]; then' >> $BATMAN_SCRIPT
|
207
|
|
- echo ' sudo rm /etc/avahi/services/udisks.service' >> $BATMAN_SCRIPT
|
208
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
209
|
|
- echo '' >> $BATMAN_SCRIPT
|
210
|
|
- echo ' # Might have to re-enable wifi' >> $BATMAN_SCRIPT
|
211
|
|
- echo ' rfkill unblock $(rfkill list|awk -F: "/phy/ {print $1}") || true' >> $BATMAN_SCRIPT
|
212
|
|
- echo '' >> $BATMAN_SCRIPT
|
213
|
|
- echo ' ifconfig $IFACE down' >> $BATMAN_SCRIPT
|
214
|
|
- echo ' ifconfig $IFACE mtu 1532' >> $BATMAN_SCRIPT
|
215
|
|
- echo ' iwconfig $IFACE enc off' >> $BATMAN_SCRIPT
|
216
|
|
- echo ' iwconfig $IFACE mode ad-hoc essid $WIFI_SSID channel $CHANNEL' >> $BATMAN_SCRIPT
|
217
|
|
- echo ' sleep 1' >> $BATMAN_SCRIPT
|
218
|
|
- echo ' iwconfig $IFACE ap $CELLID' >> $BATMAN_SCRIPT
|
219
|
|
- echo '' >> $BATMAN_SCRIPT
|
220
|
|
- echo ' modprobe batman-adv' >> $BATMAN_SCRIPT
|
221
|
|
- echo ' batctl if add $IFACE' >> $BATMAN_SCRIPT
|
222
|
|
- echo ' ifconfig $IFACE up' >> $BATMAN_SCRIPT
|
223
|
|
- echo ' avahi-autoipd --force-bind --daemonize --wait $BRIDGE' >> $BATMAN_SCRIPT
|
224
|
|
- echo ' avahi-autoipd --force-bind --daemonize --wait $IFACE' >> $BATMAN_SCRIPT
|
225
|
|
- echo ' ifconfig bat0 up promisc' >> $BATMAN_SCRIPT
|
226
|
|
- echo '' >> $BATMAN_SCRIPT
|
227
|
|
- echo ' #Use persistent HWAddr' >> $BATMAN_SCRIPT
|
228
|
|
- echo ' ether_new=$(ifconfig eth0 | grep HWaddr | sed -e "s/.*HWaddr //")' >> $BATMAN_SCRIPT
|
229
|
|
- echo ' if [ ! -f /var/lib/mesh-node/bat0 ]; then' >> $BATMAN_SCRIPT
|
230
|
|
- echo ' mkdir /var/lib/mesh-node' >> $BATMAN_SCRIPT
|
231
|
|
- echo ' echo "${ether_new}" > /var/lib/mesh-node/bat0' >> $BATMAN_SCRIPT
|
232
|
|
- echo ' else' >> $BATMAN_SCRIPT
|
233
|
|
- echo ' ether=$(cat /var/lib/mesh-node/bat0)' >> $BATMAN_SCRIPT
|
234
|
|
- echo ' ifconfig bat0 hw ether ${ether}' >> $BATMAN_SCRIPT
|
235
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
236
|
|
- echo '' >> $BATMAN_SCRIPT
|
237
|
|
- echo ' if [ "$EIFACE" ] ; then' >> $BATMAN_SCRIPT
|
238
|
|
- echo ' brctl addbr $BRIDGE' >> $BATMAN_SCRIPT
|
239
|
|
- echo ' brctl addif $BRIDGE bat0' >> $BATMAN_SCRIPT
|
240
|
|
- echo ' brctl addif $BRIDGE $EIFACE' >> $BATMAN_SCRIPT
|
241
|
|
- echo ' ifconfig bat0 0.0.0.0' >> $BATMAN_SCRIPT
|
242
|
|
- echo ' ifconfig $EIFACE 0.0.0.0' >> $BATMAN_SCRIPT
|
243
|
|
- echo ' ifconfig $EIFACE up promisc' >> $BATMAN_SCRIPT
|
244
|
|
- echo ' ifconfig $BRIDGE up' >> $BATMAN_SCRIPT
|
245
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
246
|
|
- echo '' >> $BATMAN_SCRIPT
|
247
|
|
- echo ' iptables -A INPUT -p tcp --dport 548 -j ACCEPT' >> $BATMAN_SCRIPT
|
248
|
|
- echo ' iptables -A INPUT -p udp --dport 548 -j ACCEPT' >> $BATMAN_SCRIPT
|
249
|
|
- echo ' iptables -A INPUT -p tcp --dport 5353 -j ACCEPT' >> $BATMAN_SCRIPT
|
250
|
|
- echo ' iptables -A INPUT -p udp --dport 5353 -j ACCEPT' >> $BATMAN_SCRIPT
|
251
|
|
- echo ' iptables -A INPUT -p tcp --dport 5354 -j ACCEPT' >> $BATMAN_SCRIPT
|
252
|
|
- echo ' iptables -A INPUT -p udp --dport 5354 -j ACCEPT' >> $BATMAN_SCRIPT
|
253
|
|
- echo " iptables -A INPUT -p tcp --dport $ZERONET_PORT -j ACCEPT" >> $BATMAN_SCRIPT
|
254
|
|
- echo " iptables -A INPUT -p udp --dport $ZERONET_PORT -j ACCEPT" >> $BATMAN_SCRIPT
|
255
|
|
- echo " iptables -A INPUT -p udp --dport $TRACKER_PORT -j ACCEPT" >> $BATMAN_SCRIPT
|
256
|
|
- echo " iptables -A INPUT -p tcp --dport $TRACKER_PORT -j ACCEPT" >> $BATMAN_SCRIPT
|
257
|
|
- echo " iptables -A INPUT -p tcp --dport $IPFS_PORT -j ACCEPT" >> $BATMAN_SCRIPT
|
258
|
|
- echo " iptables -A INPUT -p udp --dport 1900 -j ACCEPT" >> $BATMAN_SCRIPT
|
259
|
|
- echo " iptables -A INPUT -p tcp --dport 80 -j ACCEPT" >> $BATMAN_SCRIPT
|
260
|
|
- echo " iptables -A INPUT -p udp -m udp -j ACCEPT" >> $BATMAN_SCRIPT
|
261
|
|
- echo '' >> $BATMAN_SCRIPT
|
262
|
|
- echo ' if [ -f /bin/systemctl ]; then' >> $BATMAN_SCRIPT
|
263
|
|
- echo ' systemctl restart avahi-daemon' >> $BATMAN_SCRIPT
|
264
|
|
- echo ' else' >> $BATMAN_SCRIPT
|
265
|
|
- echo ' service avahi-daemon restart' >> $BATMAN_SCRIPT
|
266
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
267
|
|
- echo ' echo "batman" > /tmp/meshtype' >> $BATMAN_SCRIPT
|
268
|
|
- echo '}' >> $BATMAN_SCRIPT
|
269
|
|
- echo '' >> $BATMAN_SCRIPT
|
270
|
|
- echo 'stop() {' >> $BATMAN_SCRIPT
|
271
|
|
- echo ' if [ -z "$IFACE" ]; then' >> $BATMAN_SCRIPT
|
272
|
|
- echo ' echo "error: unable to find wifi interface, not enabling batman-adv mesh"' >> $BATMAN_SCRIPT
|
273
|
|
- echo ' return' >> $BATMAN_SCRIPT
|
274
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
275
|
|
- echo ' if [ "$EIFACE" ]; then' >> $BATMAN_SCRIPT
|
276
|
|
- echo ' brctl delif $BRIDGE bat0' >> $BATMAN_SCRIPT
|
277
|
|
- echo ' brctl delif $BRIDGE $EIFACE' >> $BATMAN_SCRIPT
|
278
|
|
- echo ' ifconfig $BRIDGE down || true' >> $BATMAN_SCRIPT
|
279
|
|
- echo ' brctl delbr $BRIDGE' >> $BATMAN_SCRIPT
|
280
|
|
- echo ' ifconfig $EIFACE down -promisc' >> $BATMAN_SCRIPT
|
281
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
282
|
|
- echo '' >> $BATMAN_SCRIPT
|
283
|
|
- echo ' avahi-autoipd -k $BRIDGE' >> $BATMAN_SCRIPT
|
284
|
|
- echo ' avahi-autoipd -k $IFACE' >> $BATMAN_SCRIPT
|
285
|
|
- echo ' ifconfig bat0 down -promisc' >> $BATMAN_SCRIPT
|
286
|
|
- echo '' >> $BATMAN_SCRIPT
|
287
|
|
- echo ' batctl if del $IFACE' >> $BATMAN_SCRIPT
|
288
|
|
- echo ' rmmod batman-adv' >> $BATMAN_SCRIPT
|
289
|
|
- echo ' ifconfig $IFACE mtu 1500' >> $BATMAN_SCRIPT
|
290
|
|
- echo ' ifconfig $IFACE down' >> $BATMAN_SCRIPT
|
291
|
|
- echo ' iwconfig $IFACE mode managed' >> $BATMAN_SCRIPT
|
292
|
|
- echo '' >> $BATMAN_SCRIPT
|
293
|
|
- echo ' iptables -D INPUT -p tcp --dport 548 -j ACCEPT' >> $BATMAN_SCRIPT
|
294
|
|
- echo ' iptables -D INPUT -p udp --dport 548 -j ACCEPT' >> $BATMAN_SCRIPT
|
295
|
|
- echo ' iptables -D INPUT -p tcp --dport 5353 -j ACCEPT' >> $BATMAN_SCRIPT
|
296
|
|
- echo ' iptables -D INPUT -p udp --dport 5353 -j ACCEPT' >> $BATMAN_SCRIPT
|
297
|
|
- echo ' iptables -D INPUT -p tcp --dport 5354 -j ACCEPT' >> $BATMAN_SCRIPT
|
298
|
|
- echo ' iptables -D INPUT -p udp --dport 5354 -j ACCEPT' >> $BATMAN_SCRIPT
|
299
|
|
- echo " iptables -D INPUT -p tcp --dport $ZERONET_PORT -j ACCEPT" >> $BATMAN_SCRIPT
|
300
|
|
- echo " iptables -D INPUT -p udp --dport $ZERONET_PORT -j ACCEPT" >> $BATMAN_SCRIPT
|
301
|
|
- echo " iptables -D INPUT -p udp --dport $TRACKER_PORT -j ACCEPT" >> $BATMAN_SCRIPT
|
302
|
|
- echo " iptables -D INPUT -p tcp --dport $TRACKER_PORT -j ACCEPT" >> $BATMAN_SCRIPT
|
303
|
|
- echo " iptables -D INPUT -p tcp --dport $IPFS_PORT -j ACCEPT" >> $BATMAN_SCRIPT
|
304
|
|
- echo " iptables -D INPUT -p udp --dport 1900 -j ACCEPT" >> $BATMAN_SCRIPT
|
305
|
|
- echo " iptables -D INPUT -p tcp --dport 80 -j ACCEPT" >> $BATMAN_SCRIPT
|
306
|
|
- echo " iptables -D INPUT -p udp -m udp -j ACCEPT" >> $BATMAN_SCRIPT
|
307
|
|
- echo '' >> $BATMAN_SCRIPT
|
308
|
|
- echo ' if [ -f /bin/systemctl ]; then' >> $BATMAN_SCRIPT
|
309
|
|
- echo ' systemctl restart network-manager' >> $BATMAN_SCRIPT
|
310
|
|
- echo ' else' >> $BATMAN_SCRIPT
|
311
|
|
- echo ' service network-manager restart' >> $BATMAN_SCRIPT
|
312
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
313
|
|
- echo ' ' >> $BATMAN_SCRIPT
|
314
|
|
- echo ' # restore tox bootstrap nodes for the internet' >> $BATMAN_SCRIPT
|
315
|
|
- echo ' if [ -f /usr/share/toxic/DHTnodes.internet ]; then' >> $BATMAN_SCRIPT
|
316
|
|
- echo ' mv /usr/share/toxic/DHTnodes.internet /usr/share/toxic/DHTnodes' >> $BATMAN_SCRIPT
|
317
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
318
|
|
- echo ' if [ -f /usr/local/share/toxic/DHTnodes.internet ]; then' >> $BATMAN_SCRIPT
|
319
|
|
- echo ' mv /usr/local/share/toxic/DHTnodes.internet /usr/local/share/toxic/DHTnodes' >> $BATMAN_SCRIPT
|
320
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
321
|
|
- echo '' >> $BATMAN_SCRIPT
|
322
|
|
- echo ' if [ -f /bin/systemctl ]; then' >> $BATMAN_SCRIPT
|
323
|
|
- echo ' systemctl stop avahi-daemon' >> $BATMAN_SCRIPT
|
324
|
|
- echo ' else' >> $BATMAN_SCRIPT
|
325
|
|
- echo ' service avahi-daemon stop' >> $BATMAN_SCRIPT
|
326
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
327
|
|
- echo '' >> $BATMAN_SCRIPT
|
328
|
|
- echo ' sudo rm -f /tmp/meshtype' >> $BATMAN_SCRIPT
|
329
|
|
- echo '' >> $BATMAN_SCRIPT
|
330
|
|
- echo ' # kill processes' >> $BATMAN_SCRIPT
|
331
|
|
- echo ' zeronet_proc=$(ps aux | grep zeronet | grep -v grep | awk -F " " "{print $2}" | head -n1)' >> $BATMAN_SCRIPT
|
332
|
|
- echo ' if [ "$zeronet_proc" ]; then' >> $BATMAN_SCRIPT
|
333
|
|
- echo ' kill -9 $zeronet_proc 2> /dev/null' >> $BATMAN_SCRIPT
|
334
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
335
|
|
- echo ' tracker_proc=$(ps aux | grep bttrack | grep -v grep | awk -F " " "{print $2}" | head -n1)' >> $BATMAN_SCRIPT
|
336
|
|
- echo ' if [ "$tracker_proc" ]; then' >> $BATMAN_SCRIPT
|
337
|
|
- echo ' kill -9 $tracker_proc 2> /dev/null' >> $BATMAN_SCRIPT
|
338
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
339
|
|
- echo ' if [ ! -f /etc/systemd/system/ipfs.service ]; then' >> $BATMAN_SCRIPT
|
340
|
|
- echo ' ipfs_proc=$(ps aux | grep ipfs | grep -v grep | awk -F " " "{print $2}" | head -n1)' >> $BATMAN_SCRIPT
|
341
|
|
- echo ' if [ "$ipfs_proc" ]; then' >> $BATMAN_SCRIPT
|
342
|
|
- echo ' kill -9 $ipfs_proc 2> /dev/null' >> $BATMAN_SCRIPT
|
343
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
344
|
|
- echo ' fi' >> $BATMAN_SCRIPT
|
345
|
|
- echo '}' >> $BATMAN_SCRIPT
|
346
|
|
- echo '' >> $BATMAN_SCRIPT
|
347
|
|
- echo 'if ! grep -q "$IFACE" /proc/net/dev; then' >> $BATMAN_SCRIPT
|
348
|
|
- echo ' echo "Interface $IFACE was not found"' >> $BATMAN_SCRIPT
|
349
|
|
- echo ' stop' >> $BATMAN_SCRIPT
|
350
|
|
- echo ' exit 1' >> $BATMAN_SCRIPT
|
351
|
|
- echo 'fi' >> $BATMAN_SCRIPT
|
352
|
|
- echo '' >> $BATMAN_SCRIPT
|
353
|
|
- echo 'case "$1" in' >> $BATMAN_SCRIPT
|
354
|
|
- echo ' start|stop)' >> $BATMAN_SCRIPT
|
355
|
|
- echo ' $1' >> $BATMAN_SCRIPT
|
356
|
|
- echo ' ;;' >> $BATMAN_SCRIPT
|
357
|
|
- echo ' restart)' >> $BATMAN_SCRIPT
|
358
|
|
- echo ' stop' >> $BATMAN_SCRIPT
|
359
|
|
- echo ' sleep 10' >> $BATMAN_SCRIPT
|
360
|
|
- echo ' start' >> $BATMAN_SCRIPT
|
361
|
|
- echo ' ;;' >> $BATMAN_SCRIPT
|
362
|
|
- echo ' status)' >> $BATMAN_SCRIPT
|
363
|
|
- echo ' batctl o' >> $BATMAN_SCRIPT
|
364
|
|
- echo ' ;;' >> $BATMAN_SCRIPT
|
365
|
|
- echo ' ping)' >> $BATMAN_SCRIPT
|
366
|
|
- echo ' batctl ping $2' >> $BATMAN_SCRIPT
|
367
|
|
- echo ' ;;' >> $BATMAN_SCRIPT
|
368
|
|
- echo ' ls|list)' >> $BATMAN_SCRIPT
|
369
|
|
- echo ' avahi-browse -atl' >> $BATMAN_SCRIPT
|
370
|
|
- echo ' ;;' >> $BATMAN_SCRIPT
|
371
|
|
- echo ' *)' >> $BATMAN_SCRIPT
|
372
|
|
- echo ' echo "error: invalid parameter $1"' >> $BATMAN_SCRIPT
|
373
|
|
- echo ' echo "usage: $0 {start|stop|restart|status|ping|ls|list}"' >> $BATMAN_SCRIPT
|
374
|
|
- echo ' exit 2' >> $BATMAN_SCRIPT
|
375
|
|
- echo ' ;;' >> $BATMAN_SCRIPT
|
376
|
|
- echo 'esac' >> $BATMAN_SCRIPT
|
377
|
|
- echo 'exit 0' >> $BATMAN_SCRIPT
|
378
|
|
- chmod +x $BATMAN_SCRIPT
|
379
|
|
- sudo cp -f $BATMAN_SCRIPT /usr/bin/batman
|
380
|
|
- rm $BATMAN_SCRIPT
|
|
99
|
+function configure_monkeysphere {
|
|
100
|
+ sudo apt-get -y install monkeysphere
|
381
|
101
|
}
|
382
|
102
|
|
383
|
103
|
function show_help {
|
384
|
|
- echo ''
|
385
|
|
- echo $"${PROJECT_NAME}-client"
|
386
|
|
- echo ''
|
387
|
|
- exit 0
|
|
104
|
+ echo ''
|
|
105
|
+ echo $"${PROJECT_NAME}-client"
|
|
106
|
+ echo ''
|
|
107
|
+ exit 0
|
388
|
108
|
}
|
389
|
109
|
|
390
|
110
|
while [[ $# > 1 ]]
|
391
|
111
|
do
|
392
|
|
- key="$1"
|
393
|
|
-
|
394
|
|
- case $key in
|
395
|
|
- -h|--help)
|
396
|
|
- show_help
|
397
|
|
- ;;
|
398
|
|
- --essid)
|
399
|
|
- shift
|
400
|
|
- WIFI_SSID="$1"
|
401
|
|
- ;;
|
402
|
|
- --channel)
|
403
|
|
- shift
|
404
|
|
- WIFI_CHANNEL=${1}
|
405
|
|
- ;;
|
406
|
|
- *)
|
407
|
|
- # unknown option
|
408
|
|
- ;;
|
409
|
|
- esac
|
410
|
|
- shift
|
|
112
|
+ key="$1"
|
|
113
|
+
|
|
114
|
+ case $key in
|
|
115
|
+ -h|--help)
|
|
116
|
+ show_help
|
|
117
|
+ ;;
|
|
118
|
+ --essid)
|
|
119
|
+ shift
|
|
120
|
+ WIFI_SSID="$1"
|
|
121
|
+ ;;
|
|
122
|
+ --channel)
|
|
123
|
+ shift
|
|
124
|
+ WIFI_CHANNEL=${1}
|
|
125
|
+ ;;
|
|
126
|
+ *)
|
|
127
|
+ # unknown option
|
|
128
|
+ ;;
|
|
129
|
+ esac
|
|
130
|
+ shift
|
411
|
131
|
done
|
412
|
132
|
|
413
|
133
|
echo $'Configuring client'
|
414
|
134
|
configure_ssh_client
|
|
135
|
+configure_monkeysphere
|
415
|
136
|
${PROJECT_NAME}-mesh-install batman_client
|
416
|
137
|
${PROJECT_NAME}-mesh-install babel_client
|
417
|
138
|
echo $'Configuration complete'
|