次は,samba.
sambaももうLinuxでは定番のソフトだ.当初,Windowsバージョンとの相性だとか,日本語文字コードの違いだとかで手痛い不具合を何度も被ってきたが,やはり,LowSpecの一昔前のマシンがsambaを実装してFileサーバとして皆の為に役立つマシンに復活してくれる,しかもそれがCostFreeと言うのだから,なん何ともすごいソフトだ.一つ前のRedhat10(だったかな)の頃,sambaをインストールした時には何の苦労も無く立ち上がった.今もそのサーバは健在だ.だから,今回のFedraも,ガイド本に沿ってインストールすれば...ね?ちゃんと動いた!っていうことを創想像してビール片手にやってみたのがわるかったのか,現実はそう甘くない.確かに,sambaで設定した,ホームディレクトリや共有ディレクトリは見えるのだが,アクセスできない.新規にファイルやフォルダを作成しようとしても「権限がありません」エラーになる.また,Linux側でファイルを作成しても,ホームディレクトリのものは見れるが,共用ディレクトリのファイルは見えない.つまり,sambaは立ち上がっていて通信もできているのだがファイルを読めないし(ホームディレクトリはかろうじて読める),書けないのだ.もちろんディレクトリ設定の,Brousableはonにしているし,read onlyはnoにしている.samba側の設定に落ち度は無いはず.今まで何回となく,やってきた設定だから.また,ガイド本の内容ともほぼ同じだし.....
ここで,FTPで苦労したことを思い出した.そうか,SE-Linuxのbool定数だ!
というわけで,今度は
[root@host123] getsebool -a | grep samba
でコマンドを見てみた.
日記風に書くといかにも簡単の様だが,実際すべてが解決するまでには2日を要している.だが,2日間の悶絶など書いたところで誰もうれしくは無いので,結論だけ言うと,
samba_enable_home_dirs --> on に,
samba_run_unconfined --> on に,
samba_export_all_rw --> onに
することで,全て解決した.コマンドは,例によって
[root@host123] setsebool -P samba_enable_home_dir on
[root@host123] setsebool -P samba_run_unconfined on
[root@host123] setsebool -P samba_export_all_rw on
コレにて一件落着
さて,メインイベント,DDNS(ダイナミックDNS)のインストール&コンフィギュレーションだ.
Windows版では,Diceというソフトを使っている.これはスバラスィーソフトだ.頭のいい人って本当に沢山いるんだな.それもFreeで提供だというので,日頃からその恩恵に預かっています.
一番いいのは,これのUnix版が動くこと.早速DiceのUNIX版をダウンロードしてテスト.設定ファイルもさすがにWindows風にというわけには行かず,キャラクタユーザインターフェース(CUI)上で対話形式で設定を行ってゆく.だが,WindowsベースのDiceを設定したことのある人なら,CUIで聞かれてもたじろぐことは無い.一貫性の取れているインターフェースだから.見栄えが変わってもうろたえる必要は無し.筆者のお世話になっているDDNSサーバmy-domain.jpさんとのやり取りもばっちりに見える.よし,じゃ,IPアドレスの変化を検出した時にDDNS更新をかけるように設定して,Reboot.........その後,ADSL回線を再起動して故意にIPアドレスを変えてみる..........だめ.理由はわからないが,IPアドレスの変化が検出できない.しかしこれは,DiceのUNIX版の不具合,というよりも,きっとUNIX側の仕様が変わった為じゃないかな.
というわけで,今回はDiCEには頼れない.
じゃ,GNU DIPをやってみっか.コレも実は3日かかっている.正直納得いかないけれど,まあ,なんとか実用域には来たと思うので途中の経緯は省き,ここまでのBestPracticeを残しておく.淡々と.
1. GNU DIPを所定のサイトからダウンロード
今回はhttp://gnudip2.sourceforge.net/gnudip-www/latest/gnudip/html/client/UNIX/からgnudip-2.3.5-gdipc.tar.gzをダウンロードした.
2. /usr/localに場所を移して解凍
[root@host123] cd /usr/local
[local@host123] tar zxf gnudip-x.x.x-gdipc.tar.gz
3. カレントディレクトリをusr/local/gdipc/binに移してコンフィギュレーション
[local@host123] cd gdipc/bin
[bin@host123] ./gdipc.pl -c -f gdipc.conf (Unixの場合)
対話形式で次のような設定をする.
Using Update Configuration Mode
Configuration file name:
→ 設定内容を保存するファイル名:ここではgdipc.confとした
Username: REG-XX-XXXX-XXXX
→ DDNSサイトからもらったログインユーザネーム
Domain: xxx.xxx.jp(更新するホスト名)
→ DNSアドレスに登録したいホスト名(url)
Connect by direct TCP (d) or web server (w) [d]: w
→ DDNSサーバによる.my-domainのDDNSサーバの場合は必ず'w'(WEB)
GnuDIP Server - host[:port]: my-domain.jp
→ DDNSサーバのurl(私の場合は,my-domain.jp)
Server URL [/gnudip/cgi-bin/gdipupdt.cgi]: /gnudip/
→ DDNSサーバによる.(my-domainの場合は,"/gnudip/")
Password: XXXXXX(パスワード)
→ DDNSサイトからもらったログインユーザネームに対応するパスワード
Cache File []: gdipc.cache
→ DDNSクライアントソフトが前回のIP値を覚えておくためのキャッシュファイル名
Minimum Seconds Between Updates [0]:
→ デフォルト通り(リターンを押す)
Maximum Seconds Between Updates [2073600]:
→ デフォルト通り(リターンを押す)
これで一つのホストに対する設定は終了
例えばwww, ftp, fs000等のサーバをDynamicDNSサイトに「A」登録した場合は,たとえ物理マシンが同一マシンで動いていたとしても,それはインターネット側からはわからないので,ダイナミックDNSサーバへIP登録する場合は,A登録した分だけ,登録を繰り返す必要がある.
例えば,上記の手順でwww.(自分のドメイン)で登録したとして,他にftp.(自分のドメイン)とfs000.(自分のドメイン)も登録したい場合は,上記設定でできたコンフィギュレーションファイルをviで編集しても良い.1行目に先ほどの対話式で設定した内容が載っているので,これを2行コピーし,ホスト名のところ(www)をftpやfs000などと修正するだけで良い.
4. とりあえず,手動で動作確認してみる
[bin@host123] ./gdipc.pl -f gdipc.conf -g 10000:10000
DDNSのコマンドのやり取りがうまくいったら,DDNSサイトのDNS登録内容に現在のIPアドレスが
更新される.
5. 動作を確認できたら,Boot時にデーモン起動するように仕込む.今回は,/etc/rc.d下に起動スクリプトgdipc.dを書いて,/etc/rc.d/rc.localの最後にこのgdipc.dを呼び出すこととした.忘れてはいけないことは,gdipcの実行ディレクトリ(/usr/local/gdipc/bin)にパスを通すこと.
【/etc/rc.d/gdipc.dの内容】
#!/bin/bash
PATH=$PATH:/usr/local/gdipc/bin
export PATH
cd /usr/local/gdipc/bin
rm *.cache
gdipc.pl -f /usr/local/gdipc/bin/gdipc.conf -d 300 -l /var/log/gdipclog.log -g 10000:10000 &
cd
ここで,
-dはデーモン起動ということで,続く300は300秒毎(5分毎)にデーモン起動されるというもの.
-lオプションは以降に続くファイル名(/var/log/log.log)のlogを出力する,というオプションだ.
一方,rc.localには,下記の記述を1行追加することで,Boot時にGNUDIPを自動起動する.
【rc.localへの追加内容】
su -l -c /etc/rc.d/gdipc.d
以上で,理屈上はGNUDIPが起動時にデーモンとして常駐し,以降5分間隔でDDNSサーバの情報を更新に行くことになる................はずなのだが,
なんと,このスクリプト,手動で動作させると100発100中で正常動作するのに,自動起動時に起動されると,デーモンとしてはちゃんと常駐して5分感覚で起動されていることはわかるのだが,IPアドレスを聞きに行くためのスクリプトが正常に動いていないのか,毎回失敗に終わったというエラーメッセージが出力される.でも,うまく行くときもある.理由が全くわからない.起動時に一度失敗すると,以降,デーモン常駐して5分おきに起動はされるものの,永遠と同じメッセージを吐いて更新が失敗に終わる.また,うまく行くときには行こう5分おきの更新も100%うまく行く.
いいや.SSHも効くし,だめなら,kill -9でプロセスを殺して手動で/etc/init.d/gdipc.dを起動すれば100%動くんだから.まあ,自分が海外出張に言ってhしまったときくらいが問題かな.
理屈ではあってるから,まあ,良いとする.
さて,続いては,PICの寝床として快適になるよう,WEBサーバ(Apache)&PHP,MySQLの設定だ!
最近のコメント