#contents
 ----
 * FedoraCore4 - telnet サーバのインストールと設定 [#i3470981]
 
 ** [1] telnet サーバ? [#c018fb13]
 
  telnet (テルネット)サーバは TCP 23 番ポートを使って外部(telnet クライアント)からの接続を受け付ける事が出来ます。&br;
  簡単に説明してしまえば、遠隔(リモート)にあるサーバへログインするための仕組みです。
 
 ※本当は telnet 自体は暗号化されていない生データのため使うのは好ましくありません。2000 年を過ぎた頃からは SSH サーバ・クライアントの普及が広まってきたと思います。ですが、telnet しか実装されていない古いシステム等、クライアントの仕様による場合や、ローカル側での運営だからセキュリティは気にしない、という場合にセットアップする事もあると思います。
 
 ** [2] telnet サーバのセットアップ [#n84326ff]
 
  Fedora Core 4 では telnet サーバがセットアップされていません。yum(ユム)を使ったインストールを行います。その際に xinetd(エックスアイネットディー)も同時にインストールします。サーバ内外の通信を司るのが xinetd の仕事で、セキュリティのためにアクセス制限をする(TCP Wrapper として用いる)ことができます。
 
 *** [2-1] yum を使ったインストール作業 [#g19e6b0a]
 
  サーバ上では root ユーザ権限で操作を行います。
 
  yum でインストールを行う場合『 yum install パッケージ名 』のような使い方をします。今回使用するのは telnet-server パッケージです。次のようにコマンドを入力します(yum の初回実行時にはデータベースを更新するので、多少時間がかかる場合もあります)。
 
  # yum install telnet-server
  Setting up Install Process
  Setting up repositories
  updates-released          100% |=========================|  951 B    00:00
  extras                    100% |=========================|  951 B    00:00
  base                      100% |=========================| 1.1 kB    00:00
  Reading repository metadata in from local files
  Parsing package install arguments
  Resolving Dependencies
  --> Populating transaction set with selected packages. Please wait.
  ---> Package telnet-server.i386 1:0.17-35 set to be updated
  --> Running transaction check
  --> Processing Dependency: xinetd for package: telnet-server
  --> Restarting Dependency Resolution with new changes.
  --> Populating transaction set with selected packages. Please wait.
  ---> Package xinetd.i386 2:2.3.13-6 set to be updated
  --> Running transaction check
  
  Dependencies Resolved
  
  =============================================================================
   Package                 Arch       Version          Repository        Size
  =============================================================================
  Installing:
   telnet-server           i386       1:0.17-35        base               33 k
  Installing for dependencies:
   xinetd                  i386       2:2.3.13-6       base              125 k
  
  Transaction Summary
  =============================================================================
  Install      2 Package(s)
  Update       0 Package(s)
  Remove       0 Package(s)
  Total download size: 158 k
  Is this ok [y/N]: 
  インストールするパッケージ情報が表示されます。telnet-server を使うときには xinetd も必要となるので、セットアップされてない場合には一緒にセットアップされます。
 
  &color(red){''【 y 】と入力してエンターを押す''};とセットアップが自動開始されます。
  Downloading Packages:
  (1/2): telnet-server-0.17 100% |=========================|  33 kB    00:00
  (2/2): xinetd-2.3.13-6.i3 100% |=========================| 125 kB    00:00
  warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2
  public key not available for telnet-server-0.17-35.i386.rpm
  Retrieving GPG key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
  Importing GPG key 0x4F2A6FD2 "Fedora Project <fedora@redhat.com>"
  Is this ok [y/N]: y
  Key imported successfully
  Running Transaction Test
  Finished Transaction Test
  Transaction Test Succeeded
  Running Transaction
    Installing: xinetd                       ######################### [1/2]
    Installing: telnet-server                ######################### [2/2]
  
  Installed: telnet-server.i386 1:0.17-35
  Dependency Installed: xinetd.i386 2:2.3.13-6
  Complete!
 
  このように Complete! と表示されていれば問題ありません。
 
 *** [2-2] xinetd 側の調整 [#s2267b1a]
 
  telnet-server のセットアップの次に xinetd の調整です。
 
  xinetd を経由して telnet 接続が可能となります。
 
 +コマンド【 /sbin/chkconfig --list telnet 】を実行すると、初期の段階では 『 of 』となっており、接続が有効になっていません。
  # /sbin/chkconfig --list telnet
  telnet          off
 +xinetd 経由で telnet が使えるように次のコマンドを実行します。実行した後に再度確認すると、telnet が『 on 』になっている事が確認できます。
  # /sbin/chkconfig telnet on
  # /sbin/chkconfig --list telnet
  telnet          on
 +xinetd の起動を行います。
  # /etc/init.d/xinetd start
  xinetd を起動中:                                           [  OK  ]
  通常であれば、普通にこのまま起動して設定は完了です。
 +/sbin/chkconfig の確認。念のためサーバ起動時に xinetd が自動起動するか確認します。
  # /sbin/chkconfig --list xinetd
  xinetd          0:off   1:off   2:off   3:on    4:on    5:on    6:off
  3 もしくは 5(あるいは両方)が on になっているので、サーバ起動時には自動で xinetd が立ち上がることが分かります。もし off のままであれば
  # /sbin/chkconfig xinetd on
  と入力して、自動起動させるように出来ます。
 
 ** [3] telnet のアクセス制限 [#c9aad89d]
 
  セットアップを終わった段階では「どこからも接続が可能」な為、セキュリティ上に危険な状態となっています。次の手順で telnet の接続元を制限する必要があります。
 
 +【 vi /etc/hosts.deny 】コマンドなどで /etc/hosts.deny ファイルを開きます。初期状態では何も記述がありません。hosts.deny 側では''拒否したいホスト情報の指定''を行います
  in.telnetd: all
  この記述は『 すべての接続を拒否する 』という意味です。&br;&br;
 +次に【 vi /etc/hosts.allow 】で''接続を許可したいホスト情報の指定''を行います。hosts.deny ファイルより、hosts.allow ファイルの方が優先されます。つまり、hosts.deny で一旦すべての接続を拒否した上で、特定の環境のみ hosts.allow ファイルで許可を与えます。
  in.telnetd: 127.0.0.1
  in.telnetd: 192.168.1.0/255.255.255.0
  in.telnetd: .example.jp
  このようにして IP やネットワーク、ホスト名・ドメイン名に対して許可を与えることが出来ます。三行目の「.example.jp」は「ホスト名に .example.jp があれば接続を許可する」という意味です「www.example.jp」も「ftp.example.jp」も、ホスト名の中に「.example.jp」が含まれているので、接続は許可されます。&br;
 &br;
  また、「.jp」と、かなり広範囲にわたって設定することも可能です。実際にはあまり好ましくありません。もし .jp のホストが不正アクセスを受けた場合、そこを踏み台にして何らかの攻撃を受ける可能性もあるからです。
 
 ** [4] ログの確認とセキュリティ [#ia2229bf]
 
  /etc/hosts.allow hosts.deny ファイルでアクセスを制限すると、telnet 接続を拒否した時にログが記録されます。外部からの不正アクセスかな?という場合などに確認もできます。&br;
  対象となるログファイルは /var/log/secure です。この中で拒否された環境(ホスト情報)が from= の部分に表示されます。
  Jun 14 19:02:34 sion xinetd[3664]: FAIL: telnet libwrap from=192.168.11.102
  この例は 192.168.11.102 からの接続を拒否したという意味です。&br;
  同様に /var/log/messages にも拒否したという記録が表示されます。
  Jun 14 19:02:34 sion xinetd[3664]: libwrap refused connection to telnet
   (libwrap=in.telnetd) from 192.168.11.10
  実用的な使い方としては、特定の相手に対して telnet を許可したい場合です。予め何時接続するか伝えたり、あるいは電話しながらサーバにアクセスしてもらいます。制限がかかっていれば当然接続は拒否され「どこからの接続を拒否した」というログが残ります。アクセス元のネットワーク情報が不明な場合、そのログを元に環境を追加することが出来るので、何かと便利だと思います。
 
 ** [5] iptables が有効な時の対処法(Fedora Core 4) [#u14b4ddb]
 
  Fedora Core 4 でファイアウォール(iptables)を有効にしている場合、そのままでは telnet は許可されません。以下のコマンドを順番に実行して、telnet (tcp/23) 接続の設定を行います。
 
  # /sbin/iptables -D RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
  # /sbin/iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
  # /sbin/iptables -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
  # /sbin/service iptables save
 
  あとは外部のホストから telnet が許可されている事を確認出来ます。&br;
  以下のコマンドを実行することでも telnet が iptables で許可されている事が確認できます。
 
  # /sbin/iptables -L | grep telnet
  ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:telnet
  厳密に書けば、これはまだまだ甘い設定です。とりあえず telnet を許可したという段階に過ぎません。iptables のマニュアル等を参考にして -s オプションを用いたソースの IP アドレス、もしくはネットワークからの許可を制限するようにした方が、より設定は強固になります。&br;
  すみません、現段階では iptables の設定開設を目的としていないので割愛させていただきます……要望があれば別途書きます。
  すみません、現段階では iptables の設定解説を目的としていないので割愛させていただきます……要望があれば別途書きます。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS