SDB:Howto-pihole
Pihole 是一个网络范围的广告和跟踪拦截器。pihole-projects 提供了安装脚本,但不幸的是没有为 openSUSE 提供。系统d 服务也缺失。
我们的社区成员 Herbster0815 为 openSUSE 打包 pihole 做了非常好的工作。本教程描述了如何运行它。
前言
Pihole 为本地网络提供 DNS 服务器,它使用阻止和过滤列表来阻止对已知广告服务器的调用。设置 pihole 后,需要指示 DHCP 服务器使用 pihole 作为 DNS 服务器。这通常设置在您的路由器中。pi-hole 服务器应该接收到一个固定的 IP 地址(也可以在路由器中设置)。
Pihole 不需要太多资源,可以在 NAS、虚拟机或旧的树莓派上运行。以下安装运行在 Raspi 3 上,具有 1GB RAM 和 MicroOS 用于 pihole - 请参阅注释)
Pihole 带有各种软件包
- pi-hole- 用于管理设置的命令行程序
- pi-hole-ftl- 比光速快 (FTL) pihole-DNS 服务器。
- pi-hole-admin-lte-config-lighttpd- Pi-hole AdminLTE 配置 lighttpd 的文件
如果您想管理设置并查看统计信息,则至少需要前两个软件包,还需要安装第三个软件包。
安装
安装 pihole 最简单的方法是 openSUSE 包安装程序 opi
选择pi-hole-admin-lte-config-lighttpd进行安装 - 将自动安装所需的软件包。
选择home:Herbster0815:pihole仓库(并在安装后保留它)
配置
软件包安装提供了一些基本配置文件的设置,但是需要进行一些小的手动操作
- 编辑/etc/pihole/setupVars.conf
添加您喜欢的 DNS 服务器或使用预设的服务器。无论如何,您都需要编辑您的本地 IP 地址!请注意,您的 pihole 应该从您的路由器接收到一个固定的 IP 地址,这需要在 DHCP 服务器中配置。有关详细信息,请参阅 pihole 文档
- 编辑/etc/dnsmasq.d/01-pihole.conf
同样更改 DNS 服务器
- 启动服务
systemctl enable --now pi-hole-lighttpd
systemctl enable --now pi-hole-ftl现在是时候更新阻止列表了
并为 pihole webfrontend 设置密码
现在可以通过 htp://<您的 IP 地址> 访问 pihole 控制面板
MicroOS 上的安装 - RPM
作为一种自我维护、事务性和基本上不可变的系统,MicroOS 是像 pihole 这样的“设置后忘记”解决方案的首选。以下是在其上设置它的步骤(在 Raspi3 上,具有 1GB RAM)。
MicroOS 的安装
我使用带有最新 MicroOS 副本的 USB 驱动器,从它启动 Raspi,并将系统安装在 32GB SD 卡上。在安装过程中,将监视器、键盘和鼠标连接到 Raspi,并在安装完成后将其移除。此外,安装了 systemd-status-mail 以监控 MicroOS 的运行状况。
由于 pihole 安装到 /var,我们需要确保在安装过程中此文件夹可用。
打开事务性 shell
手动挂载 /var
mount /var
并在同一个事务性 shell 中直接继续安装(如下所示)。
安装
要安装 opi 和 pihole,请打开事务性 shell
从这里您可以使用 zypper 安装 opi,并使用 opi 安装后,按照上述说明进行操作。使用以下命令退出 shell:exit重新启动系统以使更改生效。重新启动后,继续按照上述说明进行配置。
更新的电子邮件通知
如果您想在 (通常无人值守的) MicroOS 系统更新失败时收到通知,请考虑 systemd-status-mail。
SELinux
Pihole 目前与 SELinux 配合不佳,因此在为 SELinux 准备了 pihole 模块之前,应将其关闭(请参阅 Bugzilla)
在/etc/default/grub中,将以下行添加到GRUB_CMDLINE_LINUX_DEFAULT=行
GRUB_CMDLINE_LINUX_DEFAULT="security=selinux selinux=0 enforcing=0"
然后运行
并重新启动。
树莓派
Raspi 没有实时时钟 (RTC)。虽然默认情况下会启动 NTP 守护程序,但需要几秒钟才能获得正确的时间。这会混淆 pihole 的日志记录,并导致控制面板损坏。
如果您使用 chronyd 同步时间(MicroOS 上的默认设置),则可以使用以下方法轻松克服这种情况:
systemctl enable chrony-wait
另一种选择是安装fake-hwclock使用opi。然后,使用以下命令启用该服务:
systemctl enable --now fake-hwclock
MicroOS 上的安装 - 容器
在 MicroOS 上运行软件的首选方法是容器化。为此,请在安装期间选择带有 podman 的 MicroOS 版本,或稍后安装 podman(transactional-update pkg install podman)
以 root 用户身份登录 (su -) 并创建目录/root/etc-pihole和/root/etc-dnsmasq。它们需要用于映射/etc/pihole和/etc/dnsmasq.d.
现在运行容器安装
podman run -d --name pihole --label "io.containers.autoupdate=registry" -e TZ=Europe/Berlin -e VIRTUAL_HOST=pi.hole -e PROXY_LOCATION=pi_hole -e ServerIP=127.0.0.1 -e WEBPASSWORD=test --cap-add=NET_ADMIN -p 8080:80 -p 53:53/udp -p 53:53/tcp -p 443:443 -v /root/etc-pihole:/etc/pihole:z -v /root/etc-dnsmasq:/etc/dnsmasq.d:z docker.io/pihole/pihole:latest
(在提示安装 pihole 容器时选择 docker.io)
请注意,autoupdate-name 必须与容器名称匹配!
ServerIP 应该包含分配给主机的固定 IP 地址(例如 192.168.1.254)
WEBPASSWORD 应该更合理
可以像上面一样编辑配置文件。
现在生成一个 systemd 服务以自动启动容器,将其复制到相应的文件夹并重新启动 systemd 守护程序
cp container-pihole.service /etc/systemd/system/。
systemctl daemon-reload && systemctl enable --now container-pihole.service由于 pihole 现已运行,因此可以通过端口 8080 访问控制面板(-p 8080:80 - 随意选择端口)
要设置密码(pihole -a -p),打开 podman shell
现在 pihole 准备就绪,也将自动更新
可以通过 http://<ServerIP>:8080 访问 webfrontend
通讯
欢迎提供反馈。您可以发送电子邮件至 support 邮件列表 提供反馈,或访问 openSUSE Bar,可能会有人与您讨论它。
