Compare commits
16 Commits
v5.3
...
feature/lu
Author | SHA1 | Date | |
---|---|---|---|
|
6ce527010b | ||
|
761c1cd305 | ||
|
6f60555f79 | ||
|
a51be7d498 | ||
|
f3ceebbe06 | ||
|
57d9b96b53 | ||
|
5895690b58 | ||
|
d26f8dd665 | ||
|
2ba350984f | ||
|
1fb6366c41 | ||
|
4736e03108 | ||
|
18bedc0493 | ||
|
74948ae5c1 | ||
|
9b57f7fa33 | ||
|
866045968d | ||
|
f2e0cf8a92 |
@@ -50,6 +50,8 @@ sudo bash basic-install.sh
|
|||||||
wget -O basic-install.sh https://install.pi-hole.net
|
wget -O basic-install.sh https://install.pi-hole.net
|
||||||
sudo bash basic-install.sh
|
sudo bash basic-install.sh
|
||||||
```
|
```
|
||||||
|
### Method 3: Using Docker to deploy Pi-hole
|
||||||
|
Please refer to the [Pi-hole docker repo](https://github.com/pi-hole/docker-pi-hole) to use the Official Docker Images.
|
||||||
|
|
||||||
## [Post-install: Make your network take advantage of Pi-hole](https://docs.pi-hole.net/main/post-install/)
|
## [Post-install: Make your network take advantage of Pi-hole](https://docs.pi-hole.net/main/post-install/)
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Pi-hole: A black hole for Internet advertisements
|
# Pi-hole: A black hole for Internet advertisements
|
||||||
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
|
# (c) 2021 Pi-hole (https://pi-hole.net)
|
||||||
# Network-wide ad blocking via your own hardware.
|
# Network-wide ad blocking via your own hardware.
|
||||||
#
|
#
|
||||||
# Generates pihole_debug.log to be used for troubleshooting.
|
# Generates pihole_debug.log to be used for troubleshooting.
|
||||||
@@ -198,6 +198,33 @@ show_disclaimer(){
|
|||||||
log_write "${DISCLAIMER}"
|
log_write "${DISCLAIMER}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_for_ftl(){
|
||||||
|
echo_current_diagnostic "Checking for pihole-FTL binary"
|
||||||
|
|
||||||
|
declare -g FTL_PATH
|
||||||
|
read -r FTL_PATH < <(which pihole-FTL)
|
||||||
|
if [ -z "${FTL_PATH}" ]; then
|
||||||
|
log_write "${CROSS} ${COL_RED} Unable to find pihole-FTL binary.${COL_NC}"
|
||||||
|
# Non-zero return value
|
||||||
|
return 2
|
||||||
|
else
|
||||||
|
log_write "${TICK} pihole-FTL: ${COL_GREEN}${FTL_PATH}${COL_NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
check_for_lua(){
|
||||||
|
echo_current_diagnostic "Checking for lua capabilities"
|
||||||
|
|
||||||
|
if ! (${FTL_PATH} lua -v &>/dev/null); then
|
||||||
|
log_write "${CROSS} ${COL_RED} pihole-FTL binary does not have lua capabilites.${COL_NC}"
|
||||||
|
# Non-zero return value
|
||||||
|
return
|
||||||
|
else
|
||||||
|
log_write "${TICK} pihole-FTL: ${COL_GREEN}lua found!${COL_NC}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
source_setup_variables() {
|
source_setup_variables() {
|
||||||
# Display the current test that is running
|
# Display the current test that is running
|
||||||
log_write "\\n${COL_PURPLE}*** [ INITIALIZING ]${COL_NC} Sourcing setup variables"
|
log_write "\\n${COL_PURPLE}*** [ INITIALIZING ]${COL_NC} Sourcing setup variables"
|
||||||
@@ -1421,28 +1448,40 @@ make_temporary_log
|
|||||||
initialize_debug
|
initialize_debug
|
||||||
# setupVars.conf needs to be sourced before the networking so the values are
|
# setupVars.conf needs to be sourced before the networking so the values are
|
||||||
# available to the other functions
|
# available to the other functions
|
||||||
source_setup_variables
|
if ! check_for_ftl; then
|
||||||
check_component_versions
|
log_write "${COL_RED}Unable to complete debug run. Please contact support for assistance."
|
||||||
check_critical_program_versions
|
log_write "Please note the error that is displayed above.${COL_NC}"
|
||||||
diagnose_operating_system
|
#Non-zero return value
|
||||||
check_selinux
|
exit 2
|
||||||
check_firewalld
|
fi
|
||||||
processor_check
|
if ! check_for_lua; then
|
||||||
check_networking
|
log_write "${COL_RED}Unable to complete debug run. Please contact support for assistance."
|
||||||
check_name_resolution
|
log_write "Please note the error that is displayed above.${COL_NC}"
|
||||||
check_dhcp_servers
|
#Non-zero return value
|
||||||
process_status
|
exit 2
|
||||||
ftl_full_status
|
fi
|
||||||
parse_setup_vars
|
# source_setup_variables
|
||||||
check_x_headers
|
# check_component_versions
|
||||||
analyze_gravity_list
|
# check_critical_program_versions
|
||||||
show_groups
|
# diagnose_operating_system
|
||||||
show_domainlist
|
# check_selinux
|
||||||
show_clients
|
# check_firewalld
|
||||||
show_adlists
|
# processor_check
|
||||||
show_content_of_pihole_files
|
# check_networking
|
||||||
show_messages
|
# check_name_resolution
|
||||||
parse_locale
|
# check_dhcp_servers
|
||||||
analyze_pihole_log
|
# process_status
|
||||||
copy_to_debug_log
|
# ftl_full_status
|
||||||
upload_to_tricorder
|
# parse_setup_vars
|
||||||
|
# check_x_headers
|
||||||
|
# analyze_gravity_list
|
||||||
|
# show_groups
|
||||||
|
# show_domainlist
|
||||||
|
# show_clients
|
||||||
|
# show_adlists
|
||||||
|
# show_content_of_pihole_files
|
||||||
|
# show_messages
|
||||||
|
# parse_locale
|
||||||
|
# analyze_pihole_log
|
||||||
|
# copy_to_debug_log
|
||||||
|
# upload_to_tricorder
|
||||||
|
@@ -153,7 +153,7 @@ versionOutput() {
|
|||||||
if [[ -n "$current" ]] && [[ -n "$latest" ]]; then
|
if [[ -n "$current" ]] && [[ -n "$latest" ]]; then
|
||||||
output="${1^} version is $branch$current (Latest: $latest)"
|
output="${1^} version is $branch$current (Latest: $latest)"
|
||||||
elif [[ -n "$current" ]] && [[ -z "$latest" ]]; then
|
elif [[ -n "$current" ]] && [[ -z "$latest" ]]; then
|
||||||
output="Current ${1^} version is $branch$current."
|
output="Current ${1^} version is $branch$current"
|
||||||
elif [[ -z "$current" ]] && [[ -n "$latest" ]]; then
|
elif [[ -z "$current" ]] && [[ -n "$latest" ]]; then
|
||||||
output="Latest ${1^} version is $latest"
|
output="Latest ${1^} version is $latest"
|
||||||
elif [[ "$curHash" == "N/A" ]] || [[ "$latHash" == "N/A" ]]; then
|
elif [[ "$curHash" == "N/A" ]] || [[ "$latHash" == "N/A" ]]; then
|
||||||
|
@@ -78,7 +78,7 @@ if ($serverName === "pi.hole"
|
|||||||
</head>
|
</head>
|
||||||
<body id='splashpage'>
|
<body id='splashpage'>
|
||||||
<div id="pihole_card">
|
<div id="pihole_card">
|
||||||
<img src='admin/img/logo.svg' alt='Pi-hole logo id="pihole_logo_splash" />
|
<img src='admin/img/logo.svg' alt='Pi-hole logo' id="pihole_logo_splash" />
|
||||||
<p>Pi-<strong>hole</strong>: Your black hole for Internet advertisements</p>
|
<p>Pi-<strong>hole</strong>: Your black hole for Internet advertisements</p>
|
||||||
<a href='/admin'>Did you mean to go to the admin panel?</a>
|
<a href='/admin'>Did you mean to go to the admin panel?</a>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -357,10 +357,14 @@ if is_command apt-get ; then
|
|||||||
# Packages required to run this install script (stored as an array)
|
# Packages required to run this install script (stored as an array)
|
||||||
INSTALLER_DEPS=(dhcpcd5 git "${iproute_pkg}" whiptail dnsutils)
|
INSTALLER_DEPS=(dhcpcd5 git "${iproute_pkg}" whiptail dnsutils)
|
||||||
# Packages required to run Pi-hole (stored as an array)
|
# Packages required to run Pi-hole (stored as an array)
|
||||||
PIHOLE_DEPS=(cron curl iputils-ping lsof netcat psmisc sudo unzip wget idn2 sqlite3 libcap2-bin dns-root-data libcap2)
|
PIHOLE_DEPS=(cron curl iputils-ping lsof netcat psmisc sudo unzip idn2 sqlite3 libcap2-bin dns-root-data libcap2)
|
||||||
# Packages required for the Web admin interface (stored as an array)
|
# Packages required for the Web admin interface (stored as an array)
|
||||||
# It's useful to separate this from Pi-hole, since the two repos are also setup separately
|
# It's useful to separate this from Pi-hole, since the two repos are also setup separately
|
||||||
PIHOLE_WEB_DEPS=(lighttpd "${phpVer}-common" "${phpVer}-cgi" "${phpVer}-${phpSqlite}" "${phpVer}-xml" "${phpVer}-json" "${phpVer}-intl")
|
PIHOLE_WEB_DEPS=(lighttpd "${phpVer}-common" "${phpVer}-cgi" "${phpVer}-${phpSqlite}" "${phpVer}-xml" "${phpVer}-intl")
|
||||||
|
# Prior to PHP8.0, JSON functionality is provided as dedicated module, required by Pi-hole AdminLTE: https://www.php.net/manual/json.installation.php
|
||||||
|
if [[ "${phpInsNewer}" != true || "${phpInsMajor}" -lt 8 ]]; then
|
||||||
|
PIHOLE_WEB_DEPS+=("${phpVer}-json")
|
||||||
|
fi
|
||||||
# The Web server user,
|
# The Web server user,
|
||||||
LIGHTTPD_USER="www-data"
|
LIGHTTPD_USER="www-data"
|
||||||
# group,
|
# group,
|
||||||
@@ -1025,9 +1029,8 @@ valid_ip() {
|
|||||||
# Regex matching one IPv4 component, i.e. an integer from 0 to 255.
|
# Regex matching one IPv4 component, i.e. an integer from 0 to 255.
|
||||||
# See https://tools.ietf.org/html/rfc1340
|
# See https://tools.ietf.org/html/rfc1340
|
||||||
local ipv4elem="(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]?|0)";
|
local ipv4elem="(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]?|0)";
|
||||||
# Regex matching an optional port beginning with : from 0 to 65535
|
# Regex matching an optional port (starting with '#') range of 1-65536
|
||||||
# See https://tools.ietf.org/html/rfc1340#page-33
|
local portelem="(#(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))?";
|
||||||
local portelem="(:(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))?";
|
|
||||||
# Build a full IPv4 regex from the above subexpressions
|
# Build a full IPv4 regex from the above subexpressions
|
||||||
local regex="^${ipv4elem}\.${ipv4elem}\.${ipv4elem}\.${ipv4elem}${portelem}$"
|
local regex="^${ipv4elem}\.${ipv4elem}\.${ipv4elem}\.${ipv4elem}${portelem}$"
|
||||||
|
|
||||||
@@ -1046,8 +1049,8 @@ valid_ip6() {
|
|||||||
local ipv6elem="[0-9a-fA-F]{1,4}"
|
local ipv6elem="[0-9a-fA-F]{1,4}"
|
||||||
# Regex matching an IPv6 CIDR, i.e. 1 to 128
|
# Regex matching an IPv6 CIDR, i.e. 1 to 128
|
||||||
local v6cidr="(\\/([1-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8])){0,1}"
|
local v6cidr="(\\/([1-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8])){0,1}"
|
||||||
# Regex matching an optional port beginning with # matching optional port number starting '#' with range of 1-65536
|
# Regex matching an optional port (starting with '#') range of 1-65536
|
||||||
local portelem="(#([1-9]|[1-8][0-9]|9[0-9]|[1-8][0-9]{2}|9[0-8][0-9]|99[0-9]|[1-8][0-9]{3}|9[0-8][0-9]{2}|99[0-8][0-9]|999[0-9]|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-6]))?"
|
local portelem="(#(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))?";
|
||||||
# Build a full IPv6 regex from the above subexpressions
|
# Build a full IPv6 regex from the above subexpressions
|
||||||
local regex="^(((${ipv6elem}))*((:${ipv6elem}))*::((${ipv6elem}))*((:${ipv6elem}))*|((${ipv6elem}))((:${ipv6elem})){7})${v6cidr}${portelem}$"
|
local regex="^(((${ipv6elem}))*((:${ipv6elem}))*::((${ipv6elem}))*((:${ipv6elem}))*|((${ipv6elem}))((:${ipv6elem})){7})${v6cidr}${portelem}$"
|
||||||
|
|
||||||
|
@@ -546,23 +546,23 @@ def test_validate_ip(Pihole):
|
|||||||
test_address('256.255.255.255', False)
|
test_address('256.255.255.255', False)
|
||||||
test_address('1092.168.1.1', False)
|
test_address('1092.168.1.1', False)
|
||||||
test_address('not an IP', False)
|
test_address('not an IP', False)
|
||||||
test_address('8.8.8.8:', False)
|
test_address('8.8.8.8#', False)
|
||||||
test_address('8.8.8.8:0')
|
test_address('8.8.8.8#0')
|
||||||
test_address('8.8.8.8:1')
|
test_address('8.8.8.8#1')
|
||||||
test_address('8.8.8.8:42')
|
test_address('8.8.8.8#42')
|
||||||
test_address('8.8.8.8:888')
|
test_address('8.8.8.8#888')
|
||||||
test_address('8.8.8.8:1337')
|
test_address('8.8.8.8#1337')
|
||||||
test_address('8.8.8.8:65535')
|
test_address('8.8.8.8#65535')
|
||||||
test_address('8.8.8.8:65536', False)
|
test_address('8.8.8.8#65536', False)
|
||||||
test_address('8.8.8.8:-1', False)
|
test_address('8.8.8.8#-1', False)
|
||||||
test_address('00.0.0.0', False)
|
test_address('00.0.0.0', False)
|
||||||
test_address('010.0.0.0', False)
|
test_address('010.0.0.0', False)
|
||||||
test_address('001.0.0.0', False)
|
test_address('001.0.0.0', False)
|
||||||
test_address('0.0.0.0:00', False)
|
test_address('0.0.0.0#00', False)
|
||||||
test_address('0.0.0.0:01', False)
|
test_address('0.0.0.0#01', False)
|
||||||
test_address('0.0.0.0:001', False)
|
test_address('0.0.0.0#001', False)
|
||||||
test_address('0.0.0.0:0001', False)
|
test_address('0.0.0.0#0001', False)
|
||||||
test_address('0.0.0.0:00001', False)
|
test_address('0.0.0.0#00001', False)
|
||||||
|
|
||||||
|
|
||||||
def test_os_check_fails(Pihole):
|
def test_os_check_fails(Pihole):
|
||||||
|
Reference in New Issue
Block a user