Slackwareインストール、活用

奮闘記

目次


1、はじめに
2、ハード環境
3、bootおよびrootディスクの作成
4、インストール
5、x-windowの設定
6、TCP/IPの設定
7、ネットワークの初期化
8、ppxpのインストール
9、ppxpの設定
10、ppxpでマスカレード
11、sambaのコンパイルとインストール
12、sambaの設定


1、はじめに

 前回のturboLinuxでは何とか、インターネット接続、IPマスカレードに成功したが、sambaでは、日本語がうまく扱えずに終わってしまった。オンデマンドppp接続も、旨くいかなかった。やはりsambaはコンパイルから手をつけないとうまくいかないのかもしれない。オンデマンドのpppも最近ppxpというソフトも出てきたので、それで実現できれば万万歳だ。
 よしと、重い腰を上げてまたやってみっか。初心に返ってslackwareに挑戦してみよう。1998年の7月にリリースされたslackware3.5はカーネルが2.0.34になり、FAT32に対応したようである(win95を使っている私には関係ないが、win98でFAT32使っている場合にはこのカーネルでないとうまく共存できないからね。)。



2、ハード環境

インストールするマシンは以下のような、二昔前のペンタ90のdellのマシンで、CDROMはSB SCSI2のAHA1510相当のチップにつながっている。IDEのCDROMはどうもLinuxと相性が悪いのでわざわざSCSIを使っている。
 ISA関係のカード(私の場合は、SCSIとethernetcard)のI/Oポート等はwin95のデバイスマネージャーの内容を印刷して控えておく(これ大事)。

PC dell optiplex XM590
(pentium90MHz clock up to100MHz)
RAM 32MB
SCSI SB16SCSI2(アダプティク1510相当)( I/Oポート 0x340、IRQ 11、 ID 7)
CDROM コンパック製SCSI 2倍速
ビデオチップ S3vision864 2MBオンボード
LAN card elecom社製 ISAバスNE2000コンパチ LD-NE20/T (IRQ 9、 I/Oポート 0x300)
modem 28800 外付け COM1
mouse PS/2 3ボタン(メーカー不詳の安物)
HDD fujitsuのIDE約2GB(600MBはすでにwin95がインストール済み)
monitor fujitsu DP84Y1 15インチ 水平周波数30-64kHz、垂直周波数50-100Hz

3、bootおよびrootディスクの作成

 はじめにbootdiskをつくる。私の場合はCDROMのつながっているaha152xのイメージの入ったディスクを作成する(一般的な場合はATAPIのCDROM)。
はじめに、fomatしたフロッピーディスクをAドライヴに入れてslackware3.5のディスクの
\bootdisks.144\scsi-bat\aha152x.bat
を実行すると簡単にできてしまう。(ATAPIのばあいは \bootdisks.144\ide-bat\bare.batを実行する。) 

 rootdiskもフロッピーをAドライヴにいれて、
\rootdisks\color.bat
を実行すれば自動的にできてしまう。

以前よりも簡単になったもんだね。


4、インストール

4−1 CDROMを認識させる

いよいよインストールとなった。
bootdiskを入れると。

boot:

と出る。ここで、ISAカードのAHA1510のscsiを認識させるために

boot: ramdisk aha152x=0x340、11、7

と IOポート、IRQ、IDを入力する。これをしないと後々CDROMを認識してくれないのだ。

上のパラメータを入力してリターンキーをおすと、しばらくして左のようなscsiのCDROMを認識したことがわかるメッセージが出てきて一安心。

ATAPIのCDROMを認識してくれないときは
ramdisk hd=cdrom

セカンダリーにつながっているCDROMを認識しないときは
ramdisk hd=serialize

と打ち込んでみると認識することがあるそうだ。
それでも認識しなかったら、私はわからん。

ネットワークからインストールするには、ネットワークカードを認識させなければいけないので、
ISAのカードの場合(私の場合だが)
ramdisk ether=9、0x300、eth0

と打ち込むと認識するそうだ。(今回は、はじめからネットワークカードは認識させる必要ないけど。)


何はともあれ、rootdiskに入れ替えてどんどん進む。
そして

slackware login:

と出るので


slackware login: root

と打ち込むと、いろいろ出てきて

#

が出る。
ここで fdiskを実行して、パーテーションをきっていく。


4−2 パーテーションの切り方

fdiskを使ったパーテーションの作成が初心者にとっては一つの難関かもしれない。ヘルプを見ながら試行錯誤でやってもらえばどうにかなる。
でも、docや雑誌の記事を見ると、redhatやturbo のように細かなパーテーションはきらなくてもいいようなのでその分簡単かもしれない。なにせ、プライマリーのパーテーションのみでOK。拡張パーテーションはいらないようだから。

下のように、はじめのパーテーションはFAT16のwin95がインストールされており、hda2はスワップファイル(RAMが32Mつんであるのでそれと大体同じ容量にした。)、hda3は/に、hda4は/homeにするつもりでいる。/homeには後々、個人的な設定ファイルがどんどん溜まってくるので、後でバックアップするときに、べつのパーテーションにしておいたほうが使勝手がいいとのことです。

device boot begin start end blocks Id system mount 予定
/dev/hda1 * 1 1 305 614848+ 6 DOS 16-bit >=32M /dos
/dev/hda2 306 306 321 32256 82 Linux swap スワップ
/dev/hda3 322 322 829 1024128 83 Linux native /
/dev/hda4 830 830 1023 391104 83 Linux native /home


パーテーションを切り終わったら、いよいよセットアップだ。
fdiskを終了させて

#setup

と入力インストールのカラーの画面が出てくるから最初は
ADDSWAP
を選択する。

画面のいいなりに、フォーマットまですると、今度は左のように / パーテーションをどこにするか聞いてくるので、私の場合、hda3を選んだ。そして画面のいいなりにフォーマットをしてしまう。

次に、hda4はどうしますかと聞いてくるので、これもフォーマットすると、どのディレクトリーをマウントしますかと聞いてくるので左の図のように  /home  と入力した。

最後に、hda1はFAT DOSなんだけれどどうしますかと聞いてくるので、左の図のようにそのまま
/dos
とマウントしてくださいと入力する。

これでやっとパーテーションは切り終えた。


4−3 パッケージの選択

 パーテーションの設定が終わると、今度はどこからLinuxをインストールしてくるか聞いてくるので、slackwareのCDROMからインストールするを選ぶ。
すると、CDROMを自動で見つけるかマニュアルで設定してみつけるか聞いてくるので、自動を選択する。しばらくすると、scsiのCDROMが見つかったと結果を出してくる。(ここで難なくSCSIのCDROMが見つかったのは、はじめのところでramdiskにパラメーターを教えたからだ。)
ここで、boot時にこのCDROM(/dev/scd0)を/cdromにマウントしていいかと聞いてくるので、ここは必ずYesにする。いつもマウントされていると、マウントするときにいちいち mountコマンドを長々と打たなくてすむ。



パッケージの選択は、Linuxで何をやりたいのかにもよるけど、オーソドックスなやつを選択してみた。
雛形になったのは、software design 98年2月号「すみかすみまでLinux」の記事のパッケージ選択をたたき台にして自分なりにアレンジした。この記事はslackware3.4をもとに書いてあるので、3.5は若干変わっている。また、日本語化パッケージのPJEを入れることを前提にしているので、sendmailやgostscriptなどはあえて選んでいない。

選んだシリーズは A,AP,D,F,K,N,TCL,X,XAPの各シリーズ。
シリーズを選ぶと、お任せコース、シリーズ内のすべてをインストールする、個別に選ぶexpertなどの選択肢が出てくるので、expertを選んだ。




Aシリーズ(base Linux sysytem)は、そこを開いたときにすでにチェックがかかっているもの(お勧め)をそのまま選んだ。ここで気をつけてほしいのは、SCSIを使うなら、SCSIの使えるカーネルを選んで、IDEのみのカーネルは選ばないことだ。

APシリーズ(Various Applications)は manpgs,diff,bc,texinfo,ash,zshを選んだ。gostscript関係はPJEのパッケージに入っているので選ばなかった。

Dシリーズ(Program Development)は、すでにチェックされていた項目とterminfoを選んだ。開発環境は良く分からないので、これで良いかどうか分からないが、makeやgcc関係が入っていれば大丈夫かな?

Fシリーズ(FAQ/DOCS)は、すべてを選んだ。

Kシリーズ(Linux Kernel souce)は項目が2つあったが、カーネルソースのみを選んだ。

Nシリーズ(Networking)は、sambaやnetatalkの項目があるが、下手にインストールして日本語が扱えなくなってしまうかもしれないので、ここでは選ばず、あとで、コンパイルしてインストールすることにした。sendmailもえらばず、結果として procmail、ppp、tcpip1と2、metamail、lynx、 apache、bind等を選んだ。

TCLシリーズ(Tcl/Tk /tclX)は、tcl,tk,tclxを選んだ

Xシリーズ(XFree86 3.3.2)では、サーバー関係はS3(自分のマシンの適当なやつ、私の場合はs3vision864なのでs3をえらんだ。)、とx332vg16をえらんだ。
他は、fvwm,x332doc,x332jdoc,fvwmicons,x332set,x332man,x332cfg,x332bin,x332prog,
x332lib,oldlibs5,oldlibs6,xpm,x332fnts,x332fscl,xlock等を選んだ。

さいごのXAP(X Applications)では、netscape,fvwm95,seyon,gnuplot,xv,xfm,xpaint,
xspread,xxgdb,等を選んだ。特に、netscape,xfm(Xのファイルマネジャー)はいれておいたほうが便利だ。

4−4LILOインストール他
 パッケージのインストールが終了すると、カーネルのインストールをします。
画面でbootdiskを選んで、まっさらなフロッピーをAドライヴに入れて、formatの項目を選び、format後
make lilo bootdiskを選んでbootdiskを作成します。

 次にモデムの設定画面になると、COM1に繋がっているなら、 /dev/cua0を選んでおく。
 フォントも聞いてくるのでどれでも良いから適当なのを選んでおく。私はよく分からなかったので、一番上の 8x14alt を選んだ。

 今度は、LILOのインストール画面が出るから、 expert  Use expert lilo.conf を選ぶ。
すると、画面が変わるので、Beginを選ぶと、 OPTIONAL append= lilo.confの設定画面になる。
ここで、起動時に認識させたい、ISA関係のカードのパラメータを入力しておく。
私の場合は、scsiカードを認識させないとCDROMが使えないので、ここでscsiのパラメータ

aha152x=0x340,11,7

を記入した。ISAのLANカードを認識させたい場合もここに記入してもいいが、後で、networkの設定のところでも認識させることができるので、ここであえて認識させなくてもいいみたいだ。
次にliloをどこにインストールするか聞いてくるので、MBRかフロッピーにしておくほうがいいそうだ。
私は、LILOをdosとLinuxのブートローダーとして使いたいのでMBRにした。
セキュリティーの問題で、自分だけがLinuxを起動させたいとか、MBRは少し危険かなと思ったらフロッピーが無難かもしれない。

次に、LILOからブートまで何秒あればいいかと聞いてくるので、5秒にした。
Linuxのブートパーテーションはどこかと聞いてくるので
/dev/hda3
と記入。
LILOで選ぶときになんという名前にするかと聞いてくるので、
Linux
と答えた。

dosのブートパーテーションはどこかと聞いてくるので
/dev/hda1
と記入。
LILOで選ぶときは何と言う名前にするかと聞いてくるので
dos
と答えた。

最後に
install lilo
を選んでインストールする。

4−5ネットワークの設定など
ネットワークの設定に入る
hostnameを
dell
とし、
domain nameを
fukiage.or.jp
として、
loopbackも
yesと答えた。

こんどはマウスだ
私の場合 PS/2を選んだ。

次にGPMを使用するかどうか聞いてくるので
ここは迷わず、
NO
と答える。

ここが落し穴だ!


間違って YESなんて答えると、
Xwindowでマウスが干渉して動かなくなってしまうのだ。
ここで何回失敗したことか。
GPMはNOだ!


タイムゾーンをtokyoにして、
dosのパーテーションをどのようにマウントするか聞いてくるので、
/dos
にマウントするように答える。

これでやっとセットアップが終了しリブートだ!
shutdown -r now
で、無事リブートと相成りました。
scsiも認識されているし、CDROMも使えそうだ。めでたしめでたし。


5、XーWINDOWの設定

5−1 ビデオチップ詳細情報の入手法

 さあいよいよxwindowの設定だ。 redhatやturboはXの設定が比較的簡単で、すぐxが立ち上がったが、slackwareの場合、設定が面倒なことで知られている。

私の場合、ビデオカードはオンボードでs3vision864が2MBのRAMをのっけてついているけど、肝心のRAMDACやCLOCKCHIPがどんなのが載っているのか皆目見当がつかない。おそらくRAMDACとCLOCKCHIPは別々でなくワンチップ構成になっていると思われるけど、マザーボードのチップを見ても見当がつかなかった。
代表的なやや古目のビデオカード(MACH64など)ならそのまま会社名が同じでチップも同一のカードを選べば終わりだけど、私の場合どうにもならない。

slackwareについている英語のインストールマニュアルを覗いてみると、 4,2 Post-installation configuration の Configuration the X Window Systemのところにこんなことが書いてあった。

「Xの設定は複雑だ。なぜなら、非常にたくさんの種類のビデオカードがあることに加え、それぞれのカードの細かいこと(RAMDACやCHIPなどの情報)はほとんど分からないからだ。
しかし、幸運なことにビデオチップの情報を教えてくれるユティリティーがある。それは

SuperProbe

だ!」と。


よし、これだ。このスーパープロ−ベだ。これでいっちょうやったろうじゃないか。

rootでloginして

#SuperProbe

と入力した(大文字小文字を正確に入力してよ。)。

すると、ででで出たー(といったってクリンビューのガラスコートじゃないよ。)
RAMDACがのってましたよ。 STG1703というチップを使っているようだ。
これだな。おそらくCLOCKCHIPも同じやつだろう。
これでやっと分かってきた。(ちなみにSuperProbeを実行すると、チップの情報のほかに但し書きがあって、マシーンがハングしたりビデオカードやモニターに悪影響を及ぼすかもしれないから注意してと書いてあった。おいおい、実行してからこんな事表示したってどうしようもないじゃないかよ。スーパープローベを実行するときは心して実行して。マシーンその他が壊れても責任とんないよ。)

5−2 XF86Setup

 これでやっとチップが分かったのでセットアッププログラムをたちあげてみよう。

#XF86Setup

と入力。

すると図のような画面が現れる。

上の部分に設定項目のタブがあるのでそこをクリックして設定していく。

1)mouse keybord
はじめにマウスとキーボードの設定だ。

マウスはPS/2で、デバイスは/dev/psaux、3ボタンタイプという風に選んでいく。
キーボードはmodelがJapanease 106-keyで、layoutはJapanease、variantのところは適当なのがなかったのでUSをえらんだ。(この項目は後にPJEパッケージを入れるとちゃんと日本語のキーボードを選べるようになる。それまではUS101キーボードとしてしか使えない。)

2)videocard
いよいよビデオカードの設定だ。はじめに会社名を選ぶところはもちろん私の場合S3のvision864。chipsetはとりあえずs3_genetric を選んだ。RamDacはsuperprobeでみつけた stg1703を選択。Clockchipもstg1703だ。RamDac Max Speedはわからないのでprobedを選んだ。VideoRamは2Megを選んだ。

3)monitor
モニターの選択はどれを選べばいいかよく分からないので、自分のモニタの水平垂直周波数の範囲内になうようなやつを選んだ。どれかを選ぶとその項目の垂直水平の周波数が表示されるので便利だ。

4)modeselection
 私の場合、2MのビデオRAMなので、1024*768、16bppを選んだ。
以上が終わったら、doneをクリックして、この設定を保存するか聞いてくるので、保存して、セットアップ終了。

おもむろに

#startx

と打ち込む。
数秒間の緊張の後、やりました!fvwm-95らしき画像が現れやっとのことで一安心。



6、TCP/IPの設定

 x-windowが立ち上がったので、今度は日本語パッケージのインストールを行なおう。私はPJE-1.02をインストールした。このパッケージには2,3バグがあって、その回避の仕方は、PJEのサイトにあるので参考にしてほしい。(現在は1.05にバージョンアップしているのでこれらのバグはなくなっているようだ。今となっては1.05のほうがいいかもしれない。)これで日本語環境も整ったのでローカルネットワーク用のCP/IPの設定に移る。

 今回、ローカルネットワークのドメイン名を fukiage.or.jp として、クラス3の閉じられた私的なネットワークを構築することにした。(過去記事を参考にしてね。)
TCP/IPの選定は以下のファイルを設定すればすむはずだ。

1)/etc/host.conf
ここでは、IPアドレスを問い合わせる順番を記述すればいい。

order hosts,bind
multi on


これでアドレスの問い合わせを、はじめにhostsを参照し、なかったらネームサーバーを参照するということになるわけだ。

2)/etc/HOSTNAME
自分のマシンの名前の正式名を記述しますよ。私の場合

dell.fukiage.or.jp

3)/etc/networks
ここでは、ドメイン名とアドレスを対応させ、loopbackを設定しますよ。タブきりで

loopback 127.0.0.0
fukiage.or.jp 192.168.1.0


4)/etc/hosts
小規模なネットワークのホスト名を管理するファイルです。タブきりで記述しますよ。

#loopback
127.0.0.1 localhost jserver
#my network
192.168.1.1 dell dell.fukiage.or.jp
192.168.1.2 np5 np5.fukiage.or.jp
192.168.1.3 tp4 tp4.fukiage.or.jp
192.168.1.4 vaio vaio.fukiage.or.jp

#の行はコメントアウトの行です。私の場合、Linuxpcに3台のwin95マシンをつなげる予定なのです。

5)/etc/resolv.conf
linux pcからプロバイダーを通じてインターネットに接続するときに、ドメインネームサーバーはプロバイダーのサーバーを使うのでここに記述しておきます。タブきりでいいと思いますよ。

search fureai.or.jp
nameserver 203.179.2.1
nameserver 203.179.0.2


私の場合、プロバイダのドメイン名をサーチするようにして、そこのネームサーバーアドレスを記述しましたよ。これで大体設定は終わり。後は、ネットワークインターフェースの初期化と、ネットワークカードを認識させればいいわけだ。

redhatや」turboではもっと簡単にGUIライクに設定できるんだけど、slackwareはめんどくさいね。でも後でどのファイルに設定を書き込んだのかわかるから安心感はあるね。


7、ネットワークの初期化

ネットワークインターフェースの初期化は
/etc/rd.d/rc.inet1
のスクリプトファイルを書き換えればいいはずだ。以下のスクリプトの太い文字のところを設定したよ。

#! /bin/sh
#
# rc.inet1   This shell script boots up the base INET system.
#
# Version:    @(#)/etc/rc.d/rc.inet1 1.01 05/27/93
#
HOSTNAME=`cat /etc/HOSTNAME`
# Attach the loopback device.
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0

# IF YOU HAVE AN ETHERNET CONNECTION, use these lines below to configure the
# eth0 interface. If you're only using loopback or SLIP, don't include the
# rest of the lines in this file.
# Edit for your setup.
IPADDR="192.168.1.1"     # REPLACE with YOUR IP address!
NETMASK="255.255.255.0"   # REPLACE with YOUR netmask!
NETWORK="192.168.1.0"     # REPLACE with YOUR network address!
BROADCAST="192.168.1.255"  # REPLACE with YOUR broadcast address, if you
# have one. If not, leave blank and edit below.
##GATEWAY=""  # REPLACE with YOUR gateway address!

# Uncomment the line below to initialize the ethernet device.
/sbin/ifconfig eth0 ${IPADDR} broadcast ${BROADCAST} netmask ${NETMASK}

# Uncomment these to set up your IP routing table.
/sbin/route add -net ${NETWORK} netmask ${NETMASK} eth0

##/sbin/route add default gw ${GATEWAY} netmask 0.0.0.0 metric 1

# End of rc.inet1

大まかに言ってifconfigとrouteプログラムを実行してるようだな。
ifconfigはネットワークインターフェースに、IPアドレスやネットマスクを設定するコマンド。
routeはアクセス可能なネットワークやホストを登録したり、デフォルトルートを設定するコマンド。

はじめにloopbackを初期化し、次にpcにささっているネットワークカードeth0のIPアドレスや、ネットマスク、ネットワークアドレス、ブロードキャスト、などを記述。

今回はpppなどでインターネットプロバイダにアクセスをする予定なので、ゲートウェイは設定せず、コメントアウトしておく。これ大事だよ。以前これを有功にしてしまったら、プロバイダに繋がらない繋がらない。当たり前だ。パケットが、プロバイダのほうに流れていかなくたっちまったんだからな。



最後に eth0のネットワークカードを組み込みまっせ。
kerneldデーモンで必要なときにだけ組み込むようにする方法と、 /etc/conf.modulesでmodprobeコマンドを使って、立ち上がるときに組み込んでしまう方法の二つがある。今回は、modprobeを使う方法にした。
/etc/conf.modules
のファイルを開くと大部分がコメントアウトされているのでネットワークカードの項に以下の太い文字の部分を書き加えるだけでいいよう。

------略 --------
# Network device support:
# Most of these drivers will probe automatically for the card if you don't
# specify an I/O address and IRQ. But, the NE2000 driver needs at least the
# I/O. For complete information, see the net-modules.txt file that comes
# with the Linux 2.0.0 source code. This file can also be found on the
# Slackware CD-ROM in the /docs/kernel.20 directory.
#
# Ethernet cards based on the 8390 chip.

/sbin/modprobe ne io=0x300 irq=9

#/sbin/modprobe 3c503
#/sbin/modprobe ac3200
#/sbin/modprobe e2100
#/sbin/modprobe hp-plus
#/sbin/modprobe hp
#/sbin/modprobe ne io=0x300    # NE2000 at 0x300
#/sbin/modprobe ne io=0x280    # NE2000 at 0x280
#/sbin/modprobe ne io=0x320    # NE2000 at 0x320
#/sbin/modprobe ne io=0x340    # NE2000 at 0x340
#/sbin/modprobe ne io=0x360    # NE2000 at 0x360
#/sbin/modprobe smc-ultra      #/sbin/modprobe wd
------略 ------


NE2000のカードを記述してある部分のどれかをコメントアウトしてもいいし、新しく書き加えてもいいよ。私は新しく書き加えてしまった。IOアドレスと、IRQのパラメータを書いたほうがいいかも。
さあこれで再起動して、起動途中で、NE2000関係のコメントが出れば認識OKだ。

やっとこれで、TCP/IP環境が整ったわい。次回は、今回の目玉、ppxpのインストールと活用に入ろうかな。


8、ppxpのインストール

 さていよいよ今回の目玉、ppxpのインストールと活用だ。 Linuxの世界では、ppp接続は、その名のとおりpppを使っているけど、これが意外と使いにくい。どこが使いにくいかというと。オンデマンドでppp接続を使用とすると、Linux pcにつながっているwin95のpcから頻繁にnetbiosのパケットが流れてしまって、勝手に必要もないのにダイアルしてしまうことだ。前回のturboLinuxの記事のときもこれには参ってしまった。まぁ、こんなことはLinuxのタコでなければ常識のようなものらしいんだけれども。

 FreeBSDの世界ではiijpppというソフトを使うことがppp接続の常識になっているようだけど、Linuxの世界でiijpppのようなソフトがないかと探していたら、ちょうど1998年10月1日号のドスマガのLinux登竜門の記事にppxpのことが載っていた。なにやら、パケットフィルタリングや、IPマスカレード機能も備えているようだ。これならうまくいくかもしれない。日本の真鍋さんという方が作ったみたい。たいしたもんだね。最近出たLinuxのディストリビュートの一つplamo linux には標準でppxpが入っているそうな。
Linuxにおけるダイアルアップppp接続ではもはや、pppを使う必要ないようにおもえるね。大部分がppxpに置き換わるんではないかな。 

 さてさっそく、インストールといきますか。
用意するものは

ppxp本体(真鍋さんのサイトからDL http://www.dsl.gr.jp/~manabe/PPxP/

userlink (これもまなべさんのサイトからDLしましょう)

readlineライブラリftp://ftp.iij.ad.jp/pub/GNU あたりから readline-2.2.1.tar.gzをDL)

はじめにuserlinkのインストール(はじめからppxpをインストールしてもうまくコンパイルできない。順番にやってね)。適当なディレクトリーにuserlinkをおいて(自分のホームディレクトリーでいいですよ。)展開します。

$tar xzf userlink-0.98a.tar.gz

すると userlink-0.98a というディレクトリーができるのでそこに作業ディレクトリーを移して

$./configure
$make
$su
#make install

でインストールおわり。

readlineも同じだ。

$tar xzf readline-2.1.1.tar.gz

readline-2.1.1というディレクトリーができるのでそこへ移り

$./configure
$make
$su
#make install

さて、ppxpのインストールの前にuserlinkの組み込みを実行しておく。

#insmod userlink

insmodで確認してみると、

#insmod
Module: #pages: used by: userlink 
てな文字が出ればOK!

これでやっとppxpのインストールだ。

$tar xzf ppxp-0.98082821.tar.gz

ppxpというディレクトリーができるのでそこへ移り

$./configure
$make
$su
#make install

で終了。



9、ppxpの設定

さて次ぎはppxpの設定だ。 userlinkをinsmodでくみこんだら、(一応 root権限でやってみる。)

#ppxp
ppxp version 0.98082821 interface: ul0
ppxp>

というコマンドプロンプトが出る。ここから設定の qdial を実行する。

ppxp>qdial

すると次のような画面が出てくる。


Device Name,Dial Type,Phone Number,Login Name,Login Password などはそのまま記入すればいいよ。次に

<More....> を選択すると次のような画面に移る。


Authentication Protocolは承認プロトコールだから、私の場合 PAP 。
PPP Modeは Activeでいいそうです。
IdleTime は切断までの時間を設定します。大体180秒ぐらいですかね。
IP Masquerade は後で詳しく述べますよ。
VJcompressionはoffでいいそうです。
Creative resolve.conf、DNSserverの項目は設定しておくと自動的に resolv.confファイルを作ってくれるそうです。もう作ってあるなら、ここは無しでいいでしょう。これで手始めの設定は終わり。


<Save.....>を選んで適当な名前をつけて保存。私の場合"fureai"ってつけました。起動するときは。

#ppxp fureai

とやれば、さっき設定した内容が組み込まれてppxpが起動する。

#ppxp>connect
でダイアルして、うまくつながるとppxpの文字が大文字のPPXPになる。
ここいら辺でおもむろに ping,rute,ifconfig,netstat みたいなコマンドで確認すると繋がっているのが確認できる。
netscapeでも起動すれば、即ブラウジングだ。

#PPXP>disconnect
で切断。
#PPXP>quit
でppxpの終了。

#ppxp>bye
でppxpのコンソールは終了し、バックグラウンドで動いている。

とんでもないモデムでもない限りデフォルトでうまくダイアルしてくれるはずだけど、うまくいかないときには、 /usr/local/etc/ppxp/modem 以下のファイルを編集してみてちょ。ちょっとのぞいてみると、TAのatermの設定ファイルなんかもあるよ。でも便利だよね。pppの設定はなかなか難しいけど、このppxpは設定が簡単ですぐ繋がってしまうモンネ。

こんな便利なソフト、pppユーザーは、ほっとくと罰が当たっちゃうよ。


10、ppxpでマスカレード


 さていよいよ次ぎはパケットフィルタリング、オンデマンドppp(いや、ppxp)接続、IPマスカレードの設定にいきますか。これらも、びっくりするほど簡単に設定がすんでしまう。今までの長長とした、ファイルの編集は何だったのかといえるほどだ。

さっそく、オンデマンド接続をやってみよう。 ppxpを立ち上げ
ppxp>connect
としてプロバイダに接続。接続できたら、

PPXP>set
と、setコマンドを実行すると、何やらいろいろ出てくるがそこで注目してほしいのは、

IP.REMOTE=xxx.xxx.xxx.xxx/0.0.0.0

というところ。xxxのところは、プロバイダから仮に割り当てられた、IPアドレスを示しているそうな。これをメモっておいてちょ。そこで今度は、qdialで設定したファイルを編集すればokだ。 rootの場合

/usr/local/etc/ppxp/conf/fureai

を編集する(私の場合qdialで編集したファイルが"fureai"なので)。

source qdial
set MODE active
set AUTH.PASSWD fureai
set LOG.FILE fureai.log     #1
set LINE /dev/modem
set SERIAL.MODEM generic
set DIAL.LIST  123456     #2
set DIAL.TYPE Tone
set AUTH.PROTO PAP
set IDLE.INIT 180         #3
set IP.VJ no
set IP.RESOLV no        #4
set IP.REMOTE xxx.xxx.xxx.xxx   #5

#NETBIOS
filter udp +rT -D 0.0.0.0 137:139   #6
filter tcp +rT -D 0.0.0.0 137:139   #7

#TCP SYN/FIN
filter tcp +rT -F syn   #8
filter tcp +rT -F fin    #9

#IP MASQ
filter ip +mO -S 192.168.1.0/24   #10

auto on    #11

#1 これはppxpのlogファイル名で/var/log/ppxp/以下に作成されるよ。別にどんな名前でもいいけども。
#2 これはプロバイダの電話番号
#3 これはアイドル時間。パケットが流れなくなって何秒後に切断するかの秒数。
#4 これはプロバイダのDNSのIPアドレス。/etc/resolv.confが設定されていればなくてもいいみたいよ。
#5 これが、さっきsetコマンドで出てきた文字の中のIP.REEMOTE=以下のアドレスを記入する(xxx.xxx.xxx.xxxの部分)。
#6,#7 この部分がパケットフィルタリングの部分。udp,tcpのソケットにポート番号137から139つまりNETBIOSのパケットが流れないようにするフィルタ設定だ。これで、NETBIOSによる勝手なダイアリングが防げる。
#8、#9 この部分はアプリケーションが終了したときにネットワークに流れるパケットをフィルタリングする部分。(#6-#9の部分は、ドスマガ1998年10月15日号のLinux登竜門の記事を参考にした。)
#10 ここはIPマスカレードの設定の部分。192.168.1.0 というclass3のプライベートアドレスから接続するときの設定だ。たった一行でいいのかいと呆気に取られた感じ。ホントにこんな簡単な設定だけでいいのかな。 ppxp作者真鍋氏の話では、完全なマスカレードではないといっているけど、 ping,telnet,ftpなんかは普通に使えているし、今のところ大きな問題は起こっていないけど。でもたいしたもんだね。こんな簡単にマスカレードが実現できるなんて。ただ、セキュリティーの部分はどうなっているのか不明です。
#11 これは、オンデマンドを有効にするコマンドだ。

pppの場合。ppp-onとか、request-route,ppp-on-requestとかかなり面倒なことをやって、やっと旨くいったかなと思ったら、NETBIOSのパケットをうまくフィルタリングできなくて、勝手にダイアルしてしまうし、大変だったな。

今回はroot権限で設定したけど、アカウントユーザー権限でも同じよう。設定ファイルがホームディレクトリーに作られるのでこれを編集すればいいわけだ。ただ、今回の場合これだけではうまくいかなかった。何と、tty0つまりCOM1を使用できるのがrootだけだったのであった。これを解決するすべが始めわからなかった。たまたま、書泉ブックタワーでLinux関係の本をめくっていたらありましたよ。やっとわかった。それは、

/etc/group

というファイルを編集すればいいようだ。

root::0:root
bin::1:root,bin,daemon
daemon::2:root,bin,daemon
sys::3:root,bin,adm
adm::4:root,adm,daemon t
ty::5:root,nobu,dial
disk::6:root,adm
lp::7:lp
mem::8:
kmem::9:
wheel::10:root
floppy::11:root
mail::12:mail
news::13:news
uucp::14:uucp
man::15:man
users::100:games
nogroup::-2:

ここで、
tty::5:root,dial
のところに自分のアカウントを書き加えればいいみたいよ。つまり
tty::5:root,nobu,dial
とすればいいようだ。これでやっとユーザーアカウントでもppxpが使えるようになった。めでたしめでたし。ほかに、いろいろなフィルタリングや設定があるようなので、真鍋さんのサイトや、 ppxpを展開したディレクトリーにdoc関係があるので参考にすると面白いかも。あと、カッコよく決めるのなら、xppxpというx-windowでGUIライクに決める方法もあるので試してみっといいかもよ。一応これでppxpは一件落着だっちゅーの?

しかしだ、しばらく使っていると、またもや忌々しいnetbiosの要求によってかってにダイアルしてしまっている。ああ、なんてこったい。これで完璧オンデマンドPPPやろうと思ったのに。トホホホホホホホ。
これからの課題だな。


11、sambaのコンパイルとインストール

 sambaには悪戦苦闘の連続だった。 redhatのときは、hostnameで苦労してやっとsambaが旨くいったかと思ったら、日本語表示が旨くいかず、使い物にならなかった。さて次ぎは、日本語版turbo linux ver.1が発売されたので、まさか日本語が扱えるようにコンパイルしてあるのかと思ったらこれもだめだった(現在出ているver.3のturboLinuxに入っているsambaはeucコードでコンパイルしてあるとのPHT社の方からメールをいただいたので大丈夫みたいよ。)。

 今度は、slackwareでsambaに挑戦してみよう。ソースからコンパイルすれば間違いないでしょう。はじめはsambaの最新版をDLしましょう。

http://samba.bento.ad.jp/
http://mirror.nucba.ac.jp/samba/samba.html

私がDLしたときはsamba-1.9.18p10.tar.gz だった(現在samba-2.0がリリースされたようだ。詳しいことはわかんないけど、おそらく、win98,NTのシャドウパスワードの問題などが解決されている可能性あり。また、samb.confがGUIで設定できるとか、makefileを修正しなくてもインストールできるとか、新しい機能が満載だ。)。このファイルをホームディレクトリーに持ってきて、

$tar xzf samba-1.9.18p10.tar.gz

すると、samba-1.9.18p10というディレクトリーができる。その下にも3つ4つディレクトリーができる。その中のsourceというディレクトリーに移る。そこにMakefileというファイルがあるからこれを修正して、Linuxで使えるようにする。それでこんどこそ日本語が旨く扱えるようにjapanease extenssionのところも修正して、一応EUCコードを扱うようにした。netatalkを使ってmacともつなぐときはhexコードにしたほうがいいそうだが、mac持ってないし、よく分からなかったので、無難なeucにした。また、パスワードはシャドウ化しないことにしたので、結局Makefileの以下の太い文字のところを修正した。



#####################################
# for the JAPANESE EXTENSION
# select filename's code set for KANJI/KANA in UNIX,
# apply the following flag
  -DKANJI=\"euc\"
# is select character code set for JAPAN.
# sjis: if your machine support SJIS
# euc: if your machine support EUC
# jis7: if your machine support JIS7
# jis8: if your machine support JIS8
# junet: if your machine support jis7 + junet rule
# hex: if your machine only support 7 bits ascii filename only
# convert to hexdecimal code preseeding ':'.
# see also README.jis
######################################

# This is for SUNOS 4. Use the SUNOS5 entry for Solaris 2.
# Note that you cannot use Suns "cc" compiler
# as it's not an Ansi-C compiler. Get gcc or acc.
# Note that if you have adjunct passwords you may need the GETPWANAM
# or PWDAUTH option. There have been reports that using PWDAUTH may crash
# your pwdauthd server so GETPWANAM is preferable (and probably faster)
# contributed by Andrew.Tridgell@anu.edu.au
# FLAGSM = -DSUNOS4 -DFAST_SHARE_MODES
# LIBSM =
# AWK = nawk

# If you are using Linux kernel version 2.1.70 and later, you should
# uncomment the following line to compile the smbmount utilities
# together with Samba. If you are using Linux kernel version 2.0.x
# you must use the smbfs utilities from
# ftp://ftp.gwdg.de/pub/linux/misc/smbfs

# MOUNT_PROGS = smbmount smbmnt smbumount

# Use this for Linux with shadow passwords - but not using PAM!
# contributed by Andrew.Tridgell@anu.edu.au
# add -DLINUX_BIGCRYPT is you have shadow passwords but don't have the
# right libraries and includes
# FLAGSM = -DLINUX -DSHADOW_PWD -DFAST_SHARE_MODES
# LIBSM = -lshadow

# Use this for Linux without shadow passwords or for any Linux
# system that uses PAM (eg: RedHat) in which case it handles ALL
# authentication methods that are supported by the version of
# PAM that is available on your system.
# contributed by Andrew.Tridgell@anu.edu.au & John.Terpstra@aquasoft.com.au
# AXPROC defines DEC Alpha Processor
# FLAGSM = -DLINUX -DAXPROC -DFAST_SHARE_MODES
FLAGSM = -DLINUX -DFAST_SHARE_MODES
# LIBSM =

# Use this for Linux with shadow passwords and quota - but not using PAM!
# contributed by xeno@mix.hive.no
# Tested on the 1.3.57 kernel and ext2fs filesystem. # Notes:
# /usr/include/sys/quota.h must be a symlink to /usr/include/linux/quota.h
# The directory quota here must be a symlink to your quota package.
# I just do 'ln -sf /usr/src/quota-1.50 quota' in this directory to get it to work.
# FLAGSM = -O3 -m486 -DLINUX -DSHADOW_PWD -DQUOTAS -DFAST_SHARE_MODES
# LIBSM = -lshadow

# Use this for Linux with quota and glibc2 - not using PAM!
# contributed by Thorvald Natvig# Tested on the 2.0.30 kernel and ext2fs filesystem.
# FLAGSM = -DLINUX -DQUOTAS -DNO_ASMSIGNALH -DGLIBC2 -DFAST_SHARE_MODES
# LIBSM = -L/lib/libc5-compat -lcrypt # Use this for Linux with glibc2 (libc6)
# contributed by Eloy Paris
# FLAGSM = -DLINUX -DNETGROUP -DSHADOW_PWD -DALLOW_CHANGE_PASSWORD -DFAST_SHARE_MODES -DNO_ASMSIGNALH -DGLIBC2
# LIBSM = -lnsl -lcrypt

# Use this for Linux with glibc2 (libc6) - RedHat Linux v5.0 with PAM
# contributed by John H Terpstra                         # FLAGSM = -DLINUX -DNETGROUP -DALLOW_CHANGE_PASSWORD -DFAST_SHARE_MODES -DNO_ASMSIGNALH -DGLIBC2
# LIBSM = -lnsl -lcrypt


さてMakefileの修正も終わったので、いよいよコンパイルだ。 カレントディレクトリーをさっきのsourceのところに持ってきてはじめに

$make
今度は、rootになって
$su
#make install
#make install man

とやると何やらごちゃごちゃ文字が出てきて、しばし経過後、無事終了したようだ。実を言うと、slackware3.4にバグがあって、sambaが旨くコンパイルできないみたいだった。その解決法はsambaの日本語サイトに詳しく載っているようだったけど、3.5だと問題なくコンパイルできた。


12、sambaの設定

 まずは、とりあえず、samb.confファイルを修正して、とにかくwin95からLinuxにアクセスできるようにしよう。
 はじめに /home/public というディレクトリーを作っておく。xfmあたりを使って、このディレクトリーへのフルアクセスができるようにする(これは、過去の記事を見てちょ。詳しく書いてあるよ。)。いよいよsamb.confの修正だ。 turbolinuxとおなじで、 /etc/smb.conf があるとおもったら、とんでもない、 /usr/local/samba/lib/smb.conf
にあったよ。置き場所がちょっと違っているんだね。

[global] workgroup=WORKGROUP
mangle case = no
case sensitive = no
default case = upper
preserve case = yes
short preserve case = yes
coding system = euc
hide dot files = no
locking = yes
dead time = 60
wide links = no
getwd cache = yes
load printers = yes

[public] comment = for all users
path = /home/public
guest ok = yes
read only = no
printable = no

global sectionのところのworkgroupのところは、win95pcのコントロ−ルパネル->ネットワーク->ユーザー情報のワークグル−プのところ同じ名前にしなければいけない。 mangle case から short preserve case までは日本語が正しく表示できるようにするキーワードだ。次の 

coding system = euc

はコンパイルのときに指定した文字コードを記述するわけだ。 public sectionのところは、とりあえず誰でもフルアクセスできるようになっている。 smb.confはこると思えばかなりこることもできるので、manやdoc等参考にして作ってみてちょ。

sambaの起動方法だけど、
kerneldを使って必要なとき組み込む方法と、
起動時に組み込んでしまう方法があるけど、

今回は起動時に組み込む方法を取った。以前、kerneldを使って組み込んだとき、win95からネットワークコンピュータをクリックしてもLinuxPCがなかなか出てこなかった。ほかのコンピュータ検索でやると見えるんだけどね。起動時に組み込んで、組み込んだままのほうが、ネットワークコンピュータからいつでも見えるのでその方が使いかっていいようにおもえるね。
とりあえず、 /etc/rc.d/rc.local のファイルにsambaの起動スクリプトを書いておこう。 userlinkのところと同じファイルだ。

#!/bin/sh
#
# /etc/rc.d/rc.local: Local system initialization script.
#
# Put any local setup commands in here:

# call wnn
/etc/rc.d/rc.wnn start

#call japanease 106 keybord
/usr/bin/loadkeys defkeymap j106-d

#call userlink module
/sbin/insmod userlink

#call samba
if [ -f /usr/local/samba/bin/nmbd ]; then
echo "SAMBA servers"
/usr/local/samba/bin/smbd -D
/usr/local/samba/bin/nmbd -D
fi


#/etc/rc.d/rc.local


さていよいよwinpcのほうのTCP/IPの設定も終えて(win95の設定は過去の記事を参考にしてちょ。)ネットワークコンピュータを開けると。よし!Linuxpc”dell”はうまく見えてるぞ。おもむろにdellをクリックすると、publicというディレクトリーが見えた。ようし!片っ端から日本語の名前のついたファイルをそこにコピーした。そしたらどうだ!やった!まったく文字化けしてないぞ、これでやっとsambaで日本語がうまく扱えるようになったぞ。 samba夢見て早1年半近く。やっとのことでファイルサーバーの完成だ。後は、 smb.conf をいろいろいじくってみればいいわけだ。


過去の記事へのリンク

redhat Linux事始め


turbo Linuxでインターネット



ご意見ご感想待ってます mail adress fukiage@fureai.or.jp

 homeに戻る