はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/05/30
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> クライアントよりサーバを操作 >> Telnetサーバの構築(Telnet)
動作確認 [ FC1 / FC2 / FC3 / FC4 / FC5 / FC6 / Fedora7 / Fedora8 / Fedora9 / Fedora10 / Fedora11 / Fedora12 / Fedora13 / Fedora14 / Fedora15 / Fedora16 / Fedora17 / CentOS4 / CentOS5 / CentOS6 / CentOS7 ]
  1. はじめに・・・
  2. Telnetサーバのインストール
  3. Telnetログインできるクライアントの制限(セキュリティ強化)
  4. Telnet-Serverの有効化と起動
  5. Telnetの動作確認
  6. rootのtelnetログインを可能にする
    PAMを無効にする場合
    PAMを通してログインする場合
  7. 外部(WAN)からの接続

■ はじめに・・・

ターミナルツールとしてはtelnetが有名ですが、私個人的にはあまりお勧めできません。 理由としては、以下の点があげられます。

では何故、紹介するかと申しますと管理者への紹介要望が非常に多かった点です。
構築紹介は致しますが、LAN以外(WAN)からのサーバアクセスには十分に気を付けて下さい。

個人的には『PuTTY によるサーバリモート接続』をお勧めします。

■ Telnetサーバのインストール

# yum -y install telnet-server

■ Telnetログインできるクライアントの制限(セキュリティ強化)

Telnetログインできるクライアントを設定
# vi /etc/hosts.allow
#
# hosts.allow   This file describes the names of the hosts which are
#       allowed to use the local INET services, as decided
#       by the '/usr/sbin/tcpd' server.
#
プライベートアドレス「192.168.1.」とサーバ自身、グローバルアドレス「211.xxx.xxx.xxx」は許可
in.telnetd : 192.168.1. 127.0.0.1 211.xxx.xxx.xxx


『/etc/hosts.allow』で指定されたクライアント以外は全て拒否
# vi /etc/hosts.deny
#
# hosts.deny    This file describes the names of the hosts which are
#       *not* allowed to use the local INET services, as decided
#       by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow.  In particular
# you should know that NFS uses portmap!
in.telnetd : ALL

■ Telnet-Serverの有効化と起動

インストール直後では、Telnet-Serverは無効になっています。以下の変更を加える事で有効にできます。
Telnet-Serverの有効化
【SysV services の場合(FC1 から Fedora15 / CentOS4 / CentOS5 / CentOS6)】
# vi /etc/xinetd.d/telnet
# default: on
# description: The telnet server serves telnet sessions; it uses \
#   unencrypted username/password pairs for authentication.
service telnet
{
    flags       = REUSE
    socket_type = stream
    wait        = no
    user        = root
    server      = /usr/sbin/in.telnetd
    log_on_failure  += USERID
    disable     = no
}
xinetdを再起動
# /etc/init.d/xinetd restart

【systemd services の場合(Fedora16以降 / CentOS7)】
# systemctl start telnet.socket

■ Telnetの動作確認

クライアント機より接続する(ここはWindowsのDOS窓より行ってください)
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

telnetの起動
C:\Documents and Settings\fedora>telnet

Microsoft Telnet クライアントへようこそ

エスケープ文字は 'CTRL+]' です

Microsoft Telnet> op 192.168.1.5
接続中: 192.168.1.5...


Fedora Core release 2 (Tettnang)
Kernel 2.6.8-1.521 on an i686
login: linux
Password:
Last login: Mon Dec  6 17:58:45 from 192.168.1.10
telnet経由でのログインができた
[linux@fedora linux]$

■ rootのtelnetログインを可能にする

■ PAMを無効にする場合 (Fedora8 以降不可。以下の『■ PAMを通してログインする場合』参照)

セキュリティの変更
# vi /etc/pam.d/login
#%PAM-1.0
以下の行をコメントまたは削除する
#auth       required     pam_securetty.so
auth       required     pam_stack.so service=system-auth
auth       required     pam_nologin.so
account    required     pam_stack.so service=system-auth
password   required     pam_stack.so service=system-auth
session    required     pam_selinux.so multiple
session    required     pam_stack.so service=system-auth
session    optional     pam_console.so

設定変更を有効にする為、再起動する
# reboot

再起動後、クライアントからはroot(管理者)でのtelnetログインが可能になります

■ PAMを通してログインする場合

PAMのログイン概略をすごく簡単に説明すると、ログイン要求→PAMによる検証→ログイン(可/不可)となります。
この時、ログインを司るPAMは「/etc/pam.d/login」となっています。
この中の「pam_securetty.so」は、rootがログインでログイン要求してきた端末情報が「/etc/securetty」ファイル内に一致していた場合は後続のチェックに移っていきますが、ない場合はログイン要求を拒否されてしまい、rootでのログインが不可能となる訳です。

「/etc/securetty」の内容
# cat /etc/securetty
console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11

まず、前準備としてコンソール上または一般ユーザで一度ログイン後、rootになります。
この後、「TeraTerm」などのターミナルソフトでログイン画面を起動して下さい。(以下のログイン画面の状態)

Fedora release 8 (Werewolf)
Kernel 2.6.23.1-49.fc8 on an i686
login:

上記の状態中に、前準備でrootになっている画面より以下を実行します。

実行中プロセスの表示(以下は抜粋しています。)
# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root      1574     1  0 15:58 ?        00:00:00 xinetd -stayalive -pidfile /var/
root      1753  1574  0 16:00 ?        00:00:00 in.telnetd: 192.168.1.100
root      1754  1753  0 16:00 pts/0    00:00:00 /bin/login -h 192.168.1.100 -p


1番目が「xinetd」で「telnet」などのスーパーデーモンを司っている親プロセスになり、PID(実行プロセス番号)は「1574」となっています。(以下)
root      1574     1  0 15:58 ?        00:00:00 xinetd -stayalive -pidfile /var/

2番目が「telnet」プロセスで親のプロセス(PPID)「1574」よりPIDが「1753」で実行されています。(以下)
root      1753  1574  0 16:00 ?        00:00:00 in.telnetd: 192.168.1.100

3番目が「login」プロセスで親のプロセス(PPID)「1753」よりPIDが「1754」で実行され、TTYが「pts/0」となっています(以下)
root      1754  1753  0 16:00 pts/0    00:00:00 /bin/login -h 192.168.1.100 -p

上記の「pts/0」を、先ほどの「/etc/securetty」に追加してあげれば、rootでのログインも可能となります。


端末情報を追加
# vi /etc/securetty
    :
    :
    :
最終行に追加する
pts/0
pts/1
pts/2
pts/3
pts/4
pts/5
pts/6
pts/7
pts/8
pts/9
pts/10
pts/11

*:番号は既に登録してある「tty」と同じ数だけ設定すればよいでしょう。

■ 外部(WAN)からの接続

WANから接続するに当たって、ルータの設定が必要です。
ルータのポート開閉は、ご自分のルータ取扱説明書をご覧ください。

DNS名で接続するには事前にドメイン名の取得を行っている必要があります。(以下は代表的なものであり、また、当サイトが使用させて頂いております)

■ コンテンツ関連

■ その他

ページ先頭へ

Copyright(©)2004-2018 First home server construction. All Right Reserved.