Home > Linux > System Archive

System Archive

rodem再インストール(2012/01/17)とバックアップ作成

  • Posted by: YAMAGISHI Norimasa
  • 2012年1月18日 20:41
  • System | rodem

HDDを入れ替えたマシンにTodo Backupからの書き戻しを行なった。

特に問題なく起動し使用できている。

ついでに、EASEUS Todo Backup Ver.3.0によるバックアップを行なっておこう。

今回インストールされているものは、以下のもの。

  • Avira Free AntiVirus 2012 (設定、最新ファイルに更新済み)
  • CtrlEscレジストリ
  • Explzh
  • FastCopy
  • Logicool Mouse driver
  • DVD付属ソフト
  • hunuaaCap
  • 秀丸
  • Firefox
  • Thunderbird
  • Office 2003
  • Meadow
  • DaemonTool
  • Abobe CS2
  • Acrobat 8
  • Visual Studio 6(含むパッチ)
  • Epson Printer Driver
  • Roland CAMM 1 Driver
  • Capture Stuff
  • TeraTerm 4.70
  • ActivePerl5.8.9.827
  • Open Command Window Here
  • 読んde!ココ Ver.9
  • iTune 10.4
  • VLC 1.1.11
  • DVD MovieWriter 4(+パッチdmf4_patch_j051102.exe)
  • Oscar X7 Mouse Driver(CD)と自作マクロ
  • みゅーぽん 1.04
  • Media Player Classic - Home Cinema v1.5.2.3456
  • UWSC 4.7b
  • HyperCam 2.25.01(2012/02/06追記)
    • キャプチャエリア、フレーム数、圧縮Codecを設定
    • ホットーキーを使用するアプリケーションと重ならないように設定。
    • Show rectangle around recorded areaのチェックをはずす。
    • Leave HyperCam Openedをチェック。
    • 保存先の設定。

  • 全ディスクのウィルススキャン
  • IMEを最小化して、VJEモードに設定
  • 秀丸を右クリックから追加できるように
  • iTunesのデータを更新
  • 読んDEココの保存先などを設定する(一度画像と、テキストをスキャンする)(2012/02/06追記)
  • スクリーンセーバーの時間を1時間に変更する(2012/02/06追記)

さらに、今後も必須となるだろう、homeの中身(binなど)についても、バックアップから書き戻しておいた。

なお、RoboFormは使用しなくなる可能性があるので、事前には入れないでおく。
また、InnoSetupについては、今後のある程度のバージョンアップが見込めるので、フルバックアップの前にはインストールしないでおく。

CentOS 5.7アップデート

  • Posted by: YAMAGISHI Norimasa
  • 2011年10月 7日 21:26
  • System | tower

Apachekillerの影響もあるので、CentOSを5.7にアップデートすることにした。

「yum update」で簡単にアップデートできるはずなのだが、以前Skypeを使うために入れた新しいlibstdc++が依存性の障害になってしまった。

もはや、Linux上でSkypeを使うこともなくなったので、libstdc++-4.3.2は案インストールすることにした。といっても、既存のlibstdc++もあるので、バージョンを指定して案インストールすることになる。

# rpm -e libstdc++-4.3.2
# yum update

tower: HDCS-UR 1.0R接続

2Gのハードディスクを購入し、rodemに接続していたHDCS-U 1.0をtowerに接続することにした。

まず、HDCS-U 1.0をtowerにUSB接続してフォーマット。

http://rally.jp/comp/archives/2009/09/usb.php

マウントして、既存のUSBハードディスクをコピー。

# cp -rp /misc/prj/backup /mnt/usbhd0
# cp -rp /misc/prj/video /mnt/usbhd0

このHDDはautomountせずに常時接続状態で使うので、fstabに記載する。
また、/etc/auto.miscから、以前のUSBHDD接続のための記載を削除する。
さらに、/etc/samba/cmb.confの共有ディレクトリ名を変更。

既存のUSBハードディスクをumountして、接続解除。

アップデート: Cent OS 5.6

  • Posted by: YAMAGISHI Norimasa
  • 2011年4月13日 01:38
  • System | tower

本家RHELからずいぶん遅れたが、CentOS 5.6がリリースされた。

1週間ほど様子を見て、yumによるアップデート敢行。

mod_nssのインストールに関する問題があるようだが、使用していないので特に問題なし。

アップデートのあとにやったことは、Apacheがアップデートされたので、SuExecの無効化のために、またリネームしたくらい。

autofsによるUSBディスクマウント

新しいtowerはスリムデスクトップタイプなので、ハードディスクが1機しか入らない。
そこで、towerにUSB経由で外部HDDを接続することにした。

とりあえず、ひかりTV録画用に使っていたHGST製のHDS721050CLA362、500GBをつないでみたが、データのコピー中にエラーが発生したのであきらめ、Mactor 7V300F0 300GBを使うことにした。

とりあえず念のためディスク容量100%まで書き込んでも、エラーは発生せず。

USB接続なので、(実際に行うかはともかく)取り外せるようにautofsでマウントすることにした。

まず、gnome-mountを無効にする。

[システム]-[設定]-[リムーバブル・デバイスとメディア]で、「ドライブがホット・プラグされたらマウントする」のチェックをはずせばOK。

そして、autofsの設定は/etc/auto.miscに以下のように。

prj	-fstype=ext3	:/dev/sda1

また、これにともない、Sambaの設定も、

smb.confでは

  • misc/prj prj
  • misc/prj/video video


で公開。

これで、/misc/の下にprjというディレクトリとしてマウントされる。
さらに、Windowsからのネットワークドライブとしての見え方には変わりはない。
ただ、Windowsがこのドライブをネットワークドライブとしてマウントしたりしている場合、Linux側でアンマウントすることが出来ないので、事前にWindowsマシンを落しておく必要がある。

まあ、ハードディスクを2台入れることが出来るマシンなら、わざわざこんなこともしないのだが...

またまたCent OSインストール

  • Posted by: YAMAGISHI Norimasa
  • 2011年4月 4日 21:41
  • System | tower

基本的には、新サーバOSインストール新サーバ再構成手順 その1を元に、変更点のみ記載。

ディスクパーティション設定

ディスクは、80Gになったので、割り当ては変更。
最初から、LVMのスナップショット用領域として、約7Gを空けてインストールすることにする。

/boot 100M
LVM領域から SWAP 2G
/ 70G

パッケージ選択

「デスクトップ環境」-「GNOME」
「アプリケーション」-「Emacs」
「アプリケーション」-「Office/生産性」をはずす。
「アプリケーション」-「グラフィカルインターネット」-「firefox」
「アプリケーション」-「グラフィカルインターネット」-「thunderbird」
「開発」-「開発ツール」
「開発」-「開発ライブラリ」
「サーバー」なし
「ベースシステム」-「X WIndow System」
「ベースシステム」-「ベース」
「仮想化」なし
「クラスタリング」なし
「クラスタストレージ」なし
「言語」-「日本語のサポート」

そのほか、適当に必要なさそうなソフトウェアは削除。

データの移行は、ルーターで外部との接続を切り、rsyncでネットワーク経由で旧サーバーからコピー。

# rsync -an --delete tower.rally.or.jp:home/ home

なお、インストール後、起動時に
「/dev/hdd: open failed: メディアが見つかりません」
という、エラーが起きる。
udevがhddを見つけているようだ。

これは、LVMを使った結果、DVDドライブである/dev/hddをLVMマネージャが認識してしまっているため。

解消するには、vgscanを実行する。

次回は、いちいちここに書かずに、ちゃんと別途手順書を作ろう...

サーバー用ハードウェア入れ替え

つい先日作ったtowerが崩壊を始めたので、サーバーマシンを安定稼動しているloplassに入れ替えることにした(そもそも、安定性に疑問があるマシンをサーバーにしたのが間違いなのだが...)。

再び、towerとloplassのメモリ(1Gと500M)、DVD-Multiドライブ、フロッピードライブ(現towerのものは調子がよくない)を入れ替える。

loplassについているビデオチューナーボードはとりあえず他で使う予定が無いので、そのまま入れたままにした。

さらに常用しないであろう新towerには、倉庫にしまってあった小型のPS2キーボードと、PS2マウスを倉庫から引っ張り出して接続する。

またまたtower崩壊?

  • Posted by: YAMAGISHI Norimasa
  • 2011年4月 2日 21:07
  • System | tower

動作中にディスクに書き込みが出来なくなり、再起動せず。
起動時に、ルートファイルシステムにfsckがはじまり、リードオンリーでしかマウントされなず、auditdの起動には失敗してとまる。また、fsck自体にも異常に時間がかかる。

ディスクのトラブルである可能性がかなり高い。

それが、M/B側のインターフェースかディスク自体であるかはわからないが、どちらにしろ、このまま使用することはできない(まあ、おそらくM/B側だろうが...)。

インストールディスクを使いレスキューモードで立ち上げると、ルートファイルシステムは/mnt/sysimageにリードライトでマウントされるので、なんとか、生き残ったデータの吸出しはできそうだ。

とりあえず、/etc/fstabで、/devVolGroup00/LogVol01の6カラム目を1から0にしてfsckを行わないようにしてみたが、やはり起動しない。

そこでUbuntuのCDで立ち上げて、lvmをインストールし領域をアクティブにしてマウント、新規マシンにネットワーク経由でコピーすることにした。
Ubuntuでは、rootが開放されていないので、sudoを使う。

$ sudo apt-get install lvm2
$sudo lvm vgscan
Reading all physical volums. This may take a while...
Found volume group "VolGroup00" using metadata type lvm2
$ sudo lvm vgchange -a y
2 logical volume(s) in volume group "VolGroup00" now active

が、しばらくの電源オフの後に起動した。

LVMのスナップショット領域を作成

  • Posted by: YAMAGISHI Norimasa
  • 2011年3月30日 14:18
  • System | tower

懸案のスナップショットによるバックアップを実行することにした。

論理ボリュームに空きを作らなかったので、まず、スナップショット領域を作成する。

まず、事前にバックアップを取る。
そして、OSをインストールCDからレスキューモードで起動する。

boot: linux rescue

# lvm vgchange -a y
# fsck.ext3 -f /dev/VolGroup00/LogVol01
# resize2fs /dev/VolGroup00/LogVol01 250G
# lvm lvresize -L 250G /dev/VolGroup00/LogVol01

Do you really want to reduce LogVol00? [y/n]: y

# exit

再起動後に縮小されたかを確認する。

# lvdisplay /dev/VolGroup00/LogVol01
# vgdisplay

Free PE / Size 715 / 22.34GB

22.3Gの空きができた。
まあ、対象ボリュームの10%にも満たないが、バックアップのためのミラーを更新する間だけなので、十分だろう。

スナップ領域が確保できたので、以下の自動バックアップスクリプトを作成して、cronに日に1回snapback、週に1回snaptgzを登録する。
snapbackは必要な領域をバックアップ用HDDにrsyncでコピー、snaptgzはsnapbackに加え、リムーバブルディスクにバックアップコピーするためのもの。

snapback

#!/bin/sh

RM=/bin/rm
MV=/bin/mv
TAR=/bin/tar
NICE=/bin/nice
RSYNC=/usr/bin/rsync

BACKUP_DIR=/var/backup
SNAP_DIR=/mnt/snap

VOL_GROUP=VolGroup00
TARGET_VOL=LogVol01
SNAP_VOL=snap
TARGET_VOL_PATH=/dev/${VOL_GROUP}/${TARGET_VOL}
SNAP_VOL_PATH=/dev/${VOL_GROUP}/${SNAP_VOL}
SNAP_VOL_SIZE=22G

DATE=`date '+%y%m%d'`

lvcreate -s -L ${SNAP_VOL_SIZE} -n ${SNAP_VOL} ${TARGET_VOL_PATH} >& /dev/null
mount ${SNAP_VOL_PATH} ${SNAP_DIR} || exit

${NICE} -n 5 ${RSYNC} -aq --delete ${SNAP_DIR}/etc ${BACKUP_DIR}
${NICE} -n 5 ${RSYNC} -aq --delete ${SNAP_DIR}/var/lib/mailman ${BACKUP_DIR}
${NICE} -n 5 ${RSYNC} -aq --delete ${SNAP_DIR}/var/lib/mysql ${BACKUP_DIR}
${NICE} -n 5 ${RSYNC} -aq --delete ${SNAP_DIR}/var/named/chroot/etc ${BACKUP_DIR
}/named
${NICE} -n 5 ${RSYNC} -aq --delete ${SNAP_DIR}/var/named/chroot/var ${BACKUP_DIR
}/named
${NICE} -n 5 ${RSYNC} -aq --delete ${SNAP_DIR}/var/www ${BACKUP_DIR}
${NICE} -n 5 ${RSYNC} -aq --delete ${SNAP_DIR}/root ${BACKUP_DIR}
${NICE} -n 5 ${RSYNC} -aq --delete ${SNAP_DIR}/home ${BACKUP_DIR}

umount ${SNAP_DIR}
lvremove -f ${SNAP_VOL_PATH} >& /dev/null

snaptgz

#!/bin/sh

RM=/bin/rm
MV=/bin/mv
TAR=/bin/tar
NICE=/bin/nice
RSYNC=/usr/bin/rsync

BACKUP_DIR=/var/backup
SNAP_DIR=/mnt/snap

VOL_GROUP=VolGroup00
TARGET_VOL=LogVol01
SNAP_VOL=snap
TARGET_VOL_PATH=/dev/${VOL_GROUP}/${TARGET_VOL}
SNAP_VOL_PATH=/dev/${VOL_GROUP}/${SNAP_VOL}
SNAP_VOL_SIZE=22G

lvcreate -s -L ${SNAP_VOL_SIZE} -n ${SNAP_VOL} ${TARGET_VOL_PATH} >& /dev/null
mount ${SNAP_VOL_PATH} ${SNAP_DIR} || exit

${NICE} -n 5 ${RSYNC} -aq --delete ${SNAP_DIR}/etc ${BACKUP_DIR}
${NICE} -n 5 ${RSYNC} -aq --delete ${SNAP_DIR}/var/lib/mailman ${BACKUP_DIR}
${NICE} -n 5 ${RSYNC} -aq --delete ${SNAP_DIR}/var/lib/mysql ${BACKUP_DIR}
${NICE} -n 5 ${RSYNC} -aq --delete ${SNAP_DIR}/var/named/chroot/etc ${BACKUP_DIR
}/named
${NICE} -n 5 ${RSYNC} -aq --delete ${SNAP_DIR}/var/named/chroot/var ${BACKUP_DIR
}/named
${NICE} -n 5 ${RSYNC} -aq --delete ${SNAP_DIR}/var/www ${BACKUP_DIR}
${NICE} -n 5 ${RSYNC} -aq --delete ${SNAP_DIR}/root ${BACKUP_DIR}
${NICE} -n 5 ${RSYNC} -aq --delete ${SNAP_DIR}/home ${BACKUP_DIR}

umount ${SNAP_DIR}
lvremove -f ${SNAP_VOL_PATH} >& /dev/null

cd ${BACKUP_DIR}
# for i in etc mailman www root home
for i in etc mailman named mysql www root home
do
        if [ -e ${BACKUP_DIR}/tgz/$i.tar.gz.9 ] ; then rm ${BACKUP_DIR}/tgz/$i.t
ar.gz.9; fi
        if [ -e ${BACKUP_DIR}/tgz/$i.tar.gz.8 ] ; then mv ${BACKUP_DIR}/tgz/$i.t
ar.gz.8 ${BACKUP_DIR}/tgz/$i.tar.gz.9; fi
        if [ -e ${BACKUP_DIR}/tgz/$i.tar.gz.7 ] ; then mv ${BACKUP_DIR}/tgz/$i.t
ar.gz.7 ${BACKUP_DIR}/tgz/$i.tar.gz.8; fi
        if [ -e ${BACKUP_DIR}/tgz/$i.tar.gz.6 ] ; then mv ${BACKUP_DIR}/tgz/$i.t
ar.gz.6 ${BACKUP_DIR}/tgz/$i.tar.gz.7; fi
        if [ -e ${BACKUP_DIR}/tgz/$i.tar.gz.5 ] ; then mv ${BACKUP_DIR}/tgz/$i.t
ar.gz.5 ${BACKUP_DIR}/tgz/$i.tar.gz.6; fi
        if [ -e ${BACKUP_DIR}/tgz/$i.tar.gz.4 ] ; then mv ${BACKUP_DIR}/tgz/$i.t
ar.gz.4 ${BACKUP_DIR}/tgz/$i.tar.gz.5; fi
        if [ -e ${BACKUP_DIR}/tgz/$i.tar.gz.3 ] ; then mv ${BACKUP_DIR}/tgz/$i.t
ar.gz.3 ${BACKUP_DIR}/tgz/$i.tar.gz.4; fi
        if [ -e ${BACKUP_DIR}/tgz/$i.tar.gz.2 ] ; then mv ${BACKUP_DIR}/tgz/$i.t
ar.gz.2 ${BACKUP_DIR}/tgz/$i.tar.gz.3; fi
        if [ -e ${BACKUP_DIR}/tgz/$i.tar.gz.1 ] ; then mv ${BACKUP_DIR}/tgz/$i.t
ar.gz.1 ${BACKUP_DIR}/tgz/$i.tar.gz.2; fi
        if [ -e ${BACKUP_DIR}/tgz/$i.tar.gz.0 ] ; then mv ${BACKUP_DIR}/tgz/$i.t
ar.gz.0 ${BACKUP_DIR}/tgz/$i.tar.gz.1; fi
        if [ -e ${BACKUP_DIR}/tgz/$i.tar.gz ] ; then mv ${BACKUP_DIR}/tgz/$i.tar
.gz ${BACKUP_DIR}/tgz/$i.tar.gz.0; fi
        ${NICE} -n 5 ${TAR} zcf ${BACKUP_DIR}/tgz/$i.tar.gz ./$i --exclude ./mys
ql/mysql.sock --exclude ./named/var/run/dbus/system_bus_socket
done

BCTV4-PCIをtowerにインストール

PC上でデジタルTV放送を見るためにブルーレイレコーダーDMR-BF200が購入した。

PT2を買えばいいという突っ込みは無しだ。

確かにPT2であれば、本体、カードリーダ、分波器、B-CAS再発行手数料で、25,000円あれば、おつりが来る。さらに、4波同時受信も可能だが、そのためにPCを一台立ち上げっぱなしにして、安定稼働させなければならないし、そもそも詐欺的手法でB-CASカードを再発行してもらうのは気が向かない。

もちろん、このB-CASという仕組みに賛成なわけではない、というか否定的なのだが...

閑話休題。

配送されたので、早速PCに接続するべく作業を開始したのだが、最初に遭遇した問題は...

BF200の出力は、コンポジットとHDMIしか無いのだが、それで十分だと思っていた。

しかし、大失敗だった。

接続しようと思っていたloplassのTVチューナーカードには、入力がS端子しか無かった。そこで、やむなくtowerにbt878搭載のBCTV4-PCIを接続。

接続後は、なにもしなくてもカーネルのbtドライバで認識。

# dmesg | grep BCTV

最初、視聴用ソフトはVLCを使おうと思ったが、VLCでうまくコンポジット入力を表示できない。

そこでxawtvをyumでインストールして、試してみた。

しかしアスペクト比が4:3固定のようで、却下。

が、xawtvについて調査中に、Video4Linuxのコントローラであるv4l2-ctlというコマンドで、Video4LinuxによるTVチューナーボードの入力やチャンネル設定ができることを知る。

v4l2-ctlコマンドはivtvに含まれているようなので、yumでivtvをインストール。

VLCでメディアとしてキャプチャーデバイスを選択後、「v4l2-ctl -i 1」で、コンポジット入力になることを確認。

だが、TVを見るたびに「v4l2-ctl -i 1」を打つのは非常にめんどうだ。

そこで、ふたたびVLCについていろいろ見てみたところ、[設定]で[設定の表示]で「すべて」を選び[入力/コーデック]-[アクセスモジュール]-[Video4Linux2]で以下のようにすれば、デフォルトで、Composit入力になることが判明。

  • [ビデオ入力]-[デバイス名] /dev/Video0
  • [ビデオ入力]-[標準] NTSC
  • [ビデオ入力]-[入力] 1

さらに、[入力/コーデック]-[アクセスモジュール]-[Video4Linux2]において、[オーディオ入力]-[キャッシュ値]を「300」から「50」程度に減らすと、映像の遅れが少なくなる(0にすると映像がおかしくなる)。

また、デフォルトでは、Video4Linuxの出力解像度が320x240になってしまうため、非常に写りが悪い。

そこで、[ビデオ入力]-[幅]、[高さ]でサイズを720x480に指定する。

VLCであれば、アスペクト比も調整できるし、これにて一件落着。

インストール: pflogsumm

postfixのログ解析ツール、pflogsumm。

インストールといってもpostfixの一部として、以前postfixをBuildしたときにpflogsummもBuildされている。

ということで、rpmでインストールするだけ。

なのだが、必要なPerlモジュールを事前にインストールしてから、rpm -ivh。

# yum install perl-Date-Calc
# rpm -ivh /usr/src/redhat/RPMS/i386/postfix-pflogsumm-2.3.3-2.1.el5_2.i386.rpm

さらに、毎日のレポートがメールで届くように、cronに登録する。

コマンドラインオプション

-d today 今日のレポート
-d yesterday 昨日のレポート

-e
Message detail表示
処理番号と同時にすべてのメイルについて送信者、受信者を表示する。

-h
ホスト、ドメイン名の集計をTOP に限定する。0なら限定しない。

-i
--ignore_case
ドメイン名以外のユーザー名もすべて小文字に変換して扱う。
通常は、ドメイン名のみを小文字に変換する。

-m
uucp形式のアドレスも扱う。

--mailq
コマンドの最後にmailqコマンドを表示する(キューに入っているメイルを表示する)。

--no_bounce_detail
--no_deferral_detail
--no_reject_detail
それぞれ、bounce、deffer、rejectされた詳細を表示しない。

--no_no_msg_size
メッセージサイズが無いものについてのレポートを表示しない。

--no_smtpd_warnings
smtpdのWarningを「Warings」セクションにおいて表示しない。
SPAMやエラーなどで、(実害のない)大量のWaringが表示される場合などに設定する。

--problems_first
Problems(bounce、reject、defer、waring)などのレポートを先に表示する。
表示の順番が入れ替わるだけで、レポートに含まれるものは同じ。

--rej_add_from
「message reject detail」セクションに、ドメイン名だけでなく、メールアドレスも表示する。

-q
レポート内容が「none」、つまり内容が空のセクションについてはへッダを表示しない。
--smtpd_stats
smtpdコネクションの統計を表示する。

--syslog_name=name
ログ内でのpostfixのエントリーの名前を指定する。あえて変更していなければ、設定の必要なし。

-u
ユーザーの集計をTOP に限定する。0なら限定しない。

--verbose_msg_detail
「message deferral detail」の集計において、bounce、rejectの原因の同一性までも細かく見る。

--verp_mung
Senderのアドレスを、適当に短くまとめた形にして処理する。
正確には、'-'で区切られた数字の部分を'ID'に置換して処理する。
--verp_mung=2は、さらに'-'数字以降を省略して処理する。

--zero_fill
集計の桁揃えのために、数字の頭を0で埋める。

user_prefsの自動更新

  • Posted by: YAMAGISHI Norimasa
  • 2011年2月 1日 13:16
  • System | tower

今まで松田氏のuser_prefsは、自動更新はしていなかったが、今後は、自動更新をすることにする。

更新しなかったことによってクリティカルな事態が発生するわけではないので、向こうに与える負荷も考え、更新は週に1回にする。

ということで、下記のスクリプトをuser_prefsという名前で、/etc/cron.weekly/の下に保存して、実行ビットをつける。

#!/bin/sh

URL=http://www.flcl.org/~yoh/user_prefs
TMPFILE=/tmp/user_prefs
SADIR=/etc/mail/spamassassin

if [ -e ${TMPFILE} ] ; then
  /bin/rm -f ${TMPFILE}
fi

wget -qN -O ${TMPFILE} ${URL}

if [ -s ${TMPFILE} ] ; then
  if [ -e ${SADIR}/user_prefs.old ] ; then
    /bin/rm -f ${SADIR}/user_prefs.old
  fi
  /bin/mv ${SADIR}/user_prefs ${SADIR}/user_prefs.old
  /bin/mv ${TMPFILE}    ${SADIR}/user_prefs
fi

mail Reject list

当サイトでメールを拒否しているリスト。
下記以外でも、悪質サイトとして高名なところは拒否しています。

CIDR

203.155.245.0/24 COMNET-TH(th)
113.20.184.0/24 ToastNet-Net(ph)
101.78.16.0/20 YOURWEBSTREAM-PH(ph) 2011/01/30
112.109.6.0/24 Alpha-Connect(ph) 2011/01/30
182.32.0.0/12 CHINANET SHANDONG PROVINCE NETWORK(cn) 2011/01/31
219.235.96.0/19 CHINA NETCOM(cn) 2011/01/31
218.156.80.0/24 GDSYS(kr) 2011/02/01
113.10.162.0/24 Trans for reach.com 2011/02/04下記に変更
113.10.160.0/19 Trans for reach.com 2011/02/07
114.112.224.0/19 i4HK Limited 2001/02/14
211.233.62.0/24 KIDC-INFRA
115.85.144.1/20 Taiwan Fixed Network 2011/08/28
211.233.0.0/18 KIDC 2011/08/29
211.47.140.0/24 Incoin 2011/09/18
112.109.4.0/22 NEXT WEB PHIL 2011/09/20
27.123.224.0/19 pccwglobal.com 2011/12/05
111.223.192.0/19 PACNET 2011/12/05
49.156.176.0/20 ACE IDE 2012/01/12
209.205.224.0/20 SD CBS TRANSIT 2012/01/27
209.54.48.0/20 Native Hosting, Inc. 2012/01/06
91.228.68.0/22 FOP Opria Ruslan Dmitrievich 2012/04/18
64.202.37.0/24 ALTAWAY-BLK kurokage-keiba.com 2012/05/08

IPアドレス

112.78.127.157 Sakura Internet 2011/08/28

hostname

umapuro.com
binzmailsystem.net 2012/04/23

Sender

Helo

rakuraku-navi.info 2010/01/30
geomax.co.jp 2011/01/31
mail-b.net 2011/09/18
x-mailer.jp 2011/09/21

From

7uma.com 2011/11/09
/7uma.*\.com/ 2012/01/12
/ko-haito\.com/ 2012/02/14
/7uma.*\.net/ 2012/02/22
/qeen-land.*\.info/ 2012/02/24
/7uma.*\.info/ 2012/02/24
/kurokage-keiba\.com/ 2012/04/18

taRgreyをtarpit & greylistに

  • Posted by: YAMAGISHI Norimasa
  • 2011年1月30日 02:17
  • System | tower

SPAM対策としてtaRgreyを使用していたが、125秒のtarpitをすり抜けてくるSPAMが、まだかなりある。

そこで、tarpit & greylistモードを試してみることにした。

/etc/init.d/postgreyで--targreyオプションを削除し、--tarpit=35に。

おそらくこれでも、すり抜けてくるものもあるだろうが、それらは頻発するようならblacklist指定を考えることにする。

新サーバ再構成手順 その2

  • Posted by: YAMAGISHI Norimasa
  • 2011年1月28日 20:22
  • System | tower

以前も使っていたが新サーバ稼働後のインストールでかまわないプログラム、設定など。

w3m、emacs-w3m

Mule-UCS

新サーバ再構成手順 その1

  • Posted by: YAMAGISHI Norimasa
  • 2011年1月23日 00:40
  • System | tower

yumリポジトリの追加

/etc/yum.repos.d/をコピーして公開鍵を登録するだけも良いのだが、ついでに今までのものを若干変更した。

EPELとSorceForgeをrpmで登録する。

# rpm -ivh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

そして、旧サーバのサードパーティー用リポジトリthird.repoをコピーして整理して公開鍵を追加する。

[atrpms]
name=Redhat Enterprise Linux $releasever - $basearch - ATrpms
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
enabled=0
gpgcheck=1
gpgkey=http://packages.atrpms.net/RPM-GPG-KEY.atrpms

# rpm --import http://packages.atrpms.net/RPM-GPG-KEY.atrpms

旧マシンのバックアップファイルを一時的に展開する

# mkdir tower
# cd tower
# scp nor@tower:/var/backup/tgz/*.110103
# ls | xargs -n 1 tar zxvf

iptables

# cp etc/sysconfig/iptables-config /etc/sysconfig
# cp etc/sysconfig/iptables /etc/sysconfig
# service iptables restart

Apache

# yum groupinstall "Web Server"
# cp etc/httpd/conf/httpd.conf /etc/httpd/conf
これ以外にも、ssl.confなど/etc/httpd/conf.d/内で自分で変更したファイルがあればコピーする。

/var/wwwのデータを復旧する。

# service httpd start
# chkconfig --level 345 httpd on

samba

# yum groupinstall "Windows File Server"
# cp etc/samba/* /etc/samba
# chkconfig --level 345 smb on
# service smb start

mySQL

# yum install mysql
# yum install mysql-server
# vi /etc/my.cnf

以前のmy.cnfをコピーしてもよいのだろうが、以下のみ加えておく。

[mysqld]
default-character-set = utf8
[mysql]
default-character-set = utf8

そして、起動設定と起動。

# chkconfig --level 345 mysqld on
# service mysqld start

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

こんなメッセージが出るが、support-files/mysql.serverは/etc/mysqldのことなので、なにもしなくていい。

が、以下のメッセージには従う。

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h levin.rally.or.jp password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

# /usr/bin/mysql_secure_installation
パスワード入力以外は「Enter」でかまわない。

Dovecot

# yum -y install dovecot
# cp etc/dovecot.conf /etc

# service dovecot start
# chkconfig --level 345 dovecot on

postfix

標準のPostfixは、PostgreSQLを使うようになっているので、mySQLを使うためにソースからビルド。

# wget http://ftp.riken.jp/Linux/centos/5.5/os/SRPMS/postfix-2.3.3-2.1.el5_2.src.rpm

また、taGrayからsleep中に接続を切れるように、postfix-sleep.patchを、K2-net small patchesからとってくる。

# rpm -ivh postfix-2.3.3-2.src.rpm
# cp postfix-sleep.patch /usr/src/redhat/SOURCES <-パッチのコピー。
# vi /usr/src/redhat/SPECS/postfix.spec <-specファイルの編集

%define MYSQL 1 <-MySQLを使うように指定
...
Patch11: postfix-sleep.patch <- # Patchesに以下の行を追加。

yum install pcre-devel mysql-devel <-必要なライブラリをインストール
# rpmbuild -ba --define 'dist .el5_2' /usr/src/redhat/SPECS/postfix.spec
# rpm -ivh /usr/src/redhat/RPMS/i386/postfix-2.3.3-2.1.el5_2.i386.rpm

/etc/postfix/main.cfに以下を追加。

smtp_destination_recipient_limit = 1

/etc/postfix/master.cfでは、
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject


# mkdir Maildir <-既存ユーザーである、rootのMaildirを作成
# chmod 700 Maildir
# service sendmail stop
# service postfix start
# service saslauthd start
# chkconfig sendmail off
# chkconfig --level 345 postfix on
# chkconfig --level 345 saslauthd on
# alternatives --config mta
<-/usr/sbin/sendmailが/usr/sbin/sendmail.postfixにリンクされる。

このmySQLを使う自前でビルドしたPostfixは、yumでアップデートして欲しくないので、/etc/yum.confに除外設定をしておく。

exclude=postfix*

OP25B(Outbound Port25 Blocking)に対応

/etc/postfix/master.cfの設定を以下のようにコメントアウト。

submission inet n       -       n       -       -       smtpd
#  -o smtpd_enforce_tls=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

Docomoあてメールのエラー対策

/etc/postfix/main.cfに以下を追加。

smtp_destination_recipient_limit = 1

taRgrey

まず、postgreyのインストール

# yum install postgrey
# cp etc/init.d/postgrey /etc/init.d

taRgreyのサイトから使用しているpostgreyのバージョンに対応するパッチをダウンロード。

# pushd /usr/sbin
# patch -p0 < ~/targrey-0.31-postgrey-1.33.patch

/etc/yum.confでアップデート除外設定。

exclude=postfix* postgrey

以下の/etc/postfix内の設定ファイルを旧マシンからコピーする。

check_ns
check_sender_info
permit_client_nots25r
prepend_client
reject*
whitelist*

/etc/postfix/main.cfを旧マシンのものを参考にしながら修正。
(ついでに、自作のreject_my_fromの設定も行う)

/etc/init.d/postgreyで起動オプションを変更。

OPTIONS="--unix=$SOCKET --inet=10023 --tarpit=125 --targrey --retry-count=2 --delay=3600"

# postfix reload <- Postfix再起動

SpamAssassin 3.2.5 + 日本語パッチ

SpamAssassinのルール設定

松田氏のuser_prefsはhttp://www.flcl.org/~yoh/user_prefsに移動している。

spampd

Spamassassin: spamの自動学習

Mailman

インストールは以前の記録参照。

ただし/etc/mailman/mm_cfg.pyは/usr/lib/mailman/Mailman/mm_cfg.pyへのリンクなので、/etcのバックアップからのコピーでは復旧しない。

さて、登録してあるメーリングリスト自体の移行だが、
/etc/mailman/aliases
/etc/mailman/aliases.db
/var/lib/mailman/lists
/var/lib/mailman/archives
の2つのファイルと、2つのディレクトリを(ownerをmailmanで)コピーするだけ。

BIND

インストールは、yumで。
# yum install bind caching-nameserver bind-chroot

設定ファイルは、バックアップを展開して、/var/named/chroot以下のetc、var/namedを入れ替える。

ついでに、今まで適当に追加していたマシンのIPアドレスなどもきちんと登録しておく。

/usr/local内などのデータの移行

自作プログラムや、それに必要なライブラリをインストール。
基本的に/usr/local内にインストールしてあるので、それをチェック。
それ以外は、以下のものなどを。

  • i-forward /usr/local/bin
  • jcode.pl /usr/lib/perl5/site_perl
  • yum install perl-MIME-tools
  • yum install perl-HTML-Tree

wnn6とtamago

Wnn6tamagoともに、前回のインストール記録と、ほぼ同じでインストール可能。

ただし、wnnのchmod usr/norはtarでパーミッションやオーナーが残っているので不要。

ユーザ移行

まず、旧マシンの/etc/passwd、/etc/groups、/etc/shadow、/etc/gshadowからシステムユーザを削除したファイルを用意して、それぞれを新マシンに追加する。

ルータで旧マシンの外部ポートをすべて閉じる。

大量の転送を避けるために、バックアップを/に展開しておく。

旧マシンにrootでsshできるように/etc/ssh/sshd_configを編集("PermitRootLogin yes")し、sshdを再起動、rsyncで/homeを更新する。

さらに/rootのデータも復旧する。

ホスト移行

旧マシンを停止して、新マシン名をtowerに変更。

Postfixの設定ファイルmain.cfでホスト名を変更する。

myhostname = mail.rally.or.jp

とりあえず、使用可能なサーバ機が完成。

新サーバOSインストール

  • Posted by: YAMAGISHI Norimasa
  • 2011年1月23日 00:33
  • System | tower

ハードウェアの準備ができたので、CentOS 5.5のインストール開始。

www.centos.orgから、ミラーサイトを探し、CentOS 5.5のDVDイメージCentOS-5.5-i386-bin-DVD.isoをダウンロード。DVDを焼いて、ブート。

やった作業は「インストール: CentOS 5」とほぼ同じ。

そして、以下のポイントの記述も、ほぼ同じ。

ディスクパーティション設定

ハードディスクのパーティションは、280Gのハードディスクは/boot以外はすべてLVMに割り振り、/とswapに使用、80Gのハードディスクはすべてバックアップ用に使う。

Maxtor 7V300F0 286181MB(sda)
/boot 100M
LVM
swap 2G
/

Maxtor D740X-6L(6L080J4) 80G(hda)
/var/backup

ネットワークデバイス

空いているアドレスと名前を適当に割り当てる、ただし自分のもの以外は正しい値を設定しておいた方が、あとで手間がかからない。

仮に、
FQDN: levin.rally.or.jp
IP Address: 192.168.1.10/255.255.255.0
GW Address: 192.168.1.1
DNS: 192.168.1.6, 192.168.1.1

IPv6は無効にした。

地域設定

「システムクロックでUTCを使用」のチェックをはずす。

パッケージ選択

追加リポジトリは設定しない。設定すると、依存関係のチェックで例外エラーが発生してしまう(バグだ)。

詳細は「今すぐカスタマイズする」。

「デスクトップ環境」-「GNOME」
「アプリケーション」-「Emacs」
「アプリケーション」-「グラフィカルインターネット」-「firefox」
「開発」-「開発ツール」
「開発」-「開発ライブラリ」
「サーバー」なし
「ベースシステム」-「X WIndow System」
「ベースシステム」-「ベース」
「仮想化」なし
「クラスタリング」なし
「クラスタストレージ」なし
「言語」-「日本語のサポート」

再起動した後に、Setup Agentが立ち上がるが、
「ファイアウォール」あとで設定するのでデフォルト。
「日付と時刻」ネットワークタイムプロトコルを有効にする。
「SELinux」無効。
「ユーザの作成」あとで、コピーするのでしない。

そして、ログインして、自動的に現れるPackage Updaterで更新。

「更新があります」という通知があるので、[更新を表示]をクリックすると、Package Updatarが立ち上がる。とりあえずは、すべて更新しておくのが良いだろう。

これで、とりあえずインストール作業は完了だが、不要なサービスは停止しておく。

# chkconfig --level 345 bluetooth off
# chkconfig --level 345 ip6tables off

当たり前だが、VAIOに比べれば、とてもきびきび動くので気持がよい。
これなら、動画を見ることもできるかも、

tower 20110121版

  • Posted by: YAMAGISHI Norimasa
  • 2011年1月21日 09:31
  • System | spec | tower
  • CPU: AMD Athlon XP 2600+(1916Mhz)
  • Memory: 512M x 2(DDR230)
  • Motherboard: Asrock K7NF2-RAID
  • HDD: Maxtor 7V300F0 286181MB(sda)
  • HDD: Maxtor D740X-6L(6L080J4) 80G(hda)
  • Video: GeForce6200
  • DVD: Panasonic LF-D521(ATA)
  • Keyboard: PFU Happy Hacking Keyboard Lite(PS2)
  • Mouse: ELECOM M-M1P2WH(PS2)

rpmnew、rpmsaveファイルの確認修正

  • Posted by: YAMAGISHI Norimasa
  • 2009年10月27日 17:23
  • System | tower

Cent OSが5.4になったのを機会に、yumのアップデートで放置されていた、rpmnew、rpmsaveファイルの確認をすることにした。

まず、rpmnew、rpmsaveファイルの洗い出し。

# find / -print | egrep "rpmnew$|rpmsave$" >foo

変更内容確認と、同時に必要なら修正

# chkrpm foo

chkrpmは自作のdiffを実行するperlスクリプト

#! /usr/bin/perl
while(<>) {
  chop;
  if ($_ =~ /rpmnew$/) {
    $RPMNEW = $_;
    $RPMNEW =~ s/.rpmnew$//;
    system "diff -c $RPMNEW $_|lv";
  } elsif ($_ =~ /rpmsave$/) {
    $RPMNEW = $_;
    $RPMNEW =~ s/.rpmsave$//;
    system "diff -c $_ $RPMNEW|lv";
  }
}

これで先に現れるのが、現在の設定ファイル
rmpnewについては、変更行が!で、自分が追加していたと思われる行が"-"で、(まだ追加していないが)新規に追加するべき行が"+"で表示される。
rmpsaveについては、変更行が!で、自分が追加していたと思われる(削除された)行が"-"で、新規に追加された行が"+"で表示される。

最後にrmpnewとrpmsaveファイルを削除。

# cat foo | xargs -t rm

今回のrpmnewファイルによる修正事項は以下のもの。

/etc/dovecot.conf

セキュリティホールになりうる以下のパラメータを削除。

valid_chroot_dirs = /home


以下のパラメータを追加。

auth default {
    mechanisms = plain
}

/etc/smartd.conf

rpmnewのものに入れ替え。

/etc/yum.d/CentOS-Base.repo

gpgkeyがローカルのファイルを使うようになっていたので修正。

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

yumのエラー

  • Posted by: YAMAGISHI Norimasa
  • 2009年8月14日 04:08
  • System | tower

yum updateでエラーが出た。
個別にupdateしていくと、どうやらfile.i386 0:4.17-15.el5_3.1のアップデートがうまく行かないようだ。

そこで、yumデータベースをクリアするべくyum clean all。

うまくいった。

dovecotの起動スクリプト修正

  • Posted by: YAMAGISHI Norimasa
  • 2009年2月23日 10:41
  • System | tower

towerが電源断で落ちるという事故があり、/var/run/dovecot/master.pidが残っていて、dovecotが起動しなかった。
pidファイルが存在すると、lockファイルが存在しなくても起動できないようだ。
正常終了および、正常起動したときには問題は発生しないが、対策として/etc/init.d/dovecotをいじっておくことにした。

# vi /etc/init.d/dovecot

start() {
        echo -n $"Starting $prog: "
        if [ ! -f /var/lock/subsys/dovecot -a  -f /var/run/dovecot/master.pid ]; then
            /bin/rm /var/run/dovecot/master.pid
        fi	
        daemon /usr/sbin/dovecot
        RETVAL=$?
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dovecot
        echo
}

インストール: taRgrey

  • Posted by: YAMAGISHI Norimasa
  • 2009年2月11日 20:33
  • System | tower

postgreyでかなりのspamを減らすことができるようになった。

が、問題は最初はすべてのメールに対して再送要求を行なうため、メール配信の遅延が大きいということだ。

whitelistを作成し、どんどん登録していくというのが一番確実な手段なのだが、永遠に続く不毛な作業だ...

そこで、導入することにしたのは、postgreyの公式ページでもパッチが紹介されているtaRgrey。

taRgrey - S25R + tarpitting + greylisting (tarpit + greylist policy server)

S25R(Selective SMTP Rejection:選択的SMTP拒絶)は、浅見氏が考案されたスパム対策技術で紹介されている、エンドユーザー回線からのSMTP接続を拒否する手法。ただし、これは、自宅でメールサーバを運用している場合など、誤検出の危険が無いとはいえない。

そこで、S25Rにsarpitting(SMTPサーバの応答遅延)とgreylistingを組み合わせ、誤検出を少なくしたものがtaRgrey。

postgreyに対するパッチの形で提供されているので、taRgreyのサイトから使用しているpostgreyのバージョンに対応するパッチをダウンロード。

# pushd /usr/sbin
# patch -p0 < ~/targrey-0.31-postgrey-1.32.patch

次に、postgreyの起動オプションを変更

# vi /etc/init.d/postgrey

OPTIONS="--unix=$SOCKET --inet=10023 --tarpit=125 --targrey --retry-count=2 --delay=3600"

/etc/postfix/main.cfを修正し、テーブル定義ファイルを追加。


これらは、とりあえずtaRgreyのサイトで設定ファイル例として配布されているものをほぼそのまま使用した。

書き換えたのはreject_heloの最初の自分のドメインの設定くらいか。
そして、正規表現以外のものはhashテーブルを作成して、postfixを再起動。

# vi /etc/postfix/main.cf
# vi /etc/postfix/whitelist_recipient
# postmap /etc/postfix/whitelist_recipient
...
# postfix reload

とりあえず、運用は2日弱だが、Spamの数は激減した。

あとは今後来るスパムを監視して、適度にブラックリストを追加していくくらいで済むとよいのだが。

postgreyのDBには以下のように登録される。


# ls -l /var/spool/postfix/postgrey/

  • postgrey.db 再送待ち
  • postgrey_clients.db オートホワイトリスト
  • tarpit_clients.db tarpitを抜けなかったリスト

参考:

インストール: postgrey

  • Posted by: YAMAGISHI Norimasa
  • 2009年2月10日 19:01
  • System | tower

大量のSpamを減らすためにpostgreyを使うことにした。
postgreyは、送信されてきたメールを一旦拒否し(greyとし)、再送があった場合のみ受け取るというspam対策greylistingの実装のひとつ。

postfix自体も、greylist.plというgreylistingを持っているが、postgreyのほうが高機能なためpostgreyを使う。

公式サイト: Postgrey - Postfix Greylisting Policy Server
日本語サイト: Postgrey(Postfix Greylisting Policy Server)日本語ポータル

基本的な動作は、CLIENT_IP、SENDER、RECIPIENTの3つを監視記録し、5分以上前に送信された記録があれば再送と判断し、受け取る。
5分以内の送信記録があれば、再度拒否する。
35日で記録はexpireされる。

CentOS5では、yumでdagからインストールできる。

# yum install postgrey

そして、postgreyの接続ポートを指定する。
# vi /etc/init.d/postgrey

OPTIONS="--unix=$SOCKET --inet=10023"

また、postfixがpostgreyを使うように変更する。

# vi /etc/postfix/main.cf

smtpd_recipient_restrictions = permit_mynetworks, ..., check_policy_service inet:127.0.0.1:10023    

postgreyを起動する。
# /etc/inet.d/postgrey start

修正したmail.cfをpostfixに読み込ませる。
# postfix reload

とりあえず、しばらくログを監視してみる。
# tail -f /var/log/maillog

とりあえず、記録されていないものはrejectされる。

Feb 10 17:01:35 tower postfix/smtpd[19810]: connect from magdeliv01.itmedia.co.jp[202.218.219.97]
Feb 10 17:01:35 tower postgrey[19744]: action=greylist, reason=new, client_name=magdeliv01.itmedia.co.jp, client_address=202.218.219.97, sender=magowner-mailmag-mobileex@itmedia.co.jp, recipient=xxx@rally.or.jp
Feb 10 17:01:35 tower postfix/smtpd[19810]: NOQUEUE: reject: RCPT from magdeliv01.itmedia.co.jp[202.218.219.97]: 450 4.2.0 <xxx@rally.or.jp>: Recipient address rejected: Greylisted, see http://postgrey.schweikert.ch/help/rally.or.jp.html; from=<magowner-mailmag-mobileex@itmedia.co.jp> to=<xxx@rally.or.jp> proto=SMTP helo=<magdeliv01.itmedia.co.jp>
Feb 10 17:01:35 tower postfix/smtpd[19810]: disconnect from magdeliv01.itmedia.co.jp[202.218.219.97]

そして、一度送信されて拒否したものは、記録によりpassされる。

Feb 10 17:39:09 tower postfix/smtpd[20160]: connect from magdeliv01.itmedia.co.jp[202.218.219.97]
Feb 10 17:39:09 tower postgrey[19744]: action=pass, reason=triplet found, delay=2254, client_name=magdeliv01.itmedia.co.jp, client_address=202.218.219.97, sender=magowner-mailmag-mobileex@itmedia.co.jp, recipient=xxx@rally.or.jp
Feb 10 17:39:09 tower postfix/smtpd[20160]: 4323D19802D: client=magdeliv01.itmedia.co.jp[202.218.219.97]
Feb 10 17:39:09 tower postfix/cleanup[20164]: 4323D19802D: message-id=<20090210073335.9273.qmail@magdeliv01.itmedia.co.jp>
Feb 10 17:39:09 tower postfix/qmgr[19807]: 4323D19802D: from=<magowner-mailmag-mobileex@itmedia.co.jp>, size=13083, nrcpt=1 (queue active)
Feb 10 17:39:09 tower postfix/smtpd[20160]: disconnect from magdeliv01.itmedia.co.jp[202.218.219.97]
Feb 10 17:39:09 tower postfix/local[20165]: 4323D19802D: to=<xxx@rally.or.jp>, relay=local, delay=0.38, delays=0.16/0.03/0/0.19, dsn=2.0.0, status=sent (delivered to maildir)

正しく動作しているようなら、
postgreyを常時起動するように、変更。

#chkconfig postgrey on

また、postgreyのdbの中ものぞいてみる。
dbファイルへの登録はある程度(1時間程度?)遅延がある。

BerkeleyDB Version4を使っているので、db4-utilsもインストール。

# yum install db4-utils

# db_dump -p /var/spool/postfix/postgrey/postgrey.db

83.10.241.0/limbekcs@aegon.hu/webmaster@rally.or.jp
1234254582,1234254582,5

ただし、greylistingでは、最初はすべてのメールに対して再送要求を行なうため、メール配信の遅延が生じる。

そのための対策はあとで。

CentOS5で音を鳴らす

  • Posted by: YAMAGISHI Norimasa
  • 2009年1月18日 02:08
  • System | tower

サーバマシンなので音は不要だと思っていたが、
CPUパワーもあまっているし、なにより設置位置的にも最適なので、家の中のBGMマシンとして使うことを思い立った。

ということで、

mpg123をインストール。

$ sudo yum install mpg123

が、エラーが...

audio open error
Unknown PCM default

サウンドデバイスが見当たらない、という。

が、Xによるサウンドの設定を行うと、テストで普通に音はなる。
そう一般ユーザーではdspに書き込めなかったのだ。

# chmod 666 /dev/dsp

これで、OK。

音量調整はrootになってalsamixierで行う。

後日談:
再起動するとこのchmodは無効になる。
そのため、

$ sudo groupadd audio
$ sudo usermod -G audio nor
$ sudo vi /etc/security/console.perms.d/50-default.perms

-<console>  0600 <sound>      0600 root
+<console>  0660 <sound>      0600 root.audio

いまさら、Zaurusのネットワーク経由でのシンクロナイズ

まずは、Windowsマシンのネットワークインタフェースに、Zaurusと接続用の2つめのIPアドレスを振る。

> netsh interface ip add address "ローカル エリア接続" 192.168.129.1 255.255.255.0

さらに、Zaurusuで

$ sudo ifconfig eth0 add 192.168.129.201

これだけでネットワーク経由のSyncはできるようになる。

SL-C700

が、できればザウルスドライブなども使いたい。
ということで、もう、DHCPでアドレスを与えるのはやめにした。

まず、zaurusのSambaの設定。

/home/root/usr/lib/samba/smb.confの
interfaces = usbd0

を下記のように書き換える。

interfaces = usbd0 eth0
bind interfaces only = yes

さらにネットワークの接続設定。
/home/etc/pcmcia/network.opts のINFO=自宅の接続で
start_fn () { return; }
stop_fn () { return; }
のところを以下に変更。

    start_fn () {
        ifconfig eth0 add 192.168.129.201
	/usr/bin/ntpdate www.rally.or.jp
        if [ -f /var/lock/samba/smbd.pid ] ; then
            pid = `pidof nmbd`
            if [ "$pid" = "" ] ; then
                /etc/rc.d/init.d/samba stop
               /etc/rc.d/init.d/samba start
	    fi
        else
            /etc/rc.d/init.d/samba start
        fi
        return; }
    stop_fn () {
        /etc/rc.d/init.d/samba stop
        return; }

あとは、シンクロ時はZaurusに一切触らないで良いようにするために、Windows側でZaurusシンクロナイズとファイルを同期するzausync.batというスクリプトを書いた。

logwatchの整理

  • Posted by: YAMAGISHI Norimasa
  • 2008年3月 6日 23:08
  • System | tower

logwatchをとめる気はないが、今のままだと量が多すぎてみる気が無くなる。
ということで、吐くメールの量を整理することにした。

logwatchの設定ファイルは/usr/share/logwatch/default.conf/serviceの下にある。
この下の各サービスに無視する行を大量に設定。

sshd.conf

*Remove = error retrieving information about user

postfix.conf

*Remove = delivered to command:  /
*Remove = (delivered to maildir)
*Remove = (250 Requested mail action okay, completed)
*Remove = Queued mail for delivery
*Remove = Message accepted for deliver
*Remove = message queued for delivery
*Remove = 250 Ok:
*Remove = 250 +Ok
*Remove = 250 \+OK
*Remove = 250 2.0.0
*Remove = 250 2.5.0
*Remove = 250 Message received:
*Remove = NOQUEUE: reject: RCPT
*Remove = reject: RCPT from unknown

なんで、logwatchを整理する気になったかというと、f-aca.jpとかいう日本国内から、ウチのSSHをrootでひっぱたいている跡があったからだ。
webを見ると、フリーダイヤルのお問い合わせ窓口があるので、電話かけてやろうかしら(笑)。

rsyncでバックアップ

towerの必要なデータをrsyncでミラーリングして、それをtar+gzipでまとめてPDやDVD-RAMにバックアップするという方針。

NFSでディスクをマウントすることも考えたが、UIDなどの問題もあるので、安易なSSHによるrsyncにした。
あと、tarよりはdumpを使う方が望ましいのはわかっているが、諸般の事情によりtar。

towerでsshの鍵を作って、公開鍵をミラーリングを置くposeidonに渡す。

そして非常に気分がよくないが、poseidonの/etc/sshd_configでPermitRootLoginをyesにしてやる。

あとは、バックアップ用スクリプトの作成。
まずはrsyncを行う、tower側で走らせるスクリプト。
複数回rsyncを動かすので、ssh-agentを使って認証を1回ですむようにして動かす。

#!/bin/sh
RSYNC=/usr/bin/rsync
SSH=/usr/bin/ssh

BACKUP_HOST=poseidon
MIRROR_DIR=/root/mirror

eval `ssh-agent`
ssh-add
${RSYNC} -av --delete /etc ${BACKUP_HOST}:${MIRROR_DIR}/etc
${RSYNC} -av --delete /var/lib/mailman ${BACKUP_HOST}:${MIRROR_DIR}/mailman
${RSYNC} -av --delete /var/lib/mysql ${BACKUP_HOST}:${MIRROR_DIR}/mysql
${RSYNC} -av --delete /var/named/chroot/etc ${BACKUP_HOST}:${MIRROR_DIR}/named
${RSYNC} -av --delete /var/named/chroot/var ${BACKUP_HOST}:${MIRROR_DIR}/named
${RSYNC} -av --delete /var/www ${BACKUP_HOST}:${MIRROR_DIR}/www
${RSYNC} -av --delete /home ${BACKUP_HOST}:${MIRROR_DIR}/home
${RSYNC} -av --delete /home ${BACKUP_HOST}:${MIRROR_DIR}/home

homeを2回やっているのは、一回リストを取って転送している間に、新しいファイルが増えている可能性を考えて(というより、ほぼ新しいメールは届いている)。

そして、poseidonでは、これをまとめてディスクに記録できる大きさに分割するスクリプトを用意する。
とりあえず、PDを使うのでファイルは600Mに分割。まあ、外部メディアに記録できなくても最新のバックアップがposeidonのHDDにあると思うだけでも、気が楽だ。

#!/bin/sh
TAR=/bin/tar
SPLIT=/usr/bin/split
STORE_DIR=/mnt/fat32
MIRROR_DIR=/root/mirror

mktargzs ()
{
        echo "Backup $1"
        cd ${MIRROR_DIR}
        ${TAR} zcf - ./$1 | ${SPLIT} --byte=600m - ${STORE_DIR}/$1.tar.gz.
}


mktargz ()
{
        echo "Backup $1"
        cd ${MIRROR_DIR}
        ${TAR} zcf ${STORE_DIR}/$1.tar.gz ./$1
}

mktargzs home
mktargz etc
mktargz www
mktargz mailman
mktargz mysql
mktargz named

towerのバックアップのためにVineを入れる

  • Posted by: YAMAGISHI Norimasa
  • 2008年3月 5日 22:00
  • System | poseidon

Maxtor 92048D8(20G)のHDDにVine4.2を、インストールしようとした。

が、最初リムーバブルケースに入れて、プライマリのマスタにつないだところ、正常に認識せず。
セカンダリのマスタにつなぐと認識したので、再度プライマリのマスタにつなぐとこんどは認識する。
いい気分はしないが、とりあえずそのままインストールを進めようとする。

そしてインストールCDで起動すると、またしてもISOLINUX 3.11と表示されたところで停止。最近のディストリビューションはすべてダメなのだろうか。

いいかげんFreeBSDかSolarisにしようか、とも思ったが、結局CentOSの時と同じvmlinuzとinitrd.imgを使ったネットワークインストールをすることにした。

いったん、Vine 3.1をインストールして、/bootパーティションに、vmlinuzとinitrd.imgをコピー、lilo.confを修正してlilo。これでリブートしてインストール開始。

完了したら、apt updateとqapt upgrade。

まあ上書きの時は、楽と言えば楽だけど、さすがに新規だとちょっと面倒だ。

KNOPPIX 5.1.1がブートしない

ext3でフォーマットされたハードディスクの中身をサルベージしようと、poseidonをKNOPPIXでブートしようとした。

KNOPPIX Japanese edition

KNOPPIX日本語版5.1.1CD
knoppix_v5.1.1CD_20070104-20070122+IPAFont_AC20070123.iso

しかし、以下のようなメッセージが出て、起動しない。

disk error 80,ax=42f4,arive9f boot failed :
press anykey to retry

Googleで調べると、Fedora7でも一部で同じトラブルが出ているようだ。
予想だが、一部の(おそらく)ドライブが原因で起動しないようだ。

Linux Magazine 2003年7月号という古い雑誌を引っ張りだして、付録のCDのKNOPPIX 3.2でブート。
が、マウントした瞬間「ext3はサポートしていません」という、いやなメッセージが出る。一応ディスクの中身が見えることは見えるのだが不安なので、もう少し新しいバージョンでも試してみる。

が、新しいものは、ほとんど起動しないようだ。
5.0.1、4.0.2、3.8.2、3.7とほとんどだめ。Ubuntuも7.01、6.06を試したが、ダメだった。
追求をあきらめ、さくっとVine3.1r3をインストール。
作業を行った。

外向けサーバマシンの変更

前準備

まず、ユーザを作成する。
UIDを指定してユーザディレクトリを作成。

# useradd -m -u 1002 foo

/etc/shadowのパスワード部分をコピーで完了。

移行作業

旧マシンでipchainsを使って、LAN内部向けのssh以外のすべてのポートを閉じる。

ホームディレクトリの移動。

まず、ユーザのホームディレクトリをコピーする。
# tar zcvf - ./home | ( ssh nor@192.168.1.6 "cat - > home.tar.gz")

ユーザは以下の3通り。

普通に使うユーザ。
メール転送のみするユーザ。 すでにあるホームディレクトリに、i-forwardをしかけるために、.forwardと.i-forwardrcをセットした。 ".forward"は単純にすべてのメールをi-forwardに渡すのみ。
"| /usr/local/bin/i-forward"
メールのみ使うユーザ。
.forwardをMaildirに配送するように記述。
/home/foo/Maildir/
さらに、メール転送を行うユーザはi-forwardにも送るように付け加える。 "/usr/local/bin/i-forward" そして、ホームディレクトリのバックアップからMaildirのみを書き戻す。
普通に使うユーザ。
普通にホームディレクトリをtarでコピー。.forwardを設定。 ただし、ユーザ用のhtmlディレクトリが"html"から"public_html"に変更になったので、これだけ気をつけて作業する。

ルータにより、DMZを新規登録

DMZのマシンをstarletからtowerに変更。

Postfixの設定ファイル変更

Postfixの設定ファイルmain.cfでホスト名を変更する。

myhostname = mail.rally.or.jp

BINDの設定を変える

外向きのものは、そのままでかまわないが、内向きのmail, wwwのCNAMEの対象をstarletからtowerに変更。

直後

接続テスト

まず、BINDにアクセスできるか。
Zaurusで携帯経由でテストした。
dig @ns.rally.or.jp rally.or.jp mx
など。

メールを外から送れるか、受け取れるか。
まず、外から、直接SMTP、POP、IMAPサーバへ接続できるか。
これも、Zaurusでテストした。
配送テストは、送信受信テストともにWebメールで行った。

受取りは、IMAPは外部にはサポートしない予定なので、POP3(110)のみ。
OB25、つまりポートは25と587の二つを試さなければならない。

webは、携帯から見れるかだけをチェックした。

IPAフォントとM+フォントのインストール

  • Posted by: YAMAGISHI Norimasa
  • 2008年2月23日 20:09
  • System | tower

以下のページを参考に、というよりも、そのままに作業を行った。

CentOS 5 インストール個人的ノート

IPAフォント バージョン 002.03は、以下のページからダウンロード。
一般利用者向けIPAフォントのダウンロード || OSS iPedia

IPAfont00203.zip

M+ TESTFLIGHT 014は、以下のページからダウンロード。
M+ FONTS

mplus-TESTFLIGHT-014.tar.gz

fontforgeのインストール。
$ sudo yum install fontforge

まず、IPAフォントとM+フォントをダウンロードして展開。

合成フォントを作成。
$ cd ~nor/work/font/mplus-TESTFLIGHT-014.tar/
$ cp ../IPAfont00203/ipag.ttf .
% fontforge -script m++ipa.pe

フォントをフォントディレクトリにコピーする。
# cp ~nor/work/font/IPAfont00203/*.ttf /usr/share/fonts/japanese/TrueType/
# cp M*IPAG.ttf /usr/share/fonts/japanese/TrueType

フォントキャッシュをクリアする。
# fc-cache -fv /usr/share/fonts/japanese/TrueType

フォント設定ファイルを作成する。

# vi /etc/fonts/local.conf

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
    <test name="family" compare="eq">
      <string>IPAPMincho</string>
    </test>
    <edit name="hinting" mode="assign">
      <bool>false</bool>
    </edit>
    <edit name="embeddedbitmap" mode="assign">
      <bool>false</bool>
    </edit>
  </match>
  <match target="font">
    <test name="family" compare="eq">
      <string>M+2P+IPAG</string>
    </test>
    <edit name="hinting" mode="assign">
      <bool>false</bool>
    </edit>
    <edit name="embeddedbitmap" mode="assign">
      <bool>false</bool>
    </edit>
  </match>
  <alias>
    <family>IPAPMincho</family>
    <default><family>serif</family></default>
  </alias>
  <alias>
    <family>serif</family>
    <prefer>
      <family>IPAPMincho</family>
    </prefer>
  </alias>
  <alias>
    <family>M+2P+IPAG</family>
    <default><family>sans-serif</family></default>
  </alias>
  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>M+2P+IPAG</family>
    </prefer>
  </alias>
  <alias>
    <family>M+2M+IPAG</family>
    <default><family>monospace</family></default>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer>
      <family>M+2M+IPAG</family>
    </prefer>
  </alias>
</fontconfig>

インストール: BIND 9.3.3

  • Posted by: YAMAGISHI Norimasa
  • 2008年2月22日 19:07
  • System | tower

さて、インストール大会の最後を飾るのはBIND。
DNSサーバが動けば、晴れてこのマシンは、外部向けサーバとして完全にリプレイスできるようになる。
もっとも、BINDもインストール自体はyumで一発。

設定ファイルも、実際はすでに動いているものをコピーすればほとんど変更なしで行けるだろう。

# yum install bind caching-nameserver bind-chroot

インストールしたのは、bind BIND本体の他に、キャッシュサーバとして動かすためのパッケージcaching-nameserver 、BINDをchrootして動かすためのパッケージbind-chroot。

まず、既存の設定ファイルをtowerにコピーする。

starler# tar cvf - | ssh nor@192.168.1.6 (cd ~work ; tar xf - )
starler# tar cvf - | ssh nor@rally.or.jp (cd ~work ; tar xf - )

rpm -q --filesbypkg bindでは、/etc/named.confが見えるのだが、実際にはインストールされていない。

設定ファイルのサンプルは/usr/share/doc/bind-9.3.3/sample/etcと/usr/share/doc/bind-9.3.3/sample/var/namedの下にある。

今までは、20世紀のBIND8の頃からの設定ファイルを流用していたが、ここで最新の設定ファイルを見て、1からつくり直すことにする。

named.confは、まあコメントなども参考にはなるが、モジュールファイル化を使いまくって書いてあるので、追っていくのがちょっと面倒だ。
さらに、named.confは/etcに置くのは普通だが、キャッシュサーバ用のnamed.root.hintsやnamed.rfc1912.zonesも/etcに置くようになっている。

この構成について解説しているページを探すと、非常に丁寧かつ技術的にもしっかりしたページが見つかった。

view 機能を使ったネームーサーバ

ここを参考にしながら、以下の作業を行った。

  • "localhost_resolver" view の削除
  • "internal" view にダミーの逆引きゾーンを追加
  • "internal" view に自分のドメインのゾーンを追加
  • "internal" view からサンプルのゾーン定義を削除
  • DDNS用のkey 節の削除
  • "external" view から match-clients と match-destinations 文を削除
  • "external" view のヒントゾーンを無効化
  • "external" view からサンプルのゾーン定義を削除
  • "external" view に独自ドメインのゾーンを追加
  • パスの修正

そこそこファイルはあるものの、実際にいじるのは一部。
いちいち書くのも面倒なので、基本的にはそのままでも動作するファイルは以下のもの。
まずは、ローカルホスト関連と、不要な問い合わせを吸収するためのもの。
named.rfc1912.zones(とそれに関連した以下のもの。)
localdomain.zone
localhost.zone
named.local
named.ip6.local
named.broadcast
named.zero
named.root.hints

これらは、自分のドメインの設定を書く。
my.external.zone.db
my.internal.zone.db

ルートキャッシュファイルは、当然最新のものを取ってくる。
# dig . ns @198.41.0.4 > /var/named/named.root

これらの設定ファイルを/var/named/chroot/etcと/var/named/chroot/var/namedにコピー。オーナーをroot:namedにして、モードを640にする。

あとは、動作を確認して、
# service named start

マシン起動時にBINDも起動するように。
# chkconfig named on

もちろん、ポートは開けておく。

# vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT

# service iptables restart

ゾーンファイルのみを書き換えた場合は、Serial値を増やして「# rndc reload」。

インストール:tripwire 2.4.1.2

  • Posted by: YAMAGISHI Norimasa
  • 2008年2月20日 19:01
  • System | tower

ファイル改竄探知ソフトtripwire。これもやはり商用製品としてもリリースされているが、オープンソースのものももちろん健在だ。

セキュリティ関連だということもあり、今回はソースからビルドすることにしよう。

ということで、SourceForge.net: Open Source TripwireRから、最新版のソースをダウンロードして、コンパイル。

tripwire-2.4.1.2-src.tar.bz2

まず、展開して./configure。

$ bzcat -d tripwire-2.4.1.2-src.tar.bz2 |tar xvf -
$ ./configure --prefix=/usr --sysconfdir=/etc/tripwire

install/install.cfgが初期設定ファイルになる。
デフォルトでは、データベースを"$prefix/lib"に収納し、sendmailを使うようになっているので修正。

TWDB="/var/lib/tripwire"

#TWMAILMETHOD=SENDMAIL

TWMAILMETHOD=SMTP
TWSMTPHOST="mail.rally.or.jp"
TWSMTPPORT=25

そして、make、make install。

$ make
$ sudo make insatall

ライセンスに同意することを求められる。

Press ENTER to view the License Agreement.
Please type "accept" to indicate your acceptance of this
license agreement. [do not accept] accept

Continue with installation? [y/n] y

サイトキーファイルパスフレーズの入力。

Enter the site keyfile passphrase:
Verify the site keyfile passphrase:

ローカルキーファイルパスフレーズの入力。

Enter the local keyfile passphrase:
Verify the local keyfile passphrase:

この後、サイトキーファイルパスフレーズを2回入力してインストール完了。

----------------------------------------------
Generating Tripwire configuration file...

----------------------------------------------
Creating signed configuration file...
Please enter your site passphrase:
Wrote configuration file: /usr/etc/tw.cfg

----------------------------------------------
Customizing default policy file...

----------------------------------------------
Creating signed policy file...
Please enter your site passphrase:
Wrote policy file: /usr/etc/tw.pol

作成される設定ファイルは、

/etc/tripwire/tw.cfg <- configurationファイル
/etc/tripwire/twcfg.txt <- configurationファイルのプレーンテキスト版
/etc/tripwire/tw.pol <- policyファイル
/etc/tripwire/twpol.txt <- policyファイルのプレーンテキスト版

まずtw.cfgで、ファイルに変更があった場合ディレクトリに関する警告を報告しないようにする。

LOOSEDIRECTORYCHECKING =false

まずデフォルトのpolicyファイルを編集。そして、暗号化する。
デフォルトのポリシーファイルはあくまでもサンプルなので、編集しないとエラーと不要な告知が多数出ることになる。

# cp /etc/tripwire/tw.pol /etc/tripwire/tw.pol.org
# vi /etc/tripwire/tw.pol
# twadmin --create-polfile -S /etc/tripwire/site.key /etc/tripwire/twpol.txt

データベースの初期化をする。

# tripwire --init

エラーが出たら再度policyファイルの見直しをして、そして整合性のチェック。

# tripwire --check

これで、tripwire自体は動作するようになった。

メールによる通知がされるように、それぞれのルールに以下を付け加えておく。

emailto = $(MAILADRESS)

そして、cronに登録。

# vi /etc/crontab

0 4 * * * root /usr/sbin/tripwire --check --email-report

Quick Reference: yum

データベースのリストアップと更新
$ yum list

インストール
# yum install postfix

削除
# yum remove postfix

検索(説明などの部分が一致した場合も表示される)
$ yum search postfix

アップデートが行われているかをチェックする。
# yum check-update

特定のパッケージのアップデート
# yum update postfix

一括アップデート
# yum update

詳細説明表示
$ yum info postfix

ダウンロードしたパッケージの削除
# yum clean packages

キャッシュデータのクリア
# yum clean all

yumではないが、インストールされたファイルのリストアップ。
rpm -q -a

CentOSのリポジトリを増やす

  • Posted by: YAMAGISHI Norimasa
  • 2008年2月14日 15:11
  • System | tower

まずは、リポジトリをもっとも早いミラーに設定する。

# yum install yum-fastestmirror

そして、CentOSPlusを有効にする。

# vi /etc/yum.repos.d/CentOS-Base.repo

[centosplus]

- enabled=0
+ enabled=1

さらに、いくつかのリポジトリを追加しよう。
まずは、RedHatのサポートするEPELだ。

# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-2.noarch.rpm
# rpm -ivh epel-release-5-2.noarch.rpm

これで、リポジトリの追加は完了する。

[root@tower ~]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Media.repo epel-testing.repo epel.repo

epel-testing.repo、epel.repoの2ファイルが追加されている。

epel-testing.repoの中はすべてenabled=0であるのを確認。
epel-testing.repoの中は[epel]はenabled=1、[epel-debuginfo]、[epel-source]は0。

この設定で問題ないだろう。

# yum update

で、リストを入手する。

ついでなので、他にもいくつか気になるリポジトリを追加。

# vi /etc/yum.repos.d/third.repo

[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag
http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
enabled=1
gpgcheck=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

[dries]
name=Extra Fedora rpms dries - $releasever - $basearch
baseurl=http://ftp.riken.jp/Linux/dag/dries/redhat/el$releasever/en/$basearch/dries/RPMS
http://ftp.freshrpms.net/pub/dag/dries/redhat/el$releasever/en/$basearch/dries/RPMS
enabled=1
gpgcheck=1
gpgkey=http://dries.studentenweb.org/rpm/RPM-GPG-KEY.dries.txt

[flash]
name=macromedia.mplug.org - Flash Plugin
baseurl=http://macromedia.mplug.org/rpm
enabled=0
gpgcheck=1
gpgkey=http://macromedia.mplug.org/FEDORA-GPG-KEY

[atrpms]
name=Redhat Enterprise Linux $releasever - $basearch - ATrpms
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
enabled=0
gpgcheck=1
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms

そして、GPGキーを追加する。
# rpm --import http://ftp.riken.jp/Linux/dag/packages/RPM-GPG-KEY.dag.txt
# rpm --import http://dries.studentenweb.org/rpm/RPM-GPG-KEY.dries.txt
# rpm --import http://ATrpms.net/RPM-GPG-KEY.atrpms
# rpm --import rpm --import http://ATrpms.net/RPM-GPG-KEY.atrpms
# rpm --import http://macromedia.mplug.org/FEDORA-GPG-KEY

RPMForgeのリポジトリはrpmで追加できるようなので、その手法でいく。

# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

ただし、RPMForgeのリポジトリも、デフォルトがenable=1なので、0に修正。

とりあえずはこんなところで、以下に今回追加したリポジトリをまとめておく。

enable=1
base CentOS 5.0のベース
updates CentOS 5.0のアップデート
addons CentOS 5.0のアドオン
extras CentOS 5.0の追加パッケージ(addonsとの切り分けが今ひとつ不明)
centosplus CentOS 5.0の拡張パッケージ(デフォルトではOff)
epel Extra Packages for Enterprise Linux(EPEL) FedoraExtraなどでは提供されているものがある
dag Dag、Red Hat Enterprise Linux向け。パッケージの種類は豊富

enable=0
rpmforge RPMforge Dag's repository, FreshRPMS, Dries, PlanetCCRMAなどを統合したもの。
dries Dries RPM Repository。RHEL、Fedora向け
flash Macromediaの Flash Plugin
atrpms ATrpms RHEL向けのマルチメディア系とプログラミング系など

インストール: vsftpd 2.0.5

  • Posted by: YAMAGISHI Norimasa
  • 2008年2月13日 22:08
  • System | tower

FTPサーバvsftpd。
パッケージマネージャから[サーバー]-[FTPサーバー]でインストール。

インストールしただけでは起動しないので、[サービスの設定]で起動するように設定し、[保存]する。内部で行っているのは、/etc/rc.d/rc5.d/S60vsftpdとK50vsftpdの変更だけ。
さらに、vsftpdを選んで[開始]すればよい。
少なくとも、LAN内部で使用するだけであれば、このままで動作する。

しかし、常時必要なサービスではないし、xinetd経由の起動にしたい。
が、そもそも、xinetd自体がインストールされていないので、まずxinetdをインストール

そして、現在起動しているvsftpdを止めて、
# service vsftpd stop

xinetd用の設定ファイル/etc/xinetd.d/vsftpdの作成。


service ftp
{
         disable                 = no
         flags                   = NOLIBWRAP
         socket_type             = stream
         protocol                = tcp
         wait                    = no
         user                    = root
         server                  = /usr/sbin/vsftpd
         server_args             = /etc/vsftpd/vsftpd.conf
         nice                    = 10
}

そしてvsftpd設定ファイルの/etc/vsftpd/vsftpd.confを編集


listen=NO <-スタンドアロン起動を行わない
tcp_wrappers=NO <-TCP-Wrappersによるアクセス制限を行わない

マシン起動時の起動設定を解除。
# chkconfig --del vsftpd

最後にxinetdの再起動。
# service xinetd restart

SSHのX転送の問題

ssh でログインした後、リモートホストでEmacsを起動するとなぜか、Ctrl-kで落ちる。

エラーは以下のもの。

X Error of failed request: BadAtom (invalid Atom parameter)
Major opcode of failed request: 18

これは、OpenSSH 3.8 移行ではX11 cookiesをデフォルトで使うようになったため。
対策としては、sshでのログイン時に-Yオプションをつけるか、/etc/ssh/ssh_configに"ForwardX11Trusted yes"を追加する。

今回は/etc/ssh/ssh_configを編集して対応。

OpenSSH FAQ

ただし、この場合以下のようなWarningが発生する。

Warning: No xauth data; using fake authentication data for X11 forwarding.

ついでに、sshでrootでログインできないように、towerの/etc/ssh/sshd_configに"PermitRootLogin no"を追加した。

sshのキーを登録

とりあえずということで、towerに対しては、sshではあるもののパスフレーズは使わずに、ログインしていたが、各マシンのパスフレーズを登録し、ssh-agentを使えるようにした。

今までRSAキーをメインに使っていたが、混在も気分がよくないので、これを機会にDSAキーにそろえることにした。

nor@mirage$ ssh-keygen -t dsa
nor@tower$ mkdir .ssh
nor@tower$ chmod 700 .ssh
nor@tower$ scp nor@mirage:~/.ssh/id_dsa.pub .
nor@tower$ cat id_dsa.pub >>.ssh/authorized_keys2
nor@tower$ chmod 600 authorized_keys2

loplassでもキーを作り、towerに登録した。

sudo

  • Posted by: YAMAGISHI Norimasa
  • 2008年2月12日 14:59
  • System | tower

いいかげん、suしまくるのが面倒になったので、とりあえず、

# visudo

nor ALL=(ALL) ALL

あまりよくはないが、設定が終わるまではこれでいこう。
ここに書いておけば、忘れないだろう。

iptablesによるファイアウォールの設定

  • Posted by: YAMAGISHI Norimasa
  • 2008年2月10日 12:49
  • System | tower

さて、インストールが終わったらセキュリティである。
最終的には、外部に公開するサーバとするので、ガチガチに固めることが望ましい。
なお、今回はSELinuxは使用しないで、iptablesによるファイアウォールを使う。
もちろん、基本的に全部閉じておいて、必要なサービスのみ開くという方針でいく。

GUIから[システム]-[管理]-[セキュリティレベルとファイヤーウォールの設定]で、基本設定を行う。コマンドラインでは「# system-config-securitylevel」に相当する。

08021201.png

まず、FTP、SSH、Samba、HTTPS、HTTP、SMTPを信頼できるサービスとして登録する。
そのほかに、以後も確実に開くものとして、VNCの5900~5902/TCPをその他のポートで登録。
そして、[OK]。

この設定は/etc/sysconfig/system-config-securitylevelに保存される。このファイル自体は、アプリケーションの保存ファイルとしての役割で、さらに/etc/sysconfig/iptables-config、および詳細ルールが/etc/sysconfig/iptablesにも保存される。

[root@tower ~]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter      hosts.allow  hosts.deny   
:INPUT ACCEPT [0:0]s /etc/hosts.allow 
:FORWARD ACCEPT [0:0]/etc/hosts.deny 
:OUTPUT ACCEPT [0:0] /etc/sysconfig/iptables
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5900 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5902 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

ただし、最終的にこのマシンをDMZに置き外部に公開することを考えると、VNCなどはIPアドレスにおけるアクセス制限をかけておいたほうがいい。もちろん、そういったPORTはゲートウェイで止めてしまうのが正しいのだが、やってやりすぎることはない。
しかし、system-config-securitylevelではそこまできめ細かい設定はできないので、直接/etc/sysconfig/iptablesを編集することになる。

とりあえず、sambaとVNCのみ、LAN内部からのみ接続可能なように"-s 192.168.1.0/24"を追加する。

-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp -s 192.168.1.0/24 --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp -s 192.168.1.0/24 --dport 138 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 5900 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 5901 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 5902 -j ACCEPT

いずれはDNS、pop3なども開くことになるはずだが今回はとりあえず、この辺で。

インストール: CentOS 5

  • Posted by: YAMAGISHI Norimasa
  • 2008年2月 9日 18:28
  • System | tower

さて、本命のCentOS5のインストールだ。

迷ったのはバージョン。CentOS4でもいいような気もするが、サポート期間がちょっと気になる。
しかし、メモリ要件がRHEL4では最小256MBだったのだが、RHEL5で最小512MBに上がっている。インストールしようとしているマシンは256MBしかない。

まあ、実際にインストールしてみて、メモリの使用状況を見て考えることにする。

なお今回のマシンでは、できるだけGUIによる設定を行い、それがどのように動作するのかを確認する方針で行く。
ただし、残念ながらインストールそのものはFDブートによるネットワークインストールのため、テキストモードでのインストールとなった。

CentOS5はFDからのインストールはできない。

initrd.img自体が5Mあり、CD以外の外部メディアではUSBメモリくらいしか使えないだろう。
しかし、VAIOのCDドライブは故障している。

そこで、すでにインストールしたDebianのGrubを使ってインストールイメージをブートすることにした。

まず、インストールイメージのvmlinuzとinitrd.imgをFTPサイトから持ってくる。

ftp://ftp.nara.wide.ad.jp/pub/Linux/centos/5.1/os/i386/isolinux/

そして、/root/bootにvmlinuzとinitrd.imgをコピー。

Grubにこのイメージからのブート設定を追加。
# vi /boot/grub/menu.lst

title CentOS Install
root (hd0,0)
kernel /root/boot/vmlinuz ramdisk_size=8192
initrd /root/boot/initrd.img

(もし/bootが別パーティションだった場合は、インストールイメージを/bootの下におき、パス名は/bootの下から記載、さらにrootのパラメタも変更する必要がある。)

これで、リブートし、GrubでCentOS Installを選ぶと、インストールが始まる。

この方法、参考にしたのは暇人日記blog版: FDはあるけどCD-ROMドライブの無いノートPCに最新版Linuxをインストール

以下はポイントだけ。

Configure TCP/IPでは、Manual configurationしておけば、インストール完了後も有効になる。

ftpサイト名はftp.nara.wide.ad.jp。ディレクトリは/pub/Linux/centos/5.1/os/i386/。

Partitioning Typeでは、Remove linux partitions on selected drives and create default layout.を選ぶ。

Review Partition LayoutではYesにして、/を18432から17920に、swapを512から1024に容量を変更。これは、仮想マシンを使うため。ただし、非常に動作が重くなるのは覚悟の上。

Time Zone Selectionでは、System clock uses UTCのチェックを外す。

Package selectionでは、すべてのチェックをはずし、Customize software selectionのオプションにチェック。

Package Group selectionでは、EditorsとGNOME Desktop Environment、X Window Systemだけチェック(GNOME Desktop EnvironmentはX Window Systemに依存していると思われるのだが、Xは自動ではインストールされない)。

ソフトウェアは、後からインストーラと同等の画面で追加が可能なので、最初は最小のインストールをしておくのがよいだろう。

再起動後のSetup Agentでは、System servicesを選びbluetooth、ip6tablesを停止する。Setup Agentを終了すると、ログインプロンプトが表示される。

ログインしstartxでXを立ち上げる。

「更新があります」という通知があるので、[更新を表示]をクリックすると、Package Updatarが立ち上がる。とりあえずは、すべて更新しておくのが良いだろう。

これで、とりあえずインストール作業は完了。


と、思ったが、マシン名を変更しておこうと思い立ち、GUIでmr2からtowerに変更。さらに、starletのDNSサーバの設定ファイルも変更して再起動。

08021204.png

このときWindowsでDNSの変更を反映にするには、[ネットワーク接続]で[ローカル エリア接続]を修復し、DNSキャッシュを削除する必要がある。

インストール: Debian etch

  • Posted by: YAMAGISHI Norimasa
  • 2008年2月 9日 18:20
  • System | tower

インストールしようとしているVAIO PCG-FX99V/BPは、DVDドライブが壊れている。そのためCDなどからのインストールが使えないのでFDインストールしかない。

まず、インストール用のFDを作ることにする。

まず、
http://www.t.ring.gr.jp/archives/linux/debian/debian/dists/etch/main/installer-i386/current/images/floppy/から、
boot.img
cd-drivers.img
net-drivers-1.img
net-drivers-2.img
root.img
をダウンロード、DOS上でrawriteを使いFDに書き込む。

そして、BOOT FDで起動。

Load driversでCD-DRIVER、NET-DRIVER1,2を読み込む。

ホスト名はmr2に、IPアドレスなどはDHCPで取得、そしてドメイン名はrally.or.jpが自動設定された。

パーティションは1パーティションを選択、hda1がext3に、hda5がswapになった。

そして、適当に質問に答えてインストールは完了。

実は、このDebianは実際に使うことは意図していない。
あくまで、本当に使う予定のCentOSのインストールのための前作業。

DNSを設定

しばらく放置していたが、インターリンクでの接続が新しいIPアドレスになったため、DNSを設定した。

当然ながら、外向け、内向けには別々の設定をした。
外向けのサービスを提供しているサーバだけは、
外からはルータのIPアドレスに、内からはstarletのIPアドレスに見えるようにした。

logrotate

  • Posted by: YAMAGISHI Norimasa
  • 2007年8月 9日 17:43
  • System | starlet

starletのlogrotateの設定をしていなかったため、logが肥大化していた。

/var/lib/logrotate.statusの日付がインストール状態で1990-1-1になっているため、ローテーションがうまく動作しない。
そのため、日付を昨日あたりの日付に書き換える。

#vi /var/lib/logrotate.status

logrotate state -- version 2
"/var/log/messages" 2007-8-8
"/var/log/secure" 2007-8-8

その後、一度、ローテートを行う。

# /usr/sbin/logrotate /etc/logrotate.conf

testingやunstableを使えるようにする

  • Posted by: YAMAGISHI Norimasa
  • 2007年3月10日 04:52
  • System | other

popfileの0.22.4を使いたくなったので、マシンdtでtestingやunstableを使えるようにする。

まず、/etc/apt/sources.listにtestingやunstableのapt-lineを加える。

deb ftp://www.ring.gr.jp/pub/linux/debian/debian/ testing main
deb-src ftp://www.ring.gr.jp/pub/linux/debian/debian/ testing main

# apt-get update

そして、/etc/apt/preferencesを以下の内容で作る。

Package: *
Pin: release a=testing
Pin-Priority: 105

Package: *
Pin: release a=testing-proposed-updates
Pin-Priority: 110

Package: *
Pin: release a=unstable
Pin-Priority: 90

と書く。リリース間の空行分離を忘れずに。

これにより、

1. 非公式なパッケージもバージョンナンバーが大きければaptitudeでちゃんとインストールされる。
2. pin を使って入れた testing または unstable パッケージはそれ以降 testing の最新版が入るようになる。
3. もちろん、特にいじらないパッケージは stable のまま。

aptitudeを使った、testingなどのインストール方法は以下の通り。

# aptitude install popfile/testing

参考にしたURL(というより、この内容自体ほとんどコピーペースト)

AptGet(Debian GNU/Linux スレッドテンプレ)

kernelアップデート

Vine 3.2からはaptで普通にインストールが可能になったがliloの書き換えだけは自分で行う必要がある。
# apt-get update kernel
# vi /etc/lilo.conf
# /sbin/lilo

起動時にライブラリの読み込みでエラーメッセージが出るが、特に問題なく動作しているので、放置。

インストール: Vine 3.2

  • Posted by: YAMAGISHI Norimasa
  • 2006年8月 3日 01:52
  • System | mirage

Vine 3.2をmirage(P2-500MHz, Memory 500M)にインストール。

目的は、以下のもの
・Vine 3.2がPromiss Ultra66を簡単に扱うことができるか。
・各アプリケーションの動作速度はどんなものか。
・MovableTypeの動作速度はどんなものか。
・MovableTypeのサーバ移行の手順のテスト。
・Wanderlustのデータ(Mail、.elmo)は単純にコピーしただけで、以前のマシンとまったく同じ状態になるか。

インストール自体は普通に終了。

ためしに、Ultra66を接続してインストールを開始したところ、なにもしなくても普通にUltra66先のディスクを認識。

まず、WebブラウザにFirefoxをインストール。
起動はお世辞にも速いとは言えないが、動作はまあ、許容範囲。

Emacsまずまずの動作と言える。

主な使用アプリケーションはこれら2つなので、この点は合格。

つぎに、MovableTypeだ。

まず、Webサーバとして導入されるApacheを削除して、Apache2をインストール。
UserDirが無効になっていたのでコメントアウト。
そして、MySQL-Server、MySQL-Clientもインストール。
最後に、MovableType3.2をダウンロードして、インストール。

levinのホスト名変更

内部からもMovableTypeの利用ができるように、levinの名前をwwwに変更した。

まず、levinの/etc/hostnameを書き換え。

さらに、starletのDNSの登録を変更。
starletの/etc/named.confには内部向けのnamed.interを先に書いてあるので、内部からのwwwの問い合わせには、内部用Private IPを返す。
もちろん、外部からの問い合わせは、内部向けの設定は読みとばすので、外部向けのGlobal IPを返すことになる。

ただし、wwwの別名としてlevinも定義した。

RedHat 9の再インストール

結局、元と同じRedHat9をいれることにする。
安易だが、それ故、一番手がかからない。

まず、壊れたものと同じ以下のディスクをPrimaryのMasterに接続。
Western Digital Caviar 21200
WDAC21200-19H
2484Cyl 16 Heads 63spt 1281.9MB

さらに、もとのデータを壊さないように/dev/hdcの電源を外し、SecondaryのSlaveに適当なディスクを接続。

そして、PrimaryのMasterが元のディスクと同一構成のパーティションになるようにインストール。
IDE Primary master /boot /tmp swap
IDE Secondary slave それ以外

故障以前のカーネルはFedraLegacy製の以下のもの。
Linux version 2.4.20-31.9 (bhcompile@porky.devel.redhat.com) (gcc version 3.2.2
20030222 (Red Hat Linux 3.2.2-5)) #1 Tue Apr 13 17:41:45 EDT 2004
のはず。

FedraLegacyには、さらに新しいパッチが上がっていたので、最新のものまでパッチアップ。

aptはインストールしてあったので。
# apt-get update
# apt-get --no-act upgrade
一応確認して
# apt-get upgrade

SecandaryのSlaveを外し、もとの/dev/hdcに接続して完了。

この作業のあと、SCSIディスク上のパーティションに誤ってラベル名"/"をつけてしまっていたため、そっちにinitを探しに行ってしまいkernel panicが出てしまいbootできないという、まぬけなトラブルがあったが、SCSIディスクを完全消去して、無事解決。

Debianのインストール

NICに3COM EtherLinkIII 3C589D-J-TPを装着してネットワークインストール開始。
しかし、PCカードの認識の時点でHALTしてしまう。

BIOS設定で、PC CARDの部分を変更してみる。
PC CARD [Controller Mode]が[Auto-Selected]だったところを[CardBus/16-bit]にすると、うまくいった。

自動パーティショニングだと、
/ 197.4MB
/usr 1.5GB
/var 649MB
swap 189MB
/tmp 115MB
/home 1.4GB

が、Webコンテンツがメインになるので、

/ 197.4MB
/usr 1.0GB
/var 1.6MB
swap 131.6MB
/tmp 115.1MB
/home 1.0GB

ホスト名はとりあえずlevin(.rally.or.jp)でドメイン名は指定しない。

タスク選択ではなにも選ばない。

まず、最新のモジュールにするために。
apt-get update
apt-get upgrade

そして、日本語を表示するために、jfbtermを使おうと思い、
# apt-get install xfonts-base
するが、結局jfbtermを使うためには
# modprobe vga16fb
をしなくてはならないので、面倒なので
#apt-get install kon2

日本語環境を設定する
% set-language-env
というコマンドがあるが、今回は保留。

インストール時にはDHCPサーバーが動いていたので、自動割り当てになっていたのを、Staticにする。
#vi /etc/network/interfaces

iface eth0 inet static
address 192.168.0.10
netmask 255.255.255.0
gateway 192.168.0.1

Index of all entries

Home > Linux > System Archive

Search
etc...
Feeds

Return to page top