FreeBSD 8.3R-p2 → 8.3R-p3

投稿日: Leave a comment

6/12に/usr/srcがアップデートされていたのでビルド。
以下、/usr/src/UPDATINGから抜粋。

20120612:       p3      FreeBSD-SA-12:03.bind
                        FreeBSD-SA-12:04.sysret
                        FreeBSD-EN-12:02.ipv6refcount
        Fix a problem where zero-length RDATA fields can cause named to crash.
        [12:03]

        Correct a privilege escalation when returning from kernel if
        running FreeBSD/amd64 on non-AMD processors. [12:04]

        Fix reference count errors in IPv6 code. [EN-12:02]

namedはいい加減システムから抜いてほしい。それだけでもセキュリティアップデートの手間がだいぶ減るような気がする。

FreeBSD 8.2R-p7 → 8.3R-p1

投稿日: Leave a comment

FreeBSDのサーバのバージョンをアップデートした。

シリアルコンソールをつなぐのも面倒だったので、リモートから全部やってみた。
つまり、/usr/src/Makefileに書いてある手順

#  1.  `cd /usr/src'       (or to the directory containing your source tree).
#  2.  `make buildworld'
#  3.  `make buildkernel KERNCONF=YOUR_KERNEL_HERE'     (default is GENERIC).
#  4.  `make installkernel KERNCONF=YOUR_KERNEL_HERE'   (default is GENERIC).
#       [steps 3. & 4. can be combined by using the "kernel" target]
#  5.  `reboot'        (in single user mode: boot -s from the loader prompt).
#  6.  `mergemaster -p'
#  7.  `make installworld'
#  8.  `make delete-old'
#  9.  `mergemaster'            (you may wish to use -i, along with -U or -F).
# 10.  `reboot'
# 11.  `make delete-old-libs' (in case no 3rd party program uses them anymore)

のうち、5の代わりにデーモンを全部終了させる。つまりこんな感じ。

# cd /usr/src
# make -j 4 buildworld >& /root/log/buildworld_TOBY_8.3R-p1_20120507.log &
# make -j 4 buildkernel >& /root/log/buildkernel_TOBY_8.3R-p1_20120507.log &
# make installkernel

ビルド中はtail -fして終わるのを待ち、終わったら、カーネルのインストール。その後、リブートせず、サーバプロセスを全部終了させる。たとえば、/etc/rc.d/named stopのように、rc.dの起動スクリプトをひたすらstopを引数にして実行する。

そして、sshd以外のデーモンがすべて終了したら次の作業。

# mergemater -p
# make installworld
# make delete-old
# mergemaster
# reboot

これで無事再起動してくるのを待つ。

Copyright (c) 1992-2012 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 8.3-RELEASE-p1 #4: Mon May  7 23:28:56 JST 2012
    ueda@toby:/usr/obj/usr/src/sys/TOBY i386
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Atom(TM) CPU D510   @ 1.66GHz (1666.66-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x106ca  Family = 6  Model = 1c  Stepping = 10
  Features=0xbfebfbff
  Features2=0x40e31d
  AMD Features=0x20100000
  AMD Features2=0x1
  TSC: P-state invariant
real memory  = 2147483648 (2048 MB)
avail memory = 2085040128 (1988 MB)
ACPI APIC Table:
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
FreeBSD/SMP: 1 package(s) x 2 core(s) x 2 HTT threads
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP/HT): APIC ID:  1
 cpu2 (AP): APIC ID:  2
 cpu3 (AP/HT): APIC ID:  3
(以下省略)

samba動かず

投稿日: Leave a comment

飲み会で自宅サーバーの写真を見ようと思ってVPNでつないでサーバーにアクセスしたらつながらず。

アンドロイド側の問題と思っていたけど、帰ってきたらPCからもつながらず。よくよく見てみたらnmbdがcoreをはいて落ちていた。

で、再インストールしてみたりしたけど解決せず、ネットで調べたら同じ状態に陥っている人を見つけた。

smb.confを修正して動くことは確認したけど、ほかに方法はないかと思って調べたら、libiconv-1.14用のパッチを作っている人を発見。

さっそくportsのMakefileに入れ込んでから、再コンパイル・再インストール。

unix charset = EUC-JP-MS

でも動くようになった。libiconvをアップデートするときは気を付けるようにしよう。

IPv6経由でメールが送れない

投稿日: Leave a comment

嫁さんからメールが送れないといわれて気が付いた。
エクセルファイルを添付したメールがなぜか送信できない。添付ファイルなしだとOK。

VISTA、Win7の両方で同じ現象なので、メーラーの問題か。

いろいろやっていくうちに、SMTPサーバにIPv6でつながるとだめで、IPv4だと何事もなかったかのように送信できた。

とりあえず、hostsファイルにメールサーバーのIPv4アドレスを書いて、強制的にIPv4でつながるように設定して回避。

いろいろ試してからIIJに問い合わせかな。

[2012/4/26追記]

とりあえずルータの設定を変えてみた。pp 2 はIPv6 PPPoEを割り当てているPP番号。

pp select 2
  ppp lcp mru on 1454 → 削除
  ipv6 pp tcp mss limit auto → 追加

どれが聞いたかわからないけど、内容からして添付ファイルを送ったときのパケットサイズがおかしくなって、ロストしまくったとかかなぁと思われる。

とりあえず今の状態で様子見。

[2012/4/26追記2]

Wiresharkで見ていると送信パケットのエラーがたくさんある。ICMPv6 Packet too bigとか。

で、IPv6のスループットサイトで確認したら上りが激遅。なので、一か所、ルータの設定を戻してみた。

pp select 2
  ppp lcp mru on 1454 → 復活

でも変わらず。

今度はNICの設定をいじる。「大量送信オフロード(LSO) (IPv6)」をOFFにしたらエラーがほとんどなくなった。

なんだろう。いろいろチューニングしなきゃいけないのか。面倒だ。

シリアルコンソール

投稿日: Leave a comment

サーバを棚の上に置くことを考えると、モニタもキーボードもつながないことに今更気がついて、シリアルコンソールを使えるようにしてみた。

情報源は本家のHandbook。手っ取り早く、結論だけ参考にさせてもらう。

# cat /boot/loader.conf
hint.atkbd.0.flags="0x1"
boot_multicons="YES"
boot_serial="YES"
comconsole_speed="115200"
console="comconsole,vidconsole"

# cat /boot.config
-P

# grep ttyu0 /etc/ttys
#ttyu0  "/usr/libexec/getty std.9600"   dialup  off secure
ttyu0   "/usr/libexec/getty std.115200" vt100   on  secure

hint.atkbd.0.flags=”0x1″は何で設定したか正確な記憶がないが、たぶんUSBキーボードを使うための何らかのおまじないだったと思う。

boot.configで-Pを指定するとキーボードの有無でシリアルコンソールにするかどうかを選べるのだが、USBキーボードだとキーボード無しと認識するみたいで、常に-hDと指定したのと同じになってしまう。

何度かリブートしてみてちゃんとシリアルの方にブートメッセージやらが出てきてくれているので、設定としてはおしまい。落ち着いたら本当に棚にあげてしまおう。

Postfix導入

投稿日: Leave a comment

ローカルの/var/mailにたまり続ける日々のシステムレポートを何とかすべく、色々考えた。結論としてはPostfixに行き着いたが、途中ssmtpというのにも手を出した。

ssmtpは送信専用のMTAでローカルではsendmailのふりをしてくれる。外のSMTPサーバを使って配送してくれて、From:フィールドの置き換えとか、root(正確にはuid 1000未満のユーザ)宛のメールを特定のアドレスに飛ばしてくれるので、毎日のroot宛メールをさばくにはちょうどいい。

というわけで、色々試してみて、動作的にもいい感じだったのだけど、一般ユーザ(uid 1000以上のユーザ)宛は宛先を書き換えてくれず、やってもドメイン名をつけるだけという動きで、使い物にならず。
あと、smtpsのパスワードを設定ファイルに平文で書くのも違和感あり。

パスワードは少々我慢したとして、もう少し粘ればTo:フィールドのアドレス書き換えくらいできそうな気もしたけど、設定項目が少なく、断念してPostfixに手を出した。

ssmtpと同じく、送信専用にするのはこんな感じの設定でOK。

myhostname = toby.localdomain
mydomain = localdomain
myorigin = $myhostname

inet_interfaces = $myhostname, localhost

unknown_local_recipient_reject_code = 550

mynetworks_style = host

# relay setting

relayhost = [aperire.sakura.ne.jp]:587

smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/usr/local/etc/postfix/sasl_passwd
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain

inet_interfacesをローカル限定にするのと、relayhostを設定するのがポイントなのかな。今回は、relayhostとして日記のサーバのsmtps(STARTTLS)を使用するようにsasl_passwdにアカウントとパスワード等を用意。

そして、From:の書き換えは以下の行を同じくmain.cfに追加し、

# rewrite sender address for relayhost
sender_canonical_maps = hash:/usr/local/etc/postfix/sender_canonical

sender_canonicalというファイルに、<user名> <Fromアドレス>を羅列すればOK。

最後に、aliasesに各ユーザ宛の転送先をsendmailと同様に記載して、newaliasesを実行。

portsで入れた時にゴニョゴニョ言われたrc.confやperiodic.confに追記する内容等々を書きこんでおしまい。

思ったよりサクッと動いたので、もっと早くやっておけばよかったと思った。

blocksshd → sshguard

投稿日: Leave a comment

blocksshdがportsから消えてしまったので、代わりのツールということで、sshguardというのを入れてみた。

ツールの仕組みはどちらも同じで、auth.logから不正アクセスを検出し、ある時間内のアクセス数がしきい値を超えたらファイアーウォールで一定時間アクセスを防ぐというもの。

違いは、blocksshdはデーモンで動いてポーリングで処理するのに対して、sshguardはsyslogでパイプ経由で直接(リアルタイムに)処理される所。

ファイアーウォールとしてpacket filter (PF) を使っているので、sshguard-pfをインストール。

まずは、/etc/pf.conf にsshguardから制御するテーブルを追加。

table <sshguard> persist

同じく、/etc/pf.conf にフィルタールールを追加。

block in quick on $if4     proto tcp from <sshguard> to any port 22 label "ssh bruteforce"
block in quick on $if6_ext proto tcp from <sshguard> to any port 22 label "ssh bruteforce"

つぎに、/etc/syslog.confに以下の行を追加。

auth.info;authpriv.info                         |/usr/local/sbin/sshguard

最後に、pf.confを読みなおして、syslogdを再起動して完了。

syslogd再起動後、最初にログが発生した時点で、auth.logに以下のメッセージが表示されて、一応動いていることを確認。

Mar  5 20:09:23 toby sshguard[52924]: Started successfully [(a,p,s)=(40, 420, 1200)], now ready to scan.

終わり。

Windows 7 セットアップ 70%

投稿日: Leave a comment

Officeが届いたので、がしがしインストール中。

とりあえず、Office 2010とVisual C++ 2010+Windows SDK 7.1 をインストールして、大物系はセットアップ完了。

後は、メーラやその他の細々したツールを入れる必要あるけど、細々した方は置いておいて、メールとデータを移すのが先。

あともう少しという感じ。(なので 70% くらいかな、と)

flets square 改め サービス情報サイトへの接続

投稿日: Leave a comment

引越の手続きにフレッツのサービス情報サイト(旧 flets square)への接続が必要になったので、RTX810にPPPoEの設定とルーティングの設定をしたので備忘録。

まずは、PPPoEの設定。フィルタールールは長いので省略。デフォルトのままいじってない。

pp select 2
 pp name PRV/2/1/5/0/0:flets
 pp keepalive interval 30 retry-interval=30 count=12
 pp always-on on
 pppoe use lan2
 pppoe disconnect time 60
 pp auth accept pap chap
 pp auth myname guest@flets guest
 ppp lcp mru on 1454
 ppp ipcp ipaddress on
 ppp ipcp msext on
 ppp ccp type none
 ip pp secure filter in 201003 201020 201021 201022 201023 201024 201025 201030 201032 201080 201081 201082
 ip pp secure filter out 201013 201020 201021 201022 201023 201024 201025 201026 201027 201099 dynamic 201080 201081 201082 201083 201084 201098 201099
 ip pp nat descriptor 1100
 pp enable 2

次に、ルーティング設定。ルーティングテーブルはここを参照。

ip route 123.107.190.160/28 gateway pp 2
ip route 220.210.194.0/25 gateway pp 2
ip route 220.210.198.0/26 gateway pp 2

最後に、DNSのfletsドメインをRTX810に問い合わせるようにnamed.confに追加。

zone "flets" {
        type forward;
        forward only;
        forwarders {
                192.168.100.1;
        };
};

namedをリスタートして、おしまい。