現在、OpenBSDファイアウォール、ルーター、およびDNSサーバーを設定しています。私はほとんどの設定がOpenBSDサイトで提供され、pf設定は他のガイドで採用されているなど、さまざまなオンラインガイドに従いました。
主なリンクは次のとおりです。
ブリッジ設定 -https://www.openbsd.org/faq/faq6.html
PF設定 —https://www.openbsd.org/faq/pf/example1.html、https://openbsdrouterguide.net
これを試すときに解決策がわからない2つの主な問題があります。最初の問題は、OpenBSDガイドに記載されているブリッジが正しく機能しないことです(インターフェースにIPがない)。 WAN ポートは ISP から正常に IP を取得し、1.1.1.1 と openbsd.org や google.com などのサイトに ping を送信できます。ただし、システム保守のためにfw_updateまたはpkg_addを実行しようとすると、ホストへのパスがないというエラーメッセージが表示されます。
構文エラーがあり、ブリッジにIPを割り当てることができないため、私のpf.confは正しくロードされません。 pf.confを確認しましたが、構文エラーのある場所が見つかりませんでした。
これは私のpf.confです。
# MACROS
pubif = "em0"
bridge = "bridge0"
wifi = "em5"
# TABLES
table <martians> {0.0.0.0/8 10.0.0.0/8 100.64.0.0/10 127.0.0.0/8 169.254.0.0/16 172.16.0.0/12 192.0.0.0/24 192.0.0.0/29 192.0.2.0/24 192.88.99.0/24 192.168.0.0/16 198.18.0.0/15 198.51.100.0/24 203.0.113.0/24 240.0.0.0/4 255.255.255.255/32}
# RULES
set skip on lo0
# Spoofs
block in from no-route
block in quick from urpf-failed
# Block Non-routes
block in quick on $pubif from <martians> to any
block return out quick on $pubif from any to <martians>
# Default Block
block return in on {$bridge $wifi}
block return in on ! lo0 proto tcp to port 6000:6010
block return out log proto {tcp udp} user _pbuild
block drop in log on $pubif
# Allow ICMP
match in on $pubif inet proto icmp icmp-type {echoreq} tag ICMP_IN
block drop in on $pubif proto icmp
pass in proto icmp tagged ICMP_IN max-pkt-rate 100/10
# Router to Internet
pass out inet from $pubif
# Interfaces to Internet
pass in on {$bridge $wifi}
# Block DNS not originating from server
block return in quick on $bridge proto {udp tcp} to ! $bridge port {53 853}
block return in quick on $wifi proto {udp tcp} to ! $wifi port {53 853}
# Allow LAN
pass out on {$bridge $wifi} inet keep state
# NAT Rules
pass out on $pubif inet from $bridge:network to any nat-to ($pubif)
pass out on $pubif inet from $wifi:network to any nat-to ($pubif)
これは私のunbound.confです。
server:
interface: 127.0.0.1
interface: 10.0.0.1
interface: 10.0.1.1
access-control: 0.0.0.0/0 refuse
access-control: ::0/0 refuse
access-control: 127.0.0.0/8 allow
access-control: ::1 allow
access-control: 10.0.0.0/24 allow
access-control: 10.0.1.0/24 allow
hide-identity: yes
hide-version: yes
prefetch: yes
private-address: 10.0.0.0/16
auto-trust-anchor-file: "/var/unbound/db/root.key"
root-hints: "/var/unbound/db/root.hints"
cache-min-ttl: 3600
serve-expired: yes
remote-control:
control-enable: yes
control-interface: /var/run/unbound.sock
これは私のdhcpdです。
subnet 10.0.0.0 netmask 255.255.255.0 {
option domain-name-servers 10.0.0.1;
option routers 10.0.0.1;
range 10.0.0.32 10.0.0.254;
}
subnet 10.0.1.0 netmask 255.255.255.0 {
option domain-name-servers 10.0.1.1;
option routers 10.0.1.1;
range 10.0.1.32 10.0.1.254;
}
マイベザー0inet 10.0.0.1 255.255.255.0 10.0.0.255
私の足0
add vether0
add em1
add em2
add em3
add em4
up
ブリッジインターフェイスはホスト名に簡単に表示されます。 ifとem5はアクセスポイントに接続し、独自のIPでタグを付けて残りのネットワーク(10.0.1.1)から切り離します。
rc.conf.local には次の行があります。
dhcpd_flags=vether0
unbound_flags=
unbound_timeout=240
この時点では、私が何を間違っているのかわかりません。私はすべての指示に従ったような気がします。私が最も確信していない部分はvether0とbridge0です。たぶん私が正しくしていないのではないでしょうか?誰かが私のエラーを見ている場合は、エラーを修正できるように案内していただきありがとうございます。
ありがとう
編集する:
ifconfig -a:
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768
index 8 priority 0 llprio 3
groups: lo
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8
inet 127.0.0.1 netmask 0xff000000
em0: flags=808843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF4> mtu 1500
lladdr 00:e0:67:2b:a9:ec
index 1 priority 0 llprio 3
media: Ethernet autoselect (none)
status: no carrier
em1: flags=8b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:e0:67:2b:a9:ed
index 2 priority 0 llprio 3
media: Ethernet autoselect (none)
status: no carrier
em2: flags=8b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:e0:67:2b:a9:ee
index 3 priority 0 llprio 3
media: Ethernet autoselect (none)
status: no carrier
em3: flags=8b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:e0:67:2b:a9:ef
index 4 priority 0 llprio 3
media: Ethernet autoselect (none)
status: no carrier
em4: flags=8b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:e0:67:2b:a9:f0
index 5 priority 0 llprio 3
media: Ethernet autoselect (none)
status: no carrier
em5: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:e0:67:2b:a9:f1
index 6 priority 0 llprio 3
media: Ethernet autoselect (none)
status: no carrier
inet 10.0.1.1 netmask 0xffffff00 broadcast 10.0.1.255
enc0: flags=0<>
index 7 priority 0 llprio 3
groups: enc
status: active
bridge0: flags=41<UP,RUNNING> mtu 1500
index 9 llprio 3
groups: bridge
priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp
em4 flags=3<LEARNING,DISCOVER>
port 5 ifpriority 0 ifcost 0
em3 flags=3<LEARNING,DISCOVER>
port 4 ifpriority 0 ifcost 0
em2 flags=3<LEARNING,DISCOVER>
port 3 ifpriority 0 ifcost 0
em1 flags=3<LEARNING,DISCOVER>
port 2 ifpriority 0 ifcost 0
vether0 flags=3<LEARNING,DISCOVER>
port 10 ifpriority 0 ifcost 0
vether0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
lladdr fe:e1:ba:d0:86:5a
index 10 priority 0 llprio 3
groups: vether
media: Ethernet autoselect
status: active
inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33136
index 11 priority 0 llprio 3
groups: pflog
pfctl -nf /etc/pf.conf:
no IP address found for em0
/etc/pf.conf:33: could not parse host specification
no IP address found for bridge0
/etc/pf.conf:39: could not parse host specification
no IP address found for bridge0:network
/etc/pf.conf:49: could not parse host specification
ベストアンサー1
いくつかの考え/質問:
- ブリッジにIPを割り当てることはできず、ブリッジ内の1つ以上のインターフェイスに割り当てます。
- 同じ理由で
bridge
インターフェイスをフィルタリングできません。 - 4つのインターフェイスをブリッジするのはなぜですか?
trunk
ブリッジモードの代わりにブロードキャストモードを本当にしたいですか? $wifi
インターフェイスをブリッジし、単一のIPアドレスを持っている場合()にem5
別々のルールを作成する必要はありません。実際に割り当てられたIPがないため、これらのem5
ルールを評価することはできません。
努力する
- 削除
vether
とbridge
- リレー
em1
-em5
ブロードキャストモード(参照man trunk
)そしてIPを割り当てます。 (あなたが持っているのと同じvether
) - 適応
pf.conf
し、 - 聞いてください
dhcpd
。
Wi-Fiクライアント(およびAP)を分離するには、トランキングせずにem5
他のサブネットのIPアドレスを提供し、このサブネットの設定をに追加、dhcpd.conf
リスニングunbound.conf
、dhcpd
調整trunk0
しem5
ますpf.conf
。この場合、LAN(trunk0
)とWLAN()em5
間のトラフィックを許可するルールを追加する必要があります。
修正する:
インターフェイスをトランキングする代わりに切り替えて作成してみてくださいvether
。vport
次にフィルタリングに変更し(代わりに!)、ルールを削除します。それでは聞き続けてください。veb
bridge
pf.conf
vport
veb
$wifi
dhcpd
unbound
vport