SDB:Howto-pihole

跳转到:导航搜索


在 openSUSE 上测试

推荐文章

Icon-manual.png

相关文章


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

Pihole 安装

选择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 -g

并为 pihole webfrontend 设置密码

pihole -a -p

现在可以通过 htp://<您的 IP 地址> 访问 pihole 控制面板

MicroOS 上的安装 - RPM

作为一种自我维护、事务性和基本上不可变的系统,MicroOS 是像 pihole 这样的“设置后忘记”解决方案的首选。以下是在其上设置它的步骤(在 Raspi3 上,具有 1GB RAM)。

MicroOS 的安装

我使用带有最新 MicroOS 副本的 USB 驱动器,从它启动 Raspi,并将系统安装在 32GB SD 卡上。在安装过程中,将监视器、键盘和鼠标连接到 Raspi,并在安装完成后将其移除。此外,安装了 systemd-status-mail 以监控 MicroOS 的运行状况。

由于 pihole 安装到 /var,我们需要确保在安装过程中此文件夹可用。

打开事务性 shell

transactional-update shell

手动挂载 /var

mount /var

并在同一个事务性 shell 中直接继续安装(如下所示)。

安装

要安装 opi 和 pihole,请打开事务性 shell

transactional-update 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"

然后运行

grub2-mkconfig -o /boot/grub2/grub.cfg

并重新启动。

树莓派

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 守护程序

podman generate systemd --new --name --files pihole

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

podman exec -it pihole sh

现在 pihole 准备就绪,也将自动更新

可以通过 http://<ServerIP>:8080 访问 webfrontend

通讯

欢迎提供反馈。您可以发送电子邮件至 support 邮件列表 提供反馈,或访问 openSUSE Bar,可能会有人与您讨论它。

参见

外部链接