TOPへ

サーバの構築記録・日記編 page2


ktermをwindowsから使う為にjvimを導入してASTEC-Xを試す

(タイトルが長いのは、検索で調べたい人が見つけやすいようにです)

私のサーバーでは日本語編集ができません。
キーボードもなければ、マウスも付けてません。サーバーな動作だけを期待しています。
というわけでサーバーに関するファイルの編集には、telnet経由のviがもっぱらのツール。
あとは、windowsで作成したファイルををftp転送するか、どちらかです。(当然 localからしか使えないようになっています)。
もちろん Copy & Cut & Pasteなんて使えません。

さて、ちょっとした話の中で、かつさんからX WINDOWを使うと便利だという事をお聞きしました。
もちろんLinux上で動かすのではなくWindowsから使う手順です。そうすると、Copy & Pasteも可能だとの事。

それなら早速試してみなくては。

・Linuxサーバーでは、漢字対応の kterm というターミナルエミュレーターを起動させるだけにする。漢字のサーバやXは使わない。
・実際に入出力させるのWindowsの画面とキーボードとする。
・マウスはviには不要なので無視

このようなプランで検討をしてみた。

X ServerをWindows側で立てて、LinuxのXを操作する形。
では、Windows版 X serverはどうなってるのかな?フリーのソフトで幾つか出ているみたいだけど、現時点で、windowsのIMEの情報を受け取れるX serverが見当たりませんでした。
そして Copy & Pasteにも未対応。

行き着くところは ASTEC-X が良いとの情報。かつさんのサイトにASTEC-Xの使用例がありますのでご参照下さい。http://www.kkoba.com/linux/terminal.shtml#11

ASTEC-Xは 78000円、個人使用の場合は 39000円と安くはなるもののかなり高価なので、今回はテスト利用だけとしました。
期間限定(今回のは今月末まで期限)のお試し版があります。

ここから試用版をダウンロードしてsetup.exeを実行するだけ。あとはメニューから ASTEC-Xを起動させる。WindowsはこれだけでOK。


評価版なので起動時にこの様な案内が表示されます。
OKを押すとタスクバーにXという文字で常駐されます。




次にtelnet からサーバーへログインして

export DISPLAY=10.0.0.200:0.0 <----クライアントアドレスを指定して画面表示をそこへ
kterm &

を実施すると、ktermがwindowsの画面に表示されます。TeraTermを使って入力したところです。

このtelnetはすぐにexitで終了させてもだいじょうぶです。
一連の操作は TeraTermのマクロ機能を使って、
 ユーザーログイン → 必要に応じて su へログイン → DISPLAYの変更 → kterm & 実行 → exit
を登録しておけば簡単に呼び出す事ができます。

下の図はktermのウィンドウが出てきた時の画面キャプチャーです。
右はTeraTermです。
日本語を入力する時はShift + Space、OFFにする時は、私の環境だと、変換キーです。
ASTEC-Xで解釈されるONとOFFのキーが私の環境だとそれぞれ異なります.

私はIMにWXG4を愛用しています。キーはめちゃくちゃカスタマイズしてあります。特に問題なく使えました。
また、Windowsのクリップボードからviへのデータ渡しもできました。(かつさんにお聞きしました)。
手順は、Windowsでコピーしておいて、一旦ASTEC-Xのメニューからクリップボードを転送してから、ホイールボタンでvi にpasteされます。

さて、日本語の入力をはじめたところ・・・・viが気持ちよく日本語を入力させてくれません。
私の使っているviはviクローンのvim。
やっぱり、日本語対応に改造された vi クローン を導入しなくてはダメかな?
vim の日本語版は jvim というものがあります。

jvimのインストール

http://hp.vector.co.jp/authors/VA003457/vim/こちらのページからvim3.0側のバージョンへ行って、
vim-3.0.tar.gzそのものの本体と
jvim.2.1a.tar.gzをダウンロードします。

/tmp で 作業する例を書きます
/tmpで tar zxfv vim-3.0.tar.gz として解凍
cd /tmp/vim
ここへ jvim.2.1a.tar.gzを移しておいて
tar xzvf jvim.2.1a.tar.gz
で日本語のモジュールを解凍
それからパッチを当てます
patch -p1 < jvim.diff
cp makjunix.mak Makefile
でMakeファイルを準備
ここで、Makefileを編集します。編集する行番号と内容です。
 64 : X11LIBDIR = /usr/X11R6/lib
 65 : X11INCDIR = /usr/X11R6/include
 87 HELPLOC = $(PREFIX)/lib → HELPLOC = $(PREFIX)/info
 159 : FEPOPT = -DFEPCTRL -DCANNA この3行はいろいろな例で出てきますがcannaは使わないので無視
 160 : FEPLIBS = -lcanna
 161 : FEPOBJS = fepcanna.o
 219 : MACHINE = -DBSD_UNIX -DUSE_X11
 220 : CC=gcc -O
 221 : LIBS = -lncurses -L/usr/X11R6/lib -lX11
あとはmakeして make installのみ・・・・・・
と思いきや

make でエラー
どうやらturbolinuxはこのエラーの可能性があるみたい。6.5でも7でも出るし、エラーの事例は幾つか見つかるものの対策事例が無い。
エラーは
gcc -O -c -DBSD_UNIX -DDIGRAPHS -DTERMCAP -DSOME_BUILTIN_TCAPS -DNO_
FREE_NULL -D
VIM_ISSPACE -DWEBB_COMPLETE -DWEBB_KEYWORD_COMPL -DVIM_HLP=\"/usr/
local/lib/vim.
hlp\" -DKANJI -DUCODE -DTRACK -DCRMARK -DFEXRC -DUSE_GREP -DUSE_TAGEX
-DUSE_OPT
term.c
term.c:27: termcap.h: No such file or directory
make: *** [term.o] Error 1


これ。termcap.hが見つからないとのこと。しかたないので、 srcディレクトリの中の、 term.cの27行め、
# include <termcap.h>
を実際に termcap.hのあるパスに変えてやった・・・勝手に

find / -name termcap.h
これで見つけた
/usr/include/ncurses/termcap.h
ここを入力

# include </usr/include/ncurses/termcap.h>

改めて make
そして make install でインストール完了。
ここでちょっと疑問が
turbo6.5は 、/usr/local/bin に vim として入ったので、従来の vimである /usr/bin/vim に移すか、または jvimに改名して使いわける。
turbo 7 では、 /usr/bin/vim が入れ代わっていつの間にかvi から起動されていました。
まあ深追いはしないで置こう。

あと、ユーザーディレクトリの .vimrcを編集しないとうまく起動できませんでした。
私の場合は
新しいvim = jvimではエラーが出てうまく起動してくれなかったので、
~/.vimrc を編集して

 source ~/.exrc
 set laststatus=2


とだけにして何事もなく使えるようにしておきました。この辺のオプションは把握してないのでそれぞれ研究願います。

カウンタのアクセス解析のcgiを vi で( jvim で)開いたところです。漢字入力もOKなのでいい感じです。

これでしばらく便利。月末のASTEC-Xとのお別れの日まで。


時間によってInterNetに制限をかけるぞ

あまり必要ないかもしれませんが、ある時間帯だけアクセス制限をかけたい場合があります。
例えばMSのプロキシサーバーでは時間帯別の制限が細かく設定出来たのですが、同じことをルーターで実施するにはどうすれば良いのでしょうか?
他のルーターではどうなのか、わかりませんが、YAMAHA RTAはTELNETで設定が変えられるのがもっとも優れている機能。
(私は、ルーターの設定をする時に、あらかじめマクロ用configを作っておいて、TeraTermのマクロを使って一気に登録してしまいます)

せっかくだからcron と perl制御のTELNETコマンドで自動にconfigを変更することにします。

1、最初にルーターに新しくフィルタを作ります。
  ブラウザから、下記の用に、LANに対してフィルタを作ります。
  この例では 10 番のフィルタに 10.0.0.160〜10.0.0.240 の範囲のクライアントから発する 80番portのパケットを rejectするというものです。
  サーバーアドレスは当然、外しておきます。
  WEBだけを止めるために 80 portとしています。メールなどは影響されませんね。


  この状態でフィルタにチェックを入れません。

2、perlで使うNetTelnetモジュールの準備

use Net::Telnet; というモジュールを使います。圧縮ファイルは
Net-Telnet-3.01.tar.gz
です。ファイルは CPANにあるとのこと
http://www.perl.com/CPAN/
の窓口から
http://www.perl.com/CPAN/modules/by-module/Net/
まで降りてファイルをダウンロードします。

tar xvzf Net-Telnet-3.01.tar.gz
で解凍してから
cd Net-Telnet
に入ってから
perl Makefile.PL
make
make test
make install

これで、使える様になります。簡単です。

3、スクリプト

#! /usr/bin/perl

use Net::Telnet;

my($lines,$t,$pass,$adminpass,$rthost);
$rthost = '10.0.0.1'; <----ルーターアドレス
$pass = 'ログインパスワード';
$adminpass = 'アドミニのパスワード';

$tel = new Net::Telnet (-host => "$rthost");

select(undef,undef,undef,2); <---2秒待つ
$tel->waitfor('/Password:.*/');
$tel->print("$pass");
$tel->waitfor('/>.*$/');
$tel->print("administrator");
$tel->waitfor('/Password:.*$/');
$tel->print("$adminpass");
$tel->waitfor('/#.*$/');
$tel->print('ip lan1 secure filter in 100000 100001 100002 100003 100004 100005
  100006 100007 100008 100009 100010 100099');
$tel->print('save');
select(undef,undef,undef,0.5);
$tel->print('exit');
select(undef,undef,undef,0.5);
$tel->print('exit');
select(undef,undef,undef,0.5);
$tel->close;
exit;
これを実行するとフィルタが有効になります。
あ、あらかじめ実行権限をchmodで付けておいてくださいね。
そして、cronに登録して実施するとある時間になると100010 の新設したフィルタが作動します。
また、フィルタを無効にしたい場合は、100010を外した文を書きこんであげればOKです。
$tel->print('ip lan1 secure filter in 100000 100001 100002 100003 100004 100005
  100006 100007 100008 100009 100099');
こんな感じ。
必要に応じて、引数でON/OFFを分けたり、別のコマンドで分けたりして運用すれば良いでしょう。


フレッツで2つのプロバイダを同時に使う

2002年10月1日からNTTのフレッツの仕様が変りました。(私は1.5Mです)
同時セッション数が1つから、2つまで可能になったとのこと。ここ
同時に2つのプロバイダってイメージがわかないかもしれませんね。
私が今使っているルーター RTA54i。
YAMAHA RTAシリーズは、複数のプロバイダや複数の接続先との通信をきめ細かくルーティングする事が特徴で、ISDNとADSLとの同時使用なども前提に作られています。
私は仕事上で、プロバイダだけでなくLANの通信先30ヶ所をルーティングする為にこれを使い始めたので、同時2セッションはぜんぜん問題なく対応できるハズ。
早速(といっても初日からではありませんが)試してみました。
あ・・・あと、もう一つの理由があります。
家の者がInternetにアクセスするときにいちいち固定IPを引きずって廻ってくれるのもイヤだったので。
手順はいたって簡単です。コマンドを使わなくてもブラウザで設定できる範疇です。

 1、接続の設定を増やす
   新規にPPPoEの設定を作ります。作ったら接続してみましょう。
        
   現在、既にサーバーを含めたメインの接続設定と接続通信はされています。そのまますすめても大丈夫です。
   ただし、設定追加はできますが、変更となると一旦切断しないとできませんので注意。

 2、接続方法を指定します。
   複数のプロバイダへ同時接続するのが目的なので下図の様にします。
       
   プロバイダへの接続方式の登録(同時接続設定)を押します

 3、クライアントに対するプロバイダの指定をします。

      
    私は、WAKWAKを使っていますが、 Nifty と Biglobe のアカウントも残ってますので、ここでBiglobeでの設定例をだしてみました。
    デフォルトでBIGLOBE、10.0.0.100から始まるサーバーとその予備軍はWAKWAKにしてみました。
    これで問題なく動作してます。
    あ、あと、自分が本当にBiglobeからアクセスしているのか?という疑問ですが、こちらのアクセス情報を表示してくれるサイトがいろいろなところにあるのでそれを活用しましょう。
    私の場合は、いつものおなじみの方、かつさんの右の■自宅Serverのステータスというページを拝借いたしました。


プロバイダーはここ Click Here! と、ここ


MTA(qmail)にウィルスチェッカーを導入する(試用)

ウィルスメールが時々来ますね。私のところへはあくまで時々やってきます。
クライアントには対策ソフトを入れてあるのでまずは大丈夫です。
でも、できたらサーバーでなんとかしてくれたらいいなぁ と思いますよね。
これまではqmailに対応しているウィルスチェッカーはなかなか充実していなかったのですが、ここ最近、すこしずつ出てまいりました。
(流石にフリーのソフトはなさそうです)

でも、MTAに導入するウィルス除去ソフトはなかなかいい値段です。
50ユーザーくらいまでは初期費用20万円、毎年の更新費用が10万円弱、この辺が相場みたい。

最近の情報を調べてみると、なかなかよさそうなやつが出てるじゃないですか。
http://www.tips.co.jp/products/rav/rav.html
RAV for mailserver
ドメイン数で料金設定されていて、ドメイン2つまでは
 ・初期費 \65,800-
 ・年間の更新費 \13,160-
となかなかお安くなってます。(でも個人で導入するにはちょと高いですけどね)。
できれば会社でも使いたいのでついでに検討してみることにします。

疑問点を自分なりに整理してまとめました。

ドメイン2つって? ns.ayamizu.com と ayamizu.com という2つで消化されるみたいだからそれでちょうどOK。
バーチャルホスト宛のメールは? qmailの場合、バーチャルドメイン宛ののメールも最終的に主になるドメインのアカウントに集約されるので、そこでチェックが完了します。
更新時間は? ここが強い。1時間ごとにFTPで自動更新。最新のウィルスにも、多分最短で対応できるのではないでしょうか。
qmailとはどう関係するのかな? qmailは送信の時も受信の時もメールはqmail-queueというデーモンを通ります。そこを横取りする為にqmail-scannerというソフトを使う場合が多いのですが、このRAVは横取りする機能を含んでいるので何も用意する事はありません。インストーラーがqmail-queueをバックアプして、/opt/rav/bin/ravqmail というコマンドへのシンボリックに書き換えてくれます。
お試し期間は? 30日です。

ということで、30日の間、試してみることにしました。
上記のページよりhttp://www.ravantivirus.comに入り右の download に移り、表から Linuxi386とqmailの交点となるところに入ります。
当然sendmail仕様のものも使えますが私は試していません。

・必要な情報をやりとりして、圧縮してあるファイルをダウンロードします。
・解凍します。tar xzvf のコマンドです。
・3つのrpmをインストールするだけです。でもそれらを一気にinstall.shがやってくれるので
 該当ディレクトリで ./install.sh でOK ※でも・・・その前に!!
・qmail-sendを止めておかないとqmail-queueを書き換えられませんね。私の場合は
 ps aux | grep qmail で表示された qmail-sendのプロセスをIDの数字を
 kill xxxx
 と止めて実施してます。
・改めて ./install.sh を実行して 3番のメニューでfull installを。
・もし削除するときは、qmail-sendを止めてから uninstall.sh を選択して、3つのパッケージを順番に削除してあげればOKです。
cat /etc/opt/rav/domains とコマンドを打って最後の行あたりに domain = ns.ayamizu.com, ayamizu.comと表示されているか確認。
 なければ手打ちします。
・/etc/opt/rav/groups/global を開いて、admin_addr = という行を探して、今書いてあるアドレスのあとにカンマで続けて自分の管理用のアドレスを書いておくとベターです。
・あとは /etc/init.d/ravmail start で起動できます。自動起動のシンボリックは勝手にインストールされています。
・起動したらqmail本体も起動させればOKです。

これでしばらく試してみます。
あと、ウィルスを見つけると、送信者、受信者などに警告文が届きますが、この時点では英文です。正規ユーザーになると日本語のパッチがもらえます。

早速、迷惑メールのチェックがされて、klezがつかまりました。

この私のサーバーの能力で、
 mysqlを動かして
 その上にウィルスチェッカーも動作してしまって
大丈夫かな?Pen 133-RAM32Mなんだけど。
もしページが重くなったらこれを入れたせいです。