Monthly Archives: 4月 2009

MCA Security

Pocket

先日のPlatformに続いてSecurityを受けてきた。

「フッ…。Platformを倒したようだが、奴なぞ我らMCA四天王の中では最弱。」とローブをかぶった顔面ベタ塗りの3人が喋っている大昔のジャンプなシーンを何となく思い浮かべたが無事突破。

MS製品の知識を問う話はどうでもいいが、最近のセキュリティ関連で知らなかった話もあって、ちょっと勉強になった。

さて残2となったわけだが次はどうしようかな。

ゴゴゴゴ…。「フッ…。PlatformとSecurityを倒したようだが、奴らなぞ(ry

BSD管理者のためのお役立ちツールrcstatus

Pocket

FreeBSDでは各種サーバソフトウェアの起動スクリプトは/etc/rc.d、/usr/local/etc/rc.d等のrc.dディレクトリに置かれる。ここにあるスクリプトを実行しようとするといちいち/usr/local/etc/rc.dと打たないといけないので面倒。

/usr/ports/sysutils/bsdadminscriptsでインストールされるシェルスクリプトに以下のようなものがある。

rcstart rcstatus rcstop rcrestart
rconestart rconestatus rconestop rconerestart

これらのスクリプトは、rc.d配下のスクリプトの扱いを(少しだけ)楽にしてくれる。

スクリプト名に”one”が含まれるものは、/etc/rc.confにservice_enable=”yes”が含まれて「いない」サービスを扱うためのスクリプト。逆に”one”が含まれて「いない」ものは、service_enable=”yes”が含まれて「いる」サービスを扱う。

ややこしいが、要するにここでいうところの、onestart, forcestartが必要なケースではスクリプト名に”one”が含まれる方を使う。

オプションは、-sで対象となるサービスの一覧表示、-lで対象スクリプトの場所表示、-pでサーチ対象としているパスの表示。

実行例

$ rcstatus -s
DAEMON
FILESYSTEMS
LOGIN
NETWORKING NETWORK
(略)
zabbix_server
$
$ rcstatus -l apache22
apache22:       /usr/local/etc/rc.d/apache22
$
$ rcstatus -p
/etc/rc.d
/usr/local/etc/rc.d
$

/etc/rc.confにftpd_enable=”YES”がない場合の実行例。pidの読み取りには管理者権限が必要のようだ。

$ grep ftpd /etc/rc.conf
$
$ rcstatus ftpd
$ rconestatus ftpd
ftpd is not running.
$ sudo rconestart ftpd
Password:
Starting ftpd.
$ rconestatus ftpd
eval: cannot open /var/run/ftpd.pid: Permission denied
ftpd is not running.
$ sudo rconestatus ftpd
ftpd is running as pid 99650.
$ sudo rconestop ftpd
Stopping ftpd.
$

注意点としては、ftpdなどのサービスの指定は、rc.dディレクトリにあるスクリプトファイル名ではなく、スクリプトファイル中に書かれるPROVIDE行での指定に準ずるところ。

なので、こんなことが起こった。

$ grep samba /etc/rc.conf
samba_enable="YES"
$ rcstatus samba
$ rcstatus smbd
$ rcstatus nmbd
$ rcstatus -s |grep smb
nmbd smbd
$
$ grep PROVIDE /usr/local/etc/rc.d/samba
# PROVIDE: nmbd smbd
# PROVIDE: winbindd
$
$ rcstatus nmbd smbd
$ rcstatus "nmbd smbd"
nmbd is running as pid 99768.
smbd is running as pid 99772.
$

Sambaはsmb, samba等では理解してくれず、”nmbd smbd”と指定する必要がある。

謎の鳥

Pocket

俺のマンションの前は山の斜面で、木々がベランダ近く、手が届きそうなところまで枝を伸ばしている。

その枝をつたってベランダのプランターまで雀が遊びにくるのだが、今日は見慣れない鳥を見かけた。

その鳥は緑がかった不思議な色をしていて、たとえて言うなら鶯色…アッー! こいつウグイスか!

こんな風に鳥の名前に思い至ったのは初めてであった。

日本語入力の設定

Pocket

日本語入力は、GNOMEだと勝手にやってくれたような気がしたが、XFCE4とかfluxboxだと自分でやる必要がある。

ただ、そんなに難しいわけでもなく、ja-uim-anthyとuim-gtkをインストールすればいいだけ。

japanese/uim-anthy、textproc/uim-gtkでmake install cleanでもいいし、portmasterでもいい。

# portmaster japanese/uim-anthy textproc/uim-gtk

Xをstartxから起動している場合には、~/.xinitrcに以下の行を加える。

export GTK_IM_MODULE=uim-anthy
export XMODIFIERS='@im=uim-anthy'
exec uim-xim &

XDMとかから起動してる場合には、~/.xsessionrcでいいと思う。

roundcubeを入れた

Pocket

webベースのIMAPクライアントであるroundcube(本家日本語)を自宅サーバにインストールした。

動作にはphpとDBが必要。本家のトップページには「RoundCube Webmail is written in PHP and requires a MySQL or Postgres database.」と書いてあるが、SQLiteでも動くので助かる。MySQLやPostgresはだるすぎる。

これでhttpさえ通ればどこからでも自分のメールボックスへアクセスできるので便利。

MCA platform

Pocket

MCA(マイクロソフト認定アソシエイト)という資格がある。一言で説明するのも難しい資格なんだが、それはともかくマイクロソフトなので世界中で認定してるのかと思ったら日本だけらしい。つまり日本法人が勝手にやってるってことなので、そこだけ見ると「どうでもいい資格臭」がするんだが、こちらも会社からいくばくかの報奨金が出るのでチャレンジしてみた。

MCAにはplatform, application, security, databaseの4種類があって、今回はplatformを。

platformはOSの使い方に関する試験で、Server 2008の内容がやや重視されている。俺が実際に触ったことのあるのは2003までなんだが、2008ではかなり色んな事が出来るようになってるらしく少し驚いた。WindowsクライアントをまとめるサーバはやっぱりWindows Serverが楽なんだろうなと思った。

試験は、前評判通り黒本と呼ばれるインプレスの問題集だけやっておけば余裕だった。試験では初めて見る設問内容も何個かあって焦ったけど、実技重視のMOSとも違うので適当にあたりはつけられる。

で。あとのMCA3つも行ってみる予定。

なお、6/30までであれば1回落ちても2度目の試験は無料キャンペーンなので、少々の勉強不足でもトライしてみようと思う。

と思ったら。

Pocket

再起動してstartxとやったら画面がめちゃくちゃに。

もういや。

Thinkpad x30でXorg7.4がやっと動いたでござるの巻

Pocket

実は年明けのxorg祭りから我がThinkpad x30でXorg7.4(xorg-server1.5, 1.6)はまったく動かなかったのだが、ふと思いついてXorg -configureで出来たxorg.confは一切信用しないで、/etc/xorg.confに適当なセクションだけ書いたら立ち上がった。

/homeディレクトリをリードオンリーでマウントして、万が一またフリーズしてfsck地獄へ備えたのだが、意外にあっさりで拍子抜けした。

でもまだintelドライバが地雷のようで、安心は出来ないっぽい。

(たぶん)関連するports

xorg-server-1.6.0,1
xf86-video-intel-2.6.3
libpciaccess-0.10.5_6
hal-0.5.11_23
xf86-input-mouse-1.4.0_5

/etc/X11/xorg.conf

Section "Files"
ModulePath   "/usr/local/lib/xorg/modules"
FontPath     "/usr/local/lib/X11/fonts/misc/"
FontPath     "/usr/local/lib/X11/fonts/TTF/"
FontPath     "/usr/local/lib/X11/fonts/OTF"
FontPath     "/usr/local/lib/X11/fonts/Type1/"
FontPath     "/usr/local/lib/X11/fonts/100dpi/"
FontPath     "/usr/local/lib/X11/fonts/75dpi/"
EndSection
Section "InputDevice"
Identifier  "Mouse0"
Driver      "mouse"
Option      "Protocol" "auto"
#Option     "Device" "/dev/sysmouse"
Option      "Device" "/dev/psm0"
Option      "ZAxisMapping" "4 5 6 7"
EndSection

/etc/rc.conf(関連部分のみ)

moused_port="/dev/psm0"
moused_enable="NO"
moused_nondefault_enable="NO"
dbus_enable="YES"
hald_enable="YES"
hald_flags=" --verbose=yes "

portscleanの代替distviper

Pocket

sysutils/bsdadminscriptsには便利ツールがたくさん入っている。

たとえばdistviper。

portsの運用を続けると、/usr/ports/distfiles/配下には古いファイルがたまっていくが、これを自動的に検知して削除してくれる。

同じ用途に使えるコマンドとしては、portupgrade付属のportscleanが有名だが、これらのコマンドはrubyが必要で、これだけのためにインストールするのも重い。

/usr/ports/distfiles/配下のすべてのファイルに対して検知を行うthoroughモードと、インストールされているportsだけに限り検知を行い、それ以外を削除するfastモードがある。

thoroughモードは時間がかかるので、portsビルド専用(つまりビルドだけしてインストールしない)マシンでもないかぎりfastモードで十分。

 -dで消されるファイルの確認、-iで消す前に聞くようになる、-qでメッセージ抑制、-vでverboseといったオプションがある。

実行例

$ distviper -d fast
delete zsh-4.3.9.tar.bz2
(中略)
$ sudo distviper fast
delete zsh-4.3.9.tar.bz2
delete zsh-4.3.9-doc.tar.bz2
delete xorg/driver/xf86-video-ati-6.11.0.tar.bz2
delete xorg/driver/xf86-video-mach64-6.8.0.tar.bz2
delete xorg/driver/xf86-video-nv-2.1.12.tar.bz2
delete xorg/driver/xf86-video-r128-6.8.0.tar.bz2
delete xorg/driver/xf86-video-radeonhd-1.2.4.tar.bz2
delete xorg/driver/xf86-video-openchrome-0.2.903.tar.bz2
delete gnome2/gdm-2.24.1.tar.bz2
delete gnome/esound-0.2.41.tar.bz2
delete a2ps-4.13b.tar.gz
delete libssh2-1.0.tar.gz
delete xc/vnc-4_1_3-unixsrc.tar.gz
delete xc/X430src-1.tgz
delete audiofile-0.2.6.tar.gz
delete samba-3.0.34.tar.gz
delete thunderbird-2.0.0.19-source.tar.bz2
$

ということで、/usr/local/etc/periodic/weeklyというディレクトリを(無ければ)作って、998.deldist.shとか適当な名前で下記のスクリプトを置いて、週1で自動的に実行されるようにしておいた。

/etc/local/etc/periodic/weekly/998.deldist.sh

#!/bin/sh
DELCMD='/usr/local/sbin/distviper'
DELOPT='fast'
rc=0
if [ -x $DELCMD ]; then
echo 'Searching and deleting outdated distfiles...'
$DELCMD $DELOPT || rc=$?
echo 'Done.'
else
echo "$DELCMD is not installed and I gave up."
rc=2
fi
exit "$rc"

Turbo-CE(Linux認定)を受けた。

Pocket

Turboなんて今では下り坂のLinuxだが、会社から幾ばくかの報奨金が出るのでトライして無事合格。

しかしLinux周りの「知識」を問われるようなケースが多くて、この認定そのものには全く意味がないと思う。

LPICもたいがいだったけど、これに比べればまだあちらの方がましだった。

問題集としては、IDGという出版社から出ている「直前必修問題集」しかない。この時点ですでに嫌な雰囲気だ。つまり誰も注目してないという証拠だから。しかも、俺の受けるバージョンに対応した本はすでに絶版だった。先に調べろよ俺。いやまて曲がりなりにも認定試験が継続してるのに絶版されちゃうって何よ。

しかし報奨金目当てなので中身についてはどうでもいい。くだんの本は最寄りのブックオフ100円コーナーに転がっていたのでゲット。

Turbo Linuxも仮想環境に評価版を入れて使っ…てみようとしたが、デスクトップ環境の醜悪さが受け付けず即消去して、勉強は問題集一本に絞ったんだがこの問題集がまたひどい。

「WWWは20年前から存在する。正しいか否か。」歴史の勉強…。つか、こんな絶対値で年を指定していいのか?

「Turbo Linuxのカーネルは一つである。正しいか否か。」何を言っているのか分からない。*1

「パスワードを忘れてしまったユーザのために再設定をした。管理者の仕事として正しいか。答え: 正しくない。そもそもそんなことがないようユーザを教育せよ。」いやいやいや。

この恐ろしい問題集であるが、冒頭のページにターボリナックスが直々に推薦文を書いている。お墨付ということです。こんな明後日方面の問題が出たら正直合格する自信なんてないと直前まで戦々恐々とした。

いざ受けてみたら問題は素直で安心したっていうか問題集は全然意味ねーじゃねーか。心配して損した。

しかも問題集ではろくに扱われていなかったturbotools(Turbo Linuxの管理ツール)が結構出た。そこはさっぱり分からなかった。

*1:答えの説明を見るに、SMP向けに別のカーネルが用意されていることはありません、と言いたかったようだ。