|
||||
Linux技術トレーニング 基本管理コース I第5章 ネットワークの設定と操作
2. ネットワーク・サーバ機能の設定2-1. TELNET
(1)TELNETについて
TELNET
MIRACLE LINUXだけでなく、UNIX系のOSで幅広くサポートされている代表的なリモート操作の機能です。また、クライアントツールに関しても、UNIX系に限らず、ほとんどのOSにおいて、標準的に装備されているため、比較的利用しやすい環境が整っているといえます。 しかし、TELNETは、通信で使用するデータが暗号化されないため、容易に盗聴できるといったセキュリティ上の問題があります。したがって、インターネット等を使用して、リモート操作をする場合は、後述のSSHを使用するケースが増えてきています。それ故、 MIRACLE LINUXでは、デフォルトでは、TELNETサービスが利用できないように設定されています。 ただ、比較的狭い範囲で行う開発環境など、このようなセキュリティ問題を気にする必要のない環境では、利用環境が整っているTELNETを使用するケースが少なくありません。
(2)TELNETサービスの設定と起動
xinetdサービス
xinetedサービスは、inetdに代わるスーパーサーバです。スーパーサーバとは、FTPやTELNETなどのサーバープロセスを必要に応じて起動するデーモンです。 telnet サービスを有効にするには
MIRACLE LINUX は、telnet サービスが無効化された状態で出荷されています。 # /sbin/chkconfig --list telnet
「telnet on」 と返ってきたら telnet サービスはすでに有効になっています。 # /sbin/chkconfig telnet on
すでに xinetd サービスが起動している場合、telnetサービスが使えるようになります。 # /sbin/service xinetd status
「xinetd (pid XXXX) is running...」 と表示されればすでに起動しています。 # /sbin/service xinetd start # /sbin/chkconfig xinetd on 【注意】telnet サービスは通信中のデータが暗号化されない ため、次章で解説するよりセキュアな SSH サービスのご利用を お勧めします。 2-2. SSH
(1)SSHについて
SSH
SSHは、TELNETと同様にリモート操作の機能を提供します。ただし、SSHは、以下のTELNETのセキュリティ上の問題を解決しています。
SSHには、現在SSH1とSSH2という2つの互換性のないプロトコルが存在します。 どちらも、共に、DSAやRSAなどの公開鍵暗号技術を利用して、相手の認証、通信の暗号化実現し、リモート操作の安全性を確保しています。
(2)SSHサービスの起動と停止
SSHサービスの起動と停止
SSHは、TELNETと異なり、xinetdサービスではなく独自のSSHサービスから起動されます。なお、MIRACLE LINUXにおいて、このSSHサービスは、デフォルトで動作しています。 一方、スライドのコマンドを使用することによって、手動にて、起動、停止、再起動および起動状態の確認をすることができます。
(3)SSHサービスの設定
/etc/ssh/sshd_config
通常の運用では、デフォルトの設定で問題ありませんが、要求に応じてこの設定ファイルを編集し、sshdサービスを再起動することによって設定を変更することができます。 この設定ファイルに指定可能な各パラメータの詳細については、本テキストでは取り扱いません。詳細は、「man sshd_config」コマンドを参照してください。 リモートからのrootユーザでのログイン
デフォルトの設定では、リモートからのrootユーザでのログインは禁止されています。
(4)SSHの利用 - ユーザ名/パスワードによる認証 -
SSHの利用
SSHでリモートサイトにログインするためには、スライドのコマンドを使用します。 対象となるリモートサイトに初めてアクセスした場合、以下の通り、相手ホストの情報を保存しておくかどうかたずねられるので、「yes」と答えてください。 #/usr/bin/ssh host1 The authenticity of host 'host1 (172.16.44.143)' can't be established. RSA key fingerprint is 4e:e4:64:62:8c:2a:d5:52:ea:64:14:82:a3:57:35:b8. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'host1,172.16.44.143' (RSA) to the list of known hosts. root@host1‘s password: <パスワードの入力> Last login: Wed Jul 13 16:18:43 2005 from dhcp1001.spr.cslab.co.jp 相手先ホストの情報については、「~/.ssh/known_hosts」に保存されます。
(5)SSHの利用 - 公開鍵・秘密鍵による認証 -
パスワード認証によらないログインの実現
SSHでは、認証の強化と安全性の確保のため、パスワードに依存しない認証(公開鍵認証)を可能にしています。環境の設定の手順は、以下の通りとなります。 ローカルマシンで公開鍵と秘密鍵の対を生成スライドのコマンドを使用して、公開鍵と秘密鍵の対を生成します。この時、以下のように「鍵ファイルの保存場所」と「パスフレーズ」を聞かれますので、この時は何も入力せず[enter]キーを押してください。 $ /usr/bin/ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/foo/.ssh/id_dsa): [enter] Enter passphrase (empty for no passphrase): [enter] Enter same passphrase again: [enter] Your identification has been saved in /home/foo/.ssh/id_dsa. Your public key has been saved in /home/foo/.ssh/id_dsa.pub. The key fingerprint is: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX foo@host0 $生成された鍵ファイル 鍵ファイルは、上記コマンドで指定した場所に、以下のように生成されます。
ログイン先のマシンのログインするユーザのホームディレクトリの直下の「.ssh/authorized_keys」ファイルに公開鍵(id_dsa.pub)の内容を追記します。このファイルが存在しない場合は、新規に作成します。公開鍵の内容は、テキストのため、単純にコピー&ペーストできます。 例)ログインするユーザ名がfooであり、そのホームディレクトリが/home/fooの場合
秘密鍵の管理を厳重に行い、決して他人に盗み出されないように注意してください。この内容が他人に知られると、その人があなたになりすまして、リモートホストにログインできるようになってしまいます。 鍵生成時のパスフレーズについて鍵の生成の際に、パスフレーズを指定した場合、SSHクライアントを起動するたびに、パスフレーズの入力を求められます。これは、クライアント側の秘密鍵がこのパスフレーズで暗号化されていて、これを復号化して生の秘密鍵を取り出す必要があるからです。したがって、このパスフレーズとSSHサーバ、クライアント間の認証とは、直接の関係はありません。
(6)SSHを使用したツール
SSHを使用したツール
SSHプロトコルを使用したツールがいくつか存在します。これらツールは、SSHの認証機能、暗号化機能を使用して、リモートホスト間と安全なデータ転送機能を実現します。ここでは代表的な2つのコマンドを紹介いたします。これらコマンドは、先にご紹介したSSHの設定が完了していれば、その他の設定をせずとも使用でき、大変便利なコマンドです。 /usr/bin/scpコマンド従来のrcpコマンドと同等の機能をSSHプロトコル上で実現します。 # /usr/bin/scp [-r] <コピー元> <コピー先>
従来のftpコマンドと同等の機能をSSHプロトコル上で実現します。 [root@localhost ~]# sftp remote_host Connecting to remote_host... root@remote_host‘s password: <パスワードを入力> sftp> help Available commands: cd path Change remote directory to 'path' lcd path Change local directory to 'path' chgrp grp path Change group of file 'path' to 'grp' chmod mode path Change permissions of file 'path' to 'mode' chown own path Change owner of file 'path' to 'own' help Display this help text get remote-path [local-path] Download file lls [ls-options [path]] Display local directory listing ln oldpath newpath Symlink remote file lmkdir path Create local directory lpwd Print local working directory ls [path] Display remote directory listing lumask umask Set local umask to 'umask' mkdir path Create remote directory progress Toggle display of progress meter put local-path [remote-path] Upload file pwd Display remote working directory exit Quit sftp quit Quit sftp rename oldpath newpath Rename remote file rmdir path Remove remote directory rm path Delete remote file symlink oldpath newpath Symlink remote file version Show SFTP version !command Execute 'command' in local shell ! Escape to local shell ? Synonym for help sftp> 2-3. FTP
(1)FTPについて
FTP
TCP/IPネットワークにおける代表的なファイル転送の手法であり、現在でも広く使用されています。 FTPの利用形態としては、大きく以下の2つがあります。
MIRACLE LINUXでは、FTP機能をProFTPDというオープンソースのサーバ製品を使用して実現しています。 デフォルトでは、 このProFTPDは利用不可となっているため、FTPサーバとしてMIRACLE LINUXを使用する場合は、後述する設定を実施する必要があります。
(2)FTPサービスの起動と停止
FTPサービスの起動と停止
FTPの起動方法には、以下の二通りが存在します。
MIRACLE LINUXにおけるFTPサービスであるproftpdの起動、停止、再起動および起動状態の確認については、上記(2)のコマンドにて実施します。
(3)FTPサービスの設定
etc/proftpd.conf
ProFTPDの設定は、この設定ファイルにて設定します。要求に応じてこの設定ファイルを編集し、proftpdサービスを再起動することによって設定を変更することができます。
この設定ファイルには、Apacheの設定ファイルの形式に似た方式で記述します。
ProFTPDには様々な設定パラメータがあり、それぞれのパラメータには初期値や、指定可能ブロックなどがあります。各パラメータの詳細については、ProFTPDパッケージに含まれるCondfiguration.htmlを参照してください。 |