CentOS サーバーのセキュリティ構成戦略

CentOS サーバーのセキュリティ構成戦略

最近、ブルートフォース攻撃によるサーバのクラッキングが頻発しています。侵入行為を大まかに分析し、よく使われるセキュリティ対策を整理しました。

最小限の権限 + 最小限のサービス = 最大限のセキュリティ

1. デフォルトの SSH 接続ポート 22 を変更し、ポート手順でファイアウォール Firewalld を追加します。

1) デフォルトの SSH ポートを 22 に変更します。

vi /etc/ssh/sshd_config

這里寫圖片描述

2) ファイアウォールがこのポートを通過できるようにする

firewall-cmd --state [firewalld が実行中かどうか]
ファイアウォール-cmd --permanent --list-port [ポートリストを表示]
ファイアウォール-cmd --permanent --zone=public --add-port=48489/tcp [ポートを追加]
ファイアウォール-cmd --permanent --remove-port=48489/tcp [ポートを削除]

3) SSHサービスを再起動し、現在接続されているSSHポートを終了します。

サービスsshdを再起動

4) 次に、putty ssh接続ソフトウェアを介して接続します。デフォルトのポート22を使用してSSHに入ることはできません。目的を達成すればOKです〜

2. ルートアカウントによる直接ログインを無効にする

Linux のデフォルトの管理者名は root です。SSH に直接ログインするには、ROOT パスワードのみを知っておく必要があります。 SSH からの Root の直接ログインを無効にすると、サーバーのセキュリティが向上します。これは、次の操作を実行することで実現できます。

1) 新しいアカウントを作成し、アカウントのパスワードを設定する

ユーザー追加 ityangs
パスワード

2) ルートが直接ログインできないようにする

vi /etc/ssh/sshd_config

「#PermitRootLogin yes」を見つけて、先頭の「#」を削除し、短い末尾の「Yes」を「No」に変更して、ファイルを保存します。

這里寫圖片描述

systemctl restart sshd.service [ssh を再起動します。再起動する別の方法です]

3) 次回ログイン

まず、新しく作成したアカウント「ityangs」を使用して、通常のユーザーとしてログインします。

ROOT 権限を取得するには、SSH で次のコマンドを実行します。

suルート

上記のコマンドを実行し、root パスワードを入力して root 権限を取得します。

4) WinSCP で su を使用して root に切り替えるためのヒント (root リモート ssh ログインが禁止されている場合)

ルートユーザーのリモートログインは制限されていますが、重要なデータファイルはすべて 700 個あります。さらに悲しいことに、WinSCP はまったく役に立たないのです。ルート アカウントではログインできず、FTP、SFTP、SCP などのプロトコルではログイン後のユーザーの切り替えがサポートされていないためです。
SCP プロトコルでは、ログイン時にシェルを指定できます。デフォルトおよび推奨されるシェルは /bin/bash ですが、これを sudo su などに変更するなど、複雑な操作を行うように変更することもできます。
しかし、新たな問題が発生します。Sudo にはパスワードが必要ですが、WinSCP にはログイン時に対話型プロセスがありません。ただし、ルート権限で visudo を実行し、次の行を追加することで、sudu パスワードをキャンセルできる人が常に存在します。
ユーザー名 ALL=NOPASSWD: ALL
非 Putty 環境で sudo を使用するには、次の行もコメント アウトする必要があります。
デフォルトの要件
その後保存すると、WinSCP にログインするときにルートの喜びを味わうことができます。

ステップ:

一般ユーザーはサーバーにSSHで接続し、ルート権限に切り替える
visudoを実行し、yourusername ALL=NOPASSWD: ALLの行を追加し、Defaults requirettyをコメントアウトします。

[root@iZ252wo3Z ~]# visudo
ityangs ALL=NOPASSWD: ALL
#デフォルトではttyが必要です [利用できない場合は心配しないでください]

WinSCPのファイルプロトコルをSCPに変更する

這里寫圖片描述

環境-SCP/Shellシェルをsudo suに変更します。

這里寫圖片描述

WinSCPにログインするだけです。

3. DenyHostsをインストールする[攻撃IPを傍受し、ブラックリストを生成し、さらなる攻撃を防ぐ]

DenyHosts (プロジェクト ホームページ: http://denyhosts.sourceforge.net/) は、Linux 上で実行され、SSH ブルート フォース クラッキングを防止するソフトウェアです。http://sourceforge.net/projects/denyhosts/files/ からダウンロードでき、ダウンロードした DenyHosts-2.6.tar.gz ソース コード パッケージを Linux システムにアップロードできます。

インストール手順は次のとおりです
****************************************************************
tar zxvf DenyHosts-2.6.tar.gz #ソースパッケージを解凍します
cd DenyHosts-2.6 #インストールおよび解凍ディレクトリに入る
python setup.py install #DenyHosts をインストールする
cd /usr/share/denyhosts/ #デフォルトのインストールパス
cp denyhosts.cfg-dist denyhosts.cfg #denyhosts.cfgは設定ファイルです
cp daemon-control-dist daemon-control #daemon-controlは起動プログラムです
chown root daemon-control #ルート権限を追加する
chmod 700 daemon-control #実行可能ファイルに変更
ln -s /usr/share/denyhosts/daemon-control /etc/init.d #管理を容易にするために daemon-control をソフトリンクします

インストールは完了です。
/etc/init.d/daemon-control start #denyhosts を開始
chkconfig daemon-control on #起動時にdenghostsが起動するように設定する
******************************************************************

vi /usr/share/denyhosts/denyhosts.cfg #設定ファイルを編集します。設定ファイルの一部のパラメータについては、grep -v "^#" denyhosts.cfg で確認してください。
SECURE_LOG = /var/log/secure #ssh ログ ファイル、Redhat シリーズは /var/log/secure ファイルに基づいて判断します。Mandrake および FreeBSD は /var/log/auth.log に基づいて判断します。
#SUSE は /var/log/messages を使用して判断を行いますが、詳細は設定ファイルで説明されています。
HOSTS_DENY = /etc/hosts.deny #ユーザーログインを制御するファイル
PURGE_DENY = 30m # 禁止されたものをクリアするのにどのくらい時間がかかりますか? 30 分に設定します。
# 'm' = 分
# 'h' = 時間
# 'd' = 日数
# 'w' = 週
# 'y' = 年
BLOCK_SERVICE = sshd #禁止されているサービス名。もちろん、DenyHost は SSH サービスにのみ使用されるわけではありません。
DENY_THRESHOLD_INVALID = 1 #無効なユーザーが失敗できる回数
DENY_THRESHOLD_VALID = 3 #通常のユーザーに許可されるログイン失敗回数
DENY_THRESHOLD_ROOT = 3 #許容されるルートログイン失敗回数
DAEMON_LOG = /var/log/denyhosts #デフォルトでDenyHostsログファイルが保存されるパス

DenyHosts のデフォルト設定を変更したら、変更を有効にするために DenyHosts サービスを再起動します。
/etc/init.d/daemon-control restart #denyhostsを再起動

さて、この記事はこれで終わりです。困っている友人はこれを参考にしてください。

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

<<:  Mysqlはストアドプロシージャを通じて文字列を配列に分割します

>>:  TypeScript の Enum が問題となる理由

推薦する

MySQL はどのようにしてマスターとスレーブの一貫性を確保するのでしょうか?

目次MySQLマスタースレーブの基本原理3つのbinlog形式の比較混合形式のバイナリログが存在する...

OpenLayersはポイントフィーチャーレイヤーの集約表示方法を実現します

目次1. はじめに2. ポイントフィーチャーレイヤーの集約3. 重合の特殊処理4. 重合の特殊処理 ...

Linux サーバーに SSH パスワードなしでログインする方法

テスト サーバーにログインするたびに、必ず ssh ログインのパスワードを入力する必要があります。ロ...

SQLデータベースの14の事例の紹介

データシート /* Navicat SQLite データ転送 ソースサーバー: school ソース...

MySQLのユーザー管理とPostgreSQLのユーザー管理の違い

1. MySQL ユーザー管理[例1.1] ローカルMySQLサーバーのテストデータベースにroot...

Webpack3+React16コード分割の実装

プロジェクトの背景最近、webpackのバージョンが古いプロジェクトがあります。 リーダー層では今の...

MySQL 8.0 の binlog の詳細な説明

1 はじめにバイナリ ログは、データを持つ、またはデータを変更する可能性がある SQL ステートメン...

WeChatアプレットがユーザーの移動軌跡を記録

目次設定を追加json 構成レイヤー構成の表示論理層の構成位置追跡をオンにする録音を開始開始座標を決...

インスピレーションを得るための7つのクールなダイナミックウェブサイトデザイン

デザインの分野では、毎年さまざまなデザインのトレンドや流行があります。たとえば、近年のレスポンシブデ...

MySQLパスワードを変更するいくつかの方法

序文:データベースを日常的に使用すると、パスワードが単純すぎて変更する必要がある場合、パスワードの有...

CSS 完全な視差スクロール効果

1. 何ですか視差スクロールとは、複数の背景レイヤーを異なる速度で動かすことで、3次元のモーション...

202 無料の高品質 XHTML テンプレート (2)

前回の記事「202 個の無料高品質 XHTML テンプレート (1)」に続き、123WORDPRES...

CSS でハートを描く 3 つの方法

以下では、CSS を使用してハートの形を描く 3 つの方法を紹介します。実装プロセスは非常にシンプル...

MySQLの再帰問題

MySQL自体は再帰構文をサポートしていませんが、自己接続を通じていくつかの単純な再帰を実現できます...

JSはじゃんけんゲームを実装します

この記事の例では、じゃんけんゲームを実装するためのJSの具体的なコードを参考までに共有しています。具...