|
@@ -281,6 +281,9 @@ MARIADB_PASSWORD=
|
281
|
281
|
# Directory where XMPP settings are stored
|
282
|
282
|
XMPP_DIRECTORY="/var/lib/prosody"
|
283
|
283
|
|
|
284
|
+# port used for xmpp as an onion service
|
|
285
|
+XMPP_ONION_PORT=8091
|
|
286
|
+
|
284
|
287
|
# file containing a list of remote locations to backup to
|
285
|
288
|
# Format: [username@friendsdomain//home/username] [ssh_password]
|
286
|
289
|
# With the only space character being between the server and the password
|
|
@@ -6722,13 +6725,29 @@ function install_xmpp {
|
6722
|
6725
|
return
|
6723
|
6726
|
fi
|
6724
|
6727
|
apt-get -y install lua-sec
|
6725
|
|
- apt-get -y install prosody
|
|
6728
|
+ apt-get -y install prosody prosody-modules mercurial
|
6726
|
6729
|
|
6727
|
6730
|
if [ ! -d /etc/prosody ]; then
|
6728
|
6731
|
echo $"ERROR: prosody does not appear to have installed. $CHECK_MESSAGE"
|
6729
|
6732
|
exit 52
|
6730
|
6733
|
fi
|
6731
|
6734
|
|
|
6735
|
+ # obtain the prosody modules
|
|
6736
|
+ cd $INSTALL_DIR
|
|
6737
|
+ hg clone https://hg.prosody.im/prosody-modules/ prosody-modules
|
|
6738
|
+ if [ ! -d $INSTALL_DIR/prosody-modules/mod_onions ]; then
|
|
6739
|
+ echo $'mod_onions prosody module could not be found'
|
|
6740
|
+ exit 73254
|
|
6741
|
+ fi
|
|
6742
|
+
|
|
6743
|
+ # install the onions module
|
|
6744
|
+ cp $INSTALL_DIR/prosody-modules/mod_onions/mod_onions.lua /usr/lib/prosody/modules/mod_onions.lua
|
|
6745
|
+ if [ ! -f /usr/lib/prosody/modules/mod_onions.lua ]; then
|
|
6746
|
+ echo $'mod_onions.lua could not be copied to the prosody modules directory'
|
|
6747
|
+ exit 63952
|
|
6748
|
+ fi
|
|
6749
|
+
|
|
6750
|
+ # create a certificate
|
6732
|
6751
|
if [ ! -f /etc/ssl/certs/xmpp.dhparam ]; then
|
6733
|
6752
|
${PROJECT_NAME}-addcert -h xmpp --dhkey $DH_KEYLENGTH
|
6734
|
6753
|
check_certificates xmpp
|
|
@@ -6764,6 +6783,7 @@ function install_xmpp {
|
6764
|
6783
|
echo ' "bosh"; -- Enable mod_bosh' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
6765
|
6784
|
echo ' "tls"; -- Enable mod_tls' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
6766
|
6785
|
echo ' "saslauth"; -- Enable mod_saslauth' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
6786
|
+ echo ' "onions"; -- Enable chat via onion service' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
6767
|
6787
|
echo '}' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
6768
|
6788
|
echo '' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
6769
|
6789
|
echo 'c2s_require_encryption = true' >> /etc/prosody/conf.avail/xmpp.cfg.lua
|
|
@@ -6803,9 +6823,28 @@ function install_xmpp {
|
6803
|
6823
|
sed -i 's|certificate = "/etc/prosody/certs/example.com.crt"|certificate = "/etc/ssl/certs/xmpp.crt"|g' /etc/prosody/prosody.cfg.lua
|
6804
|
6824
|
sed -i "s/example.com/$DEFAULT_DOMAIN_NAME/g" /etc/prosody/prosody.cfg.lua
|
6805
|
6825
|
|
6806
|
|
- service prosody restart
|
|
6826
|
+ systemctl restart prosody
|
6807
|
6827
|
touch /home/$MY_USERNAME/README
|
6808
|
6828
|
|
|
6829
|
+ if [ ! -d /var/lib/tor ]; then
|
|
6830
|
+ echo $'No Tor installation found. XMPP onion site cannot be configured.'
|
|
6831
|
+ exit 877367
|
|
6832
|
+ fi
|
|
6833
|
+ if ! grep -q "hidden_service_xmpp" /etc/tor/torrc; then
|
|
6834
|
+ echo 'HiddenServiceDir /var/lib/tor/hidden_service_xmpp/' >> /etc/tor/torrc
|
|
6835
|
+ echo "HiddenServicePort 5222 127.0.0.1:${XMPP_ONION_PORT}" >> /etc/tor/torrc
|
|
6836
|
+ echo $'Added onion site for XMPP chat'
|
|
6837
|
+ fi
|
|
6838
|
+
|
|
6839
|
+ systemctl restart tor
|
|
6840
|
+
|
|
6841
|
+ if [ ! -f /var/lib/tor/hidden_service_owncloud/hostname ]; then
|
|
6842
|
+ echo $'XMPP onion site hostname not found'
|
|
6843
|
+ exit 65349
|
|
6844
|
+ fi
|
|
6845
|
+ XMPP_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_xmpp/hostname)
|
|
6846
|
+ echo "XMPP onion domain:${XMPP_ONION_HOSTNAME}" >> $COMPLETION_FILE
|
|
6847
|
+
|
6809
|
6848
|
if ! grep -q "Your XMPP password is" /home/$MY_USERNAME/README; then
|
6810
|
6849
|
if [ -f $IMAGE_PASSWORD_FILE ]; then
|
6811
|
6850
|
XMPP_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
|
|
@@ -6817,6 +6856,7 @@ function install_xmpp {
|
6817
|
6856
|
echo '' >> /home/$MY_USERNAME/README
|
6818
|
6857
|
echo $'XMPP' >> /home/$MY_USERNAME/README
|
6819
|
6858
|
echo '====' >> /home/$MY_USERNAME/README
|
|
6859
|
+ echo $"XMPP onion domain: ${XMPP_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
|
6820
|
6860
|
echo $"Your XMPP password is: $XMPP_PASSWORD" >> /home/$MY_USERNAME/README
|
6821
|
6861
|
echo $'You can change it with: ' >> /home/$MY_USERNAME/README
|
6822
|
6862
|
echo '' >> /home/$MY_USERNAME/README
|