Procházet zdrojové kódy

Install avahi on mesh clients

Bob Mottram před 9 roky
rodič
revize
e611870937
1 změnil soubory, kde provedl 116 přidání a 115 odebrání
  1. 116
    115
      src/freedombone-client

+ 116
- 115
src/freedombone-client Zobrazit soubor

@@ -41,11 +41,11 @@ VERSION="1.01"
41 41
 # get the main project file, so that some values can be extracted
42 42
 MAIN_PROJECT_FILE=/usr/local/bin/${PROJECT_NAME}
43 43
 if [ ! -f $MAIN_PROJECT_FILE ]; then
44
-	MAIN_PROJECT_FILE=/usr/bin/${PROJECT_NAME}
44
+    MAIN_PROJECT_FILE=/usr/bin/${PROJECT_NAME}
45 45
 fi
46 46
 if [ ! -f $MAIN_PROJECT_FILE ]; then
47
-	echo "The main project file $MAIN_PROJECT_FILE was not found"
48
-	exit 72529
47
+    echo "The main project file $MAIN_PROJECT_FILE was not found"
48
+    exit 72529
49 49
 fi
50 50
 
51 51
 # ssh (from https://stribika.github.io/2015/01/04/secure-secure-shell.html)
@@ -58,131 +58,131 @@ SSH_HOST_KEY_ALGORITHMS=$(cat $MAIN_PROJECT_FILE | grep 'SSH_HOST_KEY_ALGORITHMS
58 58
 REFRESH_GPG_KEYS_HOURS=2
59 59
 
60 60
 function refresh_gpg_keys {
61
-	if [ ! -f /usr/bin/gpg ]; then
62
-		sudo apt-get -y install gnupg
63
-	fi
64
-	sudo cp /etc/crontab ~/temp_crontab
65
-	sudo chown $CURR_USER:$CURR_USER ~/temp_crontab
66
-	if ! grep -q "gpg --refresh-keys" ~/temp_crontab; then
67
-		echo "0            */$REFRESH_GPG_KEYS_HOURS *   *   *   $CURR_USER /usr/bin/gpg --refresh-keys > /dev/null" >> ~/temp_crontab
68
-		sudo cp ~/temp_crontab /etc/crontab
69
-		sudo chown root:root /etc/crontab
70
-	fi
71
-	rm ~/temp_crontab
61
+    if [ ! -f /usr/bin/gpg ]; then
62
+        sudo apt-get -y install gnupg
63
+    fi
64
+    sudo cp /etc/crontab ~/temp_crontab
65
+    sudo chown $CURR_USER:$CURR_USER ~/temp_crontab
66
+    if ! grep -q "gpg --refresh-keys" ~/temp_crontab; then
67
+        echo "0            */$REFRESH_GPG_KEYS_HOURS *   *   *   $CURR_USER /usr/bin/gpg --refresh-keys > /dev/null" >> ~/temp_crontab
68
+        sudo cp ~/temp_crontab /etc/crontab
69
+        sudo chown root:root /etc/crontab
70
+    fi
71
+    rm ~/temp_crontab
72 72
 }
73 73
 
74 74
 # see https://stribika.github.io/2015/01/04/secure-secure-shell.html
75 75
 function ssh_remove_small_moduli {
76
-	sudo awk '$5 > 2000' /etc/ssh/moduli > /home/$CURR_USER/moduli
77
-	sudo mv /home/$CURR_USER/moduli /etc/ssh/moduli
76
+    sudo awk '$5 > 2000' /etc/ssh/moduli > /home/$CURR_USER/moduli
77
+    sudo mv /home/$CURR_USER/moduli /etc/ssh/moduli
78 78
 }
79 79
 
80 80
 function configure_ssh_client {
81
-	#sudo sed -i 's/#   PasswordAuthentication.*/   PasswordAuthentication no/g' /etc/ssh/ssh_config
82
-	#sudo sed -i 's/#   ChallengeResponseAuthentication.*/   ChallengeResponseAuthentication no/g' /etc/ssh/ssh_config
83
-	sudo sed -i "s/#   HostKeyAlgorithms.*/   HostKeyAlgorithms $SSH_HOST_KEY_ALGORITHMS/g" /etc/ssh/ssh_config
84
-	sudo sed -i "s/#   Ciphers.*/   Ciphers $SSH_CIPHERS/g" /etc/ssh/ssh_config
85
-	sudo sed -i "s/#   MACs.*/   MACs $SSH_MACS/g" /etc/ssh/ssh_config
86
-	if ! grep -q "HostKeyAlgorithms" /etc/ssh/ssh_config; then
87
-		sudo cp /etc/ssh/ssh_config ~/ssh_config
88
-		sudo chown $CURR_USER:$CURR_USER ~/ssh_config
89
-		echo "   HostKeyAlgorithms $SSH_HOST_KEY_ALGORITHMS" >> ~/ssh_config
90
-		sudo mv ~/ssh_config /etc/ssh/ssh_config
91
-		sudo chown root:root /etc/ssh/ssh_config
92
-	fi
93
-	sudo sed -i "s/Ciphers.*/Ciphers $SSH_CIPHERS/g" /etc/ssh/ssh_config
94
-	if ! grep -q "Ciphers " /etc/ssh/ssh_config; then
95
-		sudo cp /etc/ssh/ssh_config ~/ssh_config
96
-		sudo chown $CURR_USER:$CURR_USER ~/ssh_config
97
-		echo "   Ciphers $SSH_CIPHERS" >> ~/ssh_config
98
-		sudo mv ~/ssh_config /etc/ssh/ssh_config
99
-		sudo chown root:root /etc/ssh/ssh_config
100
-	fi
101
-	sudo sed -i "s/MACs.*/MACs $SSH_MACS/g" /etc/ssh/ssh_config
102
-	if ! grep -q "MACs " /etc/ssh/ssh_config; then
103
-		sudo cp /etc/ssh/ssh_config ~/ssh_config
104
-		sudo chown $CURR_USER:$CURR_USER ~/ssh_config
105
-		echo "   MACs $SSH_MACS" >> ~/ssh_config
106
-		sudo mv ~/ssh_config /etc/ssh/ssh_config
107
-		sudo chown root:root /etc/ssh/ssh_config
108
-	fi
109
-
110
-	# Create ssh keys
111
-	if [ ! -f /home/$CURR_USER/.ssh/id_ed25519 ]; then
112
-		ssh-keygen -t ed25519 -o -a 100
113
-	fi
114
-	if [ ! -f /home/$CURR_USER/.ssh/id_rsa ]; then
115
-		ssh-keygen -t rsa -b 4096 -o -a 100
116
-	fi
117
-
118
-	ssh_remove_small_moduli
119
-
120
-	if [ ! -d ~/.ssh ]; then
121
-		mkdir ~/.ssh
122
-	fi
123
-	echo 'Host *.onion' > ~/.ssh/config
124
-	echo '  ServerAliveInterval 60' >> ~/.ssh/config
125
-	echo '  ServerAliveCountMax 3' >> ~/.ssh/config
126
-	if [[ $ENABLE_MONKEYSPHERE == $'yes' || $ENABLE_MONKEYSPHERE == $'y' ]]; then
127
-		echo "  ProxyCommand sh -c 'monkeysphere ssh-proxycommand --no-connect %h %p ; connect -R remote -5 -S 127.0.0.1:9050 %h %p'" >> ~/.ssh/config
128
-	else
129
-		echo "  ProxyCommand connect -R remote -5 -S 127.0.0.1:9050 %h %p" >> ~/.ssh/config
130
-	fi
131
-	echo 'Host *' >> ~/.ssh/config
132
-	echo '  ServerAliveInterval 60' >> ~/.ssh/config
133
-	echo '  ServerAliveCountMax 3' >> ~/.ssh/config
134
-	if [[ $ENABLE_MONKEYSPHERE == $'yes' || $ENABLE_MONKEYSPHERE == $'y' ]]; then
135
-		echo '  ProxyCommand monkeysphere ssh-proxycommand %h %p' >> ~/.ssh/config
136
-	fi
137
-
138
-	echo ''
139
-	echo $'Copy the following into a file called /home/username/.ssh/authorized_keys on the Freedombone server'
140
-	echo ''
141
-	echo $(cat /home/$CURR_USER/.ssh/id_rsa.pub)
142
-	echo $(cat /home/$CURR_USER/.ssh/id_ed25519.pub)
143
-	echo ''
81
+    #sudo sed -i 's/#   PasswordAuthentication.*/   PasswordAuthentication no/g' /etc/ssh/ssh_config
82
+    #sudo sed -i 's/#   ChallengeResponseAuthentication.*/   ChallengeResponseAuthentication no/g' /etc/ssh/ssh_config
83
+    sudo sed -i "s/#   HostKeyAlgorithms.*/   HostKeyAlgorithms $SSH_HOST_KEY_ALGORITHMS/g" /etc/ssh/ssh_config
84
+    sudo sed -i "s/#   Ciphers.*/   Ciphers $SSH_CIPHERS/g" /etc/ssh/ssh_config
85
+    sudo sed -i "s/#   MACs.*/   MACs $SSH_MACS/g" /etc/ssh/ssh_config
86
+    if ! grep -q "HostKeyAlgorithms" /etc/ssh/ssh_config; then
87
+        sudo cp /etc/ssh/ssh_config ~/ssh_config
88
+        sudo chown $CURR_USER:$CURR_USER ~/ssh_config
89
+        echo "   HostKeyAlgorithms $SSH_HOST_KEY_ALGORITHMS" >> ~/ssh_config
90
+        sudo mv ~/ssh_config /etc/ssh/ssh_config
91
+        sudo chown root:root /etc/ssh/ssh_config
92
+    fi
93
+    sudo sed -i "s/Ciphers.*/Ciphers $SSH_CIPHERS/g" /etc/ssh/ssh_config
94
+    if ! grep -q "Ciphers " /etc/ssh/ssh_config; then
95
+        sudo cp /etc/ssh/ssh_config ~/ssh_config
96
+        sudo chown $CURR_USER:$CURR_USER ~/ssh_config
97
+        echo "   Ciphers $SSH_CIPHERS" >> ~/ssh_config
98
+        sudo mv ~/ssh_config /etc/ssh/ssh_config
99
+        sudo chown root:root /etc/ssh/ssh_config
100
+    fi
101
+    sudo sed -i "s/MACs.*/MACs $SSH_MACS/g" /etc/ssh/ssh_config
102
+    if ! grep -q "MACs " /etc/ssh/ssh_config; then
103
+        sudo cp /etc/ssh/ssh_config ~/ssh_config
104
+        sudo chown $CURR_USER:$CURR_USER ~/ssh_config
105
+        echo "   MACs $SSH_MACS" >> ~/ssh_config
106
+        sudo mv ~/ssh_config /etc/ssh/ssh_config
107
+        sudo chown root:root /etc/ssh/ssh_config
108
+    fi
109
+
110
+    # Create ssh keys
111
+    if [ ! -f /home/$CURR_USER/.ssh/id_ed25519 ]; then
112
+        ssh-keygen -t ed25519 -o -a 100
113
+    fi
114
+    if [ ! -f /home/$CURR_USER/.ssh/id_rsa ]; then
115
+        ssh-keygen -t rsa -b 4096 -o -a 100
116
+    fi
117
+
118
+    ssh_remove_small_moduli
119
+
120
+    if [ ! -d ~/.ssh ]; then
121
+        mkdir ~/.ssh
122
+    fi
123
+    echo 'Host *.onion' > ~/.ssh/config
124
+    echo '  ServerAliveInterval 60' >> ~/.ssh/config
125
+    echo '  ServerAliveCountMax 3' >> ~/.ssh/config
126
+    if [[ $ENABLE_MONKEYSPHERE == $'yes' || $ENABLE_MONKEYSPHERE == $'y' ]]; then
127
+        echo "  ProxyCommand sh -c 'monkeysphere ssh-proxycommand --no-connect %h %p ; connect -R remote -5 -S 127.0.0.1:9050 %h %p'" >> ~/.ssh/config
128
+    else
129
+        echo "  ProxyCommand connect -R remote -5 -S 127.0.0.1:9050 %h %p" >> ~/.ssh/config
130
+    fi
131
+    echo 'Host *' >> ~/.ssh/config
132
+    echo '  ServerAliveInterval 60' >> ~/.ssh/config
133
+    echo '  ServerAliveCountMax 3' >> ~/.ssh/config
134
+    if [[ $ENABLE_MONKEYSPHERE == $'yes' || $ENABLE_MONKEYSPHERE == $'y' ]]; then
135
+        echo '  ProxyCommand monkeysphere ssh-proxycommand %h %p' >> ~/.ssh/config
136
+    fi
137
+
138
+    echo ''
139
+    echo $'Copy the following into a file called /home/username/.ssh/authorized_keys on the Freedombone server'
140
+    echo ''
141
+    echo $(cat /home/$CURR_USER/.ssh/id_rsa.pub)
142
+    echo $(cat /home/$CURR_USER/.ssh/id_ed25519.pub)
143
+    echo ''
144 144
 }
145 145
 
146 146
 function configure_monkeysphere {
147
-	sudo apt-get -y install tor connect-proxy monkeysphere
147
+    sudo apt-get -y install tor connect-proxy monkeysphere
148 148
 }
149 149
 
150 150
 function show_help {
151
-	echo ''
152
-	echo $"${PROJECT_NAME}-client --mesh [yes|no] --monkeysphere [yes|no]"
153
-	echo ''
154
-	exit 0
151
+    echo ''
152
+    echo $"${PROJECT_NAME}-client --mesh [yes|no] --monkeysphere [yes|no]"
153
+    echo ''
154
+    exit 0
155 155
 }
156 156
 
157 157
 while [[ $# > 1 ]]
158 158
 do
159
-	key="$1"
160
-
161
-	case $key in
162
-		-h|--help)
163
-			show_help
164
-			;;
165
-		--essid)
166
-			shift
167
-			WIFI_SSID="$1"
168
-			;;
169
-		--channel)
170
-			shift
171
-			WIFI_CHANNEL=${1}
172
-			;;
173
-		-m|--mesh)
174
-			shift
175
-			MESH_CLIENT_INSTALL=${1}
176
-			;;
177
-		--monkeysphere|--ms|--monkey)
178
-			shift
179
-			ENABLE_MONKEYSPHERE=${1}
180
-			;;
181
-		*)
182
-			# unknown option
183
-			;;
184
-	esac
185
-	shift
159
+    key="$1"
160
+
161
+    case $key in
162
+        -h|--help)
163
+            show_help
164
+            ;;
165
+        --essid)
166
+            shift
167
+            WIFI_SSID="$1"
168
+            ;;
169
+        --channel)
170
+            shift
171
+            WIFI_CHANNEL=${1}
172
+            ;;
173
+        -m|--mesh)
174
+            shift
175
+            MESH_CLIENT_INSTALL=${1}
176
+            ;;
177
+        --monkeysphere|--ms|--monkey)
178
+            shift
179
+            ENABLE_MONKEYSPHERE=${1}
180
+            ;;
181
+        *)
182
+            # unknown option
183
+            ;;
184
+    esac
185
+    shift
186 186
 done
187 187
 
188 188
 echo $'Configuring client'
@@ -190,10 +190,11 @@ refresh_gpg_keys
190 190
 configure_ssh_client
191 191
 configure_monkeysphere
192 192
 if [[ $MESH_CLIENT_INSTALL == $'yes' || $MESH_CLIENT_INSTALL == $'y' || $MESH_CLIENT_INSTALL == $'on' ]]; then
193
-	echo $'Installing mesh packages'
194
-	${PROJECT_NAME}-mesh-install -f toxic
195
-	${PROJECT_NAME}-mesh-install -f qtox
196
-	${PROJECT_NAME}-mesh-install -f batman_client
193
+    echo $'Installing mesh packages'
194
+    sudo apt-get -y install avahi-utils avahi-autoipd avahi-dnsconfd
195
+    ${PROJECT_NAME}-mesh-install -f toxic
196
+    ${PROJECT_NAME}-mesh-install -f qtox
197
+    ${PROJECT_NAME}-mesh-install -f batman_client
197 198
 fi
198 199
 echo $'Configuration complete'
199 200
 exit 0