diff -uprN pi-hole-5.2/adlists.list pi-hole-5.2.cust/adlists.list --- pi-hole-5.2/adlists.list 1970-01-01 01:00:00.000000000 +0100 +++ pi-hole-5.2.cust/adlists.list 2020-11-29 09:41:12.706917334 +0100 @@ -0,0 +1,4 @@ +https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts +https://mirror1.malwaredomains.com/files/justdomains +https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt +https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt diff -uprN pi-hole-5.2/advanced/Scripts/pihole-reenable.sh pi-hole-5.2.cust/advanced/Scripts/pihole-reenable.sh --- pi-hole-5.2/advanced/Scripts/pihole-reenable.sh 2020-11-28 20:05:01.000000000 +0100 +++ pi-hole-5.2.cust/advanced/Scripts/pihole-reenable.sh 2020-11-29 09:41:12.653917378 +0100 @@ -17,7 +17,7 @@ # This ensures that pihole ends up in the correct state after a sequence of # commands suchs as: `pihole disable 30s; pihole enable; pihole disable` -readonly PI_HOLE_BIN_DIR="/usr/local/bin" +readonly PI_HOLE_BIN_DIR="/usr/bin" sleep "${1}" "${PI_HOLE_BIN_DIR}"/pihole enable diff -uprN pi-hole-5.2/advanced/Scripts/piholeLogFlush.sh pi-hole-5.2.cust/advanced/Scripts/piholeLogFlush.sh --- pi-hole-5.2/advanced/Scripts/piholeLogFlush.sh 2020-11-28 20:05:01.000000000 +0100 +++ pi-hole-5.2.cust/advanced/Scripts/piholeLogFlush.sh 2020-11-29 09:41:12.664917369 +0100 @@ -26,35 +26,35 @@ if [ -z "$DBFILE" ]; then fi if [[ "$@" != *"quiet"* ]]; then - echo -ne " ${INFO} Flushing /var/log/pihole.log ..." + echo -ne " ${INFO} Flushing /run/log/pihole/pihole.log ..." fi if [[ "$@" == *"once"* ]]; then # Nightly logrotation - if command -v /usr/sbin/logrotate >/dev/null; then + if command -v /usr/bin/logrotate >/dev/null; then # Logrotate once - /usr/sbin/logrotate --force /etc/pihole/logrotate + /usr/bin/logrotate --force /etc/pihole/logrotate else # Copy pihole.log over to pihole.log.1 # and empty out pihole.log # Note that moving the file is not an option, as # dnsmasq would happily continue writing into the # moved file (it will have the same file handler) - cp -p /var/log/pihole.log /var/log/pihole.log.1 - echo " " > /var/log/pihole.log - chmod 644 /var/log/pihole.log + cp -p /run/log/pihole/pihole.log /run/log/pihole/pihole.log.1 + echo " " > /run/log/pihole/pihole.log + chmod 644 /run/log/pihole/pihole.log fi else # Manual flushing - if command -v /usr/sbin/logrotate >/dev/null; then + if command -v /usr/bin/logrotate >/dev/null; then # Logrotate twice to move all data out of sight of FTL - /usr/sbin/logrotate --force /etc/pihole/logrotate; sleep 3 - /usr/sbin/logrotate --force /etc/pihole/logrotate + /usr/bin/logrotate --force /etc/pihole/logrotate; sleep 3 + /usr/bin/logrotate --force /etc/pihole/logrotate else # Flush both pihole.log and pihole.log.1 (if existing) - echo " " > /var/log/pihole.log - if [ -f /var/log/pihole.log.1 ]; then - echo " " > /var/log/pihole.log.1 - chmod 644 /var/log/pihole.log.1 + echo " " > /run/log/pihole/pihole.log + if [ -f /run/log/pihole/pihole.log.1 ]; then + echo " " > /run/log/pihole/pihole.log.1 + chmod 644 /run/log/pihole/pihole.log.1 fi fi # Delete most recent 24 hours from FTL's database, leave even older data intact (don't wipe out all history) @@ -65,6 +65,6 @@ else fi if [[ "$@" != *"quiet"* ]]; then - echo -e "${OVER} ${TICK} Flushed /var/log/pihole.log" + echo -e "${OVER} ${TICK} Flushed /run/log/pihole/pihole.log" echo -e " ${TICK} Deleted ${deleted} queries from database" fi diff -uprN pi-hole-5.2/advanced/Scripts/version.sh pi-hole-5.2.cust/advanced/Scripts/version.sh --- pi-hole-5.2/advanced/Scripts/version.sh 2020-11-28 20:05:01.000000000 +0100 +++ pi-hole-5.2.cust/advanced/Scripts/version.sh 2020-11-29 09:41:12.687917350 +0100 @@ -11,7 +11,7 @@ # Variables DEFAULT="-1" COREGITDIR="/etc/.pihole/" -WEBGITDIR="/var/www/html/admin/" +WEBGITDIR="/srv/http/pihole/admin/" getLocalVersion() { # FTL requires a different method @@ -20,42 +20,16 @@ getLocalVersion() { return 0 fi - # Get the tagged version of the local repository - local directory="${1}" - local version - - cd "${directory}" 2> /dev/null || { echo "${DEFAULT}"; return 1; } - version=$(git describe --tags --always || echo "$DEFAULT") - if [[ "${version}" =~ ^v ]]; then - echo "${version}" - elif [[ "${version}" == "${DEFAULT}" ]]; then - echo "ERROR" - return 1 + if [[ "$1" == "pi-hole" ]]; then + echo "5.2" else - echo "Untagged" + echo "5.2" fi return 0 } getLocalHash() { - # Local FTL hash does not exist on filesystem - if [[ "$1" == "FTL" ]]; then - echo "N/A" - return 0 - fi - - # Get the short hash of the local repository - local directory="${1}" - local hash - - cd "${directory}" 2> /dev/null || { echo "${DEFAULT}"; return 1; } - hash=$(git rev-parse --short HEAD || echo "$DEFAULT") - if [[ "${hash}" == "${DEFAULT}" ]]; then - echo "ERROR" - return 1 - else - echo "${hash}" - fi + echo "N/A" return 0 } diff -uprN pi-hole-5.2/advanced/Scripts/webpage.sh pi-hole-5.2.cust/advanced/Scripts/webpage.sh --- pi-hole-5.2/advanced/Scripts/webpage.sh 2020-11-28 20:05:01.000000000 +0100 +++ pi-hole-5.2.cust/advanced/Scripts/webpage.sh 2020-11-29 09:41:12.667917366 +0100 @@ -24,7 +24,7 @@ readonly gravityDBfile="/etc/pihole/grav readonly PI_HOLE_FILES_DIR="/etc/.pihole" # shellcheck disable=SC2034 # used in basic-install PH_TEST="true" -source "${PI_HOLE_FILES_DIR}/automated install/basic-install.sh" +source "/opt/pihole/basic-install.sh" coltable="/opt/pihole/COL_TABLE" if [[ -f ${coltable} ]]; then diff -uprN pi-hole-5.2/advanced/Templates/logrotate pi-hole-5.2.cust/advanced/Templates/logrotate --- pi-hole-5.2/advanced/Templates/logrotate 2020-11-28 20:05:01.000000000 +0100 +++ pi-hole-5.2.cust/advanced/Templates/logrotate 2020-11-29 09:41:12.662917371 +0100 @@ -1,4 +1,4 @@ -/var/log/pihole.log { +/run/log/pihole/pihole.log { # su # daily copytruncate @@ -9,7 +9,7 @@ nomail } -/var/log/pihole-FTL.log { +/run/log/pihole-ftl/pihole-FTL.log { # su # weekly copytruncate diff -uprN pi-hole-5.2/advanced/Templates/pihole.sudo pi-hole-5.2.cust/advanced/Templates/pihole.sudo --- pi-hole-5.2/advanced/Templates/pihole.sudo 2020-11-28 20:05:01.000000000 +0100 +++ pi-hole-5.2.cust/advanced/Templates/pihole.sudo 2020-11-29 09:41:12.706917334 +0100 @@ -7,3 +7,4 @@ # This file is copyright under the latest version of the EUPL. # Please see LICENSE file for your rights under this license. # +http ALL=NOPASSWD: /usr/bin/pihole diff -uprN pi-hole-5.2/advanced/dnsmasq.conf.original pi-hole-5.2.cust/advanced/dnsmasq.conf.original --- pi-hole-5.2/advanced/dnsmasq.conf.original 2020-11-28 20:05:01.000000000 +0100 +++ pi-hole-5.2.cust/advanced/dnsmasq.conf.original 2020-11-29 09:41:12.706917334 +0100 @@ -646,3 +646,4 @@ # Include all files in a directory which end in .conf #conf-dir=/etc/dnsmasq.d/*.conf +conf-dir=/etc/dnsmasq.d/,*.conf diff -uprN pi-hole-5.2/dns-servers.conf pi-hole-5.2.cust/dns-servers.conf --- pi-hole-5.2/dns-servers.conf 1970-01-01 01:00:00.000000000 +0100 +++ pi-hole-5.2.cust/dns-servers.conf 2020-11-29 09:41:12.707917334 +0100 @@ -0,0 +1,9 @@ +Google (ECS);8.8.8.8;8.8.4.4;2001:4860:4860:0:0:0:0:8888;2001:4860:4860:0:0:0:0:8844 +OpenDNS (ECS);208.67.222.222;208.67.220.220;2620:119:35::35;2620:119:53::53 +Level3;4.2.2.1;4.2.2.2;; +Comodo;8.26.56.26;8.20.247.20;; +DNS.WATCH;84.200.69.80;84.200.70.40;2001:1608:10:25:0:0:1c04:b12f;2001:1608:10:25:0:0:9249:d69b +Quad9 (filtered, DNSSEC);9.9.9.9;149.112.112.112;2620:fe::fe;2620:fe::9 +Quad9 (unfiltered, no DNSSEC);9.9.9.10;149.112.112.10;2620:fe::10;2620:fe::fe:10 +Quad9 (filtered + ECS);9.9.9.11;149.112.112.11;2620:fe::11; +Cloudflare;1.1.1.1;1.0.0.1;2606:4700:4700::1111;2606:4700:4700::1001 diff -uprN pi-hole-5.2/gravity.sh pi-hole-5.2.cust/gravity.sh --- pi-hole-5.2/gravity.sh 2020-11-28 20:05:01.000000000 +0100 +++ pi-hole-5.2.cust/gravity.sh 2020-11-29 09:41:12.648917382 +0100 @@ -18,10 +18,10 @@ source "${coltable}" regexconverter="/opt/pihole/wildcard_regex_converter.sh" source "${regexconverter}" # shellcheck disable=SC1091 -source "/etc/.pihole/advanced/Scripts/database_migration/gravity-db.sh" +source "/opt/pihole/database_migration/gravity-db.sh" basename="pihole" -PIHOLE_COMMAND="/usr/local/bin/${basename}" +PIHOLE_COMMAND="/usr/bin/${basename}" piholeDir="/etc/${basename}" @@ -37,8 +37,8 @@ VPNList="/etc/openvpn/ipp.txt" piholeGitDir="/etc/.pihole" gravityDBfile="${piholeDir}/gravity.db" gravityTEMPfile="${piholeDir}/gravity_temp.db" -gravityDBschema="${piholeGitDir}/advanced/Templates/gravity.db.sql" -gravityDBcopy="${piholeGitDir}/advanced/Templates/gravity_copy.sql" +gravityDBschema="/opt/pihole/gravity.db.sql" +gravityDBcopy="/opt/pihole/gravity_copy.sql" domainsExtension="domains" diff -uprN pi-hole-5.2/pihole pi-hole-5.2.cust/pihole --- pi-hole-5.2/pihole 2020-11-28 20:05:01.000000000 +0100 +++ pi-hole-5.2.cust/pihole 2020-11-29 09:41:12.655917377 +0100 @@ -15,7 +15,7 @@ readonly PI_HOLE_SCRIPT_DIR="/opt/pihole # they might get set again when the installer is sourced. This causes an # error due to modifying a readonly variable. setupVars="/etc/pihole/setupVars.conf" -PI_HOLE_BIN_DIR="/usr/local/bin" +PI_HOLE_BIN_DIR="/usr/bin" readonly colfile="${PI_HOLE_SCRIPT_DIR}/COL_TABLE" source "${colfile}" @@ -58,17 +58,6 @@ arpFunc() { exit 0 } -updatePiholeFunc() { - shift - "${PI_HOLE_SCRIPT_DIR}"/update.sh "$@" - exit 0 -} - -reconfigurePiholeFunc() { - /etc/.pihole/automated\ install/basic-install.sh --reconfigure - exit 0; -} - updateGravityFunc() { "${PI_HOLE_SCRIPT_DIR}"/gravity.sh "$@" exit $? @@ -87,11 +76,6 @@ chronometerFunc() { } -uninstallFunc() { - "${PI_HOLE_SCRIPT_DIR}"/uninstall.sh - exit 0 -} - versionFunc() { shift "${PI_HOLE_SCRIPT_DIR}"/version.sh "$@" @@ -117,7 +101,7 @@ restartDNS() { str="Flushing DNS cache" else # A full restart has been requested - svc="service pihole-FTL restart" + svc="systemctl restart pihole-FTL" str="Restarting DNS server" fi @@ -220,9 +204,9 @@ Example: 'pihole logging on' Specify whether the Pi-hole log should be used Options: - on Enable the Pi-hole log at /var/log/pihole.log - off Disable and flush the Pi-hole log at /var/log/pihole.log - off noflush Disable the Pi-hole log at /var/log/pihole.log" + on Enable the Pi-hole log at /run/log/pihole/pihole.log + off Disable and flush the Pi-hole log at /run/log/pihole/pihole.log + off noflush Disable the Pi-hole log at /run/log/pihole/pihole.log" exit 0 elif [[ "${1}" == "off" ]]; then # Disable logging @@ -335,7 +319,7 @@ tailFunc() { # Color blocklist/blacklist/wildcard entries as red # Color A/AAAA/DHCP strings as white # Color everything else as gray - tail -f /var/log/pihole.log | sed -E \ + tail -f /run/log/pihole/pihole.log | sed -E \ -e "s,($(date +'%b %d ')| dnsmasq\[[0-9]*\]),,g" \ -e "s,(.*(blacklisted |gravity blocked ).* is (0.0.0.0|::|NXDOMAIN|${IPV4_ADDRESS%/*}|${IPV6_ADDRESS:-NULL}).*),${COL_RED}&${COL_NC}," \ -e "s,.*(query\\[A|DHCP).*,${COL_NC}&${COL_NC}," \ @@ -343,59 +327,6 @@ tailFunc() { exit 0 } -piholeCheckoutFunc() { - if [[ "$2" == "-h" ]] || [[ "$2" == "--help" ]]; then - echo "Usage: pihole checkout [repo] [branch] -Example: 'pihole checkout master' or 'pihole checkout core dev' -Switch Pi-hole subsystems to a different GitHub branch - -Repositories: - core [branch] Change the branch of Pi-hole's core subsystem - web [branch] Change the branch of Web Interface subsystem - ftl [branch] Change the branch of Pi-hole's FTL subsystem - -Branches: - master Update subsystems to the latest stable release - dev Update subsystems to the latest development release - branchname Update subsystems to the specified branchname" - exit 0 - fi - - source "${PI_HOLE_SCRIPT_DIR}"/piholeCheckout.sh - shift - checkout "$@" -} - -tricorderFunc() { - if [[ ! -p "/dev/stdin" ]]; then - echo -e " ${INFO} Please do not call Tricorder directly" - exit 1 - fi - - if ! (echo > /dev/tcp/tricorder.pi-hole.net/9998) >/dev/null 2>&1; then - echo -e " ${CROSS} Unable to connect to Pi-hole's Tricorder server" - exit 1 - fi - - if command -v openssl &> /dev/null; then - openssl s_client -quiet -connect tricorder.pi-hole.net:9998 2> /dev/null < /dev/stdin - exit "$?" - else - echo -e " ${INFO} ${COL_YELLOW}Security Notice${COL_NC}: ${COL_WHITE}openssl${COL_NC} is not installed - Your debug log will be transmitted unencrypted via plain-text - There is a possibility that this could be intercepted by a third party - If you wish to cancel, press Ctrl-C to exit within 10 seconds" - secs="10" - while [[ "$secs" -gt "0" ]]; do - echo -ne "." - sleep 1 - : $((secs--)) - done - echo " " - nc tricorder.pi-hole.net 9999 < /dev/stdin - exit "$?" - fi -} updateCheckFunc() { "${PI_HOLE_SCRIPT_DIR}"/updatecheck.sh "$@" @@ -418,9 +349,7 @@ Whitelist/Blacklist Options: Debugging Options: -d, debug Start a debugging session - Add '-a' to automatically upload the log to tricorder.pi-hole.net -f, flush Flush the Pi-hole log - -r, reconfigure Reconfigure or Repair Pi-hole subsystems -t, tail View the live output of the Pi-hole log Options: @@ -434,11 +363,9 @@ Options: Add '-h' for more info on logging usage -q, query Query the adlists for a specified domain Add '-h' for more info on query usage - -up, updatePihole Update Pi-hole subsystems Add '--check-only' to exit script before update is performed. -v, version Show installed versions of Pi-hole, Web Interface & FTL Add '-h' for more info on version usage - uninstall Uninstall Pi-hole from your system status Display the running status of Pi-hole subsystems enable Enable Pi-hole subsystems disable Disable Pi-hole subsystems @@ -446,8 +373,6 @@ Options: restartdns Full restart Pi-hole subsystems Add 'reload' to update the lists and flush the cache without restarting the DNS server Add 'reload-lists' to only update the lists WITHOUT flushing the cache or restarting the DNS server - checkout Switch Pi-hole subsystems to a different GitHub branch - Add '-h' for more info on checkout usage arpflush Flush information stored in Pi-hole's network tables"; exit 0 } @@ -481,23 +406,18 @@ case "${1}" in "--white-wild" | "white-wild" ) listFunc "$@";; "-d" | "debug" ) debugFunc "$@";; "-f" | "flush" ) flushFunc "$@";; - "-up" | "updatePihole" ) updatePiholeFunc "$@";; - "-r" | "reconfigure" ) reconfigurePiholeFunc;; "-g" | "updateGravity" ) updateGravityFunc "$@";; "-c" | "chronometer" ) chronometerFunc "$@";; "-h" | "help" ) helpFunc;; "-v" | "version" ) versionFunc "$@";; "-q" | "query" ) queryFunc "$@";; "-l" | "logging" ) piholeLogging "$@";; - "uninstall" ) uninstallFunc;; "enable" ) piholeEnable 1;; "disable" ) piholeEnable 0 "$2";; "status" ) statusFunc "$2";; "restartdns" ) restartDNS "$2";; "-a" | "admin" ) webpageFunc "$@";; "-t" | "tail" ) tailFunc;; - "checkout" ) piholeCheckoutFunc "$@";; - "tricorder" ) tricorderFunc;; "updatechecker" ) updateCheckFunc "$@";; "arpflush" ) arpFunc "$@";; * ) helpFunc;;