CONTENTS
#contents
----
Lastmodified &lastmod;
----
http://gd.tuwien.ac.at/.vhost/www.openbsd.org/xxx/faq/pf/ja/tables.html


https://www.google.co.jp/webhp?sourceid=navclient&hl=ja&ie=UTF-8#hl=ja&sclient=psy-ab&q=freebsd+pf+conf+%E8%A8%AD%E5%AE%9A&oq=freebsd+pf+settei+&gs_l=serp.1.1.0i4i10i30j0i8i4i30.28737.30059.1.35376.7.7.0.0.0.0.126.701.4j3.7.0...0.0...1c.1.7.psy-ab.jXOIku2g7yc&pbx=1&bav=on.2,or.r_qf.&fp=7d16cb3d3f4a36aa&biw=1134&bih=1428
*PF [#cf3189f7]
http://www.konata.net/freebsd/204_pf.php


/etc/rc.conf
 # pf
 pf_enable="YES"
 pf_rules="/etc/pf.conf"
 pflog_enable="YES"

 # touch /etc/pf.conf
 root@ns1:/root # /etc/rc.d/pf start
 Enabling pfNo ALTQ support in kernel
 ALTQ related functions disabled
 No ALTQ support in kernel
 ALTQ related functions disabled
 .
 root@ns1:/root #

**# vi /etc/pf.conf [#b359818b]
http://d.hatena.ne.jp/littlebuddha/20100118/1263785513

 #macros
 # インターネットと通信する側の NIC 名
 ext_if = "fxp0"
 
 # LAN 側に接続されている NIC 名
 # このサーバがNATやゲートウェイとして稼動する際に使われる
 # int_if = "bge0"
 
 # インターネットからの接続を許可するポート番号をまとめて変数に登録する
 tcp_services = "{22, 80, 443, ****}"
 # プライベートアドレスとして登録されているアドレス空間をまとめて変数に登録する
 priv_nets    = "{127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, 0.0.0.0, 255.255.255.255}"
 
 # options
 # 許可していないパケットはすべて破棄する
 # 拒否の応答を返したい場合は「drop」ではなく[return」に変更する
 set block-policy drop
 # PF の着信/送出バイト数や通過/ブロックパケット数などの統計情報を
 # 収集すべきインターフェイスを設定
 set loginterface $ext_if
 
 # scrub
 # see at http://gd.tuwien.ac.at/.vhost/www.openbsd.org/xxx/faq/pf/ja/scrub.html
 # パケットの正規化を行う
 scrub in all
 
 # default rules
 # まずは全ての接続を拒否する
 block all
 # ループバックアドレスは全て許可する
 pass quick on lo0 all
 # 詐称されたパケットをブロックする
 #antispoof log-all quick for $ext_if inet
 antispoof quick for $ext_if inet
 
 # ゲートウェイの役割がある場合は下記を有効にするか判断する
 # see at http://gd.tuwien.ac.at/.vhost/www.openbsd.org/xxx/faq/pf/ja/example1.html#options
 # block drop in  quick on $ext_if from $priv_nets to any
 # block drop out quick on $ext_if from any to $priv_nets
 
 # filter rules
 # 外部からの ICMP の特定のプロトコルに応答する
 pass in quick on $ext_if inet proto icmp from any icmp-type echoreq keep state
 # 外部からの接続は tcp_services に登録したポートへの許可する
 pass in on $ext_if inet proto tcp from any to ($ext_if) port $tcp_services flags S/SA keep state  
 
 # pass out all -> ext
 # 内部から外部への接続で、下記のプロトコルを許可する
 pass out quick on $ext_if proto tcp all modulate state flags S/SA
 pass out quick on $ext_if proto {udp, icmp} all keep state





** 設定の確認 [#ca421116]
 root@ns1:/root # pfctl -nf /etc/pf.conf
 /etc/pf.conf:34: syntax error
 root@ns1:/root #
 root@ns1:/root #
 root@ns1:/root # pfctl -nf /etc/pf.conf
 root@ns1:/root #


** pf.ko があれば稼働中 [#w201a0e8]

 root@ns1:/root # kldstat
 Id Refs Address    Size     Name
  1    3 0xc0400000 fd35e8   kernel
  2    1 0xc5e50000 33000    pf.ko


** pf の設定内容を確認する。 [#a0d5aa38]

 root@ns1:/root # pfctl -sr
 No ALTQ support in kernel
 ALTQ related functions disabled
 scrub in all fragment reassemble
 block drop all
 pass quick on lo0 all flags S/SA keep state
 block drop in quick on ! fxp0 inet from 218.44.228.144/28 to any
 block drop in quick inet from 218.44.228.146 to any
 pass in quick on fxp0 inet proto icmp all icmp-type echoreq keep state
 pass in on fxp0 inet proto tcp from any to (fxp0) port = ssh flags S/SA keep state
 pass in on fxp0 inet proto tcp from any to (fxp0) port = http flags S/SA keep state
 pass in on fxp0 inet proto tcp from any to (fxp0) port = https flags S/SA keep state
 pass in on fxp0 inet proto tcp from any to (fxp0) port = 9997 flags S/SA keep state
 pass out quick on fxp0 proto tcp all flags S/SA modulate state
 pass out quick on fxp0 proto udp all keep state
 pass out quick on fxp0 proto icmp all keep state
 root@ns1:/root #

** PFのコントロール [#j8ce5b67]
http://bakuretsu.atso-net.jp/bakuretsu/freebsd/router-pf.html

***/etc/pf.conf を変更したときは,以下のコマンドで新しいルールが有効になる. [#hcb40287]

 # pfctl -f /etc/pf.conf 

***現在のルールを表示させるには以下のコマンドを使用する. [#v7d66ded]

 # pfctl -s rules 

***ログは /var/log/pflog として作られるが,テキストファイル形式ではないので,以下のコマンドで見る. [#ged2d4e2]

 # tcpdump -n -e -ttt -r /var/log/pflog 

***ログをリアルタイムで監視するには,以下のようにする.なおpflog0はデバイスである. [#zfc91a67]

 # tcpdump -n -e -ttt -i pflog0 

**DDOS DNS [#lb55bde6]
/etc/pf.conf
 table <ddos> persist file "/etc/ddos"
 block in log quick on $ext_if from <ddos> to any

/etc/ddos
 178.32.36.67

**pf log rotation [#z1302602]
http://gd.tuwien.ac.at/.vhost/www.openbsd.org/xxx/faq/pf/ja/logging.html

http://bakuretsu.atso-net.jp/bakuretsu/freebsd/newsyslog.html

/etc/newsyslog.conf
 /var/log/pflog				600  3	   100	*     JB    /var/run/pflogd.pid
なんだか、初めっからアルっぽい



**DDOS Web [#ef8cf1a7]
http://forums.freebsd.org/showthread.php?t=21692

pf Code:
 table <ddos> persist
 
 # stop ddos
 block in log quick on $ext_if proto tcp from <ddos> to $web_ip port { 80, 443 } label ddos-block
 
 # http ddos prevention
 # I would lower these limits as they are high
 pass in quick on $ext_if proto tcp to $web_ip port { 80, 443 } flags S/SA label http keep state \
        (max-src-conn 120, max-src-conn-rate 180/60, overload <ddos> flush global)



----
Total access &counter(total);:本日 &counter(today);:昨日 &counter(yesterday);
#counter([total|today|yesterday]);

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS