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 -hStav disku
sudo /usr/local/bin/disk_monitor.shRučné spustenie skriptu
sudo crontab -lZobrazenie cron úloh
tail /tmp/check_disk_test.logZáznamy skriptu
sudo tail -n 30 /var/log/mail.logKontrola e-mailov
nslookup mail.ibasterisk.euTest DNS

Troubleshooting, keď sa nám neaktualizuje pihole

curl -sSL https://install.pi-hole.net | bash
sudo pihole -up