lib xog のバージョンアップ
freebsd の X が 6.9 から 7.2 になった
portupgrade からアップデートするのにはまった
ここ
http://home.jp.freebsd.org/cgi-bin/showmail/FreeBSD-users-jp/90703
参考にアップデート
freebsd の X が 6.9 から 7.2 になった
portupgrade からアップデートするのにはまった
ここ
http://home.jp.freebsd.org/cgi-bin/showmail/FreeBSD-users-jp/90703
参考にアップデート
ネットワークの監視で最近雑誌で見た
nfsen/ndump をインストールしてみた。
エクスポート側の設定
kernel /
Generic であれば変更は必要ないが
/boot/loader.conf
に
ng_netflow_load="YES" # Cisco's NetFlow netgraph note type
を追加する
※ # kldload /boot/kernel/ng_netflow.ko
でカーネルにロードする。
http://www.jp.freebsd.org/cgi/mroff.cgi?sect=4&cmd=&lc=1&subdir=man&dir=jpman-6.2.2%2Fman&subdir=man&man=ng_netflow を参考にnetflow の設定を行う
例 ( 10.0.0.1 のコレクタにデータを送信)
/usr/sbin/ngctl -f- <<-SEQ
mkpeer fxp0: netflow lower iface0
name fxp0:lower netflow
connect fxp0: netflow: upper out0
mkpeer netflow: ksocket export inet/dgram/udp
msg netflow:export connect inet/10.0.0.1:4444
-SEQ
----
コレクタの設定
/usr/ports/net-mgmt/nfdump
/usr/ports/net-mgmt/nfsen
からインストールする
コレクタの設定
修正・追加
2007-11-27: 構文の間違い修正・カーネルのロード方法の追加
ここを参考にSPAM対策効果はいかに!!!
現在一日300通程度。。
/boot/loader.conf
本当にこんなに設定がいるのか!!
# ng_netflow_load="YES" # Cisco's NetFlow netgraph note type
ng_UI_load="YES" # UI netgraph node type
ng_async_load="NO" # asynchronous framing netgraph node type
ng_bpf_load="NO" # Berkeley packet filter netgraph node type
ng_bridge_load="NO" # Ethernet bridging netgraph node type
ng_cisco_load="NO" # Cisco HDLC protocol netgraph node type
ng_echo_load="NO" # Netgraph echo node type
ng_eiface_load="YES" # generic Ethernet interface netgraph node type
ng_etf_load="NO" # Ethertype filtering netgraph node type
ng_ether_load="YES" # Ethernet netgraph node type
ng_fec_load="YES" # netgraph Fast EtherChannel node
ng_frame_relay_load="NO" # frame relay netgraph node type
ng_gif_load="YES" # generic tunnel interface netgraph node type
ng_gif_demux_load="NO" # demultiplexer for packets from ng_gif(4) nodes
ng_hole_load="NO" # Netgraph discard node type
ng_hub_load="YES" # packet distribution netgraph node type
ng_iface_load="YES" # interface Netgraph node type
ng_ip_input_load="YES" # netgraph IP input node type
ng_ksocket_load="YES" # kernel socket netgraph node type
ng_l2tp_load="NO" # L2TP protocol netgraph node type
ng_lmi_load="NO" # frame relay LMI protocol netgraph node type
ng_mppc_load="NO" # Microsoft MPPC/MPPE compression and
# encryption netgraph node type
ng_netflow_load="YES" # Cisco's NetFlow netgraph node type
ng_one2many_load="YES" # packet multiplexing netgraph node type
ng_ppp_load="NO" # PPP protocol netgraph node type
ng_pppoe_load="NO" # RFC 2516 PPPOE protocol netgraph node type
ng_pptpgre_load="NO" # PPTP GRE protocol netgraph node type
ng_rfc1490_load="NO" # RFC 1490 netgraph node type
ng_socket_load="YES" # Netgraph socket node type
ng_split_load="YES" # netgraph node to separate incoming and
# outgoing flows
ng_sppp_load="NO" # sppp netgraph node type
ng_tee_load="YES" # Netgraph ``tee'' node type
ng_tty_load="NO" # Netgraph node type that is also a line
# discipline
ng_vjc_load="NO" # Van Jacobsen compression netgraph node type
ng_vlan_load="NO" # IEEE 802.1Q VLAN tagging netgraph node type
>
/etc/set_netflow.conf を作成して
# /usr/sbin/ngctl -f- <<-SEQ
mkpeer fxp0: netflow lower iface0
name fxp0:lower netflow
connect fxp0: netflow: upper out0
mkpeer netflow: ksocket export inet/dgram/udp
msg netflow:export connect inet/192.168.2.98:9997
# SEQ
netgraph を起動
/usr/sbin/ngctl -f /etc/set_netflow.conf
FreeBSD でメモリ ディスク ( RAM Disk)の使い方
5Mbyte の空間を作る
参考1
# mdconfig -a -t malloc -s 5m -u 1
# newfs -U md1
/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048
using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes.
with soft updates
super-block backups (for fsck -b #) at:
32, 2624, 5216, 7808
# mount /dev/md1 /mnt
# df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md1 4846 2 4458 0% /mnt
参考2
# mdmfs -M -s 5m md2 /mnt
# df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md2 4846 2 4458 0% /mnt
参考3
# dd if=newimage of=/dev/md0 count=5k
5120+0 records in
5120+0 records out
# mount /dev/md0c /mnt
# df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0c 4927 1 4532 0% /mnt
久々に書き込むのですが。。
最近の困りごと、
ルータにIPアドレスが2つふられている
1つは grobal IP
2つ目は Local IPで VPN
と言う状況で
FreeBSD からLocalIP側にパケットが飛ばない。。
すべて GlobalIP にいってしまう。。
どうして。。
FreeBSD でマルチホームを作る場合に 7.1 から大幅に変わったのでご注意を。。。
以下の部分は
http://www.allbsd.org/~hrs/diary/200901.html
からの引用であるので、詳細はURLを参照して欲しい。
==========
以下引用
==========
7.1R 新機能その一。複数のルーティングテーブルのサポート。 使い方はこんな感じ。
GENERIC カーネルでは、(普通の方法では) 有効にできないようになっているので、 まずはカーネルを再構築しましょう。再構築する前に、 次のオプションを追加します。
options ROUTETABLES=2
この数字はルーティングテーブルの数を表します。 今のところ 16 個まで設定可能。再構築の手順等は、 ハンドブックを読んでください。
ルーティングテーブルと呼ぶのは長ったらしいので、ここからは もうちょっと抽象的な呼称である FIB と呼びます。
FIB には、0 番、1 番のように、順番に番号が付けられています。また、 FIB は、プロセス単位で割り当てることが可能です。割り当てるには setfib(1) というコマンドを使います。こんな感じ。
# setfib -3 ping target.example.com
この場合、ping には FIB 3 番が割り当てられます。
それぞれの FIB に経路を設定するには、"setfib 1 route..." のように、 route コマンドを setfib と組み合わせて使うわけです。
で、7.1R 以降における「FIB がひとつしかない状態」は、 「常に FIB 0 番を使い続けていること」と同じになります。 カーネルオプションを追加しないと FIB は複数にならないものの、 カーネルの内部処理としては、 「ひとつ」は「複数」の特別な場合にすぎません。
FIB が複数ある場合、次のようなルールで選択されます。
*
FIB が設定されているパケットは、その FIB が使われます。 設定されていなければ、FIB 0 番が使われます。
*
外部から到着して、IP フォワーディングの対象となるパケットには、 FIB 0 番が使われます。
*
あるプロセスが listen している TCP ソケットがあり、 そのプロセスに FIB が割り当てられていると、 accept したソケットにも同じ FIB に割り当てられます。
*
TCP 以外で FIB が割り当てられているパケットの場合、 そのパケットに対する応答パケットは、同じ FIB が割り当てられます。
*
gif(4) や tun(4) などのトンネルインタフェースで 生成されるカプセル化されたパケットは、 そのインタフェースを作ったプロセスの FIB が割り当てられます。 (つまり setfib 1 ifconfig gif create のように設定できる)
*
ルーティングメッセージは、 そのメッセージを生成したプロセスの FIB が割り当てられます。
とりあえず FIB を複数用意して、"setfib 1 netstat -nr" のように実行してみると、感じがつかめると思います。 適当に経路を追加・削除しても、 0 番をいじくらなければ、基本的に影響はありません。
FIB の数は、カーネルオプションの他、loader tunable でも変更できます。 主なものは次のとおり。
*
net.fibs: FIB の数。16 個まで指定可能。
*
net.my_fibnum: デフォルト FIB の番号。 何も指定しなければ 0 になる。今までの記述で「0 番」と表現していたものは、 この番号を変えると変わる。
*
net.add_addr_allfibs: デフォルト FIB 以外の FIB 全部に、 インタフェースの経路を自動的に追加するかどうか。 何も指定しなければ 1 になっている。0 にすると、 明示的に経路を追加しないと 0 番以外には経路が追加されなくなる。
また、FIB は IPFW でも設定できます。allow の代わりに setfib というアクションルールを指定します。たとえば
# ipfw add 1000 setfib 番号 from any to any
とすると、この条件にマッチするパケットが指定された番号の FIB に割り当てられます。そしてルールの処理は、マッチしようがしまいが、 そのまま直後のルールに続きます。
==================================
以上
http://www.allbsd.org/~hrs/diary/200901.html
から引用
/etc/newsyslog
に
#
/var/log/munin-node.log 644 7 * @T00 Z /var/run/munin/munin-node.pid
/var/log/www/httpd-access.log 644 10 * $W0D0 J /var/run/httpd.pid 30
/var/log/www/httpd-error.log 644 10 * $W0D0 J /var/run/httpd.pid 30
を追加
FreeBSD で ipfw と NATD を動かした装置に proftpd を入れると
PASV モードでデータ側の通信のセッションが張れない。
多分 ipfw の設定の問題何だろうけれど
時間が無いのでやめ!!
そのうちやろう(って、いつになるのでしょうか??)
/etc/rc.confに
static_routes="hoge"
route_hoge="-net 10.0.0.0 -netmask 255.255.0.0 10.0.1.1"
と記述することでOK
ちなみに2つ以上ルーティングを起動時に有効にするには
static_routes="hoge hoge2 hoge3"
route_hoge="-net 10.0.0.0 -netmask 255.255.0.0 10.0.1.1"
route_hoge2="-net 10.1.0.0 -netmask 255.255.0.0 10.0.1.1"
route_hoge3="....."
またルーティング先(元)がネットワークではなくホストの場合は
-netのオプションを-hostに変える (routeコマンドと同じ。。)
====
# fdisk -I /dev/da0
******* Working on device /dev/da0 *******
-I のオプションはハードディスク全部といういみです。
====
通常は
# newfs /dev/da0
ここを
# newfs_msdos /dev/da0
で。。( /dev/da0s1 が正しいのでは??)
==
# mount -t msdosfs /dev/da0 /x
通常は
# mount /dev/da0 /x
===
ちなみに Linux の ext2 は
mount -t ext2fs /dev/da0s2 /y
ですよ。。
http://www.crimson-snow.net/hmsvr/fedora/httpd/awstats.html
を参考に
awstats.conf を編集する
# vi /usr/local/www/awstats/cgi-bin/awstats.foobar.conf ← 設定ファイル編集
ログの保管場所を指定
LogFile="/var/log/apache2/access_log" ← アクセスログ
サイトのドメインを指定
SiteDomain="xxxxx.co.jp" ← ドメインを指定して
DNSの設定
DNSLookup=1 ← 逆引きを行う(行わない場合は0)
CGIスクリプトのディレクトリを指定
DirCgi="/awstats/cgi-bin"
画像ディレクトリを指定
DirIcons="/awstatsicons"
更新ボタンを設置する
AllowToUpdateStatsFromBrowser=1 <= 更新ボタンを設置する(設置しない場合は 0)
AllowFullYearView=3 <= 年間統計情報を出力出来るように許可する
アクセス解析対象外の指定
SkipHosts="127.0.0.1 REGEX[^192.168.1.]"
表示言語を指定
Lang="jp"
== DIFF =======
> diff awstats.foobar.conf awstats.model.conf
51,52c51
< # LogFile="/var/log/httpd/mylog.log"
< LogFile="/var/log/apache2/access_log"
---
> LogFile="/var/log/httpd/mylog.log"
154c153
< SiteDomain="XXXXXX.co.jp"
---
> SiteDomain=""
189,190c188
< # DNSLookup=2
< DNSLookup=1
---
> DNSLookup=2
205,206c203
< # DirData="."
< DirData="/var/lib/awstats"
---
> DirData="."
215,216c212
< # DirCgi="/cgi-bin"
< DirCgi="/awstats/cgi-bin"
---
> DirCgi="/cgi-bin"
227d222
< # DirIcons="/awstats/icons"
244,245c239
< # AllowToUpdateStatsFromBrowser=0
< AllowToUpdateStatsFromBrowser=1
---
> AllowToUpdateStatsFromBrowser=0
265,266c259
< #AllowFullYearView=2
< AllowFullYearView=3
---
> AllowFullYearView=2
473,474c466
< # SkipHosts=""
< SkipHosts="127.0.0.1 REGEX[^192.168.1.]"
---
> SkipHosts=""
913,914c905
< # Lang="auto"
< Lang="jp"
---
> Lang="auto"
どうしても ipfw で動かない機能があったので
PFではどうかと思いチャレンジ!!
参考サイト
http://www.daily-labo.com/content_22.html
http://wirednoize.net/freebsd/index.php?pf (Packet Filter)
を参考に
動かすだけなら、、非常に簡単でした。。
1)カーネルのコンパイル(どうもなくても動きそうです。。)
GENERIC に追加した物
# ================================
device pf
device pflog
device pfsync
#
options ALTQ
options ALTQ_CBQ # Class Bases Queuing (CBQ)
options ALTQ_RED # Random Early Detection (RED)
options ALTQ_RIO # RED In/Out
options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
options ALTQ_PRIQ # Priority Queuing (PRIQ)
options ALTQ_NOPCC # Required for SMP build
#==========================================
2) rc.conf に追加
#==========================================
pf_enable="YES" # Enable PF (load module if required)
pf_rules="/etc/packet_filter/pf.conf" # rules definition file for pf
pf_flags="" # additional flags for pfctl startup
pflog_enable="YES" # start pflogd(8)
pflog_logfile="/var/log/pflog" # where pflogd should store the logfile
pflog_flags="" # additional flags for pflogd startup
#==========================================
3) pf.conf の作成
#==========================================
ext_if = "vge0"
ext_addr = "192.168.24.180"
int_if = "vge1"
int_addr = "192.168.12.180"
table
table
table
192.0.2/24, 192.88.99/24, 198.18/15, 223.255.255/24, 224/4, 240/4 }
set timeout { interval 10, frag 30 }
set timeout { tcp.first 120, tcp.opening 30, tcp.established 86400 }
set timeout { tcp.closing 900, tcp.finwait 45, tcp.closed 90 }
set timeout { udp.first 60, udp.single 30, udp.multiple 60 }
set timeout { icmp.first 20, icmp.error 10 }
set timeout { other.first 60, other.single 30, other.multiple 60 }
set timeout { adaptive.start 0, adaptive.end 0 }
set limit { states 10000, frags 5000 }
set loginterface vge0
set block-policy drop
set optimization normal
set state-policy if-bound
set require-order yes
set fingerprints "/etc/paket_filter/pf.os"
scrub in on $ext_if all fragment reassemble
scrub out on $ext_if all max-mss 1414
nat on $ext_if inet from 192.168.12.0/24 to !
block in log all
block out log all
block in log quick on $ext_if from {
pass in on $ext_if proto tcp from any to $ext_addr port {smtp domain http} flags S/SA keep state
block in log quick on $ext_if proto tcp from any os {"Windows 95", "Windows 98"} to $ext_addr port smtp
block return-rst in quick on $ext_if proto tcp from any to any port 113
block in log quick on $ext_if proto tcp all
pass in quick on $ext_if proto udp from any to $ext_addr port domain keep state
block in log quick on $ext_if proto udp all
pass in quick on $ext_if inet proto icmp all icmp-type 3
pass in quick on $ext_if inet proto icmp all icmp-type 11
block in log quick on $ext_if proto icmp all
block out quick on $ext_if from any to {
block out quick on $ext_if proto {tcp udp} from any to any port 135
block out quick on $ext_if proto {tcp udp} from any to any port 137:139
block out quick on $ext_if proto {tcp udp} from any to any port 445
block out quick on $ext_if proto {tcp udp} from any to any port 1433:1434
pass out quick on $ext_if proto tcp all modulate state
pass out quick on $ext_if proto udp all keep state
pass out quick on $ext_if inet proto icmp all icmp-type 8 code 0 keep state
block out log quick on $ext_if proto icmp all
pass in quick on $int_if all
pass out quick on $int_if all
pass in quick on lo0 all
pass out quick on lo0 all
#==========================================
でNATととしては動作しました、
これから運用して試してみます。
FreeBSD で PPPoE server を動かしてみよう。。!!!
(接続用でなく PPPoE でセッションを張るサーバ。。)
ルータの試験等に使ってやってください。。
FreeBSD 6.4 で行ないました。。
(FreeBSD 7.x の空きの装置が無かったので。。)
vge1 はデバイス名なので適宜読み替える事
kernel はGENERIC で行なっています。
以下のモジュールをロードしています。
# kldstat
Id Refs Address Size Name
1 7 0xc0400000 7c79dc kernel
2 1 0xc0bc8000 5c838 acpi.ko
3 4 0xc52fa000 a000 netgraph.ko
4 1 0xc5308000 4000 ng_socket.ko
5 1 0xc530e000 3000 ng_ether.ko
6 1 0xc5311000 5000 ng_pppoe.ko
rc.conf に追加の内容
# /etc/rc.conf
#
ifconfig_vge1="up"
pppoed_enable="YES"
pppoed_provider="*"
pppoed_interface="vge1"
pppoed_flags="-l pppoe-in -P /var/run/pppoed.pid"
#
/etc/ppp/ppp.conf の内容
#
# /etc/ppp/ppp.conf
#
default:
set log Phase Chat LCP IPCP CCP tun command
ident user-ppp VERSION (built COMPILATIONDATE)
ident FreeBSD userland PPP
# set timeout 180 # 3 minute idle timer (the default)
enable dns # request DNS info (for resolv.conf)
#
pppoe-in:
set mru 1454
set mtu 1454
allow mode direct
enable lqr echo
enable pap chap
set speed sync
set ifaddr 192.168.180.254 192.168.180.100-192.168.180.199 255.255.255.0
accept dns
accept chap
accept pap
############# ppp.conf EOF ####################
/etc/ppp/ppp.secret に接続ユーザとIPアドレスを付加
#
hoge hogetest 192.168.180.34
#
FreeBSD でIPアドレスのエイリアスを設定したい時に
rc.conf で設定しておきます。。
ifconfig_vr0=" inet 192.168.3.200 netmask 255.255.255.0"
ifconfig_vr0_alias0=" inet 192.168.13.200 netmask 255.255.255.0"
ifconfig_vr0_alias1=" inet 192.168.36.200 netmask 255.255.255.0"
###
停止(削除するときは)
ifconfig vr0 delete 192.168.36.200
で削除されます。。
一時的に スタティックルーティングするには route コマンドで良いのですが。
恒久的に設定する場合には
rc.conf に
static_routes="tokyo kobe bar"
route_tokyo="-net 192.168.1.0/24 192.168.12.254"
route_kobe="-net 10.0.0.0/8 192.168.12.250"
route_bar="-host 169.254.1.1 -iface lo0"
のように書きます。。
FreeBSD7 でSWATを入れるには、/usr/ports からmakeしてインストールする。
mkpasswd と言うコマンドがあります。
( ports で expect をインストールしておきましょう。。)
( /usr/local/bin/mkpasswd )
オプション
-l 生成されるパスワードの文字数
-d パスワード中に含まれる数字の最低文字数を指定
-c パスワード中に含まれる小文字の最低文字数を指定
-C パスワード中に含まれる大文字の最低文字数を指定
-s パスワード中に含まれる特殊文字の最低文字数を指定
使い方
mkpasswd -l 10 -d 3 -c 3 -C 3 -s 0
ユーザを追加する度に Maildir を作成するのは間違いとミスの元なので
ユーザを作成した際に自動的に作成されるように。。
/usr/share/skel というディレクトリにユーザ追加時にデフォルト設定が置かれているので
Maildir/cur
Maildir/tmp
Maildir/new
を作成すると
、以降ユーザを追加した場合には、
自動的に Maildir が作成される。。
FreeBSD の Subversion のメモを良く無くすのでメモ
1:
$ cd /usr/ports/devel/subversion-freebsd
$ sudo make install
2: リポジトリ情報
ViewVC
http://svn.freebsd.org/viewvc/base/
Repository root
http://svn.freebsd.org/base/
リリースタグ
http://svn.freebsd.org/base/release
セキュリティブランチ
http://svn.freebsd.org/base/releng
3:
7.0 RELEASE
# svn checkout http://svn.freebsd.org/base/release/7.0.0 /usr/src
7.1 RELESE の セキュリティー
# svn checkout http://svn.freebsd.org/base/releng/7.1 /usr/src
A:
参考
http://wiki.freebsd.org/SubversionPrimer
http://people.freebsd.org/~peter/svn_notes.txt
http://svn.freebsd.org/base/ROADMAP.txt
top でわからない時は。。。
systat -vmstat
ではでどうでしょう・・