FreeBSD5.3設定メモ IP Filter

この記事は2005年頃に執筆した文書がもとになっている。

使用した OS は FreeBSD5.3-RELEASE。IP Filter のバージョンは 3.4.35。

有効化

カーネルを再構築しても良いが、最近のトレンドはモジュールをカーネルにロードする方法らしいので、手軽な方を選ぶ。kldstatipl.ko がなかったら、

起動時に組み込むには、

1ipfilter_enable="YES"
2ipfilter_rules="/etc/ipf.rules"
3ipfilter_flags=""
4ipmon_enable="YES"
5ipmon_flags="-D /var/log/ipf_log"

ipmon を指定する事でログを採取してもらえる。

設定

デフォルトの ipf.rules を作成。grep -v inet6 で IPv6 非使用。

# perl /usr/src/contrib/ipfilter/mkfilters | grep -v inet6 > /etc/ipf.rules

以下は ipf.rules の設定例。ローカルネットワークは 192.168.1.0/24、サーバのアドレスは、192.168.1.10/32、NIC は ed0、httpd・ftpd・sshd・ntpd・IRC 用の bot が走っていて、ルータから syslog を受け取っていると仮定する。

01#
02# The following routes should be configured, if not already:
03#
04#
05block in log quick from any to any with ipopts
06block in log quick proto tcp from any to any with short
07# loop back
08pass out quick on lo0 all
09pass in quick on lo0 all
10 
11 
12# out
13pass out on ed0 all head 150
14# IPspoofing
15block out log quick from any to 192.168.1.10/32 group 150
16block out log from 127.0.0.0/8 to any group 150
17block out log from any to 127.0.0.0/8 group 150
18 
19 
20# in
21block in log quick on ed0 all head 100
22# IPspoofing
23block in log quick from 10.0.0.0/8 to any group 100
24block in log quick from 172.16.0.0/12 to any group 100
25block in log quick from 0.0.0.0/8 to any group 100
26block in log quick from 169.254.0.0/16 to any group 100
27block in log quick from 224.0.0.0/4 to any group 100
28block in log quick from 240.0.0.0/4 to any group 100
29block in log quick from 192.168.1.10/32 to any group 100
30block in log quick from 127.0.0.0/8 to any group 100
31block in log quick from any to 127.0.0.0/8 group 100
32# www server
33pass in quick proto tcp from any to 192.168.1.10/32 port = 80 flags S keep state group 100
34# www client
35pass in quick proto tcp from any port = 80 to 192.168.1.10/32 flags A/A group 100
36pass in quick proto tcp from any port = 443 to 192.168.1.10/32 flags A/A group 100
37# NTP
38pass in quick proto udp from any to 192.168.1.10/32 port = 123 keep state group 100
39# syslog
40pass in quick proto udp from 192.168.0.1/32 to 192.168.1.10/32 port = 514 keep state group 100
41# DNS return
42pass in quick proto udp from 192.168.0.1/32 port = 53 to 192.168.1.10/32 group 100
43# FTP
44pass in quick proto tcp from 192.168.1.0/24 to 192.168.1.10/32 port = 20 flags A/A group 100
45pass in quick proto tcp from 192.168.1.0/24 to 192.168.1.10/32 port = 21 flags S keep state group 100
46pass in quick proto tcp from any port = 20 to 192.168.1.10/32 flags S group 100
47pass in quick proto tcp from any port = 21 to 192.168.1.10/32 flags S group 100
48# SSH
49pass in quick proto tcp from 192.168.1.0/24 to 192.168.1.10/32 port = 22 flags S/SA keep state group 100
50# IRC
51pass in quick proto tcp from any port = 6667 to 192.168.1.10/32 flags A/A group 100
52# CVSup
53pass in quick proto tcp from any port = 5999 to 192.168.1.10/32 flags A/A group 100

ログをローテートする。

1/var/log/ipf_log    640  10  *  #M1D0 Z

起動

ルールを再読み込み。

out と in の設定を確認するにはそれぞれ、

Pocket

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です