diff --git a/src/freedombone-app-profanity b/src/freedombone-app-profanity index 12190c75fa385c52b9680aeda09665f7065de975..75e24a241d9f5a551c40d254e4f461bf42e50219 100755 --- a/src/freedombone-app-profanity +++ b/src/freedombone-app-profanity @@ -276,7 +276,7 @@ function install_profanity { mkdir -p "$XMPP_CLIENT_DIR" fi - XMPP_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_xmpp/hostname) + XMPP_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_email/hostname) #MY_GPG_PUBLIC_KEY_ID=$(gpg_pubkey_from_email "$MY_USERNAME" "$MY_USERNAME@$DEFAULT_DOMAIN_NAME") if [[ $ONION_ONLY == 'no' ]]; then @@ -304,7 +304,7 @@ function install_profanity { fi fi - if [ -f /var/lib/tor/hidden_service_xmpp/hostname ]; then + if [ -f /var/lib/tor/hidden_service_email/hostname ]; then echo "[${MY_USERNAME}@${XMPP_ONION_HOSTNAME}]" >> "$XMPP_CLIENT_ACCOUNTS" if [[ $ONION_ONLY == 'no' ]]; then echo 'enabled=false' >> "$XMPP_CLIENT_ACCOUNTS" diff --git a/src/freedombone-app-xmpp b/src/freedombone-app-xmpp index 36e2d3f945940a9c89d2715a99ab359184bf4983..f413a6928311c1083b01d986cdb6527ed960b7ef 100755 --- a/src/freedombone-app-xmpp +++ b/src/freedombone-app-xmpp @@ -127,7 +127,7 @@ function xmpp_update_e2e_policy { fi if [[ "$ONION_ONLY" != 'no' ]]; then - XMPP_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_xmpp/hostname) + XMPP_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_email/hostname) sed -i "s|VirtualHost \".*.onion.*|VirtualHost \"${XMPP_ONION_HOSTNAME}\"|g" "$filename" # TLS is not strictly needed for onion transport security sed -i 's|c2s_require_encryption =.*|c2s_require_encryption = false|g' "$filename" @@ -306,7 +306,7 @@ function remove_user_xmpp { "${PROJECT_NAME}-pass" -u "$remove_username" --rmapp xmpp if [[ "$ONION_ONLY" != "no" ]]; then - DOMAIN=$(cat /var/lib/tor/hidden_service_xmpp/hostname) + DOMAIN=$(cat /var/lib/tor/hidden_service_email/hostname) else DOMAIN=${HOSTNAME} fi @@ -372,7 +372,7 @@ function add_user_xmpp { new_username="$1" new_user_password="$2" - XMPP_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_xmpp/hostname) + XMPP_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_email/hostname) "${PROJECT_NAME}-pass" -u "$new_username" -a xmpp -p "$new_user_password" if [[ "$ONION_ONLY" != "no" ]]; then @@ -773,9 +773,6 @@ function remove_xmpp { firewall_remove 5280 tcp firewall_remove 5281 tcp - function_check remove_onion_service - remove_onion_service xmpp 5222 5223 5269 - $PACKAGE_UNHOLD prosody $REMOVE_PACKAGES_PURGE prosody rm /etc/cron.daily/prosody @@ -1163,6 +1160,23 @@ function install_xmpp_nightly { set_completion_param "prosody_filename" "${prosody_filename}" } +function add_xmpp_onion_to_email { + if ! grep -q 'hidden_service_xmpp' "/etc/torrc.d/${PROJECT_NAME}"; then + return + fi + + # remove xmpp hidden service + sed -i "/hidden_service_xmpp/,+1 d" "/etc/torrc.d/${PROJECT_NAME}" + sed -i '/5222/d' "/etc/torrc.d/${PROJECT_NAME}" + sed -i '/5269/d' "/etc/torrc.d/${PROJECT_NAME}" + + # add xmpp ports to email + sed -i '/ 465 /a HiddenServicePort 5269 127.0.0.1:5269' "/etc/torrc.d/${PROJECT_NAME}" + sed -i '/ 465 /a HiddenServicePort 5222 127.0.0.1:5222' "/etc/torrc.d/${PROJECT_NAME}" + + systemctl restart tor +} + function install_xmpp { if [ ! -d "$INSTALL_DIR" ]; then mkdir -p "$INSTALL_DIR" @@ -1332,22 +1346,12 @@ function install_xmpp { echo $'No Tor installation found. xmpp onion site cannot be configured.' exit 877367 fi - if ! grep -q "hidden_service_xmpp" "$ONION_SERVICES_FILE"; then - { echo 'HiddenServiceDir /var/lib/tor/hidden_service_xmpp/'; - echo 'HiddenServiceVersion 3'; - echo "HiddenServicePort 5222 127.0.0.1:5222"; - echo "HiddenServicePort 5269 127.0.0.1:5269"; } >> "$ONION_SERVICES_FILE" - echo $'Added onion site for xmpp chat' - fi - onion_update - wait_for_onion_service 'xmpp' - - if [ ! -f /var/lib/tor/hidden_service_xmpp/hostname ]; then + if [ ! -f /var/lib/tor/hidden_service_email/hostname ]; then echo $'xmpp onion site hostname not found' exit 65349 fi - XMPP_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_xmpp/hostname) + XMPP_ONION_HOSTNAME=$(cat /var/lib/tor/hidden_service_email/hostname) if ! grep -q "${XMPP_ONION_HOSTNAME}" /etc/prosody/conf.avail/xmpp.cfg.lua; then { echo ''; echo "VirtualHost \"${XMPP_ONION_HOSTNAME}\""; @@ -1403,6 +1407,9 @@ function install_xmpp { fi $PACKAGE_HOLD prosody + + add_xmpp_onion_to_email + systemctl restart prosody configure_xmppsend diff --git a/src/freedombone-base-email b/src/freedombone-base-email index 34ee7936758a83786c2c058afd99e9cd4b9eb83c..60c71c7fbe76b78f8e2b8aa0092934c36dff4c98 100755 --- a/src/freedombone-base-email +++ b/src/freedombone-base-email @@ -224,12 +224,14 @@ function email_create_template { function create_email_onion_address { email_hostname='/var/lib/tor/hidden_service_email/hostname' - if ! grep -q "hidden_service_email" $ONION_SERVICES_FILE; then + if ! grep -q "hidden_service_email" "$ONION_SERVICES_FILE"; then { echo 'HiddenServiceDir /var/lib/tor/hidden_service_email/'; echo 'HiddenServiceVersion 3'; echo 'HiddenServicePort 25 127.0.0.1:25'; echo 'HiddenServicePort 587 127.0.0.1:587'; - echo 'HiddenServicePort 465 127.0.0.1:465'; } >> $ONION_SERVICES_FILE + echo 'HiddenServicePort 465 127.0.0.1:465'; + echo "HiddenServicePort 5222 127.0.0.1:5222"; + echo "HiddenServicePort 5269 127.0.0.1:5269"; } >> "$ONION_SERVICES_FILE" function_check onion_update onion_update @@ -301,7 +303,7 @@ function configure_email_onion { echo " route_data = \${perl{onionLookup}{$RISEUP_EMAIL_ONION}}" echo " no_more"; } > /etc/exim4/conf.d/router/905_exim4-config-riseup - if ! grep -q "*.onion" /etc/exim4/conf.d/router/200_exim4-config_primary; then + if ! grep -q '\*.onion' /etc/exim4/conf.d/router/200_exim4-config_primary; then sed -i 's|domains = ! +local_domains|domains = ! +local_domains : ! *.onion : ! riseup.net|g' /etc/exim4/conf.d/router/200_exim4-config_primary fi diff --git a/src/freedombone-upgrade b/src/freedombone-upgrade index b71adaeed8edb33c8b23ee44e39ebf9888bb8120..a1577b04b08fdd1b79209630b78571ab4a32f88e 100755 --- a/src/freedombone-upgrade +++ b/src/freedombone-upgrade @@ -138,6 +138,7 @@ if [ -d "$PROJECT_DIR" ]; then #rebuild_exim_with_socks install_dynamicdns torrc_migrate + add_xmpp_onion_to_email nodejs_upgrade $INSTALL_PACKAGES_BACKPORTS certbot email_install_tls