2002年度 ネットワーク基盤技術研修会<中級編>

9月5日(木)資料


【注意】

目次

  1. はじめに試してみましょう!
  2. ftp
    1. ftp関係のプログラム
    2. ftpクライアント (gftp)
    3. ftpサーバ (proftpd)
    4. proftpdの設定 (anonymousの許可)
    5. proftpdの設定 (アクセス制限)
    6. proftpdの設定 (anonymousの禁止)
    7. proftpdの設定 (ユーザのアクセス制限)
  3. www
    1. WWWサーバ Apache
    2. Apache のアクセス制限
    3. Apache で個別ディレクトリの設定を可能にする
    4. ディレクトリごとのアクセス制限 (apach)
    5. cgi (apach)
  4. slogin/scp
    1. slogin
    2. scp

はじめに試してみましょう!

  1. まず、ターミナルを開いてホームディレクトリに「public_html」という 名前のサブディレクトリを作成し、そこへ移動してから、「index.html」 というファイルをemacs で編集します。

    [nakano@n79 nakano]$ mkdir public_html
    [nakano@n79 public_html]$ cd public_html
    [nakano@n79 public_html]$ emacs index.html&
          
  2. emacsが起動したら、以下のように、一行だけ「TEST!」と入力して、 セーブします。

    396x127(7877bytes)
  3. 次に、デスクトップ画面右側の赤い怪獣マークのアイコンをダブルクリッ クして。Mozillaを起動して、 「file:///home/nakano/public_html/index.html」を開くと、以下のよう に表示されます。

    494x205(22506bytes)

    これは、ローカルなファイルをそのまま表示したもので、ネットワークを 介しているわけではありません。

  4. つぎに、「n79.cc.kumamoto-u.ac.jp/~nakano/index.html」(各自のサーバ名、ユーザ名を使用)を開くと、以下の ように表示されます。「http://133.95.45.79/~nakano/index.html」 (各自のIP、ユーザ名使用)でも同じことです。

    634x258(28060bytes)

    これは、ネットワークを介して、自分のPC上のWWWサーバから同じファイ ル(index.html)を読もうとしたが、表示できずに別のメッセージが表示さ れたところです。メッセージを読むと、

    読みだし禁止

    あなたにはこのサーバ上のファイル/~nakano/index.htmlに
    アクセスする権限がありません。


    ホスト名 n79.cc.kumamoto-u.ac.jp で動作中の
    WWWサーバ Apache バージョン1.3.26 より。
    (ネットワークポート80番で受信しました。)

    このメッセージからわかるように、このPCにインストールしたLinuxでは、 すでにWWWサーバが動作しているのです。 言い替えると、デフォルトでWWWサーバが起動する設定になっているわけ です。ただ、先に作成したファイルが読める状態ではないだけです。

  5. 上では、アクセス権の問題から、ネットワークを介してはファイルを見る ことができませんでした。これは、ファイルやディレクトリのアクセス権 が不足していることが考えられます。

    そこで、今、関係がありそうなディレクトリは、問題のファイルから上へ たどっていくと、

    の4つしかないので、ls(p.66)で、そのアクセス権(p.135)を調べてみましょう。

    先ほどのターミナルに戻って、

    [nakano@n79 public_html]$ ls -ld /home/nakano/public_html/index.html
    -rw-r--r--    1 nakano   nakano          5 Sep  1 12:43 /home/nakano/public_html/index.html
    [nakano@n79 public_html]$ ls -ld /home/nakano/public_html
    drwxr-xr-x    4 nakano   nakano       4096 Sep  2 15:05 /home/nakano/public_html/
    [nakano@n79 public_html]$ ls -ld /home/nakano
    drwx------   11 nakano   nakano       4096 Sep  2 14:03 /home/nakano/
    [nakano@n79 public_html]$ ls -ld /home
    drwxr-xr-x    5 root     root         4096 Aug 30 23:33 /home/
          

    上記から、ユーザのホームディレクトリ(/home/nakano)だけが、そのユー ザ自身しか読めず、そのディレクトリに入る(cd)こともできない状態になっ ていることがわかります。

  6. それでは、ユーザのホームディレクトリ(/home/nakano)のアクセス権を chmod(p.140)コマンドで変更してみましょう。

    [nakano@n79 public_html]$ chmod a+rx /home/nakano
    [nakano@n79 public_html]$ ls -ld /home/nakano
    drwxr-xr-x   11 nakano   nakano       4096 Sep  2 14:03 /home/nakano/
          

    アクセス権が、全ユーザに対して、読めてディレクトリへ入る(cd)ことが 可能になったことがわかります。

    ここで先ほどWWWブラウザでアクセスした、 「n79.cc.kumamoto-u.ac.jp/~nakano/index.html」( 各自のサーバ名、ユーザ名を使用)を再読み込み(ボタンまたは表 示メニューより)してみましょう。すると、以下の画面になります。

    651x278(27522bytes)

    これで、既にユーザが自分のホームページを開けるようになったことがわ かります。suコマンドを用いていないことからお分りのように、この作業 に、root権限は必要ありません。

  7. 次に、現在動作中のWWWサーバを止めてみましょう。(p.266)

    [nakano@n79 public_html]$ su
    Password: 
    [root@n79 public_html]# /etc/rc.d/init.d/httpd stop
    httpdを停止中: [  OK  ]
          

    先ほどWWWブラウザでアクセスした、 「n79.cc.kumamoto-u.ac.jp/~nakano/index.html」( 各自のサーバ名、ユーザ名を使用)を、再び、再読み込み(ボタン または表示メニューより)してみましょう。すると、今度は以下のダイア ログが表示され、アクセスできなくなったことがわかります。

    569x125(12907bytes)
  8. WWWサーバを再び起動して、アクセスできることを確認しておきましょ う。(p.266)

    [root@n79 public_html]# /etc/rc.d/init.d/httpd start
    httpdを起動中: [  OK  ]
    

ftp

WWWサーバが動作するとしても、サーバにファイルを転送する方法がなければ、 他のコンピュータでコンテンツを作成することができません。このファイル転送 をするためのサーバプログラムの1つとして、ftpサーバをとりあげます。

ftp関係のプログラム

  1. どんなプログラムが、デフォルトでインストールされているのか調べてみ ましょう。
    rpmコマンド(p.61)で、-q(query:調べる) a(all) オプションを用いて、インストールされているパッケージを全て 調べ、その中から「ftp」の文字列を含むもののみ grep コマンドで選択 して表示してみます。
    [nakano@n79 public_html]$ rpm -qa | grep ftp
    ftp-0.17-6vl1
    gftp-2.0.11-0vl1
    lftp-2.4.8-0vl1
    proftpd-1.2.5-0vl2
    tftp-0.16-5vl1
          

    以上のように5つみつかりましたが、ftp, gftp, lftp は通常のクライア ントプログラムで、windowsのftpやffftpのような役割りです。tftpは、 すこし特殊なftpのためのクライアントで、ここでproftp のみがftpサー バということになります。各々を詳しく知りたい場合、man, jman, tknamazu、インターネットでの情報検索等が役に立ちます。また、WWWブ ラウザや、ファイルマネージャがftpクライアントの機能の一部をもつこ ともあります。

ftpクライアント (gftp)

ここでは、クライアントとして、gftpを例にします。これは、X上ではWindowsの ffftpのようにGUIをもちます。Xの利用できない環境や、gftp-text テキストコ マンドを用いれば、テキストコンソールでも使用できます。ただし、textモード で使用するならば、個人的にはlftp コマンドのほうがTABキーによる補完ができ て便利だとおもいます。また、ncftpをインストールするのもよいと思います。

  1. gftpを起動してみましょう。

    [nakano@n79 public_html]$ gftp &
          
  2. 以下のような画面が表示されますので、試しに、ホストの所に
    ftp99.cc.kumamoto-u.ac.jp
    と入力すると、接続されることを確認してください。

    782x510(47654bytes)
  3. 次に、自分のPCの名前 (???.cc.kumamoto-u.ac.jp) を、ホスト名に入力 すると、

    n79.cc.kumamoto-u.ac.jpを探しています
    n79.cc.kumamoto-u.ac.jpを試行中:21
    n79.cc.kumamoto-u.ac.jpへ接続できません: 接続を拒否されました
    再び接続するまで, 30秒待ってください
    .....
    
    と下段に表示され、このサーバへは、デフォルトでは、少なくとも anonymous ftp (匿名ftp) 接続はできないことがわかります。

  4. 次に、自分のユーザ名とパスワードを入力してみましょう。

    これも先ほどと同じメッセージが出てきます。すなわち、このサーバへは、 デフォルトでは、ftp (tp) 接続ができないことがわかります。

  5. それでは、このPCで、ftpサーバは起動しているのでしょうか。

    [nakano@n79 public_html]$ su
    Password: 
    [root@n79 public_html]# /etc/rc.d/init.d/proftpd status
    proftpdは停止しています
          

    起動していないことがわかります。それでは、起動して、設定をおこなっ てみましょう。

ftpサーバ (proftpd)

ここでは、ftpサーバとして、proftpd (p.244)をとりあげます。ただし、本家 RedHat は wu-ftpd という別のプログラムを用いており、RedHatにおける設定は かなりちがうと思われます。proftpの設定は、appache WWWサーバと非常によく 似ています。

  1. まず、proftpdサーバを起動してみましょう。

    [root@n79 public_html]# /etc/rc.d/init.d/proftpd start 
    Was not suspended [  OK  ]
          
    となり、起動したことが確認できます。

  2. 次に、gftpで、anonymous(匿名)ユーザとしてftp接続を試みましょう。す ると、gftpの下段に、

    220 ProFTPD 1.2.5rc1 Server (ProFTPD Basic Configuration) [n79.cc.kumamoto-u.ac.jp]
    USER anonymous
    331 Anonymous login ok, send your complete email address as your password.
    PASS xxxx
    530-Unable to set anonymous privileges.
    530 Login incorrect.
    n79.cc.kumamoto-u.ac.jpサイトから接続を切断しています
    
    と表示され、Unable to set anonymous privileges. すなわち、匿名ftp は権限がないと表示され、デフォルトでは、anonymous ftpが禁止されて いるらしい???ことがわかります。
    WWWブラウザで、 ftp://n79.cc.kumamoto-u.ac.jp/ へアクセスしても、同様の表示があるはずです。

  3. 次に、gftpでユーザ名とパスワードを入力して、接続しなおしてください。 今度は、

    n79.cc.kumamoto-u.ac.jpを探しています
    n79.cc.kumamoto-u.ac.jpを試行中:21
    n79.cc.kumamoto-u.ac.jpへ接続しました: 21
    220 ProFTPD 1.2.5rc1 Server (ProFTPD Basic Configuration) [n79.cc.kumamoto-u.ac.jp]
    USER nakano
    331 Password required for nakano.
    PASS xxxx
    230 User nakano logged in.
    TYPE I
    200 Type set to I.
    PWD
    257 "/home/nakano" is current directory.
    PORT 133,95,45,79,128,164
    200 PORT command successful.
    LIST -aL
    150 Opening ASCII mode data connection for file list.
    226 Transfer complete.
          
    となり、接続できました。つまり、proftpdさえ起動しておけば、既にユー ザによるftp転送は可能になるのです。

  4. さて、それではLinux起動時に、自動的にproftpdが起動する設定はどうす ればよいのでしょう。

  5. chkconfig コマンドを用いて、自動的にproftpdが起動する設定を行って みましょう。

    [root@n79 public_html]# /sbin/chkconfig --list proftpd
    proftpd         0:off   1:off   2:off   3:off   4:off   5:off   6:off
    [root@n79 public_html]# /sbin/chkconfig proftpd on
    [root@n79 public_html]# /sbin/chkconfig --list proftpd
    proftpd         0:off   1:off   2:off   3:on    4:on    5:on    6:off
    
    設定が、変更されたことが確認できます。現在のLinuxの起動モードは、3 です。(/etc/inittab の runlevel を見れば確認できます。)

  6. 上記のような設定は、/usr/sbin/setup コマンドの中の「システムサービ ス設定」でも行えます。

  7. この場合のpftpdの起動は、apache WWWサーバ同様に、サーバプログラ ムが常に起動しているものですが、アクセスがftpアクセスがあった時だ け起動するような設定もかのうです。この場合は、inetd経由で使うこと になります(p.245)。inetd経由で使う場合は、アクセス制限は、 /etc/hosts.deney, /etc/hosts.allow にも従うことになります。 ここでは、このような使用形態は省略します。

proftpdの設定 (anonymousの許可)

proftpdの設定は、/etc/proftpd.confで行います。

  1. それでは、/etc/proftpd.confを編集してみ ましょう。

    [nakano@n79 public_html]$ su 
    Password: 
    [root@n79 public_html]# cd /etc/
    [root@n79 /etc]# cp proftpd.conf proftpd.conf.orig0
    [root@n79 /etc]# emacs proftpd.conf&
    
  2. まず、anonymous ftp の設定を見てみましょう。

    <Anonymous ~ftp>
     (中略)
    </Anonymous>
    
    とあり、anonymous ftp を許可する設定がされています。さて、なぜ、 anonymous ftp ができないのでしょうか?

  3. これは、やっかいな問題です。

    このような場合は、マニュアルを調べたり、ドキュメントやネットワーク で調べたり、誰かに聞くとか...

    たとえば、参考になりそうなのは、

    等です。

  4. インターネット等もざっと見渡しましたが、解決策は見当たりません でした。このような場合は、あきらめるか、勉強だと思って、時間をきめ て、ちょっと自分で調べてみます。今回は、講習会の講師ということで、 調べざるおえません ^_~;;;

  5. anonymousタグの、<Anonymous ~ftp> にある、「~ftp」(ftpは、 ユーザ名) の意味ですが、'~' ユーザがログイン後、認証されたホームディ レクトリに置き換わるとドキュメントに既述があります。では、ユーザ ftp のホームディレクトリはどこでしょう。

    [root@n79 /etc]# grep ftp /etc/passwd
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
          
    ということで、ユーザ ftp のホームディレクトリは、「/var/ftp」であ ることがわかります。ということは、先ほどの「~ftp」は、「/var/ftp」 を意味します。

  6. では、「/var/ftp」はどうなっているのでしょう。

    [root@n79 /etc]# ls /var/ftp
    ls: /var/ftp: そのようなファイルやディレクトリはありません
    

  7. ということで、なぜanonymous ftp ができなかったかと言うと、 「anonymous ftp」で公開するディレクトリが「/var/ftp」となっている のに、実在しないからだったのです。これは、明らか にVine Linux パッケージのバグなので、まだ報告がなければ奉告しましょ う。

  8. では、解決策ですが、次の3通り位が考えられます。

    1. /var/ftp ディレクトリを作成し、そこを「anonymous ftp」で公開 するディレクトリとする。
    2. ユーザ ftp のホームディレクトリを変更する。(/usr/sbin/usermod コマンド利用 [jman usermod])
    3. anonymousタグの、<Anonymous ~ftp> 自体を変更する。
    ここで、1は、RedHatと同じ設定となりますが、Vineのディレクトリ構成 をながめるとl、「/home/ftp」が存在するので、このディレクトリを 「anonymous ftp」で公開するディレクトリとすしたいところです。そこ で、2か3を選ぶわけですが、2を選ぶとユーザのホームが標準からそれま す。ここでは、3を選ぶことにします。

  9. それでは、先ほど立ち上がっているemacsで、/etc/proftpd.conf を修整しましょ う。38行目の、

    <Anonymous ~ftp>
          
    を、
    <Anonymous /home/ftp>
          
    に書き直して、保存してください。

  10. それでは、設定変更を有効にするため、proftpd を再起動しましょう。

    [root@n79 /etc]# /etc/rc.d/init.d/proftpd restart
    Shutting down proftpd: Suspending NOW 
    [  OK  ]
    Allowing sessions again  ]
          

    ついでになにか公開ファイルを置いてみましょう。

    [root@n79 /etc]# ls / > /home/ftp/test.txt
          

  11. さて、では、gftpで再び、anonymous(匿名)ユーザとしてftp接続を試 みましょう。今度は、継り、test.txtというファイルが見れるはずです。 マウスの右クリックで出るメニューの閲覧で内容を確認してみましょう。 (gftpはキャッシュがきくため、必要に応じて、ツールメニューからクリ アしてください。)

proftpdの設定 (アクセス制限)

一例として、anonymous ftp ができる範囲をIPアドレスで制限してみましょう。

  1. Anonymousタグで囲まれた範囲

    <Anonymous ~ftp>
    .....
    </Anonymous>
    
    の中に、
    <Limit LOGIN>
     Order allow, deny
     allow from 133.95.30.
     deny from all
    </Limit>
    
    を追加すると、133.95.30.???のユーザからのみアクセスできるようにな ります。詳しい設定は、http://www.infoscience.co.jp/technical/proftpd/reference.html#Allow等を見てください。

  2. ここでは、上の例は確認ができませんので、たとえば隣のPCののIPを 書いてみましょう。

    <Limit LOGIN>
     Order allow, deny
     allow from 133.95.30.???
     deny from all
    </Limit>
    
    設定を反映させるために、proftpdを再起動し、自分のgftpでアクセスす ると、接続できなくなっているはずで、逆に隣からアクセスすると今度は、 接続できるようになっていることを確認してください。

proftpdの設定 (anonymousの禁止)

anonymous ftp は、必要のないホストでは禁止しておいたほうがセキュリティ上、 安全です。

  1. 方法には、主に2通りありますが、

    1. Anonymousタグで囲まれた範囲をタグも含めて全て消す、または、# でコメントアウトする。
    2. <Limit LOGIN>を利用し、allow を書かない。
    ここでは、1だと、いつか公開したい時たいへんですし、2にしてみます。
    <Limit LOGIN>
     Order allow, deny
    # allow from 133.95.
    # allow from .cc.kumamoto-u.ac.jp
     deny from all
    </Limit>
    
    たとえば、上のようにしておけば、コメントを外すだけで、学内にのみ公 開したり、自分の組織内にのみに公開したりできます。proftpd を再起動 し、gftp でアクセスできないことを確認してください。

proftpdの設定 (ユーザのアクセス制限)

ユーザの ftp アクセスも、その経路上のマシンからなら、実はパスワードを盗 聴することが不可能ではありません。そこで、必要のないホストからのアクセス は禁止しておいたほうがセキュリティ上、安全です。今回の実習は学内対象です から、学外からはアクセスできないように設定しておきましょう。

  1. anonymous の設定で予想がつくとは思いますが、今度は、Anonymous タグで囲まれた範囲の外に、<Limit LOGIN>を置けばよいのです。 場所は、

    <Directory /*>
      AllowOverwrite		on
    </Directory>
    
    の後あたりに、
    <Limit LOGIN>
     Order allow, deny
     allow from 133.95.
     deny from all
    </Limit>
    
    を、挿入して、proftpd を再起動しておいてください。

  2. 設定のバックアップを取り敢えず、 proftpd.conf.20020904 という名前で、とっておきましょう。

    [root@n79 /etc]# cp proftpd.conf proftpd.conf.20020904
    
  3. なお、上の「AllowOverwrite」がON になっているので、個別のディ レクトリに、「.ftpaccess」という名前のファイルを置くことで、アクセ ス制限等を、ディレクトリ毎に変更することができます。方法は省略しま すが、後で紹介する、「.ftpaccess」によく似ています。

www

WWWサーバ Apache

ここでは、広く利用されているWWWサーバの Apache (p.261) を使用します。 最初に見ましたように、デフォルトで既に起動しています。

  1. 先ほどは、「n79.cc.kumamoto-u.ac.jp/~nakano/index.html」(各自のサーバ名、ユーザ名を使用)をMozillaで開く と、ユーザのホームページが表示されるのを確認しました。

  2. 今度は、このサーバのトップページ「n79.cc.kumamoto-u.ac.jp/」 (各自のサーバ名を使用)で、アクセスしてみ ましょう。すると、以下のようになります。

    667x467(47806bytes)
  3. さて、このファイルはどこにあるのでしょうか? どこで、設定されて いるのでしょうか? 設定ファイルの主なものは、 /etc/httpd/conf/httpd.confです。

  4. さっそく、emacs編集してみましょう。

    [root@n79 /etc]# cd /etc/httpd/conf/
    [root@n79 conf]# cp httpd.conf httpd.conf.orig0
    [root@n79 conf]# emacs httpd.conf &
          

  5. 以下に示すように、409行目(emacs下段にL409と表示される)に、ルートディ レクトリが指定されています。

    # DocumentRoot: The directory out of which you will serve your
    # documents. By default, all requests are taken from this directory, but
    # symbolic links and aliases may be used to point to other locations.
    #
    DocumentRoot /home/httpd/html
          
    ということで、Mozillaで、file:///home/httpd/html/index.html を表示 させると、先ほどと同じページが表示されることを確認してください。

  6. つまり、このWWWサーバのトップページを書き変えたいなら、このファ イル(/home/httpd/html/index.html)を書き変えるか、設定ファイル (/etc/httpd/conf/httpd.conf)の、DocumentRoot を変更すればよいわけ です。

Apache のアクセス制限

Apacheの基本的なアクセス制限を行ってみましょう。ただし、「/」ディレクト リのAllowOverride が、None ではない場合は、ディレクトリ別に設定が可能な 項目もあります。

  1. まず、参考になる場所を、挙げておきます。先ほどのトップページに もマニュアルはありましたが、ローカルディスクにあるのでファイルの方 を使います。

  2. まず、トップページを学内からのアクセスに制限します。 456行目の Allow from all について、

    <Directory /home/httpd/html>
    ...(中略)...
        Order allow,deny
        Allow from all
    </Directory>
    
    を、
    <Directory /home/httpd/html>
    ...(中略)...
        Order allow,deny
        Allow from 133.95.
    </Directory>
    
    と書き変えます。

  3. 次に、デフォルトの制限を、学内からにします。 421行目の後に2行追加します。

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    
    を、
    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from 133.95.
    </Directory>
    
    と、2行追加します。

Apache で個別ディレクトリの設定を可能にする

Apacheで公開するWWWページをディレクトリごとに制限をかけたり、緩めたり、 cgiの実行を許可したりするための設定を行います。

  1. 先ほどの、421行あたりの、AllowOverrideを変更して、設定の上書き を、Options と Limit に関し可能にします。

    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from 133.95.
    </Directory>
    
    を、
    <Directory />
        Options FollowSymLinks
        AllowOverride Options Limit
        Order allow,deny
        Allow from 133.95.
    </Directory>
    
    にします。

  2. さらに、cgi プログラムを認識できるように、829行目あたりの #AddHandler cgi-script .cgiのコメント記号#を消します。

    # To use CGI scripts:
    #
    #AddHandler cgi-script .cgi
    
    を、
    # To use CGI scripts:
    #
    AddHandler cgi-script .cgi
    
    にします。

  3. 設定のバックアップを一応 httpd.conf.20020904 にとって、有効にするために、 apache を再起動します。

    [root@n79 conf]# cp httpd.conf httpd.conf.20020904
    [root@n79 conf]# /etc/rc.d/init.d/httpd restart
    httpdを停止中: [  OK  ]
    httpdを起動中: [  OK  ]
          

ディレクトリごとのアクセス制限 (apach)

  1. まず、rootから抜ける(exit または C-d)か、あたらしいターミナルを開 いて、ホームディレクトリの下の public_html へ移動します。

    [root@n79 /etc]# exit
    exit
    [nakano@n79 nakano]$ cd ~/public_html
          

  2. 次に、テスト用のディレクトリ test1 を作成し、そこへ移動して、 index.html ファイルを emacs で作成します。

    [nakano@n79 public_html]$ mkdir test1
    [nakano@n79 test1]$ emacs index.html&
          
    ファイルのソースは、
    <html>
    <head>
    <title>
    test1
    </title>
    </head>
    <body bgcolor="Silver">
    <h1>TEST1</h1>
    </body>
    </html>
          
    です。

  3. 「n79.cc.kumamoto-u.ac.jp/~nakano/test1/」(各自のサーバ名、ユーザ名を使用)をMozillaで開く と、今作成したページが表示されるのを確認しましょう。

  4. 次に、emacsを一旦終了するか、あたらしいファイルを開くことで、「. htaccess」という名前のファイルを作成し、保存します。

    [nakano@n79 test1]$ emacs .htaccess &
          
    ファイルのソースは、(??? は隣のPCのIP)
    order allow,deny
    allow from 133.95.30.???
          
    です。

  5. 自分では、アクセスできなくなり、隣からのみアクセスできるように なったことを確認してください。お分りのように、この場合は、apacheの 再起動は必要ありません。

cgi (apach)

  1. 次に、テスト用のディレクトリ test2 を public_html の下に作成し、 そこへ移動して、 index.cgi ファイルを emacs で作成します。

    [nakano@n79 test1]$ cd ../
    [nakano@n79 public_html]$ mkdir test2
    [nakano@n79 public_html]$ cd test2
    [nakano@n79 test2]$ emacs index.cgi &
          
    ファイルのソースは、
    #!/usr/bin/perl
    print "Content-type: text/html\n\n";
    print "<html><body><h1>";
    system("LANG=ja_JP.eucJP /bin/date");
    print "</h1></body></html>\n";
          
    です。( n n の空白は\(バックスラッシュ)です)

  2. このファイルに実行属性を与えなければプログラムとして実行できないた め、実行属性を与えて、動作を確認しましょう。

    [nakano@n79 test2]$ chmod a+x index.cgi
    [nakano@n79 test2]$ ./index.cgi 
    Content-type: text/html
    
    <html><body><h1>2002年  9月  3日 火曜日 17:00:34 JST
    </h1></body></html>
    
    日付を表示するHTMLファイルを出力することがわかります。

  3. 「n79.cc.kumamoto-u.ac.jp/~nakano/test2/」(各自のサーバ名、ユーザ名を使用)をMozillaで開く と、どうなるでしょう。Forbiddenとなってし まいました。そうです。cgiの実行はデフォルトでは許可されていないの です。

  4. そこで、emacsを一旦終了するか、あたらしいファイルを開くことで、「. htaccess」という名前のファイルを、また作成し、保存します。

    [nakano@n79 test2]$ emacs .htaccess &
          
    ファイルのソースは、(??? は隣のPCのIP)
    order deny,allow
    allow from 133.95.30.???
    Options +ExecCGI
          
    です。

  5. 今度は、以下のような表示を見ることができるでしょう。再読みこみする たびに、時刻が変わり、cgiプログラムが動作していることが確認できます。

    701x270(46499bytes)

slogin / scp

telnet、pop、ftp 等は、生のパスワードがネットワークの転送経路上に流れる といった本質的に危険な部分を含んでいる。ssh (セキュアシェル) (p.256) を 利用した、telnet にかわるlogin のslogin や、ネットワーク越しにも使える cp の暗号化された scp を使うとより安全にリモートログインやプログラムの転 送が行える。

slogin

  1. 隣のPCから、slogin でログインしてみましょう。

    [nakano@vite nakano]$ slogin n79
    The authenticity of host 'n79 (133.95.45.79)' can't be established.
    RSA key fingerprint is 7c:8a:13:6c:50:5c:f7:44:e4:8b:f9:8d:b1:f3:e9:28.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'n79,133.95.45.79' (RSA) to the list of known hosts.
    nakano@n79's password: 
    Last login: Tue Sep  3 15:34:35 2002 from nn3d
    
    というように、もう既に使える状態になっています。 最後は、exitまたは、C-d で抜けてください。

  2. Windows系のPCから、使えるアプリケーションとして、TeraTermPro と、 ttssh の組み合わせだと、日本語も含めて使用できます。
    参考ページ

    なお、MacintoshはOS10以降はターミナルの中に英語版ですが、slogin, scp, ssh 等ははじめから含まれています。

scp

  1. scpでファイルを転送してみましょう。たとえば、ホームディレクトリの public_html を html0904 として、他のPCへ転送します。 ここで、分かるように、2番目の引数の頭に、相手のホスト名が来るだけ で、他は cp コマンドと同じです。ただし、-a オプションはつかえませ ん。

    [nakano@n79 nakano]$ scp -r public_html vite.cc.kumamoto-u.ac.jp:html0904
    
    The authenticity of host 'vite.cc.kumamoto-u.ac.jp (133.95.45.72)' can't be established.
    RSA key fingerprint is 21:3a:40:68:af:81:a1:f6:77:44:d0:42:c7:60:ad:04.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'vite.cc.kumamoto-u.ac.jp' (RSA) to the list of known hosts.
    
    nakano@vite.cc.kumamoto-u.ac.jp's password: 
    
    index.html           100% |*****************************|     5       00:00
    .htaccess            100% |*****************************|    59       00:00
    index.cgi            100% |*****************************|   148       00:00
    .......
    

  2. Windows系のPCから、使えるアプリケーションとして、たとえば Cygwin があります。UNIX のさまざまなフリーソフトウェアを Windows に移植したもので、ssh, slogin, scp, tar... といた多くの有用なアプ リケーションがWindows系でも使えるようになります。最近では、X window System も起動できますが、残念ながら標準では英語のみです。
    参考ページ