SSHサーバーの再構築 合計:
昨日:
今日:

更新日:2013/3/28

ホームへ戻る  アクセス制限
SSHサーバーは、Telnet同様にクライアントからサーバーへリモート接続して、遠隔地からサーバーを操作することができるサーバー。
Telnetが,平文でデータを送受信するのに対して、SSHでは通信内容を暗号化しているため、セキュリティが確保できる。
このサーバーでは、SSH2を使用することとする。
 
 
◆Telnetサーバーのインストール <<TOP

SSHサーバーを新たにインストールするため、SSHサーバーをいったんアンインストールするため、代わりにTelnetサーバーをインストールして、サーバーとのリモート接続を行うようにする

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

[root@server ~]# yum -y install telnet-server  ← Telnetサーバのインストール
    ・
    ・
    ・
  Installing     : 2:xinetd-2.3.14-29.el6.i686                                        1/2 
  Installing     : 1:telnet-server-0.17-46.el6.i686                                   2/2 

Installed:
  telnet-server.i686 1:0.17-46.el6                                                        

Dependency Installed:
  xinetd.i686 2:2.3.14-29.el6                                                             

Complete!
[root@server ~]# chkconfig telnet on ← Telnetサーバ有効化

[root@server ~]# /etc/rc.d/init.d/xinetd restart ← Xinetd再起動(Telnetサーバ起動)

Stopping xinetd:                                           [FAILED] ← 起動していない場合
Starting xinetd:                                           [  OK  ]

[root@server ~]# 

ATelnetサーバへログイン

[root@server ~]# /etc/rc.d/init.d/iptables stop

        ↑ iptableが設定されているとポート23番が空いていないことがあるので。ストップしておく		   

PoderosaでTelnetサーバーへログインする

ホスト: サーバーIPアドレス
プロトコル :Telnet
ポート: Telnet(23) ← 自動的にセットされる
エンコーディング: utf8 ← 当サーバーの場合

CentOS Linux release 6.0 (Final)
Kernel 2.6.32-71.29.1.el6.i686 on an i686
login: admin ← rootではログインできないので一般ユーザでログインする
Password: 
Last login: Fri Nov  4 16:19:49 from 192.168.11.7
[admin@server ~]$ su -
[root@server ~]# 

 

 
◆SSHサーバのアンイストール(必要な場合のみ)CCENTS6では必要ない <<TOP

OpenSSHを新規にインストールするため、既にインストールされて起動しているSSHサーバーをアンインストールする。

[root@server ~]# /etc/rc.d/init.d/sshd stop ← SSHサーバーを停止する
Stopping sshd:                                             [  OK  ]

[root@server ~]# yum -y remove openssh ← OPENSSHサーバのアンイストール
    ・
    ・
    ・
  Erasing        : openssh-clients-5.3p1-20.el6_0.3.i686                              1/3 
  Erasing        : openssh-server-5.3p1-20.el6_0.3.i686                               2/3 
warning: /etc/ssh/sshd_config saved as /etc/ssh/sshd_config.rpmsave
  Erasing        : openssh-5.3p1-20.el6_0.3.i686                                      3/3 

Removed:
  openssh.i686 0:5.3p1-20.el6_0.3                                                         

Dependency Removed:
  openssh-clients.i686 0:5.3p1-20.el6_0.3      openssh-server.i686 0:5.3p1-20.el6_0.3     

Complete!
[root@server ~]# 

 

 
◆SSHサーバーの再インストール(アンイストールした場合) <<TOP

SSHサーバーを再インストールする

[root@server ~]# yum -y install openssh
    ・
    ・
    ・

Running Transaction
  Installing     : openssh-5.3p1-20.el6_0.3.i686                                      1/1 

Installed:
  openssh.i686 0:5.3p1-20.el6_0.3                                                         

Complete!
[root@server ~]# 

 

 
◆SSHサーバー再起動 <<TOP

 

[root@server ~]# /etc/rc.d/init.d/sshd start ← Opensshを起動する
-bash: /etc/rc.d/init.d/sshd: No such file or directory
   ↑ 上記のようにエラーが出た場合

[root@server ~]# yum -y install openssh-server ← 依存性で削除されたので再インストール
    ・
    ・
    ・
Running Transaction
  Installing     : openssh-server-5.3p1-20.el6_0.3.i686                               1/1 

Installed:
  openssh-server.i686 0:5.3p1-20.el6_0.3                                                  

Complete!
[root@server ~]# yum -y install openssh-clients ← 依存性で削除されたので再インストール
    ・
    ・
    ・
Running Transaction
  Installing     : openssh-clients-5.3p1-20.el6_0.3.i686                              1/1 

Installed:
  openssh-clients.i686 0:5.3p1-20.el6_0.3                                                 

Complete!
[root@server ~]# /etc/rc.d/init.d/sshd start ← Openssh起動
Starting sshd:                                             [  OK  ]
[root@server ~]#
k

 

 
 
SSHサーバーの設定 <<TOP

@SSHサーバの設定

[root@server ~]# vi /etc/ssh/sshd_config ← SSHサーバー設定ファイル編集  
# Disable legacy (protocol version 1) support in the server for new # installations. In future the default will change to require explicit # activation of protocol 1 Protocol 2 
← デフォルトで2     ・     ・     ・ # Logging # obsoletes QuietMode and FascistLogging #SyslogFacility AUTH SyslogFacility AUTHPRIV ← ログを/var/log/secureに記録する(デフォルト)     ・     ・ #LoginGraceTime 2m #PermitRootLogin yes     ↓ rootでのログイン禁止 PermitRootLogin no     ・     ・ # To disable tunneled clear text passwords, change to no here! #PasswordAuthentication yes     ↓ パスワードでのログイン禁止 PasswordAuthentication no     ・     ・ #PermitEmptyPasswords no     ↓ パスワードなしのログイン禁止 PermitEmptyPasswords no #PasswordAuthentication yes ← もしここにもあったらコメントアウト

Achroot設定

管理者用ユーザー(wheelグループ所属ユーザー)を除いて、一般ユーザーが自身のホームディレクトリ以外を参照できないようにする。

[root@server ~]# usermod -G wheel admin ← 管理者ユーザー(例:admin)をwheelグループに追加

[root@server ~]# vi /etc/ssh/sshd_config ← SSHサーバー設定ファイル編集
    ・
    ・
    ・
#       X11Forwarding no
#       AllowTcpForwarding no
#       ForceCommand cvs server

Match Group *,!wheel
        ChrootDirectory /home/%u/./ ← 最終行へ追加

 

◆SSHサーバーの再起動 <<TOP

@SSHサーバーの再起動
設定を有効にするため、サーバーを再起動する。

[root@server ~]# /etc/rc.d/init.d/sshd restart ← SSHサーバ再起動
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
[root@server ~]# 

Aポート22番をオープンする。

ルーター側の設定でポート22をオープンする

ポートチェック【ポート開放確認】で、ポート22番があいているかどうかを確認する。

 

 

 

 
◆SSHサーバーへの接続設定 <<TOP
クライアントのWindowsマシンからLinuxサーバーにリモート接続し、WindowsマシンからLinuxサーバーを操作する。
リモート接続用のクライアントソフトとして、Poderosaを使用する。
また、Linuxサーバーへのログインは鍵方式によるログインを行なうこととする。
 
◆Poderosaインストール(インストールされていれば不要です) <<TOP

@Microsoft .NET Frameworkインストール

Poderosa実行に必要なMicrosoft .NET Frameworkをダウンロード&インストールする。この時点でのPoderosaの最新版(4.1.0)では、.NET Framework 2.0が必要です。

APoderosaインストール
Poderosaをダウンロード&インストールする

 

 
◆鍵ペア(公開鍵/秘密鍵)作成 <<TOP

Poderosaを起動し、メニューの「ツール」⇒「SSH鍵作成ウィザード」で、SSH鍵作成ウィザードを起動する。
a

サーバーへのログイン用パスワードをパスフレーズの欄に入力し、確認入力にも同じように入力し、次へ

b

ウィンドウの中でマウスを動かす

c

次へをクリックすると、次の画面が開く

d

「秘密鍵を名前をつけて保存」をクリックし、適当な名前で秘密鍵を保存する
※秘密鍵はクライアント側へ残しておく

e

「OpenSSH形式で公開鍵を名前をつけて保存」をクリックし、適当な名前で公開鍵を保存する
※公開鍵はサーバー側へ転送しておく必要がある。その点は、下記に記します。
その後、完了で終了です。

◆公開鍵の転送(フロッピィが使える場合) <<TOP

@公開鍵をフロッピーでサーバーに持ち込む場合
フロッピーに保存した公開鍵(public.pubというファイル名で保存したものとする)をサーバー側へ持ち込む

[root@server ~]# mount /media/floppy ← フロッピーマウント
[root@server ~]# cp /media/floppy/public.pub /root ← フロッピーから公開鍵を/rootディレクトリにコピー
[root@server ~]# umount /media/floppy ← フロッピーアンマウント
 
◆FTPでクライアントから公開鍵を、サーバーに送る(>> FTPサーバーの構築 <<TOP

ノンセキュアなため、お勧めではないが、ノートパソコンでfloopyがない場合は、この方法によって、サーバーに公開鍵を送る。SSHサーバー構築後にアンインストールし、ポートを開いているなら、それを閉じることもお勧めします。 FTPサーバーを構築してから、データを転送する。

[root@server ~]# /etc/rc.d/init.d/vsftpd start
vsftpd 用の vsftpd を起動中:                               [  OK  ]
[root@server ~]#		  
		  

次に、Poderosaで作成した、公開鍵をサーバーに転送する。(windowsのdosプロンプトにて操作を行う) ウィルスソフトが起動していると転送できないことがあるので、一時的に解除しておくと良いです。

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.


C:\Documents and Settings\arisonstc>ftp ← ftpコマンド
ftp> op ← openコマンド
To 192.168.184.128 ← サーバーのIPアドレスを入力する。
Connected to 192.168.184.128.
220 (vsFTPd 2.0.1)
User (192.168.184.128:(none)): admin ← ユーザー名を入力する
331 Please specify the password.
Password: ← パスワードを入力する(表示はされない)
230 Login successful.
ftp> put c:\tmp\public.pub ← 公開鍵を転送する(/home/admin/のところに転送される)
200 PORT command successful. Consider using PASV. ← ここで固まる場合は、ウィルスソフト解除
150 Ok to send data.
226 File receive OK.
ftp: 462 bytes sent in 0.00Seconds 462000.00Kbytes/sec.
ftp> ls -l ← 転送されたかどうかの確認
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 500      500           462 Jan 24 13:07 public.pub ← 転送されている
226 Directory send OK.
ftp: 72 bytes received in 0.00Seconds 72000.00Kbytes/sec.
ftp>bye ← openコマンドから抜ける場合

C:\Documents and Settings\arisonstc>		

このままだと、/home/admin/に公開鍵はあるので、/rootに転送する。

[root@server ~]# ls /home/admin/ -l ← 公開鍵の確認
合計 4
-rw-r--r--  1 admin admin 462  1月 24 22:07 public.pub ← ありました
[root@server ~]# mv /home/admin/public.pub /root ← /rootに転送する
[root@server ~]# /etc/rc.d/init.d/vsftpd stop ← vfstpdは、停止しておく
vsftpd を停止中:                                           [  OK  ] 
		
 
◆公開鍵のセットアップ <<TOP

T、クライアント側より送付された公開鍵(公開鍵はpublic.pubというファイル名で既に/rootディレクトリに転送済であるものとする)とペアの秘密鍵でSSHサーバーへログインできるようにする
※ここでは、SSHサーバーへログインできるようにするユーザをadminとする

[root@server ~]# mkdir -p /home/admin/.ssh ← 公開鍵格納ディレクトリ作成
[root@server ~]# chmod 700 /home/admin/.ssh/ ← 公開鍵格納ディレクトリのパーミッションを変更
[root@server ~]# cat public.pub >> /home/admin/.ssh/authorized_keys2 ← 公開鍵をauthorized_keys2に保存
[root@ server~]# chmod 600 /home/admin/.ssh/authorized_keys2 ← authorized_keys2のパーミッションを変更
[root@server ~]# chown -R admin. /home/admin/.ssh/ ← 公開鍵格納ディレクトリの所有者を変更
[root@server ~]# rm -f public.pub ← クライアント側より送付された公開鍵を削除

U、リモートのPCを使って、コピペで公開鍵のセットアップする

[root@server ~]# su - admin ← adminユーザでしかログオンできないようにするので
[admin@server ~]$ mkdir -p ~/.ssh ← 公開鍵格納ディレクトリ作成
[admin@server ~]$ chmod 700 ~/.ssh ← 公開鍵格納ディレクトリのパーミッションを変更
[admin@server ~]$ vi ~/.ssh/authorized_keys ← 公開鍵をauthorized_keysに保存するため
ssh-dss ******************* ← クライアント側で作成した公開鍵の中身を全てコピーして貼り付ける

[admin@server ~]$ chmod 600 ~/.ssh/authorized_keys	← authorized_keysのパーミッションを変更
[admin@server ~]$	

 

   
Poderosaで接続確認 <<TOP

Poderosaを起動し、メニューの「新規Telnet/SSH接続」で、SSHサーバーへ接続する。

新規接続 下記情報を指定して「OK」ボタン押下  
「ホスト」欄⇒SSHサーバー名(例:arisonsvr.org)  
「ユーザ名」欄⇒ユーザ名  
「認証方法」欄⇒公開鍵  
「パスフレーズ」欄⇒鍵ペア作成時に指定したパスフレーズ
 
「鍵ファイル」欄⇒鍵ペア作成時に保存した秘密鍵を選択  
「エンコーディング」欄⇒システムの文字コードを選択
※「echo $LANG」コマンドで確認可能
 
   

「はい」
※SSHサーバー初回接続時のみ表示される

ログイン後の画面、上記は初回以降の画面。

Poderosaの起動を高速化 <<TOP

.NET Frameworkに同梱されているネイティブ イメージ ジェネレータ(Ngen.exe)を使用して、Poderosaの起動を高速化する。

スタートメニュー⇒プログラム⇒アクセサリ⇒コマンドプロンプトで、コマンドプロンプトを起動する

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

↑ Ngen.exeインストールフォルダへ移動

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>ngen.exe "C:\Program Files\Poderosa\Poderosa.exe"

↑ Ngen.exeでPoderosaの起動を高速化

SSHアクセス制限 <<TOP

サーバーをしばらく開設していると、アクセスを試みる人が現れてくるので、不必要なアクセスを制限する。

[root@server ~]# 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.
#

sshd: 192.168.1. ← 内部(例:192.168.1.XXXからのsshアクセスを許可)
sshd: arisonsvr.org ← 外部(例:arisonsvr.orgからのsshアクセスを許可)

[root@server ~]# 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!

sshd: ALL ← sshへの全てのアクセスを禁止

上記の例は、内部(192.168.1.)と外部(arisonsvr.org)のみ、アクセスを許可している。

◆広告等 <<TOP
 
 
 
TOPへ

Copyright(C) 2005-2013 arisonserver. All rights reserved.