System Archive
rodem再インストール(2012/01/17)とバックアップ作成
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については、今後のある程度のバージョンアップが見込めるので、フルバックアップの前にはインストールしないでおく。
- Comments (Close): 0
- TrackBacks: 0
CentOS 5.7アップデート
Apachekillerの影響もあるので、CentOSを5.7にアップデートすることにした。
「yum update」で簡単にアップデートできるはずなのだが、以前Skypeを使うために入れた新しいlibstdc++が依存性の障害になってしまった。
もはや、Linux上でSkypeを使うこともなくなったので、libstdc++-4.3.2は案インストールすることにした。といっても、既存のlibstdc++もあるので、バージョンを指定して案インストールすることになる。
# rpm -e libstdc++-4.3.2
# yum update
- Comments (Close): 0
- TrackBacks: 0
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して、接続解除。
- Comments (Close): 0
- TrackBacks: 0
アップデート: Cent OS 5.6
本家RHELからずいぶん遅れたが、CentOS 5.6がリリースされた。
1週間ほど様子を見て、yumによるアップデート敢行。
mod_nssのインストールに関する問題があるようだが、使用していないので特に問題なし。
アップデートのあとにやったことは、Apacheがアップデートされたので、SuExecの無効化のために、またリネームしたくらい。
- Comments (Close): 0
- TrackBacks: 0
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台入れることが出来るマシンなら、わざわざこんなこともしないのだが...
- Comments (Close): 0
- TrackBacks: 0
またまたCent OSインストール
基本的には、新サーバ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を実行する。
次回は、いちいちここに書かずに、ちゃんと別途手順書を作ろう...
- Comments (Close): 0
- TrackBacks: 0
サーバー用ハードウェア入れ替え
つい先日作ったtowerが崩壊を始めたので、サーバーマシンを安定稼動しているloplassに入れ替えることにした(そもそも、安定性に疑問があるマシンをサーバーにしたのが間違いなのだが...)。
再び、towerとloplassのメモリ(1Gと500M)、DVD-Multiドライブ、フロッピードライブ(現towerのものは調子がよくない)を入れ替える。
loplassについているビデオチューナーボードはとりあえず他で使う予定が無いので、そのまま入れたままにした。
さらに常用しないであろう新towerには、倉庫にしまってあった小型のPS2キーボードと、PS2マウスを倉庫から引っ張り出して接続する。
- Comments (Close): 0
- TrackBacks: 0
またまた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
が、しばらくの電源オフの後に起動した。
- Comments (Close): 0
- TrackBacks: 0
LVMのスナップショット領域を作成
懸案のスナップショットによるバックアップを実行することにした。
論理ボリュームに空きを作らなかったので、まず、スナップショット領域を作成する。
まず、事前にバックアップを取る。
そして、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
- Comments (Close): 0
- TrackBacks: 0
BCTV4-PCIをtowerにインストール
- 2011年3月29日 15:51
- Application | Hardware | System | 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であれば、アスペクト比も調整できるし、これにて一件落着。
- Comments (Close): 0
- TrackBacks: 0
インストール: pflogsumm
- 2011年2月 2日 09:23
- QuickReference | System | tower
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
-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
--verbose_msg_detail
「message deferral detail」の集計において、bounce、rejectの原因の同一性までも細かく見る。
--verp_mung
Senderのアドレスを、適当に短くまとめた形にして処理する。
正確には、'-'で区切られた数字の部分を'ID'に置換して処理する。
--verp_mung=2は、さらに'-'数字以降を省略して処理する。
--zero_fill
集計の桁揃えのために、数字の頭を0で埋める。
- Comments (Close): 0
- TrackBacks: 0
user_prefsの自動更新
今まで松田氏の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
- Comments (Close): 0
- TrackBacks: 0
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
- Comments (Close): 0
- TrackBacks: 0
taRgreyをtarpit & greylistに
SPAM対策としてtaRgreyを使用していたが、125秒のtarpitをすり抜けてくるSPAMが、まだかなりある。
そこで、tarpit & greylistモードを試してみることにした。
/etc/init.d/postgreyで--targreyオプションを削除し、--tarpit=35に。
おそらくこれでも、すり抜けてくるものもあるだろうが、それらは頻発するようならblacklist指定を考えることにする。
- Comments (Close): 0
- TrackBacks: 0
新サーバ再構成手順 その2
- Comments (Close): 0
- TrackBacks: 0
新サーバ再構成手順 その1
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
Wnn6、tamagoともに、前回のインストール記録と、ほぼ同じでインストール可能。
ただし、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
とりあえず、使用可能なサーバ機が完成。
- Comments (Close): 0
- TrackBacks: 0
新サーバOSインストール
ハードウェアの準備ができたので、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に比べれば、とてもきびきび動くので気持がよい。
これなら、動画を見ることもできるかも、
- Comments (Close): 0
- TrackBacks: 0
tower 20110121版
- 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)
- Comments (Close): 0
- TrackBacks: 0
rpmnew、rpmsaveファイルの確認修正
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
- Comments (Close): 0
- TrackBacks: 0
yumのエラー
yum updateでエラーが出た。
個別にupdateしていくと、どうやらfile.i386 0:4.17-15.el5_3.1のアップデートがうまく行かないようだ。
そこで、yumデータベースをクリアするべくyum clean all。
うまくいった。
- Comments (Close): 0
- TrackBacks: 0
dovecotの起動スクリプト修正
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
}
- Comments (Close): 0
- TrackBacks: 0
インストール: taRgrey
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を抜けなかったリスト
参考:
- Comments (Close): 0
- TrackBacks: 0
インストール: postgrey
大量の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では、最初はすべてのメールに対して再送要求を行なうため、メール配信の遅延が生じる。
そのための対策はあとで。
- Comments (Close): 0
- TrackBacks: 0
CentOS5で音を鳴らす
サーバマシンなので音は不要だと思っていたが、
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
- Comments (Close): 0
- TrackBacks: 0
いまさら、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はできるようになる。
が、できればザウルスドライブなども使いたい。
ということで、もう、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というスクリプトを書いた。
- Comments (Close): 0
- TrackBacks: 0
logwatchの整理
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を見ると、フリーダイヤルのお問い合わせ窓口があるので、電話かけてやろうかしら(笑)。
- Comments (Close): 0
- TrackBacks: 0
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
- Comments (Close): 0
- TrackBacks: 0
towerのバックアップのためにVineを入れる
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。
まあ上書きの時は、楽と言えば楽だけど、さすがに新規だとちょっと面倒だ。
- Comments (Close): 0
- TrackBacks: 0
KNOPPIX 5.1.1がブートしない
ext3でフォーマットされたハードディスクの中身をサルベージしようと、poseidonをKNOPPIXでブートしようとした。
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をインストール。
作業を行った。
- Comments (Close): 0
- TrackBacks: 0
外向けサーバマシンの変更
- 2008年3月 1日 10:52
- Application | Internet | System | tower
前準備
まず、ユーザを作成する。
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に配送するように記述。
さらに、メール転送を行うユーザはi-forwardにも送るように付け加える。 "/usr/local/bin/i-forward" そして、ホームディレクトリのバックアップからMaildirのみを書き戻す。/home/foo/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は、携帯から見れるかだけをチェックした。
- Comments (Close): 0
- TrackBacks: 0
IPAフォントとM+フォントのインストール
以下のページを参考に、というよりも、そのままに作業を行った。
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>
- Comments (Close): 0
- TrackBacks: 0
インストール: BIND 9.3.3
さて、インストール大会の最後を飾るのは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に置くようになっている。
この構成について解説しているページを探すと、非常に丁寧かつ技術的にもしっかりしたページが見つかった。
ここを参考にしながら、以下の作業を行った。
- "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」。
- Comments (Close): 0
- TrackBacks: 0
インストール:tripwire 2.4.1.2
ファイル改竄探知ソフト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
- Comments (Close): 0
- TrackBacks: 0
Quick Reference: yum
- 2008年2月18日 15:48
- QuickReference | System
データベースのリストアップと更新
$ 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
- Comments (Close): 0
- TrackBacks: 0
CentOSのリポジトリを増やす
まずは、リポジトリをもっとも早いミラーに設定する。
# 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向けのマルチメディア系とプログラミング系など
- Comments (Close): 0
- TrackBacks: 0
インストール: vsftpd 2.0.5
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
- Comments (Close): 0
- TrackBacks: 0
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を編集して対応。
ただし、この場合以下のようなWarningが発生する。
Warning: No xauth data; using fake authentication data for X11 forwarding.
ついでに、sshでrootでログインできないように、towerの/etc/ssh/sshd_configに"PermitRootLogin no"を追加した。
- Comments (Close): 0
- TrackBacks: 0
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に登録した。
- Comments (Close): 0
- TrackBacks: 0
sudo
いいかげん、suしまくるのが面倒になったので、とりあえず、
# visudo
nor ALL=(ALL) ALL
あまりよくはないが、設定が終わるまではこれでいこう。
ここに書いておけば、忘れないだろう。
- Comments (Close): 0
- TrackBacks: 0
iptablesによるファイアウォールの設定
さて、インストールが終わったらセキュリティである。
最終的には、外部に公開するサーバとするので、ガチガチに固めることが望ましい。
なお、今回はSELinuxは使用しないで、iptablesによるファイアウォールを使う。
もちろん、基本的に全部閉じておいて、必要なサービスのみ開くという方針でいく。
GUIから[システム]-[管理]-[セキュリティレベルとファイヤーウォールの設定]で、基本設定を行う。コマンドラインでは「# system-config-securitylevel」に相当する。
まず、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なども開くことになるはずだが今回はとりあえず、この辺で。
- Comments (Close): 0
- TrackBacks: 0
インストール: CentOS 5
さて、本命の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サーバの設定ファイルも変更して再起動。
このときWindowsでDNSの変更を反映にするには、[ネットワーク接続]で[ローカル エリア接続]を修復し、DNSキャッシュを削除する必要がある。
- Comments (Close): 1
- TrackBacks: 0
インストール: Debian etch
インストールしようとしている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のインストールのための前作業。
- Comments (Close): 0
- TrackBacks: 0
DNSを設定
しばらく放置していたが、インターリンクでの接続が新しいIPアドレスになったため、DNSを設定した。
当然ながら、外向け、内向けには別々の設定をした。
外向けのサービスを提供しているサーバだけは、
外からはルータのIPアドレスに、内からはstarletのIPアドレスに見えるようにした。
- Comments (Close): 0
- TrackBacks: 0
logrotate
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
- Comments (Close): 0
- TrackBacks: 0
testingやunstableを使えるようにする
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: 105Package: *
Pin: release a=testing-proposed-updates
Pin-Priority: 110Package: *
Pin: release a=unstable
Pin-Priority: 90
と書く。リリース間の空行分離を忘れずに。
これにより、
1. 非公式なパッケージもバージョンナンバーが大きければaptitudeでちゃんとインストールされる。
2. pin を使って入れた testing または unstable パッケージはそれ以降 testing の最新版が入るようになる。
3. もちろん、特にいじらないパッケージは stable のまま。
aptitudeを使った、testingなどのインストール方法は以下の通り。
# aptitude install popfile/testing
参考にしたURL(というより、この内容自体ほとんどコピーペースト)
- Comments (Close): 0
- TrackBacks: 0
kernelアップデート
Vine 3.2からはaptで普通にインストールが可能になったがliloの書き換えだけは自分で行う必要がある。
# apt-get update kernel
# vi /etc/lilo.conf
# /sbin/lilo
起動時にライブラリの読み込みでエラーメッセージが出るが、特に問題なく動作しているので、放置。
- Comments (Close): 0
- TrackBacks: 0
インストール: Vine 3.2
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をダウンロードして、インストール。
- Comments (Close): 0
- TrackBacks: 0
levinのホスト名変更
内部からもMovableTypeの利用ができるように、levinの名前をwwwに変更した。
まず、levinの/etc/hostnameを書き換え。
さらに、starletのDNSの登録を変更。
starletの/etc/named.confには内部向けのnamed.interを先に書いてあるので、内部からのwwwの問い合わせには、内部用Private IPを返す。
もちろん、外部からの問い合わせは、内部向けの設定は読みとばすので、外部向けのGlobal IPを返すことになる。
ただし、wwwの別名としてlevinも定義した。
- Comments (Close): 0
- TrackBacks: 0
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ディスクを完全消去して、無事解決。
- Comments (Close): 0
- TrackBacks: 0
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
- Comments (Close): 0
- TrackBacks: 0
- Search
- etc...
- Feeds