SSHサーバ(OpenSSH)

SSHは、データの暗号化や公開鍵を利用した認証技術により安全なリモート管理やファイル転送を可能にするツール。パスワードやデータの漏洩といった危険性が高いTelenetやFTPに代わって、リモート管理に良く使われるようになった。接続方式にはSSH1とSSH2がありSSH2の方が、SSH1より強固な暗号化になっているので、ここではSSH2を使用し鍵方式によるログインの設定を行う。
■ OpenSSHの設定

OpenSSH設定ファイルを編集
[root@server1 ~]# vi /etc/ssh/sshd_config
スーパーユーザでのログインを禁止
#PermitRootLogin yes
↓
PermitRootLogin no  ← #を削除して no に変更
通常のパスワードではなく鍵方式に変更
#PasswordAuthentication yes
↓
PasswordAuthentication no  ← #を削除して no に変更
空パスワードの禁止
#PermitEmptyPasswords no
↓
PermitEmptyPasswords no  ← #を削除

■ SSHアクセス制限

サーバー自身、内部ネットワーク、特定の外部IP(xxx.xxx.xxx.xxx)からのアクセスを許可
[root@server1 ~]# echo "sshd : 127.0.0.1 192.168.1. xxx.xxx.xxx.xxx" >> /etc/hosts.allow
上記以外の全てのアクセスを禁止
[root@server1 ~]# echo "sshd : ALL" >> /etc/hosts.deny

会社等からアクセスする場合、自分の会社の接続環境(IPアドレス)を調べ、/etc/hosts.allowへ登録する必要がある。そんな時は診断くんで確認できる。
■ OpenSSHの再起動

[root@server1 ~]# systemctl restart sshd ← sshd再起動
[root@server1 ~]# systemctl enable sshd ← sshd自動起動設定
[root@server1 ~]# systemctl status sshd ← sshd状態表示
sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: active (running) since 日 2014-12-21 08:11:12 JST; 1min 5s ago
 Main PID: 14825 (sshd)
   CGroup: /system.slice/sshd.service
           └─14825 /usr/sbin/sshd -D

12月 21 08:11:12 server1.yokensaka.com systemd[1]: Started OpenSSH server daemon.
12月 21 08:11:12 server1.yokensaka.com sshd[14825]: Server listening on 0.0.0.0 port 22.
12月 21 08:11:12 server1.yokensaka.com sshd[14825]: Server listening on :: port 22.

■ SSH2による鍵の作成

鍵を作成するユーザーで作業を進める。
[root@server1 ~]# su - higo
鍵の作成を行う(何も入力しないで空エンターを押す)
[higo@server1 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/higo/.ssh/id_rsa):
Created directory '/home/higo/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/higo/.ssh/id_rsa.
Your public key has been saved in /home/higo/.ssh/id_rsa.pub.
The key fingerprint is:
50:49:5b:d2:b8:09:0f:6b:68:bc:5b:83:2e:4c:ce:25 higo@server1.yokensaka.com
The key's randomart image is:
+--[ RSA 2048]----+
|       .++.      |
|      o.o+.      |
|   . ..=.o       |
|    + o.+        |
|   . +  S        |
|  E + o          |
| = + o .         |
|  = o            |
|   .             |
+-----------------+
鍵の作成先を表示する
[higo@server1 ~]$ ls -la /home/higo/.ssh/
合計 16
drwx------   2 higo higo 4096  9月 19 10:49 2011 .
drwx------. 24 higo higo 4096  9月 19 10:49 2011 ..
-rw-------   1 higo higo 1675  9月 19 10:49 2011 id_rsa  ← 秘密鍵鍵
-rw-r--r--   1 higo higo  408  9月 19 10:49 2011 id_rsa.pub  ← 公開鍵
公開鍵をauthorized_keysに追加
[higo@server1 ~]$ cat /home/higo/.ssh/id_rsa.pub >> /home/higo/.ssh/authorized_keys
公開鍵を自分のみアクセスできるように変更
[higo@server1 ~]$ chmod 600 /home/higo/.ssh/authorized_keys
公開鍵を削除
[higo@server1 ~]$ rm -f /home/higo/.ssh/id_rsa.pub
鍵の作成先を表示
[higo@server1 ~]$ ls -la /home/higo/.ssh/
合計 16
drwx------   2 higo higo 4096  9月 19 10:51 2011 .
drwx------. 24 higo higo 4096  9月 19 10:49 2011 ..
-rw-------   1 higo higo  408  9月 19 10:51 2011 authorized_keys  ← 公開鍵
-rw-------   1 higo higo 1675  9月 19 10:49 2011 id_rsa           ← 秘密鍵

■ 秘密鍵の抜き取り 
(xWindowにしてUSB経由で抜き取り、クライアントマシンにコピーするほうが簡単)
FTPでコピーする方法

スーパーユーザ(root)になる。
[higo@server1 ~]$ su -
rootのパスワードを入力。
Password:
FTPサーバをインストール
[root@server1 ~]# yum install vsftpd
Loaded plugins: fastestmirror, refresh-packagekit
Existing lock /var/run/yum.pid: another copy is running as pid 2557.
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: PackageKit
Memory :  47 M RSS ( 95 MB VSZ)
Started: Mon Sep 19 08:36:00 2011 - 00:14 ago
State  : Sleeping, pid: 2557
Loading mirror speeds from cached hostfile
* base: ftp.jaist.ac.jp
* centosplus: ftp.jaist.ac.jp
* epel: ftp.jaist.ac.jp
* extras: ftp.jaist.ac.jp
* updates: mirror.khlug.org
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package vsftpd.i686 0:2.2.2-6.el6_0.1 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
==========================================================================================
Package              Arch           Version                  Repository             Size
==========================================================================================
Installing:
vsftpd               i686           2.2.2-6.el6_0.1          updates               155 k
Transaction Summary
==========================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)
Total download size: 155 k
Installed size: 343 k
Is this ok [y/N]: y
Downloading Packages:
vsftpd-2.2.2-6.el6_0.1.i686.rpm                                    | 155 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing     : vsftpd-2.2.2-6.el6_0.1.i686                                        1/1
Installed:
vsftpd.i686 0:2.2.2-6.el6_0.1
Complete!
FTPサーバを起動させる
[root@server1 ~]# /etc/rc.d/init.d/vsftpd start
vsftpd 用の vsftpd を起動中:                               [  OK  ]

ここからは、Windowsのコマンドプロンプトで作業する。(管理者として実行)

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
C:\Users\higo>cd \ ← ローカルのカレントをC:\にしておく
C:\>ftp 192.168.1.4 ← FTPでサーバに接続
192.168.1.4 に接続しました。
220 (vsFTPd 2.2.2)
ユーザー (192.168.1.4:(none)): higo ← ユーザ名を入力
331 Please specify the password.
パスワード: ← パスワードを入力
230 Login successful.
ftp> bin ← 転送モードをバイナリモードにする
200 Switching to Binary mode.
ftp> get /home/higo/.ssh/id_rsa ← 秘密鍵を取得
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for /home/higo/.ssh/id_rsa (951 bytes).
226 File send OK.
ftp: 1,675 bytes received in 0.00Seconds 1675000.00Kbytes/sec.
ftp> bye
221 Goodbye.
C:\>
C:\>dir ← ローカルの確認
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 2514-DE80 です
C:\ のディレクトリ
2011/07/31  13:00    <DIR>          ATI
2011/07/31  18:22    <DIR>          ColorVision
2011/08/03  00:17    <DIR>          CrystalDiskMark0003FFBA
2011/08/07  23:55    <DIR>          CrystalDiskMark002D3A0D
2011/08/12  21:28    <DIR>          CrystalDiskMark004337AE
2011/07/31  08:50    <DIR>          FIRSTITPRO
2011/09/19  10:49             1,675 id_rsa ←  コピーされている
2011/07/30  21:25    <DIR>          Intel
2011/07/31  19:57             1,692 lucid.log
2009/07/14  12:20    <DIR>          PerfLogs
2011/09/17  07:39    <DIR>          Program Files
2011/09/17  07:37    <DIR>          Program Files (x86)
2011/07/31  01:48    <DIR>          temp
2011/07/30  20:43    <DIR>         Users
2011/09/17  03:21    <DIR>          Windows
2011/07/31  21:18         8,388,608 Z68PRO_1.60
3 個のファイル           8,391,975 バイト
13 個のディレクトリ  52,273,422,336 バイトの空き領域
C:\>exit ← コマンドプロンプトを終了

■ 外部からの接続
外部からの接続には、ルーターの設定が必要。
ルータの設定で22番のポートを開ける。
■ ポートチェック【ポート開放確認】
「管理しているサーバーが外部から接続アクセスできるか?」「ポートは開放されているか?」「portは閉じているか?」「ルータのポートは開放されているか」等の
ポートチェック・ポートの疎通確認テストはこちらで
■ 秘密鍵の抜き取りが出来たら、次はリモート接続(PuTTY)の設定