専用ホストや VPS を使い始めるウェブマスターが増えています。コストを節約したりパフォーマンスを向上させるために、多くの人のスタンドアロン コンピューターや VPS は管理されていないベア メタルに基づいており、すべてを DIY で行う必要があります。現時点では、セキュリティ ポリシーの実装が依然として重要です。次の記事では、CentOS を例として、SSH セキュア アクセスを構成する方法を簡単にまとめます。
Linux SSH セキュリティ戦略 1: 無関係なポートを閉じる
ネットワーク上で侵害されたホストのほとんどは、スキャン ツールを使用して大規模なスキャンを実行するハッカーの標的となっていました。したがって、スキャンを回避するには、Web、FTP、SSH などの必要なポートを除き、その他のポートをすべて閉じる必要があります。 icmp ポートを閉じ、icmp パケットを破棄するルールを設定することを強くお勧めします。こうすることで、他の人があなたのサーバーに ping を送信できなくなり、脅威は自然に半減します。 icmp パケットを破棄するには、次の行を iptables に追加します。
-A 入力 -p icmp -j ドロップ
Linux SSH セキュリティ戦略 2: SSH ポートを変更する
デフォルトの SSH ポートは 22 です。 10,000 以上に変更することを強くお勧めします。このようにして、他人がポートをスキャンする可能性は大幅に減少します。修正方法:
# /etc/ssh/ssh_config を編集します
vi /etc/ssh/ssh_config
# [ホスト *] の下に、新しいポートの値を追加します。 18439 を例に挙げます (以下同様)。
ポート22
ポート18439
# /etc/ssh/sshd_config を編集します
vi /etc/ssh/sshd_config
#新しいポート値を追加
ポート22
ポート18439
# 保存後、SSH サービスを再起動します。
サービスSSHDの再起動
ここでは主に変更エラーにより SSH にログインできなくなることを防ぐために 2 つのポートを設定しました。 SSH クライアントの接続ポート (例: Putty) を変更し、接続をテストします。新しいポートが正常に接続できる場合は、上記の 2 つのファイルを編集して、ポート 22 の構成を削除します。接続に失敗した場合は、ポート 22 を使用して接続し、再設定してください。
ポートが正常に設定されたら、iptables からポート 22 を削除し、新しく構成された 18439 を追加して、iptables を再起動する必要があることに注意してください。
SSH ログインパスワードが脆弱な場合は、複雑なパスワードを設定する必要があります。 Google ブログには、パスワードのセキュリティを強調する記事があります: あなたのパスワードはテストに合格しますか?
Linux SSH セキュリティ戦略 3: IP ログインを制限する
固定 IP でサーバーに接続できる場合は、特定の IP のみがサーバーにログインできるように設定できます。たとえば、私は独自の VPN 経由でサーバーにログインします。設定は次のとおりです。
# /etc/hosts.allow を編集します
vi /etc/hosts.allow
# たとえば、123.45.67.89 のみがログインを許可されます
sshd:123.45.67.89
Linux SSH セキュリティ戦略 4: 証明書を使用して SSH にログインする
証明書を使用することは、パスワードを使用してログインするよりも安全です。私は水道水でコーヒーを作ることについての詳細なチュートリアルを書きました。彼の許可を得て、それを次のように転載します。
CentOS の SSH 証明書ログイン検証を構成する
企業のネットワーク管理者がメール サーバー (CentOS 5.1) をリモートで検出し、OpenSSH を使用してリモートで管理できるようにします。セキュリティ ログを確認すると、ここ数日間、ほぼ毎日、多数の IP がパスワードを推測しに来ていることがわかりました。ログイン認証方法を修正して証明書認証に変更する必要があるようです。
念のため設定が完了せず、満足したところでsshdを再起動するとトラブルになるのを防ぐために一時的にVNCを起動しました。 (後になって、これは冗長であることがわかりました。パテは事前に開いておくだけで、閉じないでください)
簡単な手順は次のとおりです。
1) まずメンテナンス アカウントを追加します: msa
2) じゃあ、すーむさー
3) ssh-keygen -t rsa
キーのパスを指定してパスワードを入力すると、公開キーと秘密キーが /home/msa/.ssh/ に生成されます: id_rsa id_rsa.pub
4) cat id_rsa.pub >> 認証されたキー
なぜこのファイルが生成されるかというと、sshd_configにこう書いてあるからです。
次に、chmod 400authorized_keys を実行して、少し保護します。
5) psftp を使用して id_rsa をローカル コンピューターに戻し、サーバー上の id_rsa と id_rsa.pub を強制終了します。
6) /etc/ssh/sshd_config を設定します
プロトコル 2
サーバーキービット 1024
PermitRootLogin no #root ログインを禁止するだけで、この記事とは何の関係もありません。さらに安全です。
#次の 3 行には何も変更する必要はありません。デフォルトの # コメントを削除するだけです。
RSA認証はい
公開鍵認証はい
AuthorizedKeysファイル .ssh/authorized_keys
パスワード認証番号
空のパスワードを許可するいいえ
7) sshdを再起動します
/sbin/service sshd の再起動
8) 証明書形式を変換し、パテに対応する
puttygen を実行して id_rsa を putty の ppk 証明書ファイルに変換します
9) 接続 - SSH - 認証で Putty ログインを構成し、「参照」をクリックして、変換したばかりの証明書を選択します。
次に、connection-Data に自動ログイン ユーザー名を入力します。たとえば、私の場合は msa です。
セッションにサーバーの IP アドレスを入力します。問題なければ、保存できます。
10) ちょっとしたトラブルを解決してこの段階までたどり着くと、この時点ではワクワクしてログインできるかもしれませんが、ログインできない場合があります。
サポートされている認証方法がありません
この時点で、sshd_config を変更して変更することができます。
PasswordAuthentication no は一時的に次のように変更されます。
PasswordAuthentication はい、sshd を再起動します
このようにして、ログアウトした後、PasswordAuthentication の値を再度 no に変更し、sshd を再起動すると、正常にログインできます。
次回以降ログインする際には、通常通りキーファイルのパスワードを求められますので、正しく答えれば無事にログインできます。
psftp コマンドの場合は、-i パラメータを追加して証明書ファイルのパスを指定するだけです。
サーバーをリモートで操作して上記の構成を変更する場合は、すべての手順に注意して間違いを避けるようにしてください。設定が間違っていてSSH接続ができない場合は失敗となります。
基本的に上記の 4 点に従って設定を行うと、Linux での SSH アクセスは比較的安全になります。もちろん、セキュリティとセキュリティの不安は相対的なものであり、隠れた危険をタイムリーに発見して排除するために、サーバーのログを定期的にチェックする必要があります。
記事のソース: http://www.xiaohui.com/dev/server/linux-centos-ssh-security.htm