Debin GNU/Linux 4.0 Etch インストール
自分用のメモです。
設置目的と運用方法
DELL PowerEdge SC430 にインストールする手順です。
- Webサーバ(Perl/PHP/Ruby/Suexecなし)
- メール(Postfix/Dovecot)
- ファイル共有(Samba)
- DNS(BIND)
- rotoold
- shoutcast
- NTP(ntpd)
- FTP(vsftpd/proftpd)
- SSH(sshd)
- ファイヤーウォール(iptables)
不要なサービスはインストールしないように心がけます。
Debian Etch インストール
Debian GNU/Linus クイックインストール解説(Etch編)を参考に作業を進めます。SC430 は Pentium4 521 2.8GHz EM64T ですから、Debian-40rX-amd64-netinst.iso を使用します(参考)。間違って、ia64 をダウンロードしないように。
Debian ロゴ
起動プロンプトが起動したら、グラフィカルインストーラを起動するため、installgui を入力し実行します。
Press F1 for help, or ENTER to boot:installgui
Choose Language
言語を選択画面です。「Japanese - 日本語」を選び次に進みます。
Choose Language追加のロケール
追加したいロケール選択画面です。「en_US.UTF-8」を選び次に進みます。
キーボード配置の選択
日本語キーボードの場合、「日本(106キー)」を選び次に進みます。
ネットワークの設定
おのおのの設定を行い、次に進みます。
パーティショニング
おのおのの設定を行い、次に進みます。私は、「ガイド - ディスク全体を使う」を選択します。
システム管理者のパスワード
入力して、次に進みます。
一般ユーザーの設定
入力して、次に進みます。
追加パッケージのインストール
必要ないので、次に進みます。
ダウンロード先の選択
なるべくデフォルトで選択されていないものを選ぶと負荷が分散できるのではと思います。クイックインストール解説では、「日本」→「cdn.debian.or.jp」が妥当な選択とされていますが、「ftp2.debian.org.jp」の運用が開始されたため、リストにありませんでした。プロキシー設定は、企業内でない限り必要ないでしょう。設定後、次に進みます。
パッケージ人気コンテストの参加
面白そうなので参加を選択して、次に進みます。
ソフトウェアの選択
必要であれば後で追加すべきなので、「標準システム」以外はチェックをはずして、次に進みます。
ブートローダの選択
GRUB をインストールして、次に進みます。
インストール完了後、CD が排出されるので取り出して再起動させます。これで基本システムセットアップは完了しました。
Debian 初期設定整備
ロケールを日本語から英語にする
コマンドラインが日本語で文字化けします。ls すると、total ではなく日本語で表示されるため何が書かれているか分かりません。どうしても日本語表示にして、なおかつ文字化けなく表示する対策があります。ここでは、難しくない英語を日本語にする方がかったるいので英語にします。デフォルトの状態では、root は元々英語になっていますが、useradd で作成される一般ユーザーは全て日本語になるようになっています。
dpkg-reconfigure コマンドを用いて設定します。GUI での作業となるので、全画面コンソール状態で起動するとよいでしょう。
# dpkg-reconfigure locales
設定を行うか聞かれるので、そのままエンターキーを押します。次のロケール選択画面で、ja_JP.UTF-8 が既にアスタリスクが入っているので、en_us.UTF-8 を探して、スペースキーを押して、選択状態にします。つまり、2つのアスタリスクが入った状態で次の画面に進みます。
デフォルトのロケールを聞かれるので、en_US.UTF-8 を指定して、「OK」を選択します。これで、一般ユーザーも英語のロケールになったはずです。
パッケージマネージャ aptitude
パッケージマネージャを自分から近いサーバに設定することで快適なダウンロードが行えます。Debian Etch から apt ではなく aptitude を使用することを推奨しています。ここでも、aptitude を使用します。apt-spy で自動設定を行います。データ転送速度が高いかもしれないサーバ (近くのミラーサイト) を自動的に探すにはも参照してください。
# aptitude install apt-spy # apt-spy update # apt-spy -d stable -s JP
では、/etc/apt/source.list を less で見てみましょう。
# sources.list generated by apt-spy v3.1 deb ftp://ftp.riken.go.jp/pub/Linux/debian/ stable main deb-src ftp://ftp.riken.go.jp/pub/Linux/debian/ stable main deb http://security.debian.org/ stable/updates main
このままだと Debian フリーソフトウェアガイドラインに従うパッケージしか入手できないため、contrib と non-free を追加します。
# sources.list generated by apt-spy v3.1 deb ftp://ftp.riken.go.jp/pub/Linux/debian/ stable main contrib non-free deb-src ftp://ftp.riken.go.jp/pub/Linux/debian/ stable main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free
最後に、update を行います。
# aptitude update
もしこの設定を行ったことで動作が不安定になったら、設定前のファイルが /etc/apt/sources.list.bak にバックアップされていますから、ここから戻します。
Debian パッケージを使用することで、パッケージの内容・依存関係等を確認できます。
Web サーバ
Web サーバおよび標準的に必要なモジュールをインストールします。Python は既にインストールされていましたので、指定しません。
# aptitude install apache2 php5 ruby
Samba
ファイル共有サービス samba をインストールします。
# aptitude install samba
インストールする前に、ブルーバックの Package Configuration が起動します。最初の質問は、「サーバが所属するワークグループを指定してください。」とあります。Windows ワークグループを指定しますが、大文字で入力します(Windows ではワークグループを大文字しか入力できないので)。
If your computer gets IP address information from a DHCP server on the network, the DHCP server may also provide information about WINS servers("NetBIOS name server") present on the network. This requires a change to your smb.conf file so that DHCP-provided WINS settings will automatically be read from
/etc/dhcp.conf.
The dhcp3-client package must be installed to take advantage of this future.
Modify smb.conf to use WINS settings from DHCP?
あなたのコンピュータがネットワーク上で DHCP サーバから IP アドレス情報を取得するなら、DHCP サーバーはネットワーク上で存在している WINS サーバー(NetBIOS ネームサーバ)に関する情報を提供するかもしれません。
これは DHCP を提供された WINS 設定が /etc/dhcp.conf から自動的に読まれるあなたの smb.conf ファイルの変更を必要とします。
DHCP から WINS 設定を利用するため、smb.conf を修正しますか?
プライベート IP アドレスは使用していないので、NO を選択します。
設定
インストール後の状態では、Windows から ¥¥192.168.1.1¥username¥ でアクセスしてもログインできません(正確にはログインウィンドウが出るが、入力しても入れない)。これは、Debian にログインするためのパスワードとは別に、Samba にログインするためのパスワードを設定していないためです。設定するために smbpasswd コマンドで設定します。
# smbpasswd username New SMB password: Retype new SMB password:
/etc/samba/smb.conf を編集します。
[homes] comment = Home Directories browseable = yes # By default, the home directories are exported read-only. Change next # parameter to 'yes' if you want to be able to write to them. writable = no
Windows 側からファイルを作成できるよう、home セクションの writable を yes に変更します。
[homes] comment = Home Directories browseable = yes # By default, the home directories are exported read-only. Change next # parameter to 'yes' if you want to be able to write to them. writable = yes
ネームサーバ
ネームサーバ bind をインストールします。最新の bind9 をインストールできます。
# aptitude install bind9
ntp サーバ
時刻を調整するサーバ ntp をインストールします。
# aptitude install ntp
FTP サーバ
FTP サーバ vsftpd をインストールします。
# aptitude install vsftpd
設定
デフォルト状態だと、Anonymous FTP になっているので使い物になりません。設定ファイルを変更します。
Anonymous 接続
Anonymous サーバを運用するかどうか。デフォルトは YES でした。
anonymous_enable=YES
NO に変更します。
anonymous_enable=NO
Debian に存在するユーザーによる接続
Debian に存在するユーザーによる接続を許可するかどうか。デフォルトはコメントアウトされていました。
#local_enable=YES
コメントアウトをはずします。
local_enable=YES
FTP 接続ユーザーによる書き込み
FTP 接続ユーザーによる書き込みを許可するかどうか。デフォルトはコメントアウトされていました。
#write_enable=YES
コメントアウトをはずします。
write_enable=YES
ユーザーマスクの設定
FTP でアップロードされるファイルやディレクトリのユーザーマスクの設定です。デフォルトはコメントアウトされていました。一般的な 022 でよいでしょう。
#local_umask=022
コメントアウトをはずします。
local_umask=022
ディレクトリごとのメッセージ
FTP クライアントで接続した時に、ディレクトリごとにメッセージを表示させるかどうか。デフォルトは YES でした。
dirmessage_enable=YES
NO に変更します。
dirmessage_enable=NO
xferlog ログファイルの出力
xferlog を出力するかどうか。デフォルトはコメントアウトされていました。
#xferlog_file=/var/log/vsftpd.log
コメントアウトをはずします。
xferlog_file=/var/log/vsftpd.log
xferlog ログファイルのフォーマット
xferlog を詳細に出力するかどうか。デフォルトはコメントアウトされていました。
#xferlog_std_format=YES
コメントアウトをはずします。
xferlog_std_format=YES
ASII モードのアップロード・ダウンロード
ASCII モードのアップロード・ダウンロードを許可するかどうか。デフォルトはコメントアウトされていました。
#ascii_upload_enable=YES #ascii_download_enable=YES
コメントアウトをはずします。
ascii_upload_enable=YES ascii_download_enable=YES
ディレクトリの移動処理
一般的なユーザーは、/home/sakura/public_html がルートディレクトリとし上位ディレクトリに移動させないようにします。bashrc 等がある /home/sakura には移動できないようにします。特定のユーザーは、上位ディレクトリに移動できるようにします。また、.htaccess などドットが先頭につくファイルが見えるように設定します。
#chroot_local_user=YES #chroot_list_enable=YES #chroot_list_file=/etc/vsftpd.chroot_list
コメントアウトをはずします。
chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list local_root=public_html force_dot_files=YES
/etc/vsftpd.chroot_list に指定したユーザーは、上位ディレクトリに移動できます。ファイルに変更を行ったら、/etc/init.d/vsftpd restart します。
ローカルタイム
デフォルトだと UTC になるため、日本時間になるように設定します。この設定は、新規に追記します。
use_localtime=YES
起動と終了
起動と終了は以下の通り。設定ファイルを更新したら必ず再起動 restart を行います。
# /etc/init.d/vsftpd start # /etc/init.d/vsfptd stop # /etc/init.d/vsftpd restart
SSH サーバ
SSH サーバ ssh をインストールします。
# aptitude install ssh
rotoold
rotoold をインストールします。
# wget http://white.niu.ne.jp/rotoold/rotoold-20050506_0.tar.gz # tar xvzf rotoold-20050506_0.tar.gz # mv ./rotoold-20050506_0 /user/local/games/rotoold
rotoold を編集して、プロセス ID を出力させます。
# $opt{pidfile} ||= "/var/run/rotoold.pid"; #uncomment if use rogpsd as daemon.
コメントアウトされているので、先頭のシャープをはずします。
$opt{pidfile} ||= "/var/run/rotoold.pid"; #uncomment if use rogpsd as daemon.
起動スクリプトを設定します。Redhat 系は chkconfig コマンドですが、Debian は update-rc.d コマンドを使用します。
# /usr/local/games/rotoold/etc/Redhat_rcfile /etc/init.d/rotoold # chmod 755 /etc/init.d/rotoold # update-rc.d rotoold defaults 98
起動と停止は以下の通り。
# /etc/init.d/rotoold start # /etc/init.d/rotoold stop
SHOUTcast
インターネットラジオサーバ SHOUTcast をインストールします。SHOUTCast DOWNLOAD から SHOUTcast Linux server (glibc) v1.9.8 をダウンロードします。前もって shoutcast ディレクトリを作成するのは、そのまま解凍するとカレントディレクトリに展開されてしまうためです。
$ mkdir shoutcast $ cd shoutcast $ wget http://www.shoutcast.com/downloads/sc1-9-8/sc_serv_1.9.8_Linux.tar.gz
展開します。
$ tar xvzf sc_serv_1.9.8_Linux.tar.gz
useradd で shoutcast 実行ユーザーを作成します。ホームディレクトリを /usr/local/shoutcast にします。また、/usr/local/shoutcast の各ファイルの所有者を shoutcast にします。
# mkdir shoutcast -d /usr/local/shoutcast # chown shoutcast. /usr/local/shoutcast
設定
設定ファイルを修正します。
# vi sc_serv.conf
最大接続数
MaxUser=32
適切な数値を指定します。
MaxUser=10
音楽を再生するコンピュータを認証するパスワード(必ず変更)
Password=changeme
必ず設定してください。
Password=Hogehoge
接続ポート
デフォルトでは 8000 が使用されます。デフォルト値は広く知られているため、変更することをお奨めします。
PortBase=8000
1024以降の番号を指定します。
PortBase=2525
名前解決
SHOUTcast へ接続する IP アドレスを名前解決するか指定します。
NameLookups=0
ウェブ管理時に IP アドレスではなく、名前解決されて表示されます。好みで設定すればよいでしょう。
NameLookups=1
SHOUTcast ウェブ管理画面へのログイン用パスワード(必ず変更)
http://hogehoge:ポート番号/ にアクセスすると表示される画面の管理者用画面へのログイン用パスワードを指定します。
; AdminPassword=adminpass
コメントアウトを解除し、パスワードを設定します。
AdminPassword=sakura
shoutcast.com へ通知しない(必ず変更)
shoutcast.com に放送されているサーバ名として表示される可能性がありますので、表示されないようにします。
PublicServer=default
never にすると表示されません。
PublicServer=never
優先接続と拒否の設定ファイル
指定した IP アドレスは優先的に接続できるようにするファイルを読み込むようにします。
; BanFile=sc_serv.ban
コメントアウトを解除します。
BanFile=sc_serv.ban
指定した IP アドレスは拒否するようにするファイルを読み込むようにします。
; RipFile=sc_serv.rip
コメントアウトを解除します。
RipFile=sc_serv.rip
テスト
動作するかチェックします。
# ./sc_serv
成功すればイベントログが表示されます。特段問題が無ければ、[CTRL]+[C] で停止します。
起動と停止
通常運用時の起動は以下の通り。
# su - shoutcast -c "/usr/local/shoutcast/sc_serv $@" >/dev/null 2>1 &
停止は今の所プロセス ID を指定して、停止するしかないようです。
# ps ax|grep shoutcast # kill 29501
