メイン

FreeBSD アーカイブ

2007年07月23日

lib xog のバージョンアップ

freebsd の X が 6.9 から 7.2 になった
portupgrade からアップデートするのにはまった
ここ
http://home.jp.freebsd.org/cgi-bin/showmail/FreeBSD-users-jp/90703
参考にアップデート

2007年11月16日

ネットワークの監視

ネットワークの監視で最近雑誌で見た
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: 構文の間違い修正・カーネルのロード方法の追加

2007年11月22日

SPAM 対策

ここを参考にSPAM対策効果はいかに!!!
現在一日300通程度。。

2007年11月28日

NetGraph の設定

/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


>

2007年12月03日

「NetGraph の設定」の続き

/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

2008年05月14日

FreeBSD のメモリーディスク

FreeBSD でメモリ ディスク ( RAM Disk)の使い方

URL

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

2009年03月13日

FreeBSD で routing.

久々に書き込むのですが。。

最近の困りごと、

ルータにIPアドレスが2つふられている
1つは grobal IP
2つ目は Local IPで VPN
と言う状況で
  FreeBSD からLocalIP側にパケットが飛ばない。。
 すべて GlobalIP にいってしまう。。

どうして。。

2009年04月07日

FreeBSD7.1 で rounting....

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
から引用


2009年05月05日

FreeBSD の apache の log rotate.

/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
を追加

2009年05月06日

ipfw と proftpd

FreeBSD で ipfw と NATD を動かした装置に proftpd を入れると
PASV モードでデータ側の通信のセッションが張れない。
 多分 ipfw の設定の問題何だろうけれど
時間が無いのでやめ!!
そのうちやろう(って、いつになるのでしょうか??)

2009年06月08日

FreeBSD で スタティックルーティング

/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コマンドと同じ。。)

2009年06月10日

FreeBSD で Windows のフォーマット

====
# 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
ですよ。。

2009年07月01日

awstat 設定

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"

2009年07月09日

FreeBSD で PF (パケットフィルター)を動かしてみよう。。

どうしても 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 const {127.0.0.1, 192.168.12.180, 192.168.24.180 }

table const { 10/8, 172.16/12, 192.168.12/24 }

table const { 0/8, 14/8, 24/8, 39/8, 127/8, 128.0/16, 169.254/16, 192.0.0/24, \
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 ! -> ($ext_if)

block in log all
block out log all

block in log quick on $ext_if from { } to any

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ととしては動作しました、
これから運用して試してみます。

2009年07月30日

FreeBSD で PPPoE server

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
#

2009年11月01日

FreeBSD で alias IP アドレスの設定

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
で削除されます。。

2009年12月24日

FreeBSD の スタティックルーティング(rc.conf)

一時的に スタティックルーティングするには 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"

のように書きます。。

2009年12月31日

FreeBSD で SWAT

FreeBSD7 でSWATを入れるには、/usr/ports からmakeしてインストールする。

2010年02月14日

パスワードの自動生成

mkpasswd と言うコマンドがあります。
( ports で expect をインストールしておきましょう。。)
( /usr/local/bin/mkpasswd )

オプション
-l 生成されるパスワードの文字数
-d パスワード中に含まれる数字の最低文字数を指定
-c パスワード中に含まれる小文字の最低文字数を指定
-C パスワード中に含まれる大文字の最低文字数を指定
-s パスワード中に含まれる特殊文字の最低文字数を指定

使い方
mkpasswd -l 10 -d 3 -c 3 -C 3 -s 0

2010年03月08日

FreeBSD の Maildir

ユーザを追加する度に Maildir を作成するのは間違いとミスの元なので
ユーザを作成した際に自動的に作成されるように。。

/usr/share/skel というディレクトリにユーザ追加時にデフォルト設定が置かれているので
Maildir/cur
Maildir/tmp
Maildir/new
を作成すると
、以降ユーザを追加した場合には、
自動的に Maildir が作成される。。

2010年03月20日

FreeBSD の subvertion

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

2010年04月27日

TOPでわからない。。

top でわからない時は。。。
systat -vmstat
ではでどうでしょう・・

About FreeBSD

ブログ「林檎と悪魔とペンギンと」のカテゴリ「FreeBSD」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。

前のカテゴリはApple/Macです。

次のカテゴリはLinuxです。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。