Linux クラウド サーバーがブルート フォース クラッキングを防止 (3 つの SSH セキュリティ戦略)

序文

        新しく購入したサーバーの場合、ユーザー名はデフォルトで root になり、SSH ポート 22 がデフォルトで開かれることが多く、SSH サービスを構成する場合、パスワードと公開キーによる二重ログインが許可されることがよくあります。ただし、多くの違法なサーバーは、ユーザー名 root のデフォルト ポート 22 にアクセスして、サーバーのパスワードを強引に取得するブルート フォース クラッキング プログラムを実行します。

        したがって、安全でないデフォルト構成は、大きなリスクをもたらします。ブロガーは自身の CVM 構成を例として、3 つのセキュリティ戦略を挙げました。

防御線 1: デフォルトのポート 22 を変更する

        攻撃者は Nmap を通じて新しいポート番号をスキャンできますが、そのような設定により攻撃者の作業はより困難になります。

1. リモート サーバーにログインし、sshd_configフォルダーを開きます。

vim /etc/ssh/sshd_config

2. デフォルトの注釈付き #Port 22 ポートを見つけます。

新しいポートを追加してください (範囲は10000~65535です。10000 未満のポートはシステムまたはソフトウェアによって簡単に占有されます)

新しいポートが正常に構成されるまで、ポート 22 を予約する必要があることに注意してください。

3. SSH サービスを再起動します:service sshd restart

service sshd restart

4-1. ファイアウォール上のポートを開きます (例として iptables)。

Centos 6 はデフォルトで iptables ファイアウォールを使用します。

このリンクをお読みください: iptables は指定されたポートを開きます - gerrylon007 (CSDN ブロガー)

4-2. ファイアウォールでポートを開きます (例として Firewalld)。

1. まず selinux をオフにします。

推奨読書: Linux で SELinux をオフにする必要があるのはなぜですか? ——志胡さんの質問

vim /etc/selinux/config

2. SELINUX=enforcingを SELINUX=disabledに変更します(selinux を完全にオフにします)

必要ですか:

shutdown -r now //重启您的实例
重启后,运行命令:
getenforce
验证SELinux状态为disabled,表明SELinux已关闭。

2. setenforce 0を実行してselinuxファイアウォールをシャットダウン(一時的にシャットダウン)します。 

setenforce 0

3. Firewalld ファイアウォールでポート 11111 を開きます。

firewall-cmd --permanent --zone=public --add-port=11111/tcp
firewall-cmd --reload

4. ポートを表示します。 

netstat -nptl|grep ssh

現在、ポート 22 とポート 11111 が開いていることがわかります。

写真が示すように:

 これで完了です。まず、ポート 22 を削除しましょう (セキュリティ グループ ルール設定でもポート 22 をクリアすることを忘れないでください)。

1.まず、 /usr/lib/firewalld/ services/ssh.xmlファイルを削除します。

rm -rf /usr/lib/firewalld/services/ssh.xml

2.firewalld の削除操作:

firewall-cmd --zone=public --remove-port=22/tcp --permanent

firewall-cmd --reload

3. ssh サービスを再起動することが最善です。次のコマンドを入力して確認します。 

iptables -L

図からわかるように、現在、tcp プロトコルを使用したポート 10022 への外部アクセスのみが許可されています。

この時点でまだ正常に接続できない場合は、次の 2 つの理由が考えられることに注意してください。

1. クラウド サーバー コンソール - セキュリティ グループ設定 - ポート 11111 を開きます (高確率で)。

2. ネットワークオペレーターを切り替える

防御線 2: SSH パスワード ログインを無効にし、代わりに公開キー ログインを使用します。

vim /etc/ssh/sshd_config

1. PasswordAuthentication YesをPasswordAuthentication noに 変更します。

2. 必ず SSH サービスを再起動してください:service sshd restart

service sshd restart

防御線 3: root ユーザーのリモート操作を無効にする

CVM インスタンスを作成するとき、クラウド サーバーの製造元はデフォルトで root ユーザーをユーザーに割り当てます。便利ではありますが、将来的に無用なトラブルが発生することは避けられませんし、もちろん安全ではありません。したがって、root ユーザーのリモート ログイン権限を最初から無効にしたほうがよいでしょう。

時間の都合上、ブロガーはこの解決策を実践していませんので、以下をお読みください。

Linux で root ユーザーを無効にする - 大きなスイカを食べる - Blog Garden (cnblogs.com)

Linux で Root ログインを無効にする方法は 4 つあります。どれを知っていますか? - Tencent Cloud 開発者コミュニティ - Tencent Cloud (tencent.com)

追記 

ポート 22 を再度開きたい場合はどうすればよいですか?

firewall-cmd --zone=public --add-port=22/tcp --permanent

firewall-cmd --reload

「iptables -L」と入力します。この時点で、外部 SSH 入口が 2 つあることがわかります。

 連絡方法は?[email protected]

おすすめ

転載: blog.csdn.net/m0_63478913/article/details/128883737