#!/bin/bash # I, Ian Kelling, follow the GNU license recommendations at # https://www.gnu.org/licenses/license-recommendations.en.html. They # recommend that small programs, < 300 lines, be licensed under the # Apache License 2.0. This file contains or is part of one or more small # programs. If a small program grows beyond 300 lines, I plan to switch # its license to GPL. # Copyright 2024 Ian Kelling # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # http://www.apache.org/licenses/LICENSE-2.0 # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Usage: run to trust or untrust dns. public wifi sometimes needs to # trust dns initially to log in. [[ $EUID == 0 ]] || exec sudo -E "${BASH_SOURCE[0]}" "$@" source /a/bin/bash-bear-trap/bash-bear script_name="${BASH_SOURCE[0]}" script_name="${script_name##*/}" # removes malware and adult content servers=(1.1.1.3 1.0.0.3 2606:4700:4700::1113 2606:4700:4700::1003) servers=(1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001) ## trying out google servers=(8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844) m() { printf "%s\n" "$*"; "$@"; } e() { printf "%s\n" "$@"; } i() { # install file local tmp tmpdir dest="$1" local base="${dest##*/}" mkdir -p ${dest%/*} ir=false # i result tmpdir=$(mktemp -d) cat >$tmpdir/"$base" tmp=$(rsync -ic $tmpdir/"$base" "$dest") if [[ $tmp ]]; then printf "%s\n" "$tmp" ir=true fi rm -rf $tmpdir } # i symlinked the script to another name to make it work different trust=true case $script_name in untrusted-network) trust=false ;; esac if $trust; then if [[ -e /etc/NetworkManager/conf.d/dns.conf ]]; then rm -fv /etc/NetworkManager/conf.d/dns.conf if [[ $(systemctl is-active NetworkManager) == active ]]; then m systemctl restart NetworkManager fi fi # https://github.com/jonathanio/update-systemd-resolved # suggests this will help prevent leakage into a vpn interface cat >/etc/systemd/resolved.conf.d/untrusted-network.conf </etc/systemd/resolved.conf.d/untrusted-network.conf <