Pi-hole - set up and packaging

This commit is contained in:
unman 2022-08-05 15:07:59 +00:00
parent dec10e8881
commit a8687db2f1
No known key found for this signature in database
GPG Key ID: FDD1B8244731B36C
3 changed files with 102 additions and 0 deletions

60
pihole.spec Normal file
View File

@ -0,0 +1,60 @@
Name: 3isec-qubes-pihole
Version: 1.0
Release: 1%{?dist}
Summary: Creates Pi-hole server for Qubes
License: GPLv3+
SOURCE0: pihole
%description
This is Pi-hole.
It blocks advertisements and internet trackers by providing a DNS sinkhole.
The package will create a new standalone qube, sys-pihole.
It is a drop in replacement for sys-firewall.
Sys-pihole is attached to sys-net.
If you have sys-firewall as the default netvm, this will be changed to sys-pihole.
sys-firewall will *not* be removed, so you can still use it for some qubes if you want.
To use sys-pihole simply change the netvm.
If you want to change all your qubes from sys-firewall to sys-pihole, a script is provided:
Run `sudo /srv/salt/pihole/change_netvm.sh` .
If you want to use Tor, then you should reconfigure your system like this:
qubes -> sys-pihole ->Tor-gateway -> sys-firewall -> sys-net
You can clone sys-pihole.
If you do you must manually change the IP address of the clone.
Pi-hole will be installed with these default settings:
The DNS provider is Quad9 (filtered, DNSSEC)
StevenBlack's Unified Hosts List is included
The web interface is availble at http://localhost
Query logging is enabled to show everything.
You can change these settings by logging in to the admin interface at http://localhost.
The default Admin Webpage login password is UpSNQsy4
You should change this on first use, by running:
`pihole -a -p`
%install
rm -rf %{buildroot}
mkdir -p %{buildroot}/srv/salt
cp -rv %{SOURCE0}/ %{buildroot}/srv/salt
%files
%defattr(-,root,root,-)
/srv/salt/pihole/*
%post
if [ $1 -eq 1 ]; then
qubesctl state.apply pihole.create
qubesctl --skip-dom0 --targets=sys-pihole state.apply pihole.install
if [[ $(qubes-prefs default_netvm sys-firewall |grep sys-firewall ) ]]; then qubes-prefs default_netvm sys-pihole; fi
fi
%preun
%changelog
* Fri Aug 5 2022 unman <unman@thirdeyesecurity.org>
- First Build

35
pihole/README Normal file
View File

@ -0,0 +1,35 @@
This is Pi-hole.
It blocks advertisements and internet trackers by providing a DNS sinkhole.
The package will create a new standalone qube, sys-pihole.
It is a drop in replacement for sys-firewall.
Sys-pihole is attached to sys-net.
If you have sys-firewall as the default netvm, this will be changed to sys-pihole.
sys-firewall will *not* be removed, so you can still use it for some qubes if you want.
To use sys-pihole simply change the netvm.
If you want to change all your qubes from sys-firewall to sys-pihole, a script is provided:
Run `sudo /srv/salt/pihole/change_netvm.sh` .
If you want to use Tor, then you should reconfigure your system like this:
qubes -> sys-pihole -> Tor-gateway -> sys-firewall -> sys-net
You can clone sys-pihole, and use each in different places:
qubes -> sys-pihole -> sys-net
qubes -> sys-pihole -> Tor-gateway -> sys-firewall -> sys-net
You will have to adjust the network settings for eth0 in the clone.
Pi-hole will be installed with these default settings:
The DNS provider is Quad9 (filtered, DNSSEC)
StevenBlack's Unified Hosts List is included
The web interface is availble at http://localhost
Query logging is enabled to show everything.
You can change these settings by logging in to the admin interface at http://localhost.
The default Admin Webpage login password is UpSNQsy4
You should change this on first use, by running:
`pihole -a -p`
for i in `qvm-ls -O NAME,NETVM | awk '/ sys-firewall/{ print $1 }'`; do qvm-prefs $i netvm sys-pihole; done
if [[ $(qubes-prefs default_netvm sys-firewall |grep sys-firewall ) ]]; then qubes-prefs default_netvm sys-pihole; fi

7
pihole/change_netvm.sh Normal file
View File

@ -0,0 +1,7 @@
#!/usr/bin/bash
qvm-start sys-pihole
if [ $(qubes-prefs default_netvm sys-firewall |grep sys-firewall ) ]; then qubes-prefs default_netvm sys-pihole; fi
sleep 3
for i in `qvm-ls -O NAME,NETVM | awk '/ sys-firewall/{ print $1 }'`; do qvm-prefs $i netvm sys-pihole; done