CentOS 6/SSH



SSH 接続先設定

SSHはご存知のとおり、セキュアな接続ですがログインできてしまえばサーバーの情報、設定に触れることができます。
よって第三者にアクセスを決して許してはいけないものです。
可能な限り接続先(アクセス先)、ユーザーを制限すべきです。

近頃はSSHで利用しているポート(デフォルト:22)に対してアクセスを試みるアタックが非常に増えています。

SSHで利用するポートを他のポート番号へ移動させるの対策のひとつです。
(ポート番号の変更については割愛させていただきます。申し訳ありませんが検索サイトなどを使って調べてください。)
定期的にパスワードの変更はもちろん、各種ログのチェックは常に行うようにしましょう。

SSHの接続先規制 iptables を使う方法と、TCP Wrapper を使う方法と2通りあります。
ここでは簡単に制限が掛けられる TCP Wrapperの方法を記述します。
(サーバー構築に慣れてきたら是非 iptables を使った制限に挑戦してみてください。)
TCP Wrapper とは /etc/hosts.allow と /etc/hosts.deny にアクセス元情報を記載して制限を掛けます。

$ su -
Password: (パスワード入力)
# vi /etc/hosts.allow


下記の内容を追記します。
注:ここでは、アクセスを許可するIPアドレスが [192.168.0.10] と仮定しています。

sshd:192.168.0.10

複数設定したい場合は、半角スペースで区切って追記が可能です。
またIPアドレスだけでなくドメインでも指定が可能ですが、セキュリティー的な観点から見てあまりお勧めできません。

次に /etc/hosts.deny にも追記します。

# vi /etc/hosts.deny


下記のように追記します。
すでにデフォルトで追記されている方は必要ありません。

ALL:ALL

以上で、SSHのアクセス先設定が完了です。

SSH 接続制限

  • rootログインの禁止
    /etc/ssh/sshd_config をエディタ(vi)で開き、rootログインを不可にします。
    そのほか、自分にあった設定に変更してください。
    # vi /etc/ssh/sshd_config

    #PermitRootLogin yes
         ↓
    PermitRootLogin no
  • 空パスワードの認証禁止
    次に空パスワードの認証を禁止する設定
    #PermitEmptyPasswords no
         ↓
    PermitEmptyPasswords no
    に変更。


  • ユーザー接続制限
    接続できるユーザーを追記登録します。
    ここでは例として、 john とします。
    # vi /etc/ssh/sshd_config

    AllowUsers john


  • SSH再起動
    SSHのデーモンを再起動させます。
    # service sshd restart
    sshd を停止中:                                             [  OK  ]
    sshd を起動中:                                             [  OK  ]


このほか、ここの設定で、SSHのプロトコル(Version 1・Version 2)、認証方式(PAM認証・RSA認証)の設定ができます。
自分の使用する環境にあった設定をしてください。

外部ネットワークからSSHへの接続を行う場合、ルーターにPort22の接続をサーバーのIPアドレスへ振る設定も行う必要があります。
ご使用のルーターによって設定方法が異なります。各自マニュアルで調べてください。

su権限設定(wheel)

suの利用権限を指定します。
デフォルトに wheel というグループが存在しています。
そのグループに su の利用を許可させたいユーザーIDを追記します。
例として john を wheel のグループに登録します。

# usermod -G wheel john

次に wheelグループの権限設定を設定します。

# vi /etc/pam.d/su

下記を変更します。

#auth           required        pam_wheel.so use_uid
 ↓↓
auth       required     pam_wheel.so use_uid


公開鍵・秘密鍵を用いた接続制限

よりセキュアな接続として 公開鍵・秘密鍵 を利用した接続方法があります。
下記に記載する設定を行いますと、通常のID・パスワードを入力してのログインは行えなくなります。
セキュア度は飛躍的に増しますが、ログインする端末には鍵データを所持している必要があるため、運用方法に合わせて検討してください。

SSHの設定修正

SSHの設定を修正します。

# vi /etc/ssh/sshd_config

以下の項目を変更します。

  • rootでログインの禁止
    PermitRootLogin no
  • 空パスワードの禁止
    PermitEmptyPasswords no
  • パスワードを使ったログインを禁止
    PasswordAuthentication no


SSH再起動を再起動させます。

# service sshd restart
sshd を停止中:                                             [  OK  ]
sshd を起動中:                                             [  OK  ]


公開鍵・秘密鍵の作成

teraterm を使って鍵を作成する方法を記載します。
PuTTY を使っての作成については、検索エンジンなどで調べてください。
基本的な作成方法は同じです。

  • SSH鍵生成を開く
    teratermを起動しメニューより、[設定] -> [SSH生成] をクリックします。(参照画像-1)
    1.png
    参照画像-1
  • RSAで鍵を作成
    TTSSH: 鍵生成 ウィンドウが開きます。(参照画像-2)
    ○RSA を選択、ビット数 2048[生成] ボタンをクリックします。
    2.png
    参照画像-2
  • パスフレーズの入力
    パスフレーズを入力します。(参照画像-3)
    確認の入力もできたら、[公開鍵の保存]、および [秘密鍵の保存] ボタンをクリックし、それぞれを保存してください。
    このパスフレーズはログインするときに必要になりますので、覚えておいてください。
    パスワードと同じものを入力したら、鍵を使う意味が薄れます。気を付けてください。
    (※パスワードを使ったログインはパスワード自体が平文でネットワークに流れます。鍵を使ったログインはそれを防ぐ意味もあります。)
    3.png
    参照画像-3


公開鍵の設置

作成した公開鍵をサーバーに設置します。
例としてログインするユーザーを john とします。

  • 公開鍵用のディレクトリを作成
    # mkdir -p /home/john/.ssh
  • パーミッションを変更
    # chmod 0700 /home/john/.ssh/
  • 公開鍵用のファイル作成
    # vi /home/john/.ssh/authorized_keys
    上記で作成した公開鍵の中身をコピーペーストします。
    ssh-rsa ~~~~~
  • パーミッションを変更
    # chmod 0600 /home/john/.ssh/authorized_keys
  • 公開鍵用のディレクトリ所有者を変更
    # chown -R jone:jone /home/john/.ssh/


SSHログイン

秘密鍵を使ってログインします。
teraterm を起動し ホストサービスTCPポート 等今までと同様に入力します。
[OK]ボタンをクリックし、SSH認証 のウィンドウが開きます。(参照画像-4)
ユーザー名 を入力し、パスフレーズに 鍵を作成したときのパスフレーズ を入力します。
○RSA/DSA鍵を使う を選択し、[秘密鍵]ボタンをクリックし、作成した秘密鍵のファイルを指定します。
[OK]ボタンをクリックして接続します。

4.png
参照画像-4




添付ファイル: file4.png 146件 [詳細] file3.png 149件 [詳細] file2.png 145件 [詳細] file1.png 135件 [詳細]

Last-modified: 2015-04-23 (木) 17:48:47 (1332d)