DTI ServersMan@VPSの初期設定その2(ユーザー作成とSSH設定)です。
VPS環境はEntryプラン/CentOS7/シンプルセットです。
本ページの目次
SSH接続ソフトはTeraTermを使用しました。
事前にTeraTermでの自動ログ取得設定を行っておくことをお勧めします。
今後、うまく設定出来ない時が有った際、操作ログを見返す時に役立ちます。
以下のページに設定方法を記載しました。
本サイト内のTeraTermの設定方法を記載したページ
SSH接続を行います。初期のポート番号は3843です。
「続行」をクリックします。
rootにてログインします。
正しくログインすることが出来ました。
ユーザーを作成し、パスワードを設定します。
また、ついでにrootのパスワードも変更しておいても良いですね。
passwd root
次にSSHサーバの設定にて、rootでのログインを禁止します。
また、ポート番号は最初からtcp/22ではなくtcp/3843へ変更されていますが
さらに念を入れるには変更しておいても良いですね。
vi /etc/ssh/sshd_config
viでは、「:set number」で行数表示が可能です。
17行目のポート番号3843を、別のポート番号へ変更しました。48行目の
「#PermitRootLogin yes」の下行に「PermitRootLogin no」を追加しました。
その後再起動します。
または
再度TeraTermを起動し、作成したユーザー、変更したポートでSSH接続できることを確認します。
TeraTermマクロで有れば簡単にSSHでのログインが可能です。
以下のページにその方法を記載しました。
書式は以下です。ServersMan@VPSでのSSHの初期ポートは3843です。
このマクロファイルは自分しか使えないように安全に管理しましょう。
connect 'IPアドレス:3843 /ssh /2 /auth=password /user=ユーザー名 /passwd=パスワード'
wait '$ '
sendln 'コマンド'
送信するには、WindowsにあるファイルをTeraTermのウィンドウへ
ドラッグ&ドロップします。
「SCP」をクリックします。
正しく送信することが出来ました。
ファイルを受信するには「ファイル」→「SSH SCP」をクリックします。
※長いフルパスを入力する場合は事前にpwdコマンドでファイルの場所を
フルパスをコピーしておいた方が楽ですね。
From:にCentOS内の送信したいファイル名を入力し、
To:に受信する側のWindowsのフォルダを指定し「Receive」をクリックします。
WinSCPを使用します。
WinSCPのダウンロード
WinSCPのインストール時に「コマンダー」か「エクスプローラー」から選択できます。
今回はデスクトップのファイルをドラッグ&ドロップしやすいエクスプローラーを選択しました。
WinSCPを起動し、ServersMan@VPS(CentOS7)へログインします。
「はい」をクリックします。
ドラッグ&ドロップでファイルの送受信が出来ます。
ServersMan@VPS(CentOS7)からWindowsへダウンロード
(受信)出来ない場合は「表示」→「環境設定」をクリックします。
「リモートから他のアプリケーションへのファイル移動を許可する」、
「一時フォルダを使用する」を選択し「OK」をクリックします。
その後、問題無くファイルをWindowsへダウンロード出来ました。
以下などを行うと安全度が増します。
また、SSHアクセスが有った時点でメール送信する仕組みにするとより良いかと
思います。その方法を記載している方がおられました。
hosts.allowにSSHは接続元の固定IPアドレスを書き、
hosts.denyでSSHは全て制限します。
ファイアウォール(iptables)での許可。
ファイアウォール(iptables)での許可方法は以下のページに記載しました。
-A INPUT -p tcp -m state --state NEW -m tcp -s 送信元IPアドレス --dport ポート番号 -j ACCEPT
以下のサイトを参照しました。
以下のようにDenyHostsをインストール、設定を行います。
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
※CentOS7の場合。その他のOSはhttp://pkgs.repoforge.org/
から該当のものをインストールして下さい。
yum --enablerepo=rpmforge search denyhosts
yum install denyhosts
vi /etc/denyhosts/denyhosts.cfg
/etc/denyhosts/denyhosts.cfgの設定方法
以下のサイトを参照しました。
以下の3項目のみ変更しました。
ADMIN_EMAIL = example@example.com
systemctl restart denyhosts
systemctl enable denyhosts
systemctl disable denyhosts
または
または
systemctl start denyhosts
systemctl status denyhosts
以下のいずれかの対処です。
denyhostsの再起動等で再度/etc/hosts.denyへの記載が復活
してしまった場合は、以下の対処を行うとその後は再起動を行っても
/etc/hosts.denyに載ることは有りませんでした。
上記の対処でも不可の場合は以下になるかと思います。
※denyhostsの再インストール方法
yum remove denyhosts
rm /user/share/denyhosts
hosts.denyを開き、許可したいIPアドレスを削除
mv /var/log/secure /var/log/secure-old
touch /var/log/secure
chmod 600 /var/log/secure
systemctl restart rsyslog
yum install denyhosts
systemctl restart denyhosts
※restartすると/user/share/denyhostsが作成されます。
CentOS5でのSSH設定(公開鍵認証方式)は以下のページに記載しました。
基本的には接続元(Windows)でキーペアを作成し、公開鍵を接続先(ServerMans@VPS
CentOS7)へ渡す方法のほうが推奨されるよう(秘密鍵を渡すのはリスクが伴なうため)ですが
今回は敢えて接続先でキーペアを作成し、接続元へ秘密鍵を渡す手順で行ないます。
rootにて操作しました。
前項の変更点に加え以下の2点を編集しました。
を
へ変更しました。
を
へ変更しました。
編集後、SSHサービスを再起動します。
または
現在パスワード認証でSSH接続しているTeraTermのウィンドウは最終的に
公開鍵認証方式でのSSH接続が完了する迄は開いたままにしておきます。
ユーザーを一般ユーザーへ切り替えて操作しました。
公開鍵/秘密鍵のペアを作成します。
[username@dti-vps-srv94 root]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):
Created directory '/home/username/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
ホームディレクトリに.sshディレクトリが作成され、そこに2つの鍵ファイルが
作成されます。パスフレーズは1~4文字では弾かれるようです。
2つのファイルが作成されたことを確認します。
「id_rsa」が秘密鍵、「id_rsa.pub」が公開鍵です。
「id_rsa.pub」の内容を「authorized_keys」という名前の新規ファイルへ入れこみます。
(=生成した公開鍵を公開鍵リストに追加します。)
※「authorized_keys」には複数の公開鍵の内容を入れられるため
今後追記することも想定してか、初回から「>>」を使用するのが一般的のようです。
※RSA公開鍵を使用する場合は、RSA公開鍵の内容を 「authorized_keys」に入れ、
DSA公開鍵を使用する場合は、DSA公開鍵の内容を「authorized_keys2」 に入れます。
「authorized_keys」のパーミッションを600に設定します。
「id_rsa」ファイルをWindowsへコピーします。
サーバが近くにあるオンプレミス等の環境で有ればネットワークを経由せずに
記憶媒体で送る方が安全ではあります。今回は現在開いてるTeraTermの
SSH接続ウィンドウで「id_rsa」ファイルをコピーしました。
「ファイル」→「SSH SCP」からid_rsaを受信します。
※現在開いてるTeraTermではなく、新しいSSH接続ウィンドウでファイルコピーをする場合
一時的にvi /etc/ssh/sshd_configで先ほど設定変更した箇所を
「パスワードでのログインは許可」へ戻します。
そしてid_rsaをWindowsへコピーします。
コピー後、PasswordAuthentication noへ戻します。
コピーし終わったら接続先(CentOS SSHサーバ)内の「id_rsa」、「id_rsa.pub」ともに
流用しないのであれば削除で良いかと思います。
TeraTermにてログインします。
キーを作成したユーザー名、作成した際のパスフレーズ、RSA鍵の場所を
指定し「OK」をクリックします。
ログイン出来ました。
TeraTermマクロで実施するならば以下です。
ServersMan@VPSでのSSHの初期ポートは3843です。
このマクロファイルは自分しか使えないように安全に管理しましょう。
connect '接続先IPアドレス:ポート番号 /ssh /2 /auth=publickey /user=ユーザ名 /passwd=パスフレーズ /keyfile="C:\id_rsa"'
wait '$ '
sendln 'コマンド'