このページは、Windowsユーザだった私が、ある日、意を決してLinuxに乗り換えていった苦難 ? の日々をつづったものです。Windowsユーザが少しでもLinuxに挑戦してみようという気になっていただければ幸いです。尚、一応正常に稼働しているようですが、発展途上であるので、記載に誤りを含んでいる可能性があります。
このサイトは、Turbo Linux Server 7 使用しています。Red Hat 系をご使用の方なら同様に利用できるとは思いますが、検証する環境にありませんのであしからず。Turbo Linux Server 7 を選択したのは、ポピュラーな Red Hat よりセキュリティに配慮されている、パッケージ管理が非常に楽、初期設定から日本語が使用できるという点です。
使用した環境設定ソフトとして最近話題になっている Turbo Linux 7にデフォルトで付属する Webmin 、そして turbotool です。しかし、インターネットサーバーをより簡単に設定、短時間に稼働させるには、Linux Controller をお勧めします。ちょっと高価ですが、この便利さにはかなわないところがあります。
両者ともクライアントのWebブラウザを使用してインターネットサーバを構築できる CGI サーバですが、後者はとにかく
10 分くらいで一通りのインターネットサーバを構築できるという優れものです。対応ディストリビューションは Red Hat 及び Turbo linux です。
前者は、かゆいところに手が届くように、設定できる項目は多岐にわたっています。ただ、英語である(一部日本語も使用できるようになっている。)し、オプションの意味は解説してくれません。だから利用方法は、Linux Controller で一通り設定した後、ゆっくり情報を集めながら、自分のサーバに仕立てる、こんな方法になるかと思います(注1)。おっと、忘れてはいけません。インターネットの仲間の情報を活用させていただくこと。常に感謝の気持ちで!!
(注1)Linux Controllerは現在 Ver2.4 です。対応 OS は 7 系のRed Hat や Turbo です。同社のサイトにはHTMLのデモがありますし、日経 Linux 2002年4月号には30日間の使用期限のついた試用版が附属しています。
(注2)ちょっとはコマンドや小技集は覚えておいた方が楽です。
OS を問わず、ネットワークについての基礎知識が不可欠です。基本編を参照してください。
■めざす構成(1)■但し、セキュリティ−向上のために、公開サ−バとクライアントは、別のネットワ−クを形成するようにすべきであり、(2)の構成の方を推奨します。
| internet | |||
|---|---|---|---|
| | | |||
| グローバルアドレス | |||
| ルーター | ←ルーターと PC との間にハブが必要の場合あり | ||
| 192.168.0.1 | |||
| +---- | ---|--- | -------+ | |
| | | | | | | |
| 192.168.0.2 | 192.168.0.3 | 192.168.0.4 | |
| 公開サーバ | クライアント PC 1 | クライアント PC 2 |
| internet | |||||
|---|---|---|---|---|---|
| | | |||||
| グローバルアドレス | |||||
| +---- | ---- | ルーター | -------+ | ||
| | | 192.168.0.1 | | | |||
| 192.168.0.2 | 192.168.0.3 | ||||
| 公開サーバ | クライアント PC 1 | ← NIC を2枚使用してアドレス変換 | |||
| 192.168.1.0 | |||||
| | | |||||
| +------- | ハブ | ||||
| | | | | ||||
| 192.168.1.1 | 192.168.1.2 | ||||
| クライアント PC 2 | クライアント PC 3 |
一応、Turbo linux が稼働するためのハードには、CPU には、Intel Pentium 互換、メモリーは 64 Mb 、ハードディスクには、2 GB のスペックが必要とされているようですが、Windows が正常に稼働していたハードならばどれでも利用できるかと思います。新しい技術を利用したハードは、例によって、おすすめできません。まあ、旧式の資源もムダにしないLinuxであればこそ、私も乗り換える気になったのですが。<この点は、非常に重要ではないでしょうか。常に新しい資源を要求されたのでは地球環境に申し訳ありませんから。>
現在稼働しているのは、Celeron 443 の自作機ですが、MMX 166MHz、メモリーは64MB、とあるオークションで1万円で購入したDELL OptiPlex GXi も稼働実績があります。こんなのでも十分 24 時間稼働してくれています(さすがに標準でついていた HD は 6G に換装しましたが)。Vine Linux ならば 48MB でも可能でしたが。
NIC もこなれたものを使用した方が無難です。NE 2000 互換で、PCI バスを利用するものが無難でしょうか?ハードを自動認識してくれないとやっかいですから。
ルータの設定は、済んでいますか?以下の設定は、このルータの設定を前提に行います。
Windowsがインストールされた方ならLinuxも大丈夫だと思います。導入するパッケージの選択ではインターネットサーバプラスオプションでデータベースサーバを選択しました。
CD-ROM ブートできない古いマシンの場合には、起動ディスクを作りますが、
Windowsマシンに、空のフロッピーディスクを入れて、エクスプローラからCD-ROMの「DOSUTILS」の中の「Boot」をダブルクリックするとdos窓が開きますので、
| Enter disk image source file name: の問いに対し /images/boot.imgと入力後Enterキーを押す Enter terget diskette drive: の問いに対し(空のフロッピーをAドライブに入れたとすれば) a:と入力後、Enterキーを押す |
(注)起動ディスク作成用のイメージファイルには、FD からの起動に使用する boot.imgの他に、ネットワーク上の他の PC からインストールする場合は bootnet.img 、PCMCIA カードを使用する場合には、pcmcia-n.img(スカジーカードとして PCMCIA カードを使用するときは、pcmcia-s.img )があります。
こうしてできあがった FD と CD-ROM をLinux マシンに入れて起動。後は、フロッピーから読み出しが始まるので、指定されたとおり、進めていけばよいと思われます。注意するところは、
パーティションの確保の仕方は、自動設定でもよいですが、真新しいHDDでないとこのタブは選択できません。その場合は、TFdisk を使用してパーティションを最低 /( root ) とswap の二つの領域を確保します。ただし、/boot を作るように勧められるので、それは作っておきましょう。swap 領域は主メモリーの2倍が目安です。
ネットワーク関係はWindows環境でも同様(ルータを使用している環境であれば、すべてプライベートアドレスとホスト名 + サブドメインを入力してください。具体的には、以下の通りです。そして、ルータにプライベートアドレスをグローバルアドレスに変換させる仕組みを設定する。そうではなくモデム(ADSLを含む。)を使用しているのであれば、「DHCPを使用して設定する」にチェックをしておき、インストール PC に ISP のグローバルアドレスを割り当てられるようにする必要があるはず。この点はテストしていませんのであしからず。)ですし、X-windowsについてはサーバ構築の観点から割愛させていただきます。
---公開サーバの「ネットワーク」設定例----
| IP アドレス | 192.168.0.2 | |
| ネットマスク | 255.255.255.0 | |
| ネットワーク | 192.168.0.0 | |
| ブロードキャスト | 192.168.0.255 | |
| ホスト名 | hoge.e-sen.com | ← FQDN で入力 |
| ゲートウェイ | 192.168.0.1 | ←ルータのアドレスが192.168.0.1の場合 |
| 1番目の DNS | 192.168.0.1 | ←ルータのAUTO DNSを使用する場合。 インストールしたPCの Bind を使用する場合は、192.168.0.2 |
セキュリティの観点から、導入後速やかに turbopkg を利用して、パッケージのバージョンをアップさせてください。これには ISDN で数時間かかりますので、利用の少ない深夜や早朝にやって放っておけると楽ですよ。昔から果報は寝て待てです。
(1) root 権限で turbopkg とコマンドラインから打つ。
(2) Auto updateを選択
(3) Media Type で FTP server を選択
(4) Select FTP site で Update site を選択
(5) ftp.turbolinux.co.jp を選択
(6) アップデートしなければならないファイルがリストアップされたら、OK を選択する。後は放っておくだけ。Windows より簡単な気がします。
(7) 再起動して方が良いみたいです。古いパッケージが残っているようなので。shutdown -r now とコマンドラインから打つのみ。
ここで、セキュリティアップのため、デフォルトでどんなサービスが立ち上がっているか確認してみましょう。# turboservice を実行してください。
7 系で、インストール時の「セキュリティの設定」で「高」を選択した場合、以下のサービスが起動しているようです。セキュリティを確保する観点から、必要最小限のサービスを起動させることが必要です。
| デーモン | デフォルト | 変更後 | 備考 |
|---|---|---|---|
| apmd | ○ | × | バッテリーの状態を監視。ノート PC でなければ不要。 |
| atd | ○ | × | 指定した時刻にコマンドなどを実行。利用しなければ不要。 |
| crond | ○ | ○ | 指定した時刻にコマンドなどを実行。不可欠。 |
| keytable | ○ | ○ | キーボードの配列を設定。不可欠。 |
|
httpd |
× |
○ |
インターネットサーバーといったらまずはwww。不可欠のサービスなので起動。 |
| kparam | ○ | ○ | これはなにをしているのか不明。そのまま。 |
| named | ○ | ○ | DNSサーバー。内部 DNS として利用。 |
| network | ○ | ○ | ネットワーク利用を可能にする。不可欠。 |
| proftpd | × | ○ | FTP サーバー。利用しなければ不要。 |
| randam | ○ | ○ | 乱数生成。不可欠。 |
| rawdevice | ○ | ○ | なにをしているのか不明。そのまま。 |
| sshd | ○ | ○ | セキュアなシェル。利用しなければ不要。 |
| synctime | ○ | × | ntp デーモン。利用しなければ不要。 |
| syslog | ○ | ○ | システムの動作状況を記録。不可欠。 |
| xined | ○ | ○ | スーパーデーモン。不可欠。 |
| webmin | × | ○ | Webmin サーバー。利用しなければ不要。 |
----○ 起動 × 起動せず----
起動するには、該当のサーバーまでカーソルキーを移動させたら、タブキーでスタートを選択したり、ストップを選択したりすればよいのですが、この設定は、リブートさせると無効になります。だから、Advancedを選択後、開いたウィンドウで起動させたい ランレベル の数値を入力してください。
まずは、FTP サーバを設置しましょう。これがないとファイル転送できないので、後述のHTMLファイルを自分のページに置き換えできません。
これだけで、standaalone モードでの設定は完成です。非常に簡単です。
後はクライアントの設定ですが、Sota 氏が作成・配布しているFFFTPが設定も簡単でお勧めだと思いますが、これを例にすれば、ユーザー欄、パスワード欄に、インストール時に作成した一般ユーザーとパスワードを入力、サーバー名には直接PCのアドレスを入力します。これだけで、/home/一般ユーザー名のディレクトリにアクセスできます。
proftpd は「standalone」を推奨しているということです。スタンドアローンモードであれば、root 以外の非特権ユーザーで実行できるため、万一何らかのセキュリティホールでシェルが実行されても、マシン全体の制御が奪われる心配が少ないです。
7 系の場合にはデフォルトでインストールされますので、起動しておいてください。起動していない場合には、turboservice や コンソールから # /etc/rc.d/init.d/webmin start とやれば、起動できます。
後は、IE から https://192.168.0.2:10000/ と入力すれば、アクセスできます。squid などのプロキシサーバーを経由させている場合には、IE のこの接続だけはプロキシを使用しないよう、ツール → インターネットオプション→接続 → LANの設定 → 詳細設定 → 例外の欄の中に、192.168.0.2:10000などの入力を行っておいてください。開いたウインドウではID欄にroot、パスワード欄にはrootのパスワードを入力します。
--おまけ---
Turbi Linux Server 6.5 など 7 系以外の場合は、以下の手順にてインストールすることになります。
(1) ダウンロードしたwebminを保存してあるディレクトリーに移動します。
(2) tar zxf webmin-0.91.tar.gz で解凍します。
(3) mv webmin-0.91 /usr/local
(4) cd /usr/local/webmin-0.91
(5) ./setup.sh
(6) 後はほとんどリターンキーを押していくだけですが、途中
(7) Operating system: →Turbo Linux なら 10 を入力して Enter
(8) Version:→ 6.5 なら 2 を入力して Enter
(9) Login password:
(10) Password again:
(11) Start webmin at boot time (y/n) → y
を入力してください。
(12)アクセスは、クライアントから http://ホスト名:10000/ですが、うまくいかない場合にはhttp://IPアドレス:10000/でやってみてください。
クライアントでLinuxに対応しているのはあまり多くはないようです。私は、ez-ipupdate というクライアントソフトを選択しました。有名どころのDDNS に対応しているようです。2002年1月現在 ez-ipupdate-3.0.11b6-linux-i386.tar.gz というβ版が公開されているようです。私は、その一つ前のez-ipupdate-3.0.10-linux-i386.tar.gz を利用しています。インストール手順は、上のwebminと同じです。
|
user=myuserid:mypassword(登録しているIDとパスワードに置き換える) |
| # crontab -e と入力すると、エディタが開きますので、これにフルパスで指定します。たとえば、 30 5 * * * /usr/local/ipupdate(renameしてあります)/ez-ipupdate -c /usr/local/ipupdate/dhs.conf |
2行にわたって表記されているかもしれませんが、1 行で入力してください。この例では、毎日5:30に実行されることになります。
キャッシュファイルを利用しないようにするには、先ほどの環境設定ファイルを別名でコピーした上、
cache-file=/tmp/ezipupdate.cache の行頭に#を挿入し、コメントすれば良いです。
現在、Sarad さんのDiCE for Linux を使用しています。日本語が使えるので大変簡単です。2002/7/20現在、ver0.19が最新版です。コマンドラインで稼働する CUI 版と X-window で稼働する GUI 版があり、X-window で稼働させるには、CUI 版に GUI 版を重ねてインストールするようです。以下では、CUI 版の設定を記述します。GUI 版は利用しておりません。あしからず。但し、CUI で日本語を使用すると文字化けが発生して、設定が困難です。インストールする前に、# miniuni を実行しておきましょう。
|
# cp dice019.tar.gz /usr/local ←/usr/localにコピー # cd /usr/local ←/usr/local に移動 # tar zxvf dice019.tar.gz ←tarファイルの解凍。これで/usr/loca/DiCEにインストールされました。本当に簡単でしょう!! |
|
# cd /usr/local/DiCE # ./diced |
: ←これが表示されれば、ここにコマンドを入力して Enter キーを押せば実行できます。試しに ? を入力して Enter キーを押してみてください。実行可能なコマンド群が表示されますね。そうです。? はヘルプコマンドになっているのです。
さて、ここまでくれば、サーバーを運用する下準備ができました。
最初は、なんといっても www サーバーを設定することにします。でも心配はいりません。httpd デーモンを起動させれば、例の「 あなたの予想に反して、このページが見えているでしょうか? 」というページにアクセスできるはずで、これだけで apache は正常に稼働しています。後は、これを自分のページに置き換えればよいだけです。が、これだけだと、いわゆる動かないページになって味気ないもの。どうしても CGI などを設置したみたいのが人情というもの。
そこで、細部の設定を Webmin などを使用して変更していきます。 vi などの エディターで修正するときは、/etc/httpd/conf/httpd.conf を 開きます。
1、/var/www 以下の所有者、グループを、Webminの「Fileマネージャ」を使用して、これを最初に作った一般ユーザの所有及びグループに変更します。デフォルトでは root になっていますが、これを変更すると FTP や ssh クライアントから同ディレクトリへ直接アクセスできますので、メンテナンスが楽です。ですが、apache のバージョンアップごとにその所有者が書き換えられ、root に戻るようです。だから CGI のパーミッション設定を1からやり直す羽目に?
コマンドラインからは、# chown -R hogehoge(一般ユーザ名) /var/www とします。コマンドラインの方が簡単でしょう。
2、CGI と SSI を デフォルトの /var/www/cgi ディレクトリで実行させるための設定。併せて.plファイルを追加。
<Directory "/var/www/cgi-bin">
AddHandler
cgi-script .cgi .pl ←追加
AllowOverride
None
Options
+ExecCGI +Includes ←Noneから修正
Order
allow,deny
Allow
from all
</Directory>
cgi を設置するときには、ちょっとしたコツが要ります。***.cgi などの実行ファイルと ***.log などの書き込みファイルは /var/www/cgi-bin/ 以下に、***.img などのグラフィックファイルは /var/www/html/ 以下に設置するのがコツ?
3、DirectoryIndex に、デフォルトのindex.htmlに加えて、index.php index.shtml index.cgi index.pl を追加
4、PHP ファイルを取り扱えるよう下の2行の行頭の # をはずす。
# AddType application/x-httpd-php .php
# AddType application/x-httpd-php-source
.phps
5、セキュリティのために、ディレクトリでのオプションを無効化。
<Directory />
Options
None ← FollowSymLinks をNoneに変更。
AllowOverride
None
</Directory>
6、SSI を利用するためには、以下の2行のコメントをはずす。
# AddType text/html .shtml
#
AddHandler server-parsed .shtml
7、デフォルトログの形式を変更。
CustomLog /var/log/httpd/access_log combined ←commonからより詳細なログフォーマットを選択
これだけ変更し再起動すれば、Kent さんの CGI もデフォルト設定で稼働させることができますし、SSI による動的な www も実現できます。なお、CGI のパーミッションの設定は根気よくやってください。多くは、実行ファイルは [ 755 ]、ログファイルは [ 666 ] に設定すればうまく稼働すると思いますが。
SSI の利用方法については、こちら
【デフォルトの設定から変更したものは以上の通りであるが、設定変更に当たってのヒント】
|
命令 |
意味 |
書式例 |
|
Allow, Deny |
アクセスの許可と不許可 |
Allow All(すべてのアクセスを許可) |
|
AllowOverride |
.htaccess フィルの設定を有効とするかどうか。 |
Allowoverride all(.htaccessの設定をすべて有効にする。) |
|
Options +パラメータ |
パラメータを有効にするかどうか。 |
+ExecCGI --->CGIプログラムの実行を許可 一般に、セキュリティ上、最後の2つのオプションは推奨されていない。 |
|
Order |
Allow Deny設定する場合に、判断の順序をしてする。 |
Order Deny Allow |
|
AddType |
ファイルの拡張子とデータのタイプ(MIME)を対応付けする。 |
AddType Application/x-tar .tgz |
内部のDNSのために、設定を変更しました。通常、DDNS をご使用の場合は設置しなくてもかまいません。
やり方は、残念ながら、コマンドモードですが、
| vi /etc/named.conf |
で実行します。修正内容はDNS の設定を参照してください。
メールサーバの概念をもう一度整理しておくことが、メールサーバ関係のトラブルシューティングを行うときに役立つと思われます。
ここでは、メールの送信に使われるサーバー、SMTPの設定を行います。使用するものは Sendmail を使用します。Sendmail の設定には、apache とは異なり、複数のファイルを使用して環境設定を行いますが、主なものは、以下の通りです。
/etc/sendmail.cf ←主要な設定ファイル
/etc/mail/sendmail.mc
←sendmail.cf を m4 で作成するときのサンプルファイル
/etc/mail/local-host-names
←メールをFQDNで受け取るだけではなく、ドメインでも受け取れるように設定するファイル
/etc/mail/access.db
←メールのアクセスや中継のルールを決めるファイル。/etc/mail/access を編集すれば、自動的に作成される
/etc/mail/aliases.db
←ユーザに本来の名前とは異なる別の名前を設定するファイル。/etc/mail/aliases
を編集すれば、自動的に作成される
そのほかのファイルについては、こちらを参考にしてください。
設定が終了したら、sendmail を再起動する。これで設定は終了。
# /etc/rc.d/init.d/sendmail restart
----- おまけ ----
sendmail.cf を、webmin を使って設定してみます。これだと、コンパイルから、入れ替えまでをクリック一つで実行できるからです。
---- ここまで -----
【アクセスの制限】
上記の通り、smtp サーバはクライアントからのメールを DNS に問い合わせて、配信するものですが、これを利用できるものは、 /etc/mail/access で設定した者になります。これで初めて、外部にメールを送信できるようになります。smtp にメールを送信することは、自宅のホストに送信する限り問題ありません。問題は、自宅の SMTP にメールを送信し、さらにそれを別のアドレスに送信、すなわち転送させることができるか?です。これを無尽蔵に許可すれば、自宅の SMTP が踏み台と利用され、スパムメールが送信されることになります。これを第三者中継と読んでいるわけです。なぜ、こんなことが起きるかというと、SMTP はいわば「入る者は拒まず」という性質を持っており、POP のようにパスワードによる認証が行われていないからです。だから、デフォルトでは第三者中継を原則として禁止する設定になっています。現に、現在利用している SMTP サーバ sendmail もそうです。会社など固定の IP アドレスを持っている場合は、それを登録すればよいので不都合がありません。
しかし、出張先やモバイルなど、動的 IP アドレスでメールを第三者に送信しなければならないときに不都合になってきます。外部に、メールアドレスを付与して プロバイダーなどのようなことを実施する場合には、解決が迫られる問題です。そこで考え出されたのが、pop before smtp や smtp auth という認証方式です。前者は、単純に SMTP を利用させる前に pop サーバによる認証を行うものです。だから、メールを受信する気がない場合にも、メール送信の前にメール受信の信号を送信、すなわち、OE などのクライアントの受信ボタンを押すことになります。これに対して、後者は、SMTP サーバ自体に認証を行わせるようにしたもので、POP サーバによる認証は必要がありません。OE クライアントでは、「アカウント」「サーバ」タブの下の方に、「送信メールサーバ」という欄がありますが、ここの「このサーバは認証が必要」にチェックを入れて利用することになります。こちらの方が推奨されているようです。
さて、それでは、どうやって、smtp auth を実現するかですが、参考にしたのは、Katsuyuki Kobayashi's HomePage さんのメール環境再構築 - smtp認証の設定です。
設定方法は、vi エディタで sendmail.mc を編集する場面は、webmin の Sendmail M4 Configuration タブを使用します。それ以外は書いてあるとおりに実行すればよいと思います。
但し、Sendmail M4 Configuration タブでの設定では、下の方にある Add new entry of type ボタンを利用して、次のように値を設定してください。ダウンリストのあるところはそれを使用して、ないところは値の入力欄に、ここから必要箇所をコピー&ペーストすれば簡単です。なお、間違ったらまた修正が効きますので気軽にやってください。
|
Other TRUST_AUTH_MECH(`LOGIN PLAIN CRAM-MD5 DIGEST-MD5')dnl Define |
全部設定したら、Rebuild Sendmail Configuaration ボタンを押す、さらに出てきたページに Yes replace it now ボタンを押せば、新しい sendmail.cf のできあがり、どう簡単でしょう!?
【ちょっと気になる】なにやら、デフォルトで
Other dnl
Other
dnl SMTP Auth
Other dnl
Other
Other dnl define(`confAUTH_MECHANISMS',
`GSSAPI DIGEST-MD5 CRAM-MD5 KERBEROS_V4')
Other dnl define(`confDEF_AUTH_INFO',
`/etc/mail/auth-info')
Other dnl TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5')
を見つけた。まさしくSMTP Authを実現する設定だとわかるが、下から3行のコメントdnlをアウトしただけではだめ。後の研究材料になりました。
メールボックスにたまったメールをクライアントに送信してくれる pop-3 サーバーの設定を行います。TLS 7 の場合は、xinetd 経由で稼働します。だから、xinetd が pop-3 を起動するように設定するだけです。なお、pop3 を提供する imap のファイル群は次のページを参考にしてください。
【アクセスの制限】
pop-3 のアクセス制限の方法には、2通り考えられます。
サーバーの設定上、TELNET や FTP は不可欠なサービスですが、なんといってもパスワードなどがネット上をそのまま流れるので、パスワードを盗み見られることもあるそうです。だから、ことさら、強力なパスワードを使用すべきなのですが、それでも危険性は伴います。
そこで考えられたのが、パスワードを暗号化して流すプロトコル SSH なのですが、これとて、パスワードが盗まれる危険性は皆無ではないようですし、また推測(解読?)なんてことをされたらたまりません。
さらに、ペアの鍵を作成し、これを有しないものはたとえパスワードがあっていても、接続を許さない制度ができたようです。共通鍵方式と公開鍵方式の二つがあるようですが、ここでは情報の多い公開鍵方式を設定し、よりセキュリティの高いサイトを構成することにします。
まず、SSH の設定を行わなければなりません。
Turbo Linux Server 7 はデフォルトで Open SSH が起動しているはずですが、この設定は、/etc/ssh/sshd_config で行いますので、これを開いて、セキュリティの高い状態で、SSH を稼働させます。
|
# vi /etc/ssh/sshd_config |
でファイルを開きます。修正した箇所は、以下のところです。すべて # を取り除き、設定を有効にします。
|
# Port 22 |
開くポート番号 |
|
# Protocol 2,1 |
SSH サーバがサポートするプロところバージョン。設定例では、2も1も使う |
|
# PermitRootLogin no |
スーパーユーザでの接続を拒否。 |
|
# StrictModes yes |
公開鍵やそのディレクトリーのパーミッションの設定をチェックする。 |
|
# RhostsAuthentication no |
Rhostなどでホスト認証、ユーザ認証を行わない。 |
|
# RhostsRSAAuthentication no |
|
|
# RSAAuthentication yes |
RSA を使った公開鍵認証を有効にする。 |
|
# PasswordAuthentication no |
テキストを使った認証を無効にする。 |
ここまで設定したら、保存。
|
# /etd/rc.d/init.d/sshd restart |
で、ssh を再起動しておきます。
次に、公開鍵を作ります。puttygen.exe を使用します。作り方は、STACKさんのPutty ( SSH クライアント) を参照してください。図解入りですので、非常にわかりやすいと思います。なお、公開鍵は、セキュリティのより優れた SSH 2 で作ることをお勧めします。また、ファイル名は、サーバーに設置する公開鍵を identity.pub クライアントが使用する秘密鍵を identity.PPK (SSH 1 であれば拡張子無しも可) などとしてください。
なお、クライアントもLinuxという方は、こちらを参考にしてください。>>
作成した公開鍵をサーバに FTP 転送しますが、FTP クライアントで、/home/ユーザ名の下位に、.ssh ディレクトリーを作成します。(画面ではわかりにくいと思いますが、コンマssh です)。そして先ほど作成した、公開鍵ファイル identity.pub をこの .ssh ディレクトリに転送します。その後、identity.pub ファイル名称を、SSH 2 であれば authorized_keys2 に、SSH 1であれば authorized_keys に変更します。
ここで、パーミッションの設定を行います。
.sshディレクトリは 700、転送し rename した authorized_keys2(または authorized_keys )を 600 に変更します。FTP クライアントからやれば簡単ですが、ちなみに、コマンドでやろうとすると、次のようになります。
|
$ chmod 700 ~/.ssh ←必ずアクセスを許可する一般ユーザで実行すること。 |
最後に、ssh クライアントから、秘密鍵ファイル identity.PPK を使用して接続しますが、ssh クライアントとして何を使用したらよいでしょうか。
リモートログイン用としては、有名どころで、Tera Term + TTSH (日本語化もあり。)の組み合わせがありますが、SSH 1 にしか対応していないようですので、ここは、Putty.exe を使用します。設定例は、やはり、STACKさんのPutty ( SSH クライアント) を参考にしてください。但し、デフォルトでは、SSH 1の設定になっておりますので、SSH タブのところで、SSH 2 を選択するようにしてください。私はこれにはまり、公開鍵がおかしいのだろうと思って、何度作り直したことか!
ファイル転送では、WinSCP がお勧めです。設定例は、Dream-Seed
さんの「6.WinSCPの設定」を参考にしてください。まだ、ベータ版ですが、非常に安定しています。但し、RSA
認証を使用する場合には、SSH 1のみのようです。早く SSH 2 で RSA 認証できることを望みます。だから、現在のところ、SSH 1 で鍵を作成するか、SSH
1と SSH 2 の両方を設置して、クライアントによって、を使い分けるしかないようです。2003
年 1月 26日に公開された最新バージョン 2.2 ( # 122 ) では、SSH 2 での RSA 認証が可能となっています。
ここまできたら、FTP サーバーをストップしても大丈夫です。