Centos7サーバーの基本的なセキュリティ設定手順

Centos7サーバーの基本的なセキュリティ設定手順

pingスキャンをオフにする(役に立たないが)

まずルートに切り替える

エコー 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

1はオフを意味します

0はオンを意味します

iptablesの使用

iptables -I 入力 -p icmp -j ドロップ

基本的なセキュリティ設定を簡単に紹介します

1.共通ユーザーを作成し、rootログインを禁止し、共通ユーザーのみがsuコマンドを使用してrootに切り替えることを許可する

これの利点は、パスワード保護が二重になっていることです。ハッカーが一般ユーザーのパスワードを知っていても、ルートパスワードを持っていなければ、サーバーへの攻撃は比較的制限されます。

具体的な手順は次のとおりです(ルート権限が必要です)

通常ユーザーの追加

ユーザー追加 xxx

パスワードを設定する

パスワード xxx

これにより、通常のユーザーが作成されます

ルートログインを無効にする

vi /etc/ssh/sshd_config

PermitRootLogin いいえ

Systemctl sshd を再起動する

これで最初のステップは完了です。その後、rootはサーバーにログインできなくなり、通常のユーザーsuを介してのみ切り替えることができます。

2. ssh のデフォルト ポート 22 を変更します。ssh のポートは 22 なので、ポートを変更するとスキャンに少し時間がかかり、難易度が少し上がります。

次のようにすると、ポートが 51866 に変更されます。必要に応じて変更できます。10000 ~ 65535 の範囲内のポートを選択するのが最適です。

ステップ1 /etc/ssh/sshd_configを変更する

vi /etc/ssh/sshd_config

#ポート22 //この行から#記号を削除します

ポート 51866 //以下の行を追加

最初にポート22を削除してみてはいかがでしょうか。他のポートが正常に構成されていない場合、ポート22が削除されると、サーバーに再度アクセスできなくなります。

ステップ2 SELinuxを変更する

semanageをインストールする

$ yumはsemanageを提供します
$ yum -y ポリシーコアユーティリティ-pythonをインストールします

SElinux によって現在許可されている ssh ポートを表示するには、次のコマンドを使用します。

semanage ポート -l | grep ssh

SELinuxにポート51866を追加する

semanage ポート -a -t ssh_port_t -p tcp 51866

注: 操作が失敗した場合は、https://sebastianblade.com/how-to-modify-ssh-port-in-centos7/ を参照してください。

失敗した場合は、selinuxが有効になっていないことが原因であると考えられます。

追加されたかどうかを確認します

semanage ポート -l | grep ssh

成功した場合は、次のように出力されます。

ssh_port_t tcp 51866, 22

ステップ3 sshを再起動する

systemctl sshd.service を再起動します。

SSHがポート51866でリッスンしているかどうかを確認する

ネットスタット -tuln

ステップ4 ファイアウォールのポート51866を開く

ファイアウォールコマンド --permanent --zone=public --add-port=51866/tcp

ファイアウォール-cmd --reload

次に、51866 経由でログインできるかどうかをテストします。ログインできる場合は成功です。次に、ポート 22 を削除します。

vi /etc/ssh/sshd_config

ポート22 wqを削除

systemctl sshd.service を再起動します。

同時に、ファイアウォールはポート22も閉じます

ファイアウォールコマンド --permanent --zone=public --remove-port=22/tcp

Alibabaのサーバーを使用している場合は、Alibabaのセキュリティグループに新しい受信ルールを追加する必要があることに注意してください(おそらく、Alibabaのサーバーはイントラネットを使用しており、ポートマッピングが必要であるためです)。

3. DenyHosts などのソフトウェアを使用して SSH ブルートフォース クラッキングを防ぐ (詳細は説明しません)

実はこれは不正ログインをチェックするPythonスクリプトです。不正ログインの回数が設定回数を超えると、そのIPアドレスは自動的にブラックリストに追加されます。

4. クラウドロックを使用する(詳細は説明しません)

参考: http://tim-fly.iteye.com/blog/2308234

一般的に、最初の 2 つの手順を完了すると、侵入を少なくとも 50% 削減できます。3 番目の手順を完了すると、侵入の 80% 以上を基本的に排除できます。もちろん、最も重要なことは、セキュリティ意識を持ち、セキュリティと Linux の知識をさらに学ぶことです。

3つ目と4つ目については簡単に触れておきますので、ご興味があればご覧ください。

以下もご興味があるかもしれません:
  • Centos8 でローカル Web サーバーを構築するための実装手順
  • CentOS 8 に Postfix メール サーバーをインストールして設定する方法
  • Linux および CentOS (サーバー) に zip および unzip コマンド機能をインストールする
  • CentOS サーバーのセキュリティ構成戦略
  • CentOS8.0 で FTP サーバーをインストールして設定する方法
  • CentOS 7.2 は uniapp プロジェクトを展開するための nginx Web サーバーを構築します
  • NodeJsプロジェクトCentOs Linuxサーバーのオンライン展開の詳細な説明
  • CentOS8.1 で Gitlab サーバーを構築するための詳細なチュートリアル

<<:  MySQL 8.0.15 winx64 のインストールと設定方法のグラフィックチュートリアル

>>:  TypeScript をインストール、使用、自動コンパイルする方法に関するチュートリアル

推薦する

MySQL データの集約とグループ化

多くの場合、データを実際に取得せずに要約する必要があり、 MySQLこの目的のために特別な関数を提供...

Mysqlデータベースの文字化けに対処する方法

MySQL では、データベースの文字化けは一般的に文字セットを設定することで修正できますが、文字化け...

上部の固定ナビゲーションバーによって CSS アンカーの配置がブロックされる問題の解決方法

多くのウェブサイトでは、ユーザーが簡単に検索したり他のページに移動したりできるように、上部にナビゲー...

mysql における mydumper と mysqldump の比較

いくつかのテーブルまたは単一のデータベースのみをバックアップする場合は、innobackup よりも...

XHTMLコードの一般的なアプリケーション問題をまとめる

時間が経つにつれて、多くの人が XHTML の使い方を知らないことに気づきました。普通の初心者だけで...

MySQL カーソルの概念と使用法の詳細な説明

この記事では、例を使用して MySQL カーソルの概念と使用方法を説明します。ご参考までに、詳細は以...

Mysqlクエリ条件で文字列の末尾にスペースがあっても一致しない問題の詳細な説明

1. テーブル構造テーブル人id名前1あなた2あなた(スペース) 3あなた(スペース2つ) 2. ク...

ユーザー エクスペリエンス デザイナーとは誰ですか?

怖いですね! 写真の翻訳: (内側から外側へ)最初のレイヤー:ユーザーエクスペリエンス第2層:コンテ...

nginxフォワードプロキシとリバースプロキシの詳細な説明

目次フォワードプロキシnginx リバースプロキシnginx リバースプロキシ 02リバースプロキシ...

Vueコンポーネント間の通信の非常に詳細な要約

目次序文1. Props、$emit一方向データフロー2. $親、$子3. $attrs、$list...

Nginx プロセス スケジューリングの問題の詳細な説明

Nginx は、マスター プロセス (MasterProcess) と、同じ数のホスト CPU コア...

jsはCanvasを使用して複数の画像を1つの実装コードにマージします

解決 関数 mergeImgs(リスト) { const imgDom = document.cre...

MySQL ビューの紹介と基本操作のチュートリアル

序文ビューは、データベース システム内で非常に便利なデータベース オブジェクトです。 MySQL 5...

Vueは小さな検索機能を実装する

この記事の例では、検索機能を実装するためのVueの具体的なコードを参考までに共有しています。具体的な...

docker で nginx+php+mysql を設定する方法

まず、方法を理解します。 docker exec を使用して Docker コンテナに入るDocke...