我被分配了维护和配置组织的防火墙和网关路由器的任务,我正在寻求有关如何管理静态路由表的一些建议。
(作为上下文,请记住:A)我是一名程序员,而不是系统管理员;B)我对维护这一基础设施还很陌生;C)我对捍卫公司让我负责的决定不感兴趣;我不确定我是否同意,但这是我的工作)
据我所知,这是当前的设置:
- OpenBSD 防火墙使用 pf 作为防火墙规则,默认值为
block in log all
,pass out
并设置了一组允许 VLAN 之间流量的规则(我确信这里我过于简单化了,但这就是基础。另外,这不是我的问题的重点。 - 从外部 IP 到内部主机的重定向是使用
rdr pass
pf.conf 中的条目或静态路由完成的。我什么时候应该使用其中一个?? pf.conf
并rc.local
在 VCS 中进行管理,并通过执行(基本上)以下操作的远程脚本推送到防火墙:scp confs/pf.conf fw:/etc/pf.conf scp confs/rc.local fw:/etc/rc.local ssh fw "/sbin/pfctl -f /etc/pf.conf"
这对于防火墙规则更改很有效;这些更改会立即应用,但真正的技巧在于静态路由。它们在 rc.local 中设置为一系列route add
语句:
...
route add 192.0.32.136/32 192.0.32.11
route add 192.0.32.137/32 10.10.3.13
...
这里的问题是,当我在 VCS 中更改路由集时,我不能只重新运行 rc.local 来刷新路由表。我想创建一个可以存储在 VCS 中的脚本,该脚本既可以在启动时运行以设置静态路由,也可以在路由更改时运行,以便每次都以相同的方式设置它们。这可能吗?如果可以,怎么做?
答案1
我已经有一段时间没玩过 OpenBSD 了,但我认为 rdr 和静态路由之间的主要区别在于是否应用了 NATing。具有外部可路由 IP 的主机可以使用其中任何一种,但不可路由的 IP 只能与 rdr 配合使用。
至于路线,将命令切换为route change
而不是 是否route add
可行?这样,重新运行脚本将修改而不是添加新路线。