作为我的外围设备运行OpenBSD 6.7
,安装了许多服务来监视网络。
问题是netstart
在启动过程的早期运行,导致接口在一段时间内不受保护和监控。
理想情况下,我希望接口最后出现。至少在其他基于网络的服务已经启动之后。
实现这一目标的最佳方法是什么?
答案1
@zé-loff,感谢您的反馈!以下是我所做的并且测试证明是成功的。虽然此技术成功阻止流量直到所有服务启动,但所有内容netstart
仍将正常运行。这意味着 ARP 和 DHCP 等请求将在加载 pf 规则集之前进行交换。
/etc/pf.active.conf
将当前 pf 规则集复制到此文件。它应该包含系统运行所需的每条允许/阻止规则。以下是默认规则集的示例。
# $OpenBSD: pf.conf,v 1.55 2017/12/03 20:40:04 sthen Exp $
#
# See pf.conf(5) and /etc/examples/pf.conf
set skip on lo
block return # block stateless traffic
pass # establish keep-state
# By default, do not permit remote connections to X11
block return in on ! lo0 proto tcp to port 6000:6010
# Port build user does not need network
block return out log proto {tcp udp} user _pbuild
/etc/pf.conf
只需一行更新即可阻止所有流量。可以根据您的环境自定义此规则集。例如,阻止除 pfsync 之外的所有流量,或者仍然允许内部接口上的流量。
block drop quick
/etc/rc.local
使用以下内容创建或更新,/etc/rc.local
因为它在启动过程中最后启动。
# Load actual pf rules.
if [[ $pf != NO ]]; then
if [[ -f /etc/pf.active.conf ]]; then
pfctl -f /etc/pf.active.conf
fi
fi