arc の日記

はてなダイアリーから引っ越してきました。さらに新しい記事は https://junkato.jp/ja/blog/ で書いています。

Mac OSX(Tiger) 再インストールの記録

もうLeopardが出てしばらく経つのにTigerを再インストールしたわけだが、恐らく定番のアプリなど変わりないところも多いと思うので、誰かの参考になることを願いつつ(いつか自分がまたこういうことをするときのためにも)記録を残しておく。

インストールしたアプリケーション

一般向け

比較的誰でも使いやすいと思しきものは次のとおり。

自宅警備員向け

自宅サーバとしてMacを使う場合、こういうものがあると便利。

  • CronniX
    • スケジューラ(cron)のGUIフロントエンド
    • /Library/LaunchDaemonsで何とかするのがお薦めらしいけど、plistファイルの編集は面倒だし、相変わらずcronは使えるんだから使っちゃえ、という方針。
  • ipcheck.py
    • DynDNS更新(cronで定期実行)

サーバのためのアプリケーションはmacportsで一通り揃う。

  • macports
    • パッケージマネージャ
    • /opt/local/bin にパスを通して使う。

以下、macports経由でインストールしたもの。

# ./configure
> --with-apxs=/opt/local/apache2/bin/apxs
> --with-python=/opt/local/bin/python2.5
    • 後から日本語版があることに気付いたのでダウンロードして、setup.pyを使って上書き。
# ./setup.py build -c /opt/local/bin/python2.5
# ./setup.py install --prefix /opt/local/ --install-lib /opt/local/lib/python2.5/site-packages
  • その他のサーバ用アプリ。

設定したこと

全てのファイルをFinderに表示する。

$ defaults write com.apple.finder AppleShowAllFiles TRUE
~/.bashrc
export PATH=/opt/local/bin:$PATH
export LANG=ja_JP.UTF-8
~/.bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
/Library/StartupItems/Firewall/Firewall

OS X標準のファイアウォールでは生温いという人のために。OS X のファイアウォール機能についてを参考にした。

僕の環境ではen0, en1, fw0(Firewire)でメインのWindows機とMac miniが接続されているので、ルール1000及び1010(IP通信を全て許可)がある。

#!/bin/sh

IPFW='/sbin/ipfw -q'

$IPFW -f flush
$IPFW add 10 divert 8668 ip from any to any via ppp0

# LANとループバックの通信はすべて許可
$IPFW add 1000 allow ip from any to any via en*
$IPFW add 1010 allow ip from any to any via fw0
$IPFW add 2000 allow ip from any to any via lo*

# 危ないIPからの通信は拒絶
$IPFW add 2010 deny ip from 127.0.0.0/8 to any in
$IPFW add 2020 deny ip from any to 127.0.0.0/8 in
$IPFW add 2030 deny ip from 224.0.0.0/3 to any in
$IPFW add 2040 deny tcp from any to 224.0.0.0/3 in

# 外への通信、コネクション確立済みの通信、フラグメントパケットは許可
$IPFW add 2050 allow tcp from any to any out
$IPFW add 2060 allow tcp from any to any established
$IPFW add 2070 allow tcp from any to any frag

# SSH, IMAP, HTTP, PeerCast
$IPFW add 2080 allow tcp from any to any dst-port 22 in
$IPFW add 2090 allow tcp from any to any dst-port 143 in
$IPFW add 2100 allow tcp from any to any dst-port 80 in
$IPFW add 2110 allow tcp from any to any dst-port 7144 in

# Microsoft Messenger
$IPFW add 2120 allow tcp from any to any dst-port 6891-6900 in

# 残りのTCP, ICMP通信をすべて拒絶して記録
$IPFW add 12190 deny log tcp from any to any
$IPFW add 20000 deny log icmp from any to me in icmptypes 8