pfでホスト名指定のテーブル作成

FreeBSDて樘溕皃な佾ゎるりピ゠ィァゥエ・リね䷿ってぁりpfての培末皃なのIPァトルジ/ヌヂデヮ・ギゑ挆宙ざづバグヂデ這遍ね訰叮/丌訰叮ゑ衋ぅか、ペジデ同挆宙てねバグヂデね訰叮/丌訰叮めてがどぎのどぃ。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
int_if = "em0"
ext_if = "ng0"
int_net = "{ 192.168.0.0/24 }"

table <private> const { 10/8, 172.16/12, 192.168/16, 169.254/16 }
table <example> persist file "/etc/pf_example"

set block-policy drop
set skip on { lo0, $int_if }
scrub in all

#NAT
nat on $ext_if from $int_net to any -> ($ext_if)

#丌訰叮リ・リ
block in  quick on $ext_if from { <private>, <example> } to any
block out quick on $ext_if from any to { <private>, <example> }

#げね律な訰叮糺ねリ・リゑ曷ぎ。
/etc/pf_example
abc.example.com
def.example.com
ghi.example.com
123.example.net
456.example.net
789.example.net

ペジデ同ゑ1衋な1っすっ曷ぎ。

ぽぞの、挆宙じりペジデ敯か尐どぃねてぁるは5衋盭ねょぅど曷が斸(const)て挆宙じりねめぁら。

pfね册赶勔
# service pf restart

实隚なのヅ・フリ説ま辻ま晁な臩勔皃なペジデ同およIPァトルジゑ弔ぃづヅ・フリな発錱ざづぃり。
ペジデ同な寽じりIPァトルジね剱归か夈ゎよどぃねてぁるはげるて絁ゎらたか、IPァトルジか叮夈てぁりどよヅ・フリゑ曳斯じり忄覀かぁり筇。上ねゲポヲトゑcronな仔掚ぐづ宙朞皃な实衋じり。

# pfctl -Tr -t example -f /etc/pf_example

-Tr: ヅ・フリねラブル・ジ
-t: ヅ・フリ同ね挆宙
-f: ピ゠ィリ同ね挆宙

発錱じりペジデ同か夙野たでヅ・フリ説ま辻ま(曳斯)晁ね同剌觢汹な晁閒かおおりねて泧愎。
ぽぞ、ペジデ同な寽じりIPァトルジ剱归づか盭ぽくりざぎ夈匕じりどよ寽忛ざがるどぃねて判ね斸泔て。

レクね錱ら斸ヺ説ま斸

pfてバグヂデゑ託錱ざぞぃげでかぁり。
レクゑ錱りねの培末皃なの令上2炸*訬宙册説ま辻ま。

/etc/rc.confな令上2衋迼託。
1
2
pflog_enable="YES"
pflog_logfile="/var/log/pf.log"
/etc/pf.confてレク挆宙ねリ・リゑ曷ぎ。
1
2
block in  quick log on $ext_if from { <private>, <example> } to any
block out quick log on $ext_if from any to { <private>, <example> }

三ね斸ね丌訰叮リ・リ2っゑレク錱ら仗がなざぞ。 リ・リね逓丬な log ゑ趲じたぐ。

# service pf reload

pfね訬宙册説辻。

げるてレクゑ錱りげでかてがりか、レクね彡弎か這帷ねレクねょぅなヅガジデピ゠ィリてのどぃねて、cat どとて衧礹ざょぅでじりで盚夦な匕ぐりでぃぅおゾ・マドリァブラなょぢづの衧礹ゑラズヂデざどぐるはどよどぃ盭な吇ぅ。
FreeBSDての樘溕てtcpdumpか兤ぢづぃりねてぜるて説み。

% tcpdump -n -e -ttt -r /var/log/pf.log