S.C. MAGI-SYSTEM 日記
Diary
2009年になって、実に3年ぶりに更新再開。

hns - 日記自動生成システム - Version 2.19.9

2009年01月03日() [n年日記]

[天気:晴れ](新横浜) 起床:11:45 就寝:26:00

#1 [*BSD] 6.4-STABLE

こちらの日記では大変ご無沙汰しています。

今でこそ言えることですが… 実はこのサーバは4.11-RELEASE-p21でずーっと動いていました(笑)
最後にmake buildworldしたのが2005年12月14日(-p13)で、 kernelは2006年10月26日(4系のEOL)でした。
このEOLを境にportsが4系ではbuildできなくなってしまったので、 かなりの間放置されていましたが…よくここまで動いていたものです。

で、そろそろportsを更新したいということで、 頑張って4.11→5.x-STABLE→6.x-STABLEという二段構え のmajor越えmake worldを実施しました!

まずは4.x最後のdmesg
Copyright (c) 1992-2005 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 4.11-RELEASE-p21 #1: Thu Oct 26 00:20:19 JST 2006
root@melchior.magisystem.net:/work/obj/usr/src/sys/EDEN
Timecounter "i8254"  frequency 1193182 Hz
CPU: VIA C3 Samuel 2 (533.35-MHz 686-class CPU)
Origin = "CentaurHauls"  Id = 0x673  Stepping = 3
Features=0x803035<FPU,DE,TSC,MSR,MTRR,PGE,MMX>
real memory  = 259981312 (253888K bytes)
avail memory = 248508416 (242684K bytes)
Preloaded elf kernel "kernel" at 0xc042a000.
Preloaded elf module "snd_via82c686.ko" at 0xc042a09c.
Preloaded elf module "snd_pcm.ko" at 0xc042a144.
md0: Malloc disk
Using $PIR table, 5 entries at 0xc00fdc70
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
agp0: <VIA Generic host to PCI bridge> mem 0xd0000000-0xdfffffff
 at device 0.0 on pci0
pcib1: <PCI to PCI bridge (vendor=1106 device=8601)> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <Trident model 8500 VGA-compatible display device> at 0.0 irq 11
isab0: <PCI to ISA bridge (vendor=1106 device=8231)> at device 17.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <VIA 8231 ATA100 controller> port 0xd000-0xd00f at device 17.1
 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
uhci0: <VIA 83C572 USB controller> port 0xd400-0xd41f irq 12 at device 17.2
 on pci0
usb0: <VIA 83C572 USB controller> on uhci0
usb0: USB revision 1.0
uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1: <VIA 83C572 USB controller> port 0xd800-0xd81f irq 12 at device 17.3
 on pci0
usb1: <VIA 83C572 USB controller> on uhci1
usb1: USB revision 1.0
uhub1: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
chip0: <PCI to Other bridge (vendor=1106 device=8235)> at device 17.4 on pci0
pcm0: <VIA VT82C686A> port 0xe400-0xe403,0xe000-0xe003,0xdc00-0xdcff irq 10
 at device 17.5 on pci0
pcm0: <VIA Technologies VIA1612A AC97 Codec>
vr0: <VIA VT6102 Rhine II 10/100BaseTX> port 0xe800-0xe8ff
 mem 0xe3000000-0xe30000ff irq 11 at device 18.0 on pci0
vr0: Ethernet address: 00:40:63:d4:b5:a9
miibus0: <MII bus> on vr0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
orm0: <Option ROMs> at iomem 0xc0000-0xcbfff,0xcc000-0xd5fff on isa0
pmtimer0 on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x100>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A, console
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: Generic chipset (EPP/NIBBLE) in COMPATIBLE mode
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
plip0: <PLIP network interface> on ppbus0
IPsec: Initialized Security Association Processing.
IP Filter: v3.4.35 initialized.  Default = pass all, Logging = enabled
ad0: 38154MB <HTE726040M9AT00> [77520/16/63] at ata0-master UDMA100

そして、5-STABLEの様子。
Copyright (c) 1992-2006 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 5.5-STABLE #0: Wed Dec 31 21:24:11 JST 2008
root@melchior.magisystem.net:/work/obj/work/src/sys/EDEN
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: VIA C3 Samuel 2 (533.35-MHz 686-class CPU)
Origin = "CentaurHauls"  Id = 0x673  Stepping = 3
Features=0x803035<FPU,DE,TSC,MSR,MTRR,PGE,MMX>
real memory  = 259981312 (247 MB)
avail memory = 244629504 (233 MB)
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <VIA601 AWRDACPI> on motherboard
acpi0: Power Button (fixed)
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
cpu0: <ACPI CPU (3 Cx states)> on acpi0
acpi_throttle0: <ACPI CPU Throttling> on cpu0
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0x6000-0x607f,0x5000-0x500f,
 0x4080-0x40ff,0x4000-0x407f,0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
agp0: <VIA 8601 (Apollo ProMedia/PLE133Ta) host to PCI bridge>
 mem 0xd0000000-0xdfffffff at device 0.0 on pci0
pcib1: <PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <display, VGA> at device 0.0 (no driver attached)
isab0: <PCI-ISA bridge> at device 17.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <VIA 8231 UDMA100 controller> port 0xd000-0xd00f,0x376,0x170-0x177,0x3f6,
 0x1f0-0x1f7 at device 17.1 on pci0
ata0: channel #0 on atapci0
ata1: channel #1 on atapci0
uhci0: <VIA 83C572 USB controller> port 0xd400-0xd41f irq 12 at device 17.2
 on pci0
usb0: <VIA 83C572 USB controller> on uhci0
usb0: USB revision 1.0
uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1: <VIA 83C572 USB controller> port 0xd800-0xd81f irq 12 at device 17.3
 on pci0
usb1: <VIA 83C572 USB controller> on uhci1
usb1: USB revision 1.0
uhub1: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
pci0: <bridge> at device 17.4 (no driver attached)
pcm0: <VIA VT82C686A> port 0xe400-0xe403,0xe000-0xe003,0xdc00-0xdcff irq 10
 at device 17.5 on pci0
pcm0: <VIA Technologies VIA1612A AC97 Codec>
vr0: <VIA VT6102 Rhine II 10/100BaseTX> port 0xe800-0xe8ff
 mem 0xe3000000-0xe30000ff irq 11 at device 18.0 on pci0
miibus0: <MII bus> on vr0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
vr0: Ethernet address: 00:40:63:d4:b5:a9
acpi_tz0: <Thermal Zone> on acpi0
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A, console
ppc0: <Standard parallel printer port> port 0x378-0x37f irq 7 on acpi0
ppc0: Generic chipset (EPP/NIBBLE) in COMPATIBLE mode
ppbus0: <Parallel port bus> on ppc0
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
pmtimer0 on isa0
orm0: <ISA Option ROMs> at iomem 0xcc000-0xd5fff,0xc0000-0xcbfff on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x64,0x60 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x100>
sio1: configured irq 3 not in bitmap of probed irqs 0
sio1: port may not be enabled
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounter "TSC" frequency 533354488 Hz quality 800
Timecounters tick every 10.000 msec
IP Filter: v3.4.35 initialized.  Default = pass all, Logging = enabled
ad0: 38154MB <HTE726040M9AT00/MHAOA6AA> [77520/16/63] at ata0-master UDMA100

4系から5系へのmake worldはかなり大変です。
というのは、5系ではkernelの仕組みが変わっているので モジュールの配置やboot loaderの更新を伴います。
また、各make worldについて言えることですが、 PAMといった認証周りのライブラリがmajorが上がるたびに 大幅に更新されているので、最初はOS付属のsshdを起動する ようにしておいて、portsをリビルドしてからportsのsshdに 切り替えるようにしないと大変なことになります。(笑)

最後に6.4-STABLEです。
Copyright (c) 1992-2008 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 6.4-STABLE #0: Fri Jan  2 03:07:21 JST 2009
root@melchior.magisystem.net:/work/obj/work/src/sys/EDEN
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: VIA Samuel 2 (533.36-MHz 686-class CPU)
Origin = "CentaurHauls"  Id = 0x673  Stepping = 3
Features=0x803035<FPU,DE,TSC,MSR,MTRR,PGE,MMX>
real memory  = 259981312 (247 MB)
avail memory = 244715520 (233 MB)
kbd1 at kbdmux0
acpi0: <VIA601 AWRDACPI> on motherboard
acpi0: Power Button (fixed)
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
cpu0: <ACPI CPU> on acpi0
acpi_throttle0: <ACPI CPU Throttling> on cpu0
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff,0x4000-0x407f,
 0x4080-0x40ff,0x5000-0x500f,0x6000-0x607f on acpi0
pci0: <ACPI PCI bus> on pcib0
agp0: <VIA 8601 (Apollo ProMedia/PLE133Ta) host to PCI bridge>
 mem 0xd0000000-0xdfffffff at device 0.0 on pci0
pcib1: <PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <display, VGA> at device 0.0 (no driver attached)
isab0: <PCI-ISA bridge> at device 17.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <VIA 8231 UDMA100 controller> port 0x1f0-0x1f7,0x3f6,
 0x170-0x177,0x376,0xd000-0xd00f at device 17.1 on pci0
ata0: <ATA channel 0> on atapci0
ata1: <ATA channel 1> on atapci0
uhci0: <VIA 83C572 USB controller> port 0xd400-0xd41f irq 12 at device 17.2
 on pci0
uhci0: [GIANT-LOCKED]
usb0: <VIA 83C572 USB controller> on uhci0
usb0: USB revision 1.0
uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1: <VIA 83C572 USB controller> port 0xd800-0xd81f irq 12 at device 17.3
 on pci0
uhci1: [GIANT-LOCKED]
usb1: <VIA 83C572 USB controller> on uhci1
usb1: USB revision 1.0
uhub1: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
pci0: <bridge> at device 17.4 (no driver attached)
pcm0: <VIA VT82C686A> port 0xdc00-0xdcff,0xe000-0xe003,0xe400-0xe403 irq 10
 at device 17.5 on pci0
pcm0: <VIA Technologies VIA1612A AC97 Codec>
vr0: <VIA VT6102 Rhine II 10/100BaseTX> port 0xe800-0xe8ff
 mem 0xe3000000-0xe30000ff irq 11 at device 18.0 on pci0
vr0: Quirks: 0x0
miibus0: <MII bus> on vr0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
vr0: Ethernet address: 00:40:63:d4:b5:a9
acpi_tz0: <Thermal Zone> on acpi0
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A, console
ppc0: <Standard parallel printer port> port 0x378-0x37f irq 7 on acpi0
ppc0: Generic chipset (EPP/NIBBLE) in COMPATIBLE mode
ppbus0: <Parallel port bus> on ppc0
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
pmtimer0 on isa0
orm0: <ISA Option ROMs> at iomem 0xc0000-0xcbfff,0xcc000-0xd5fff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x100>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
sio1: configured irq 3 not in bitmap of probed irqs 0
sio1: port may not be enabled
Timecounter "TSC" frequency 533355476 Hz quality 800
Timecounters tick every 1.000 msec
IP Filter: v4.1.28 initialized.  Default = pass all, Logging = enabled
ad0: 38154MB <HTE726040M9AT00 MHAOA6AA> at ata0-master UDMA100

5系から6系へはそんなに大きな障壁はありませんでしたね。
ただ、majorが上がるごとに動作が重くなってい気がするのは 気のせいでしょうか。(笑)
そろそろこのEDEN(533MHz)でのmake worldはつらいです。
特に、make world後のportupgradeが絶望的に…

多少は手間がかかるとは言え、 4.11-RELEASEから6.4-RELEASEまで きちんと上げることができるFreeBSDの仕組みに感心しました。

2009年01月04日() [n年日記]

[天気:晴れ](新横浜) 起床:12:30 就寝:24:00

#1 [Server] Analog、はじめました

このサーバのCPUは静音ファンレスだけど、貧弱なことで有名な VIA Samuel 2 (533.36-MHz 686-class CPU) で動作しています。
ここのところ性能劣化が気になっています。
特に管理を容易にする関係 *1 で、特にCGIは実行のオーバヘッドが大きく、サーバへの負荷が目立っています。

そこで、どんなCGIが主に叩かれているのかちょっと Analog で分析してみました。
分析結果は こちら

絶望した!
ほとんどのアクセスが検索botだったり、 .cnからの掲示板CGIへのスパム投稿だったりすることに絶望した!

世の中のトラフィックの大半はbotとスパムなんでしょうかね…
*1: ApacheのモジュールにはせずにCGI(perl)、php、rubyの全てを #!/usr/local/bin/xxx の形式にして、直接実行するようにしています。

2009年01月05日(月) [n年日記]

[天気:晴れ](新横浜) 起床:7:30 就寝:24:00

#1 [*BSD] 7.1-RELEASE

年末の焼肉では「年内には…」とのことでしたが、 年が明けてからのリリースとなりました。
関係者の方々、おつかれさまでした。

FreeBSD 7.1-RELEASE

これでついに6.xブランチはLegacy Branchとなりました。
このまま6.xのままでいると、元の木阿弥なので 近い時期に7.1-RELEASEにこのサーバも上げることにします。

2009年01月06日(火) [n年日記]

[天気:晴れときどき曇り](新横浜) 起床:7:30 就寝:23:30

#1 [*BSD][Server] make world

ようやっと7.1-RELEASEがビルドできました。
さすがは533MHzのC3だ。

--------------------------------------------------------------
>>> World build started on Mon Jan  5 20:03:19 JST 2009
--------------------------------------------------------------
(snip)
--------------------------------------------------------------
>>> World build completed on Tue Jan  6 06:45:47 JST 2009
--------------------------------------------------------------

niceかけていたとはいえ、10時間ですね…
ついでに
--------------------------------------------------------------
>>> Kernel build for GENERIC started on Tue Jan  6 12:13:55 JST 2009
--------------------------------------------------------------
(snip)
--------------------------------------------------------------
>>> Kernel build for GENERIC completed on Tue Jan  6 15:48:23 JST 2009
--------------------------------------------------------------

kernelでも3時間半かかっています。

今日のところはビルドだけ。
さすがにinstallはsingle userでやりたいので、今度の週末になります。
こういう時に手元にないサーバのメンテナンスは不便ですね…
シリアル接続専用の端末をもう1台、用意するべきでしょうか。

2009年01月07日(水) [n年日記]

[天気:曇りときどき晴れ](新横浜) 起床:7:30 就寝:22:00

#1 [*BSD][Server] Sender ID/SPF

もともとはMAGIサーバのBINDを最新のものに更新するついでに、 古くなっているDNSレコードをある程度きれいにしよう *1 ということから始めました。
と、いろいろ遊んでいるうちになんだかSender IDに対応させるのも 楽しいかもと思ってしまったわけです。



でも、今日は眠いので詳細はそのうちに。(笑)

興味がある方は
% dig magisystem.net TXT +norec
でも叩いてみてください。
*1: named.rootとか古いままだと迷惑にもなりますし…

2009年01月08日(木) [n年日記]

[天気:曇り](新横浜) 起床:7:30 就寝:23:30

#1 [*BSD][Server] Sender ID/SPF(各論)

昨日、書きかけ(というか、投げっぱなし)だった内容について。

とりあえず、Sender IDがなにかについては、 規格を提案している Microsoft や、具体的な方法を紹介している @IT を参照するとよいです。(こら

ここでは、具体的にどう設定するかを説明します。

とはいっても、概要くらい説明しないとどうしようもないですね。
SPF とは、DNSのレコードにちょこっと情報を追加することで、 リレーされてきたメールが認められたSMTPサーバから送信されたものかを 照合する仕組みです。
近年増加するスパムを見ていて分かると思いますが、人のところのドメインの メールアドレスを勝手にSenderに設定して、送信されている *1 ことが多くあります。
そこで、そのドメインの正当なオーナーがどこのSMTPサーバから このドメインをSenderやFromに指定したメールを送る可能性があるかを あらかじめ指定しておくのです。

DNS には以下のようなレコードを設定します。
	IN	TXT	"spfレコード"


このspfレコードを書くのが結構難しいです。
私は Microsoft のサイトにあるウィザードで作りました。
基本的には自分のドメインでメールを送信する可能性があるホストを 指定しておけば大丈夫です。
ここのサーバでは実は自分でSMTPを送信せずに、 プロバイダのSMTPサーバをSMART_HOSTに指定しているので そっちを入れておく必要があります。

このレコードを作ったら check-auth%verifier.port25.com *2 に空メールを送ることで、SPFを評価してくれます。
==========================================================
Summary of Results
==========================================================
SPF check:          pass
DomainKeys check:   neutral
DKIM check:         neutral
Sender-ID check:    pass
SpamAssassin check: ham

==========================================================
Details:
==========================================================

HELO hostname:  mo10.iijmio.jp
Source IP:      xxx.xxx.xxx.xxx
mail-from:      xxx%xxx.xxx

----------------------------------------------------------
SPF check details:
----------------------------------------------------------
Result:         pass 
ID(s) verified: smtp.mail=xxx%xxx.xxx
DNS record(s):
   magisystem.net. 3600 IN TXT "v=spf1 a mx ptr
mx:melchior.magisystem.net mx:menkar.cetus-net.org
ip4:xxx.xxx.xxx.xxx/xxx -all"
   magisystem.net. A (no records)
   magisystem.net. 3600 IN MX 10 melchior.magisystem.net.
   magisystem.net. 3600 IN MX 100 menkar.cetus-net.org.
   melchior.magisystem.net. 3600 IN A xxx.xxx.xxx.xxx
   menkar.cetus-net.org. 3599 IN A xxx.xxx.xxx.xxx
   xxx.xxx.xxx.xxx.in-addr.arpa. 36000 IN PTR mo10.iijmio.jp.
   mo10.iijmio.jp. 36000 IN A xxx.xxx.xxx.xxx
   melchior.magisystem.net. MX (no records)
   menkar.cetus-net.org. MX (no records)
(snip)
----------------------------------------------------------
Sender-ID check details:
----------------------------------------------------------
Result:         pass 
ID(s) verified: header.From=xxx%xxx.xxx
DNS record(s):
   magisystem.net. 3600 IN TXT "v=spf1 a mx ptr
mx:melchior.magisystem.net mx:menkar.cetus-net.org
ip4:xxx.xxx.xxx.xxx/xxx -all"
   magisystem.net. A (no records)
   magisystem.net. 3600 IN MX 10 melchior.magisystem.net.
   magisystem.net. 3600 IN MX 100 menkar.cetus-net.org.
   melchior.magisystem.net. 3600 IN A xxx.xxx.xxx.xxx
   menkar.cetus-net.org. 3599 IN A xxx.xxx.xxx.xxx
   xxx.xxx.xxx.xxx.in-addr.arpa. 36000 IN PTR mo10.iijmio.jp.
   mo10.iijmio.jp. 36000 IN A xxx.xxx.xxx.xxx
   melchior.magisystem.net. MX (no records)
   menkar.cetus-net.org. MX (no records)


この設定で試しにGmailのメールアドレス宛てに送ったメールの ヘッダです。
Authentication-Results: 	mx.google.com; spf=pass (google.com: domain of 
	xxx%xxx.xxx designates xxx.xxx.xxx.xxx as permitted sender)
	smtp.mail=xxx%xxx.xxx
(snip)
Received-Spf: 	pass (google.com: domain of xxx%xxx.xxx designates
	xxx.xxx.xxx.xxx as permitted sender) client-ip=xxx.xxx.xxx.xxx;


しっかりとGmailにもお墨付きをいただけたようです。(笑)

次に受信側の設定も。
うちではMTAにsendmailを使っているので、ついでにsid-filterも入れておきます。
sendmail.mcに
INPUT_MAIL_FILTER(`sid-filter', `S=local:/var/run/sid-filter')
を入れておきます。

するとメールヘッダにつぎのように入ります。
Authentication-Results: 	melchior.magisystem.net; sender-id=pass
	header.from=xxx%xxx.xxx; spf=pass smtp.mfrom=xxx%xxx.xxx


本来ならば、spf=passとならなかったメールを弾くように設定すると いいのでしょうが、世の中の全てのメールサーバがSPFに対応しているわけでもないので、 受信側の設定としてはログに出すくらいしかできないのが 悲しいですね…

ちなみに、携帯キャリアはきちんと設定してくれるようです。
下はauの例です。
Authentication-Results: 	melchior.magisystem.net; sender-id=pass
	header.from=xxx%ezweb.ne.jp; spf=pass smtp.mfrom=xxx%ezweb.ne.jp

*1: 例えば、ここのサーバならmagisystem.netなメアドをSenderやFromに設定して送られているスパムです。もちろん、私はそんなものを送った覚えはないですよ。(笑)
*2: 読み替えてくださいね。(笑)

2009年01月09日(金) [n年日記]

[天気:雨](武蔵中原) 起床:6:30 就寝:22:00

#1 [Server] recursion no

今日は昨日に続いてDNSの話。

先日、ITproを読んでいたらいい記事があったので貼っておきます。
DNSファイアウォールが可能にする真のセキュアDNS [要登録]

登録してないと見られないので内容をさらっと紹介すると、 あるドメインのSOAを持っているコンテンツDNS *1 と、いわゆる普通の名前解決をするためのキャッシュDNS *2 は別にしましょ、ということです。
記事を書いているのがアプライアンスベンダーなので、話はさらに コンテンツDNS(プライマリとします)をDMZの内側に配置して、 外部からのリクエストはそのプライマリ・コンテンツDNSから委譲を受けた セカンダリ・コンテンツDNSにやらせましょ、とまで書いています。
これで、間違ってDNSが乗っ取られてしまっても、 DNSレコードを書き変えられてしまう心配がない *3 、ということ。

まあ、外の名前解決は基本的にプロバイダのDNSをforwarderに指定してしまっているので、 あんまり関係ないんですけどね。(笑)

しかし、中と外のDNSを分ける話題は、実はここのネットワークの話にも関係します。
1つのnamedで、プライベート・ネットワーク(internal)のDNSと 外に公開しているグローバル・ネットワーク(external)のDNSを同時に提供しています。 *4
当然、同一のホスト名で名前を解決しているので、中からのリクエストはプライベートIP、 外からのリクエストはグローバルIPが返るようにしないといけません。
外にプライベートIPを見せるわけにはいきませんからね。
それと、外からプライベートIPの逆引きをされないようにもしないといけません。

このように、1つのnamedでリクエスト元のIPアドレスによって レスポンスを変える方法は比較的簡単に設定できます。
また 外部の記事 なんですが、コピペしても意味がないのでここを見てください。(笑)
ここで大事なのは、recursionというキーワードです。
これは自分がAurhorityを持ってるドメイン *5 以外の名前解決を依頼されたときにどうふるまうか、ということ。

先程書いたように、中からは自分のドメインに関する名前解決は当然ですが、 それ以外に外部の名前解決を提供する必要があります。 *6
逆に、外部からのリクエストについては自分のドメインに関するレスポンスを返す必要がありません。
むしろ、踏み台やら何やらに利用されないためにも返すべきではありません。
そこで
view "external" {
(snip)
        recursion no;
(snip)
}

外部からのリクエストについては recursion no をきちんと入れないといけないのです。

これを入れておくと、外からのリクエストには以下のように返ります。
[ttys001%rei:~]% dig @xxx.xxx.xxx.xxx ki.nu in soa

; <<>> DiG 9.4.2-P2 <<>> @xxx.xxx.xxx.xxx ki.nu in soa
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 63677
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;ki.nu.				IN	SOA

;; Query time: 54 msec
;; SERVER: xxx.xxx.xxx.xxx#53(xxx.xxx.xxx.xxx)
;; WHEN: Fri Jan  9 20:35:03 2009
;; MSG SIZE  rcvd: 23

status が REFUSED となって、拒否されたのが分かりますね。
同じように中からやってみましょう。
[ttyp5%melchior:~]% dig @127.0.0.1 ki.nu in soa

; <<>> DiG 9.4.3 <<>> @127.0.0.1 ki.nu in soa
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38104
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 11

;; QUESTION SECTION:
;ki.nu.				IN	SOA
(snip)
;; Query time: 5 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Jan  9 20:38:00 2009
;; MSG SIZE  rcvd: 495

status が NOERROR となり、結果がきちんと返っているのが分かります。

自分でDNSを上げている方は気を付けましょう。
*1: 実際にそのゾーンのSOA,NSとなっているDNSのこと。
*2: Webを見るためとかメール送信のために「外部」の名前を解決するDNS
*3: 正確に言うなら書き変えられてしまいますが、あくまでslaveなのでmasterは無事。
*4: なんか昔、日記に書いた気がするんだけど…
*5: そのnamedでmasterやslaveで指定されているドメイン。
*6: それは例えforwarderを指定していてもです。指定がないとforwarderにもききにいきません。

2009年01月10日() [n年日記]

[天気:晴れ](新横浜) 起床:13:45 就寝:24:00

#1 [Web] hns 2.19.9

3年もたっていることなので、この日記のベースになっている hnsを上げておきました。
その過程で見られなくなった方、すみません…

できれば tDiary とか MovableType など、最近のシステムに 移行した方がいいのかなぁ。
でも、過去の内容を移行するのがあまりに面倒なので(笑)
しばらくは、このままです。


最近の日記
2019年06月24日
10年振り
2009年12月31日
定期アップデート
2009年04月03日
定期アップデート
2009年03月22日
定期アップデート
2009年01月26日
pomera
2009年01月23日
今日のBOT
2009年01月22日
BOT
2009年01月20日
Seagate HDD
PowerPCの備忘録
RSS feed
abuse
2009年01月19日
Windows 7 beta
2009年01月16日
perl-after-upgrade
2009年01月14日
アクセスカウンタ
2009年01月13日
ひとまず完了
2009年01月12日
7.1-RELEASE(適用)
2009年01月10日
hns 2.19.9
2009年01月09日
recursion no
以上、8 日分です。
先月 2009年01月 来月
1 2 03
04 05 06 07 08 09 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい
検索式:

タイトル一覧
カテゴリ分類
Powered by hns-2.19.9, HyperNikkiSystem Project