ページ「CentOS 6.5」と「OpenSSH 6.1p1」の間の差分

提供:あべたけの覚書
(ページ間の差分)
ナビゲーションに移動 検索に移動
(ページの作成:「参考サイト: [http://pocketstudio.jp/centos/centos_faq_jp.html CentOS FAQ] ---- ==準備== [http://www.centos.org CentOS.org]の[http://www.centos.org/download Downloads]ページよりイメージ(.iso)をダウンロードしてDVDを作成。<br/> * CentOS-6.5-i386-bin-DVD1.iso * CentOS-6.5-i386-bin-DVD2.iso ==インストール== DVDブートでインストール開始。 # '''[Install or upgrade an existing system]'''を選択。<br/><br/> # '''[Next…」)
 
(ページの作成:「==目的== せっかくなのでリモートでメンテを行えるようにする。<br> クライアントはWindowsXPで[http://www.chiark.greenend.org.uk/%7Esgtatham/putty/ PuTTy]を利用し、通信はSSHで暗号化する。 ==準備== <ul> <li>[http://www.gzip.org/zlib/ zlib] <syntaxhighlight lang="bash"> [root@XXXXX ~]# yum install zlib-devel </syntaxhighlight > <br> </li> <li>tcp_wrappers-devel <syntaxhighlight lang="bash"> [root@XXXXX ~]# yum install tc…」)
 
1行目: 1行目:
参考サイト:
==目的==
[http://pocketstudio.jp/centos/centos_faq_jp.html CentOS FAQ]
せっかくなのでリモートでメンテを行えるようにする。<br>
 
クライアントはWindowsXPで[http://www.chiark.greenend.org.uk/%7Esgtatham/putty/ PuTTy]を利用し、通信はSSHで暗号化する。
----


==準備==
==準備==
 
<ul>
[http://www.centos.org CentOS.org][http://www.centos.org/download Downloads]ページよりイメージ(.iso)をダウンロードしてDVDを作成。<br/>
<li>[http://www.gzip.org/zlib/ zlib]
* CentOS-6.5-i386-bin-DVD1.iso
<syntaxhighlight lang="bash">
* CentOS-6.5-i386-bin-DVD2.iso
[root@XXXXX ~]# yum install zlib-devel
</syntaxhighlight >
<br>
</li>
<li>tcp_wrappers-devel
<syntaxhighlight lang="bash">
[root@XXXXX ~]# yum install tcp_wrappers-devel
</syntaxhighlight >
<br>
</li>
<li>[http://www.openssl.org/ OpenSSL]
</li>
</ul>


==インストール==
==インストール==
<ol>
<li>'''ソースの取得'''
<syntaxhighlight lang="bash">
[root@XXXXX ~]# wget -P /usr/local/src http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-6.1p1.tar.gz
</syntaxhighlight >
<br>
</li>
<li>'''ソースの解凍'''<br/>
<syntaxhighlight lang="bash">
[root@XXXXX ~]# cd /usr/local/src
[root@XXXXX ~]# tar zxvf openssh-6.1p1.tar.gz
</syntaxhighlight >
<br>
</li>
<li>'''コンパイル設定'''<br/>
([[OpenSSH 6.1p1のconfigureヘルプ]])
<syntaxhighlight lang="bash">
[root@XXXXX ~]# cd /usr/local/src/openssh-6.1p1
[root@XXXXX ~]# ./configure \
> --prefix=/usr/local/openssh-6.1p1 \
> --with-tcp-wrappers \
> --with-ssl-dir=/usr/local/ssl \
> --with-privsep-user=sshd \
> --with-privsep-path=/var/empty/sshd
</syntaxhighlight >
<br>
'''tcp_wrappers-devel''' がないとconfigureの途中で怒られる。
<syntaxhighlight lang="bash">
checking for libwrap... configure: error: *** libwrap missing
</syntaxhighlight >
<br>
</li>
<li>'''インストール'''<br/>
<syntaxhighlight lang="bash">
[root@XXXXX ~]# make
[root@XXXXX ~]# make install
</syntaxhighlight >
<br>
</li>
<li>'''シンボリックリンクの作成'''<br/>
<syntaxhighlight lang="bash">
[root@XXXXX ~]# ln -s /usr/local/openssh-6.1p1 /usr/local/ssh
</syntaxhighlight >
<br>
</li>
</ol>
==設定==
<ol>
<li>'''sshd_confの設定'''<br/>
<syntaxhighlight lang="bash">
[root@XXXXX ~]# vi /usr/local/ssh/etc/sshd_config


DVDブートでインストール開始。
  # Port 22
# '''[Install or upgrade an existing system]'''を選択。<br/><br/>
# '''[Next]'''をクリック。<br/><br/>
Port 22
# '''[Japanese(日本語)]'''を選択して'''[Next]'''をクリック。<br/><br/>
# '''[日本語]'''を選択して'''[Next]'''をクリック。<br/><br/>
# '''[基本ストレージデバイス]'''を選択して'''[次]'''をクリック。<br/>
#: 警告画面が出たら'''[はい。含まれていません。~]'''をクリック。<br/>※インストールしようとしている領域にデータが残っていると'''消されてしまいます。'''<br/><br/>
# '''[ホスト名]'''に適当な名前を入力して'''[ネットワークの設定]'''をクリック。<br/><br/>
# '''[有線 - System eth0]'''を選択し'''[編集]'''をクリック。<br/>
#: '''[自動接続する]'''にチェックを入れる。<br/><br/>
# '''[IPv4のセッティング]'''タブを選択し環境に合わせて設定し'''[適用]'''をクリック。<br/><br/>
# '''[閉じる]'''をクリック。<br/><br/>
# '''[次]'''をクリック。<br/><br/>
# '''[アジア/東京]'''を選択。<br/>
#: '''[システムクロックでUTCを使用]'''のチェックは外す。<br/><br/>
# '''[次]'''をクリック。<br/><br/>
# '''[rootパスワード]'''を設定し'''[次]'''をクリック。<br/>
#: rootパスワードに単純なパスワードを設定しようとすると警告が表示されるが'''[とにかく使用する]'''をクリック。<br/><br/>
# '''[すべての領域を使用する]'''を選択。<br/><br/>
# '''[次]'''をクリック。<br/><br/>
# '''[変更をディスクに書き込む]'''をクリック。<br/><br/>
# '''[Minimal]'''を選択。<br/><br/>
# '''[今すぐカスタマイズ]'''を選択。<br/><br/>
# '''[次]'''をクリック。<br/><br/>
# 下記のみ選択し'''[次]'''をクリック。<br/>
#; '''[ベースシステム]'''
#: '''ベース'''にチェック入れる
#; '''[開発]'''
#: '''開発ツール'''にチェック入れる
インストールが始まる。
<br/><br/>
終了。
 
==初期設定==
===日本語対応===
[root@XXXXX ~]# '''vi /etc/sysconfig/i18n'''
LANG="ja_JP.UTF-8"
LANG="ja_JP.eucJP"            ← eucJPに変更 
 
===ユーザーの作成===
[root@XXXXX ~]# '''useradd XXXXX'''              ← ユーザーXXXXXの作成
[root@XXXXX ~]# '''passwd XXXXX'''                ← ユーザーXXXXXのパスワード設定
Changing password for user XXXXX.
New UNIX password:                          ← パスワード入力
Retype new UNIX password:                  ← パスワード入力(再)
passwd: all authentication tokens updated successfully.
 
===rootになれるユーザーを限定する===
[root@XXXXX ~]# '''usermod -G wheel hoge'''      ← ユーザhogeをwheelグループに追加
  [root@XXXXX ~]# '''vi /etc/pam.d/su'''
#auth      required    pam_wheel.so use_uid
auth      required    pam_wheel.so use_uid ← コメントを外す
 
===不要サービスの削除===
[root@XXXXX ~]# '''yum -y remove openssh cvs subversion'''
依存関係でいろいろ表示されるが削除しちゃう。


===SELinuxの無効化===
  # SyslogFacility AUTH
[root@XXXXX ~]# '''getenforce'''    ← 状態確認
Enforcing        ← 有効
SyslogFacility AUTH
  [root@XXXXX ~]# '''vi /etc/sysconfig/selinux''' ← 設定ファイル編集
SELINUX=enforcing
SELINUX=disabled ← システム起動時に無効化


再起動
# PermitRootLogin yes
PermitRootLogin no                ← rootでのログインを禁止


  [root@XXXXX ~]# '''getenforce'''   ← 状態確認
  # PasswordAuthentication yes
Disabled     ← 無効
PasswordAuthentication no        ← パスワードでのログインを禁止(鍵方式によるログインのみ許可)


===システムのアップデート===
# PermitEmptyPasswords no
[root@XXXXX ~]# '''yum -y update'''
[root@XXXXX ~]# '''reboot'''                    ← 再起動
PermitEmptyPasswords no          ← パスワードなしでのログインを禁止
</syntaxhighlight >
<br>
</li>
<li>'''起動スクリプトのコピー'''<br/>
ソースの中にある起動スクリプトをコピーする
<syntaxhighlight lang="bash">
[root@XXXXX ~]# cp /usr/local/src/openssh-6.1p1/contrib/redhat/sshd.init /etc/rc.d/init.d/sshd
</syntaxhighlight >
<br>
</li>
<li>'''起動スクリプトの編集'''<br/>
([[OpenSSH 5.9p1のデフォルト起動スクリプト]])
<syntaxhighlight lang="bash">
[root@XXXXX ~]# vi /etc/rc.d/init.d/sshd


===不要サービスの停止===
SSHD=/usr/sbin/sshd
[root@XXXXX ~]# '''chkconfig acpid off'''     ← acpid を停止(再起動後)
[root@XXXXX ~]# '''chkconfig --list | sort'''   ← 現在のサービス一覧をソートして表示
SSHD=/usr/local/ssh/sbin/sshd
下記のサービスの自動起動を停止
</syntaxhighlight >
start()の中
<syntaxhighlight lang="bash">
/usr/bin/ssh-keygen -A
/usr/local/ssh/bin/ssh-keygen -A
</syntaxhighlight >
<br>
</li>
<li>'''起動スクリプトの登録'''<br/>
<syntaxhighlight lang="bash">
[root@XXXXX ~]# chkconfig --add sshd
[root@XXXXX ~]# chkconfig sshd on
[root@XXXXX ~]# chkconfig --list sshd
sshd            0:off  1:off  2:off   3:on    4:on    5:on    6:off
</syntaxhighlight >
<br>
</li>
</ol>


{| class="wikitable"
==鍵の作成==
! style="width:10%" |サービス !! 説明
<ol>
|-
<li>'''一般ユーザーで作成する'''<br/>
| '''acpid'''
<syntaxhighlight lang="bash">
| 電源管理(Advanced Configuration and Power Interface) ノートPC以外では不要
[root@XXXXX ~]# su - hoge
|-
[hoge@XXXXX ~]$ /usr/local/ssh/bin/ssh-keygen -t rsa                  ← SSH2で公開鍵・秘密鍵を作成
| '''auditd'''
Generating public/private rsa key pair.
| SELinuxの詳細なログを収集するサービス。SELinuxを使わないなら不要。
Enter file in which to save the key (/home/hoge/.ssh/id_rsa): ← 鍵のファイル名を入力(空EnterでOK)
|-
Created directory '/home/hoge/.ssh'
| '''cpuspeed'''
Enter passphrase (empty for no passphrase):                  ← パスフレーズの入力
| 負荷に応じてCPU周波数を動的に変更するサービス。消費電力等を気にしないので不要。
Enter same passphrase again:                                ← パスフレーズの再入力
|-
Your identification has been saved in /home/hoge/.ssh/id_rsa.
| '''haldaemon'''
Your public key has been saved in /home/hoge/.ssh/id_rsa.pub.
|
The key fingerprint is:
|-
~鍵情報が表示される~
| '''ip6tables'''
</syntaxhighlight >
| IPv6用のファイアウォール IPv6を使わないなら不要。
<br>
|-
</li>
| '''irqbalance'''
<li>'''作成された鍵の確認'''<br/>
| マルチ CPU の ホスト機 を使用するとき、効率よく処理を分散させるデーモン。該当するホスト機を使用している場合は稼動。
<syntaxhighlight lang="bash">
|-
[hoge@XXXXX ~]$ cd .ssh
| '''lvm2-monitor'''
[hoge@XXXXX ~]$ ls -la
| LinuxOSに柔軟なディスク管理とバックアップのための有用な仕組みを与える 論理ボリュームマネージャー(LVM) 利用時の障害監視のためのデーモン。とりあえず停止。
合計 16
|-
drwx------  2 XXXXX XXXXX 4096  3月  8 21:22 .
| '''kdump'''
drwx------  16 XXXXX XXXXX 4096  3月  8 20:33 ..
| カーネルダンプツール。
-rw-------  1 XXXXX XXXXX  951  3月  8 21:22 id_rsa      ← 秘密鍵
|-
-rw-r--r--  1 XXXXX XXXXX  241  3月  8 21:22 id_rsa.pub  ← 公開鍵
| '''mdmonitor'''
</syntaxhighlight >
| RAID状態監視サービス RAIDしてないなら不要。
<br>
|-
</li>
| '''messagebus'''
<li>'''公開鍵の名前の変更'''<br/>
| CentOS6システムのデスクトップ上で相互にメッセージを送るためのデーモン。サーバー用途には不要。
<ul>
|-
<li>authorized_keysが既存の場合
| '''rdisc'''
<syntaxhighlight lang="bash">
| ネットワークルータディスカバリーデーモン。ルータとして動作させないのであれば不要。
[hoge@XXXXX ~]$ cd ~/.ssh
|-
[hoge@XXXXX ~]$ cat id_rsa.pub >> authorized_keys
| '''restorecond'''
[hoge@XXXXX ~]$ rm -f ~/.ssh/id_rsa.pub                                ← 元の鍵を削除
| SELinux関連のデーモン。SELinuxを使わないなら不要。
</syntaxhighlight >
|}
</li>
<li>authorized_keysがない場合
<syntaxhighlight lang="bash">
[hoge@XXXXX ~]$ cd ~/.ssh
[hoge@XXXXX ~]$ mv id_rsa.pub authorized_keys
</syntaxhighlight >
</li>
</ul>
<br>
</li>
<li>'''公開鍵の権限の変更'''<br/>
<syntaxhighlight lang="bash">
[root@XXXXX ~]# chmod 400 ~/.ssh/authorized_keys
</syntaxhighlight >
<br>
</li>
<li>'''フロッピーにコピー'''<br/>
id_rsaファイルをフロッピーにコピーする。<br/>
([[CentOS_Howto#フロッピーのマウント|フロッピーのマウント]])
<syntaxhighlight lang="bash">
[root@XXXXX ~]# cp /home/hoge/.ssh/id_rsa /mnt/floppy
</syntaxhighlight >
<br>
</li>
</ol>
フロッピーにコピーされたid_rsaファイルを使用してPuTTyの接続設定を行う。

2023年5月11日 (木) 09:16時点における最新版

目的

せっかくなのでリモートでメンテを行えるようにする。
クライアントはWindowsXPでPuTTyを利用し、通信はSSHで暗号化する。

準備

  • zlib
    [root@XXXXX ~]# yum install zlib-devel


  • tcp_wrappers-devel
    [root@XXXXX ~]# yum install tcp_wrappers-devel


  • OpenSSL

インストール

  1. ソースの取得
    [root@XXXXX ~]# wget -P /usr/local/src http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-6.1p1.tar.gz


  2. ソースの解凍
    [root@XXXXX ~]# cd /usr/local/src
    [root@XXXXX ~]# tar zxvf openssh-6.1p1.tar.gz


  3. コンパイル設定
    OpenSSH 6.1p1のconfigureヘルプ
    [root@XXXXX ~]# cd /usr/local/src/openssh-6.1p1
    [root@XXXXX ~]# ./configure \
    > --prefix=/usr/local/openssh-6.1p1 \
    > --with-tcp-wrappers \
    > --with-ssl-dir=/usr/local/ssl \
    > --with-privsep-user=sshd \
    > --with-privsep-path=/var/empty/sshd


    tcp_wrappers-devel がないとconfigureの途中で怒られる。

    checking for libwrap... configure: error: *** libwrap missing


  4. インストール
    [root@XXXXX ~]# make
    [root@XXXXX ~]# make install


  5. シンボリックリンクの作成
    [root@XXXXX ~]# ln -s /usr/local/openssh-6.1p1 /usr/local/ssh


設定

  1. sshd_confの設定
    [root@XXXXX ~]# vi /usr/local/ssh/etc/sshd_config
    
     # Port 22
    ↓
    Port 22
    
     # SyslogFacility AUTH
    ↓
    SyslogFacility AUTH
    
     # PermitRootLogin yes
    ↓
    PermitRootLogin no                ← rootでのログインを禁止
    
     # PasswordAuthentication yes
    ↓
    PasswordAuthentication no         ← パスワードでのログインを禁止(鍵方式によるログインのみ許可)
    
     # PermitEmptyPasswords no
    ↓
    PermitEmptyPasswords no           ← パスワードなしでのログインを禁止


  2. 起動スクリプトのコピー
    ソースの中にある起動スクリプトをコピーする
    [root@XXXXX ~]# cp /usr/local/src/openssh-6.1p1/contrib/redhat/sshd.init /etc/rc.d/init.d/sshd


  3. 起動スクリプトの編集
    OpenSSH 5.9p1のデフォルト起動スクリプト
    [root@XXXXX ~]# vi /etc/rc.d/init.d/sshd
    
    SSHD=/usr/sbin/sshd
    ↓
    SSHD=/usr/local/ssh/sbin/sshd

    start()の中

    /usr/bin/ssh-keygen -A
    ↓
    /usr/local/ssh/bin/ssh-keygen -A


  4. 起動スクリプトの登録
    [root@XXXXX ~]# chkconfig --add sshd
    [root@XXXXX ~]# chkconfig sshd on
    [root@XXXXX ~]# chkconfig --list sshd
    sshd            0:off   1:off   2:off   3:on    4:on    5:on    6:off


鍵の作成

  1. 一般ユーザーで作成する
    [root@XXXXX ~]# su - hoge
    [hoge@XXXXX ~]$ /usr/local/ssh/bin/ssh-keygen -t rsa                   ← SSH2で公開鍵・秘密鍵を作成
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/hoge/.ssh/id_rsa): ← 鍵のファイル名を入力(空EnterでOK)
    Created directory '/home/hoge/.ssh'
    Enter passphrase (empty for no passphrase):                  ← パスフレーズの入力
    Enter same passphrase again:                                 ← パスフレーズの再入力
    Your identification has been saved in /home/hoge/.ssh/id_rsa.
    Your public key has been saved in /home/hoge/.ssh/id_rsa.pub.
    The key fingerprint is:
    ~鍵情報が表示される~


  2. 作成された鍵の確認
    [hoge@XXXXX ~]$ cd .ssh
    [hoge@XXXXX ~]$ ls -la
    合計 16
    drwx------   2 XXXXX XXXXX 4096  3月  8 21:22 .
    drwx------  16 XXXXX XXXXX 4096  3月  8 20:33 ..
    -rw-------   1 XXXXX XXXXX  951  3月  8 21:22 id_rsa      ← 秘密鍵
    -rw-r--r--   1 XXXXX XXXXX  241  3月  8 21:22 id_rsa.pub  ← 公開鍵


  3. 公開鍵の名前の変更
    • authorized_keysが既存の場合
      [hoge@XXXXX ~]$ cd ~/.ssh
      [hoge@XXXXX ~]$ cat id_rsa.pub >> authorized_keys 
      [hoge@XXXXX ~]$ rm -f ~/.ssh/id_rsa.pub                                 ← 元の鍵を削除
    • authorized_keysがない場合
      [hoge@XXXXX ~]$ cd ~/.ssh
      [hoge@XXXXX ~]$ mv id_rsa.pub authorized_keys


  4. 公開鍵の権限の変更
    [root@XXXXX ~]# chmod 400 ~/.ssh/authorized_keys


  5. フロッピーにコピー
    id_rsaファイルをフロッピーにコピーする。
    フロッピーのマウント
    [root@XXXXX ~]# cp /home/hoge/.ssh/id_rsa /mnt/floppy


フロッピーにコピーされたid_rsaファイルを使用してPuTTyの接続設定を行う。