
Pihole je DNS server. DNS server slúži, aby sme si nemuseli pamätať IP adresy na servery
Inštalácia
Urobte update a ugrade
sudo apt update
sudo apt upgrade -y
Potom spustite skript na inštaláciu pihole
curl -sSL https://install.pi-hole.net | bash

Kliknite na ok

Kliknite na ok
Môžete urobiť IP rezerváciu na routri, alebo staticky na danom servery
Zvoľte Continue

Zvoľte funkciu, ktorú chcete, ja som zvolil prvú, nakoľko statiku saom nastavil na routri

Zvoľte si DNS providera

Zvoľte na Yes

Zvoľte na Yes

Zvoľte na Yes

Zvoľte na Yes

Zvoľte Show everything

Po dokončení budete mať prihlasovacie údaje na daný server s heslom

Web interface password. Toto heslo skopírujte prípadne uložte, budete ho potrebovať.

Prihlásenie
Teraz choďte, cez web prehliadač zadajte IP adresu daného xerrvera v tvare http:X.X.X.X/admin
- username: pi.hole
- heslo: to, čo Vám vygeneroval pihoe

Troubleshooting
Ubuntu má v sebe funkciu, že DNS na porte 53 má zapnuté. Túto službu je potrebné vypnúť a aj zakázať, aby sa spúšťala priamo so spúšťaním operačného systému

sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
sudo reboot

Vytvaranie A zaznamov
Zvolíme local DNS

Zvolíme DNS Records

Vytvoríme localny A zazam, kde píšeme názov domény a IP adresu daného servera, aby prekladal IP adresu na meno.

Kliknite na Add

Príklad DNS

Zaplnenie disku a následne čistenie
Ak ste šikovný, ako ja a neurobíte si zabezpečenie proti zahlteniu disku s kogmi, tak je potrebné pihole prečistiť:
sudo journalctl --vacuum-time=3d
sudo apt clean
Získanie prehľadu
df -h

du -sh /var/log/*

Troubleshooting s DNS serverom
Ak nejde napríklad nainštalovať nejaký balíček, tak sa nevie dostať na server. Bude potrebné pridať DNS záznamy do resolv.conf
sudo nano /etc/resolv.conf
Sem doplnte google DNS a následne uložte
nameserver 8.8.8.8
nameserver 1.1.1.1
Ja mám v sieti fortigate, tak potrebné pridať vo Virtual IPs otvoriť porty 53 TCP a UDP

Teraz môžeme zadať príkaz nslookup na nejaký server. Nakoľko budem písať skript, aby pihole, notifikáciu o tom, keď bude plný disk aby poslal mail, tak si zvolím svoj mailový server mail.ibasterisk.eu
nslookup mail.ibasterisk.eu

Nastavovanie mailových notifikácií z pihole na mailový server
Je dôležité zmeniť hostname, aby zodpovedal doméne servera:
napr.
sudo hostnamectl set-hostname pihole.ibasterisk.eu
Pre overenie môžeme zadať
hostname
hostname -f
Inštalácia Postfix
Aby sme mohli odosielať mailové notifikácie, tak je potrebné naištalovať postfix
sudo apt update
sudo apt install postfix -y
Vytvorenie A záznamov na strane providera
mail.ibasterisk.eu 1800 A Vaša verejná IP
pihole.ibasterisk.eu 1800 A Vaša verejná IP
Ideálne je počkať, cca 30 min, kým sa záznamy zosynchronizujú
Potom môžete odoslať testovací mail, či príde
echo -e "Subject: Test mail\n\nToto je test." | /usr/sbin/sendmail ivan.baronak@ibasterisk.eu
Teraz, aby nám prišlo upozornenie na mail napíšeme skript pomenujeme ho napríklad monitor_sh
nano /usr/local/bin/disk_monitor.sh
#!/bin/bash
echo "Skript bezi: $(date)" >> /tmp/check_disk_test.log
THRESHOLD=90
PARTITION="/"
EMAIL="ivan.baronak@ibasterisk.eu"
USAGE=$(df -h "$PARTITION" | awk 'NR==2 {gsub("%","",$5); print $5}')
echo "Disk usage: $USAGE%" >> /tmp/check_disk_test.log
if [ "$USAGE" -ge "$THRESHOLD" ]; then
echo -e "Subject: Upozornenie: Disk na PiHole je takmer plný\n\nDisk $PARTITION je využitý na $USAGE%. Prosím, zmažte staré logy alebo uvoľnite miesto." | /usr/sbin/sendmail "$EMAIL"
fi
Skript uložíme
Teraz mu pridáme práva
sudo chmod +x /usr/local/bin/disk_monitor.sh
Môžeme urobiť ručný test
Aby fungoval je potrebné upraviť v skripte hodnotu THRESHOLD=90 na 1
THRESHOLD=90
THRESHOLD=1
sudo /usr/local/bin/disk_monitor.sh

Po úspešnom teste, môžeme vrátiť hodnotu späť
nano /usr/local/bin/disk_monitor.sh
THRESHOLD=90
A uložíme
Teraz vytvoríme cron úlohu, ktorá bude každých 5 minút kontrolovať kapacitu disku.
crontab -e
*/5 * * * * /usr/local/bin/disk_monitor.sh
Uložíme to
Použité príkazy
df -h | Stav disku |
sudo /usr/local/bin/disk_monitor.sh | Ručné spustenie skriptu |
sudo crontab -l | Zobrazenie cron úloh |
tail /tmp/check_disk_test.log | Záznamy skriptu |
sudo tail -n 30 /var/log/mail.log | Kontrola e-mailov |
nslookup mail.ibasterisk.eu | Test DNS |
Troubleshooting, keď sa nám neaktualizuje pihole
curl -sSL https://install.pi-hole.net | bash
sudo pihole -up