ようこそ!浜村拓夫の世界へ

    ブログ内検索

    最近の記事

    最新の広告

    VPSでWebサイトを作る


    ドメイン名を取得する


    プログラミングの質問サービス


    Blog Translation

    Powered By FC2ブログ

    Powered By FC2ブログ
    ブログやるならFC2ブログ


    FC2ブログ LOGIN

    FC2ブログ 管理画面


    with Ajax Amazon

    さくらのVPS SSHの設定

    このエントリーをはてなブックマークに追加
    さくらのVPS インストールまとめ - 浜村拓夫の世界

    さくらのVPSでSSHの設定を行ない、Webサーバをリモート操作できるようにします。

    (1) 秘密鍵と公開鍵の作成と設置
    (2) rootのログイン禁止
    (3) パスワード方式のログイン禁止
    (4) 鍵認証方式のログインOK
    (5) SSHのポート番号変更
    (6) denyhostsのインストール

    ●SSHとは?
    Secure Shell - Wikipedia

    Secure Shell(セキュアシェル、SSH)は、暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。パスワードなどの認証部分を含むすべてのネットワーク上の通信が暗号化される。







    (参考) さくらVPSのsshによる鍵認証の設定
    ↑コチラの説明が図入りで分かりやすいので、同じ作業を行なえばOKです。\(結論)/

    ●ローカルPC上で「鍵」データを作成
    ・Windowsユーザー → PuTTYgenを使って鍵ペア(公開鍵と秘密鍵)を作ります。
    ・秘密鍵のファイル名:「vps-rsa-key.ppk」等で保存
    ・公開鍵のファイル名:「vps-rsa-key.pub」等で保存

    ●公開鍵をサーバに設置

    cd /home/sakura ← (ユーザーディレクトリに移動)
    mkdir ~/.ssh ← (.sshディレクトリを作成)
    chmod 700 ~/.ssh ← (.sshディレクトリの権限を所有者だけに限定)
    chown -R sakura:sakura .ssh ← (所有者をrootからユーザに変更)
    vi ~/.ssh/authorized_keys ← (公開鍵ファイルを作成、編集)



    先ほどローカルPC上で作った公開鍵の文字列をコピペして保存する。

    ssh-rsa ABCDEFGtesttestABCDEFGAAAIBaXhogevzZASBtv1234Vd
    7Y5678e3MX1234CvLw5678ymoaHXcZF3SuiopJy/3zXrbBhjlkluu+8
    uuIHDvbmnJ4Qy3R4i75rtyiug8rvLt9FztMCghkjrkPis6p46KoChEf
    DVa5PI9FvoasdfErEBqwerrkpNYBnzhogehogeZZZ== vps-rsa-key



    ・公開鍵のデータは、上記のような文字列になっています。
    (表示の都合上、改行を入れていますが、1行の長い文字列です。)
    ・公開鍵のコピペが間違っていると、後でログインできないので注意!
    =「ssh-rsa」が「sh-rsa」(=「s」が一文字足りない)になっているだけ等でもダメ!
    =途中で改行が入って、2行以上の文字列になってもダメ!
    =先頭の「ssh-rsa」と「ABCD…」の間に半角スペースが1文字入ってます。
    =末尾の「…ZZZ==」と「vps-rsa-key」の間に半角スペースが1文字入ってます。

    公開鍵は、所有者(作業ユーザー)だけが利用できるように、パーミッションを変更しておきます。

    chmod 600 ~/.ssh/authorized_keys



    ●SSHのアクセス制限を設定

    (参考) SSHのアクセスポリシー
    http://www.studio-kingdom.com/centos/486
    http://akabeko.sakura.ne.jp/blog/2010/09/%E3%81%95%E3%81%8F%E3%82%89%E3%81%AEvps-%E3%82%92%E4%BD%BF%E3%81%84%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B-2/

    ここでは、以下のように設定してみます。

    cd /etc/ssh/
    sudo vi /etc/ssh/sshd_config



    #Port 22
    Port 12345 ← SSHのポート番号を変更(=入口を分かりにくくする。1024~65535の値で。)

    #PermitRootLogin yes
    PermitRootLogin no ← rootのログイン禁止(=rootは狙われやすいので)

    #RSAAuthentication yes
    RSAAuthentication yes ← RSA鍵方式のログインOK(=秘密鍵を持ってる人のみOK)

    #PubkeyAuthentication yes
    PubkeyAuthentication yes ← 公開鍵方式のログインOK(=秘密鍵を持ってる人のみOK)

    #AuthorizedKeysFile .ssh/authorized_keys
    AuthorizedKeysFile .ssh/authorized_keys ← 公開鍵の置き場

    #RhostsRSAAuthentication no
    RhostsRSAAuthentication no ← リモートホスト(信頼できるホスト名とユーザー名のリスト)によるログイン禁止

    #PasswordAuthentication yes
    PasswordAuthentication no ← パスワード方式のログイン禁止(=総当りの阻止)

    #PermitEmptyPasswords no
    PermitEmptyPasswords no ← 空のパスワード禁止

    #UsePAM yes
    UsePAM no ← PAM(一括認証)の禁止



    (参考) ポート番号 - Wikipedia

    WELL KNOWN PORT NUMBERS 0番 - 1023番 一般的なポート番号
    REGISTERED PORT NUMBERS 1024番 - 49151番 登録済みポート番号
    DYNAMIC AND/OR PRIVATE PORTS 49152番 - 65535番 自由に使用できるポート番号


    ・ポートはデータの出入口であり、Linuxは65535個のポートを用意しています。
    ・1023番までは各種プログラムで使われるので、1024番以降から好きな番号を割り当てます。

    (参考) PAM(一括認証)とは?
    http://kazmax.zpp.jp/linux/lin_pam.html
    http://www.geocities.co.jp/sugachan1973/doc/funto47.html

    ●SSH再起動
    viで編集後、保存して、SSHを再起動します。

    sudo /etc/init.d/sshd restart



    SSHの接続テスト


    SSHクライアントソフトで、SSHによるリモート操作ができるかテストしてみます。
    Windowsユーザーの場合、「Poderosa」「WinSCP」の使用をオススメします。
    http://ja.wikipedia.org/wiki/Poderosa
    http://ja.wikipedia.org/wiki/WinSCP

    さきほどPuTTyで秘密鍵を作りましたが、Poderosaで使う場合は、鍵の形式を変換する作業が必要です。
    (参考)鍵の保存形式を変換(OpenSSH形式から、ssh.com形式へ変換)
    http://animemo.seesaa.net/article/119488771.html
    http://d.hatena.ne.jp/ablabo/20070725/1185291299
    http://blog.livedoor.jp/sasata299/archives/51173838.html

    denyhosts


    SSHによる不正アクセス防止のために、「denyhosts」をインストールしてみます。

    http://epidemic.jp/2010/09/25/denyhosts-on-sakura-vps/

    denyhostsいわゆるSSHの総当り攻撃を防御するためのソフトウェアです。
    メカニズムとしてはデーモンとして常駐しながら/var/log/secureというアクセスログを監視します。
    その後一定回数以上のアクセス失敗があったら自動的に/etc/hosts.denyに接続を失敗したIPアドレスの書き込みを行います。



    yum -y install denyhosts
    /etc/init.d/denyhosts start
    chkconfig denyhosts on
    chkconfig --list denyhosts



    以上で、SSHの設定は終わりです。
    次は、ファイヤーウォールを設定しましょう。

    独習Linux独習Linux
    小林 準

    翔泳社 2007-01-25
    売り上げランキング : 152999

    Amazonで詳しく見る
    by G-Tools


    実践CentOSサーバルート養成講座実践CentOSサーバルート養成講座
    田鍬 享

    秀和システム 2009-06
    売り上げランキング : 253219

    Amazonで詳しく見る
    by G-Tools


    さくらのVPS インストールまとめ - 浜村拓夫の世界
    関連記事
    このエントリーをはてなブックマークに追加

    コメント

    管理人のみ閲覧できます

    このコメントは管理人のみ閲覧できます

    リポジトリの追加

    denyhostsのインストールですが、
    「yum -y install denyhosts」
    でインストールできない場合(該当するパッケージが見当たらない、というエラーメッセージが出るなどの場合)は、yumコマンドで探しに行くリポジトリ(インターネット上のデータ置場)を適宜追加して試してみてください。

    (参考)
    http://hamamuratakuo.blog61.fc2.com/blog-entry-632.html
    >(5) CentOSのリポジトリ
    >Linuxの各種ソフトやライブラリは、インターネット上サーバで保存・公開されており、ダウンロードして利用可能になっています。
    >保存・公開されている場所のことを「リポジトリ」と呼びます。
    >CentOSの場合、インストールを管理する「yum」等のツールで、いろいろなリポジトリを利用することができます。

    (参考)
    http://hamamuratakuo.blog61.fc2.com/blog-entry-638.html
    >remiリポジトリを登録
    > rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
    > yum info php --enablerepo=remi ← remiリポジトリにあるPHPのバージョンをチェック

    ●remiリポジトリでdenyhostsを探す場合
    yum info denyhosts --enablerepo=remi
    とかのコマンドで、remiリポジトリにdenyhostsがあればバージョン情報がずらずら表示されると思われます。

    ●remiリポジトリからdenyhostsを取ってきてインストールする場合
    remiリポジトリでdenyhostsのパッケージが配布されているようであれば、
    yum install denyhosts --enablerepo=remi
    というコマンドで、インストールできると思われます。

    もし、remiリポジトリで配布されていなければ、
    「epel」や「RPMforge」等のその他のメジャーなリポジトリも探してみれば、どこかで配布されていると思われます。

    コメントの投稿


    管理者にだけ表示を許可する

    トラックバック

    トラックバックURL:
    https://hamamuratakuo.blog.fc2.com/tb.php/633-1d776cb3