初期型の玄箱の Debian化
色々なホームページから個人用の覚え書きとして抜粋して作っています。どこのページだったか判らなくなってしまった部分もありますがその辺はご勘弁を!!
入力行は赤 で表示してあります。
まずはダウンロードする
ダウンロードしたパッケージのファイル名をimage.zipに変更する。
玄箱のアップデータを玄人志向のホームページよりダウンロード。
展開する。
先ほどのDebianキットのimage.zipと差し替える。
差し替えたそれらのファイルを使って通常の玄人志向のアップデータ方法を実行
これでDebian化最低限終了。超簡単!!
再起動!!
ルーターのIPアドレス:192.168.0.1
玄箱のIPアドレス :192.168.0.100か 192.168.0.150
で立ち上がる。
Telnetで以後操作
tmp-kunでログイン
パスワードもtmp-kun
rootに移って、パスワードもroot
/etc/apt/sources.listが古いので修正する?
このままでは/etc/apt/sources.listが古く apt-get を使っての更新が出来ないので修正をする必要がある。
しかしこのバージョンのviエディタにはバグ?があるようで思うとおりに修正ができない。
代わりにvimをインストールして使用・・と思うのだが apt-getが使えないのでしばし思案・・・。
いきなりSargeへのアップグレードという非常手段を取る事にする。以下手順。
Updateの下準備
/etc/apt/sources.listを書き換えが上記の理由から、問題があるので一端ファイル名を変更。
# mv /etc/apt/sources.list /etc/apt/sources.list.old
以下はWindows上から操作。
sources.listをとりあえず以下のように書き換えたい訳だから以下をそのままコピーして覚えておき
# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
# Security updates for "stable"
deb http://security.debian.org stable/updates main contrib
#deb http://security.debian.org testing/updates main contrib
# Stable(serge)
deb ftp://ftp.dti.ad.jp/pub/Linux/debian stable main contrib
deb ftp://ftp.dti.ad.jp/pub/Linux/debian-jp stable-jp main contrib
# Sources
deb-src ftp://ftp.dti.ad.jp/pub/Linux/debian stable main contrib
deb-src ftp://ftp.dti.ad.jp/pub/Linux/debian-jp stable-jp main contrib
コマンドプロンプト窓から立ち上げログインしている玄箱上から
調子の悪いviエディタで
# vi /etc/apt/sources.list
立ち上がったら
[Esc] [i] と入力して挿入モードで立ち上げ
先ほどの内容をペーストして一度に入力
「Esc]:qw]と入力してそのまま書き込む
これで準備OK!!
Sargeへのアップグレード
1. aptのリストを更新する
# aptitude update
2. wgetをインストールする
# aptitude install wget
3. Debian JP Projectが公開しているミラーサイト一覧を取得する
# wget http://www.debian.or.jp/debian-ftp-mirrors-jp
4. netselectをインストールする
# aptitude install netselect
5. netselectとミラーサイト一覧を使用して、速いミラーサイトを調べる
# netselect -vv `cat debian-ftp-mirrors-jp`
一番右端の[] 内のスコアを見て、一番小さそうなモノをチェックする。
できればnetselectを何度か実行して、安定していそうなところを選ぶのがよいと思う。
6. /etc/apt/sources.listを更新する
その前にsources.list をバックアップしておく
# cp /etc/apt/sources.list /etc/apt/sources.list.woody
sources.lstファイルの # Stableと# Sourcesの部分をさっき調べたミラーサイトに書き換える。
実際の私のsources.list
# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
# Security updates for "stable"
deb http://security.debian.org stable/updates main contrib
#deb http://security.debian.org testing/updates main contrib
# Stable(serge)
deb ftp://ftp.dti.ad.jp/pub/Linux/debian stable main contrib
deb ftp://ftp.dti.ad.jp/pub/Linux/debian-jp stable-jp main contrib
# Sources
deb-src ftp://ftp.dti.ad.jp/pub/Linux/debian stable main contrib
deb-src ftp://ftp.dti.ad.jp/pub/Linux/debian-jp stable-jp main contrib
7. 再度aptのリストを更新する
# aptitude update
最新のミラーサイトを探すには
参考にしてみよう。
Sargeへのアップグレードにトライ!
一通りの準備が終わったら、Sarge化に取り掛かります。
# apt-get -u dist-upgrade
作業方法は
玄でび庵 - [Sarge化]
これでSarge化完了!!
初期型の玄箱 Sarge化後にすること
vimで各設定ファイルを修正
viは使いづらいので早速vimを導入
#apt-get update
#apt-get install vim
rootのパスワード設定
# passwd
パスワードを聞いてくるので入力×2回
新規ユーザー作成&パスワード作成
★ユーザーの作成方法
ユーザーのホームディレクトリの場所はファイルスペースの大きい
/mnt/homeの中に作りましょう。
ホルダ名はユーザー名と同じとする。
グループは適当なグループに属するように作成。
登録するグループをgrpname、ユーザー名namaeとしたとき
場所を作成
#mkdir /mnt/home
グループの作成
#groupadd grpname
ユーザーを作成と同時にホームを作成
#useradd -g grpname -m -d /mnt/home/namae namae
パスワードを作成
#passwd namae
パスワードを2回入力
新規ユーザーでログインし直す。
tmp-kunユーザーはもう使わないので安全のため削除しておこう!!
/etc/network/interfaces を修正(アドレス変更が必要なときだけ実行します)
(IPアドレス、ネットワークアドレス、サブネットマスク、ブロードキャストアドレス、デフォルトゲートウェイアドレスを修正)
# vim /etc/network/interfaces
rootに変更しIPアドレスの修正例
# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
# /usr/share/doc/ifupdown/examples for more information.
iface eth0 inet static
address 192.168.0.106
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
iface lo inet loopback
auto eth0 lo
hosts.allow アクセスリストの修正(デフォルトで修正済み)
ALL : 192.168.0.0/255.255.255.0
ALL : 127.0.0.1
resolv.conf 名前解決のためのDNSサーバアドレスを修正(デフォルトで修正済み)
/etc/resolv.conf を修正
search
domain ****.****.jp
nameserver 127.0.0.1
nameserver 192.168.0.106
nameserver 192.168.0.1
hostname 修正
/etc/hostnameを修正
KURO-BOX
hostsファイル修正
/etc/hosts を修正
127.0.0.1 localhost
192.168.1.106 KURO-BOX
以下は参考まで
Eximを削除
今回Postfixを使うつもりなのでEximを削除しても良いが、Postfixインストールの時に自動で削除できるのでこのままでも良いが強制的に削除するなら
# apt-get remove exim
【ダイナミックDNS(DDNS)の自動更新】
ダイナミックDNS(DDNS)を使用しているのでIPアドレスの変更時は
サーバへ通知する必要があります。
そこでDDNSサーバの負担を減らすためにIPアドレスの変更時のみ登録するように
perlスクリプトを作成します。登録にはwgetを使います。
【wgetが無ければインストール】 aptで入手
#aptitude update
#aptitude install wget でインストール完了。
次にホルダを作成
# cd /usr
# mkdir -p ddns
ここにipchk.plを作成します。
詳しくはそちらを見てください。
DDNSチェックファイル:/usr/ddns/ipchk.pl
# vim /usr/ddns/ipchk.pl このipchk.plに以下の記述を書き込みます。
#---------------------------ここから----------------------------------
#!/usr/bin/perl
#
$CRT_IPF = '/usr/ddns/CRT_IP.dat';
$NEW_IPF = '/usr/ddns/NEW_IP.dat';
$LOG = '/var/log/ddns.log';
open INPUT,"$CRT_IPF";
$CRT_IP=<INPUT>;
close INPUT;
system("wget -q -O $NEW_IPF 'http://info.ddo.jp/remote_addr.php'");
open(INPUT,$NEW_IPF);
$c = <INPUT>;
$stp = index($c,"REMOTE_ADDR:")+12;
$edp = length($c);
$NEW_IP = substr($c,$stp,($edp-$stp));
close(INPUT);
if ($NEW_IP ne "" and $CRT_IP ne $NEW_IP) {
open (OUTPUT ,">$CRT_IPF");
print OUTPUT $NEW_IP;
close OUTPUT;
print "IP Address update: $CRT_IP to $NEW_IP\n";
system("wget -q -O - 'http://free.ddo.jp/dnsupdate.php?dn=ドメイン&pw=パスワード'");
$now_string = localtime;
open (OUTPUT ,">>$LOG");
print OUTPUT "$now_string DDNS IP Address Updated. $CRT_IP to $NEW_IP\n";
close OUTPUT;
}
#-----------------------------ここまで--------------------------------
※「ドメイン」と「パスワード」のところは自分のサーバー用に変更し保存。
crontabを編集して定期的にipchk.plを起動するように設定します。
# vim /etc/crontab
--以下開いたファイルの追加部分--
# DDNS
*/30 * * * * root perl /usr/ddns/ipchk.pl
00 5 * * 0 root rm -f /usr/ddns/CRT_IP.dat
00 5 * * 3 root rm -f /usr/ddns/CRT_IP.dat
--以上開いたファイルの追加部分--
この設定は、30分毎にIPアドレスの変更をチェック。
変更があった場合にDDNSサーバに対しIPアドレスの更新を行います。
また、日曜日と水曜日の午前5時にCRT_IP.datを強制削除することにより、
次のチェックタイミングで自動更新を行います。
これで週2回は必ず更新。
※注意
Debianの作法だと実際は直接crontabに書かない
crontab への登録は
# corontab -e
を実行すると登録のエディタ(vi と同じ)が起動します。
登録は 「分 時間 日 月 曜日 コマンド」の順である。
毎週、日曜日(0が日、1が月、2が火、・・6が土)
"crontab -e"でタスクスケジュールする場合はcron設定ファイルで説明したフォーマットからユーザフィールドを
排除したものでそれ以外は同じである。
#
#DDNS
*/30 * * * * perl /usr/ddns/ipchk.pl
15 3 * * 0 rm -f /usr/ddns/CRT_IP.dat
15 15 * * 1 rm -f /usr/ddns/CRT_IP.dat
15 3 * * 2 rm -f /usr/ddns/CRT_IP.dat
15 15 * * 3 rm -f /usr/ddns/CRT_IP.dat
15 3 * * 4 rm -f /usr/ddns/CRT_IP.dat
15 15 * * 5 rm -f /usr/ddns/CRT_IP.dat
15 3 * * 6 rm -f /usr/ddns/CRT_IP.dat
となります。
リストは
# crontab -l
削除は
# crontab -r です。