0e53e2954f
Added alternate for dialag (gdialog) so some of Whonix programs run Changed sudo permissions to fix umask and not use QT shared memory Changed whonix to use basic hosts file Added detection if template is active for updating Added startup code for tinyproxy Added code to disable uwt so apt-get can be used as proxy Created a python GUI Message Alert using yaml for messages (internationalization)
119 lines
3.6 KiB
Bash
Executable File
119 lines
3.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
. /usr/lib/whonix/utility_functions
|
|
|
|
# Search though files and updates IP address to the current
|
|
# IP address(es)
|
|
|
|
FILES=(
|
|
'/usr/lib/leaktest-workstation/simple_ping.py'
|
|
'/usr/lib/whonixcheck/preparation'
|
|
'/usr/share/anon-kde-streamiso/share/config/kioslaverc'
|
|
'/usr/bin/whonix_firewall'
|
|
'/etc/whonix_firewall.d/30_default'
|
|
'/usr/lib/anon-shared-helper-scripts/tor_bootstrap_check.bsh'
|
|
'/usr/bin/uwt'
|
|
'/etc/uwt.d/30_uwt_default'
|
|
'/usr/share/tor/tor-service-defaults-torrc.anondist'
|
|
'/usr/bin/update-torbrowser'
|
|
'/etc/network/interfaces.whonix'
|
|
'/etc/resolv.conf.anondist'
|
|
'/etc/sdwdate.d/31_anon_dist_stream_isolation_plugin'
|
|
'/etc/rinetd.conf.anondist'
|
|
'/etc/network/interfaces.whonix'
|
|
'/usr/share/anon-torchat/.torchat/torchat.ini'
|
|
)
|
|
|
|
# sed search and replace. return 0 if replace happened, otherwise 1
|
|
search_replace() {
|
|
local search="${1}"
|
|
local replace="${2}"
|
|
local file="${3}"
|
|
local retval=1
|
|
|
|
if ! [ -L "${file}" ]; then
|
|
ls_attrs="$(lsattr "${file}")"
|
|
ls_attrs=${ls_attrs:4:1}
|
|
if [ "${ls_attrs}" == "i" ]; then
|
|
chattr -i "${file}"
|
|
fi
|
|
fi
|
|
|
|
sed -i.bak '/'"${search}"'/,${s//'"${replace}"'/;b};$q1' "${file}"
|
|
retval=$?
|
|
|
|
if [ "${ls_attrs}" = "i" ]; then
|
|
chattr +i "${file}"
|
|
fi
|
|
|
|
return $retval
|
|
}
|
|
|
|
function replace_ips()
|
|
{
|
|
local search_ip="${1}"
|
|
local replace_ip="${2}"
|
|
local files=("${!3}")
|
|
local retval=1
|
|
|
|
# If IP is 10.152.152.10, network is 10.152.152.0
|
|
search_network="${search_ip%[.]*}.0"
|
|
replace_network="${replace_ip%[.]*}.0"
|
|
|
|
if ! [ "${search_ip}" = "${replace_ip}" ]; then
|
|
for file in "${files[@]}"; do
|
|
if [ -f "$file" ]; then
|
|
search_replace "${search_ip}" "${replace_ip}" "${file}" && retval=0
|
|
search_replace "${search_network}" "${replace_network}" "${file}" && retval=0
|
|
fi
|
|
done
|
|
fi
|
|
|
|
return $retval
|
|
}
|
|
|
|
update_ip() {
|
|
ip=${1}
|
|
|
|
echo "${ip}" > /etc/whonix-netvm-gateway
|
|
grep '^DisableNetwork 0$' /etc/tor/torrc && {
|
|
service tor status && {
|
|
service tor reload || true;
|
|
}
|
|
}
|
|
}
|
|
|
|
if [ "${WHONIX}" == "gateway" ]; then
|
|
ip="$(xenstore-read qubes-netvm-gateway)"
|
|
if [ x${ip} != x ]; then
|
|
# Compare to current IP address assiged by Qubes
|
|
replace_ips "$(cat /etc/whonix-netvm-gateway)" "${ip}" FILES[@] && update_ip "${ip}"
|
|
|
|
# Do again; checking for original 10.152.152.10 incase of update
|
|
replace_ips "10.152.152.10" "${ip}" FILES[@] && update_ip "${ip}"
|
|
|
|
# Do again; checking for original 10.152.152.11 incase of update
|
|
replace_ips "10.152.152.11" "${ip}" FILES[@] && update_ip "${ip}"
|
|
fi
|
|
|
|
elif [ "${WHONIX}" == "workstation" ]; then
|
|
ip="$(xenstore-read qubes-ip)"
|
|
gateway="$(xenstore-read qubes-gateway)"
|
|
|
|
if [ x${ip} != x ]; then
|
|
# Compare to current IP address assiged by Qubes
|
|
replace_ips "$(cat /etc/whonix-ip)" "${ip}" FILES[@] && echo "${ip}" > /etc/whonix-ip
|
|
|
|
# Do again; checking for original 10.152.152.11 incase of update
|
|
replace_ips "10.152.152.11" "${ip}" FILES[@] && echo "${ip}" > /etc/whonix-ip
|
|
fi
|
|
|
|
if [ x${gateway} != x ]; then
|
|
# Compare to current gateway IP address assiged by Qubes
|
|
replace_ips "$(cat /etc/whonix-netvm-gateway)" "${gateway}" FILES[@] && echo "${gateway}" > /etc/whonix-netvm-gateway
|
|
|
|
# Do again; checking for original 10.152.152.10 incase of update
|
|
replace_ips "10.152.152.10" "${gateway}" FILES[@] && echo "${gateway}" > /etc/whonix-netvm-gateway
|
|
fi
|
|
fi
|