要塞マシンの概要、簡単な要塞マシンの構築、chrootを実現するためのjailkitのインストール、ログ監査

要塞マシンの紹介

要塞マシンとは

要塞マシン、つまり特定のネットワーク環境では、外部および内部のユーザーの攻撃や破壊からネットワークとデータを保護するために、さまざまな技術的手段を使用して、ネットワーク環境の各コンポーネントをリアルタイムで収集および監視します。ステータス、セキュリティインシデント、および責任の集中アラーム、タイムリーな処理、および監査のためのネットワークアクティビティ。

機能面では、コアシステムの運用・保守とセキュリティ監査の管理・制御の2つの主要機能を統合し、技術的実現では、端末コンピュータのネットワークやサーバーリソースへの直接アクセスを遮断することで、プロトコルプロキシ方式を採用しています。引き継ぐために。ネットワークとサーバーへの端末コンピュータのアクセス。鮮明に言えば、端末コンピュータのターゲットへのアクセスには、運用および保守のセキュリティ監査後に変換が必要です。たとえば、運用および保守のセキュリティ監査はゲートキーパーとして機能し、ネットワークデバイスおよびサーバーへのすべての要求はこのゲートを通過します。したがって、運用および保守のセキュリティ監査は、不正アクセスおよび悪意のある***を傍受し、不正コマンドをブロックし、ターゲットデバイスへのすべての不正アクセスを除外し、内部担当者の誤操作および不正操作を監査および監視して、後で責任を追跡することができます。 。

バスティオンマシンをスプリングボードマシンとも呼びます。シンプルなスプリングボードマシンはシンプルな機能を備えています。コア機能はサーバーへのリモートログインとログ監査ですが、バスティオンマシンには資産管理(CMDB)、監視などの機能もあります。およびユーザー権限。現在、最も優れたオープンソースソフトウェアには、Jumpserver、Teleport、GateOne、CrazyEyeなどがあります。Qizhi、Citrix XenAppなどの商用要塞マシンは、より強力です。

シンプルな要塞マシンを構築する

次に、単純な要塞マシンを構築しようとします。主な機能は、内部ネットワークサーバーにログインして監査をログに記録することです。

要塞マシンを構築するための条件は、マシンにパブリックネットワークIPと内部ネットワークIPがあり、内部ネットワークが他のマシンと通信していることです。

要塞マシンを設計するためのアイデア:

マシンのセキュリティ制限を実行します:ポート制限、ログイン制限(SSH)、ユーザーおよびコマンド制限。

クライアントログ監査。

chrootを実現するには、jailkitをダウンロードしてインストールします。

Jailkitダウンロードリンク:https://olivier.sessink.nl/jailkit/

[root @ jinkai02〜] #cd / usr / local / src /

[root @ jinkai02 src] #wget https://olivier.sessink.nl/jailkit/jailkit-2.21.tar.bz2

[root @ jinkai02 src] #yum install -y bzip2

[root @ jinkai02 src] #tar jvxf jailkit-2.21.tar.bz2

[root @ jinkai02 src] #cd jailkit-2.21

[root @ jinkai02 jailkit-2.21]#。/ configure

[root @ jinkai02 jailkit-2.21] #make && make install

仮想システムのルートディレクトリを作成します

[root @ jinkai02 jailkit-2.21] #mkdir / home / jail

シェル関連のコマンド、ライブラリファイル

[root @ jinkai02 jail] #jk_init -v -j / home / jail / basicshel

viやvimなどのエディター

[root @ jinkai02 jail] #jk_init -v -j / home / jail /編集者

ネットワーク関連

[root @ jinkai02 jail] #jk_init -v -j / home / jail / netutils

SSHログイン関連、これらの手順は一般的なコマンドを/ home / jailにコピーすることです

[root @ jinkai02 jail] #jk_init -v -j / home / jail / ssh

テストユーザーを追加します。

[root @ jinkai02 jail] #mkdir / home / jail / usr / sbin

[root @ jinkai02 jail] #cp / usr / sbin / jk_lsh / home / jail / usr / sbin / jk_lsh //仮想システムシェルをコピー

[root @ jinkai02 jail] #useradd zhangsan

[root @ jinkai02刑務所] #passwd zhangsan

ユーザーzhangsanのパスワードを変更します。

新しいパスワード:

無効なパスワード:パスワードは辞書チェックに合格しませんでした-辞書の単語に基づいています

新しいパスワードを再入力します。

passwd:すべての認証トークンが正常に更新されました。

[root @ jinkai02 jail] #jk_jailuser -m -j / home / jail zhangsan

//仮想システムにユーザーを作成します

[root @ jinkai02 jail] #cat etc / passwd

root:x:0:0:root:/ root:/ bin / bash

zhangsan:x:1000:1000 :: / home / zhangsan:/ usr / sbin / jk_lsh

zhangsanの行の/ usr / sbin / jk_lshを/ bin / bashに変更して、仮想システムユーザーにログインします。

[root @ jinkai02 jail] #vim etc / passwd

xshellを使用して仮想ユーザーにログインします。

img

img

警告!リモートSSHサーバーがX11転送要求を拒否しました。

最終ログイン:192.168.111.1から2020年12月26日土曜日16:56:49

bash:/ usr / bin / id:そのようなファイルやディレクトリはありません

bash:/ usr / bin / id:そのようなファイルやディレクトリはありません

[zhangsan @ jinkai02〜] $

ログインに成功したら、確認しましょう

[zhangsan @ jinkai02〜] $ ll /

bash:ll:コマンドが見つかりません

[zhangsan @ jinkai02〜] $ ls -l /

合計0

lrwxrwxrwx。1ルートルート712月2608:43 bin-> usr / bin

drwxr-xr-x。2ルートルート44Dec 26 08:43 dev

drwxr-xr-x。2ルートルート240Dec 2608:50など

drwxr-xr-x。3ルートルート22Dec 2608:46ホーム

lrwxrwxrwx。1ルートルート9Dec 26 08:43 lib64-> usr / lib64

drwxr-xr-x。7ルートルート70Dec 26 08:45 usr

[zhangsan @ jinkai02〜] $タブキーを2回押します

116の可能性をすべて表示しますか?(yまたはn)

cd do fgrep let readarray ssh unalias

./ chmod done fi ln readonly suspend unset

:ローカルリターン同期のコマンドエコー

[compgen egrep function logout rm tar vi

[[complete elif getopts ls rmdir test vim

]] compopt else grep mapfile rsync then wait

エイリアス続行有効化gunzipmkdir scp time wget

bash coproc esac gzip mktemp sed times while

bg cp eval hash more select touch zcat

bind cpio exec help mv set trap {

休憩日終了履歴popdsh true}

printfシフトタイプの場合は組み込みのddエクスポート

発信者はプッシュされたshoptタイプセットでfalseを宣言します

case dirs fc jobs pwd sleep ulimit

cat disown fg kill read source umask

これらは、仮想ユーザーが実行できるコマンドです。

SSHログインを制限する:

vim / etc / ssh / sshd_config

PasswordAuthentication no yesがnoに変更され、パスワードログインは許可されません

ファイアウォールルールを追加します。

iptables -I INPUT -p tcp --dport 22 -j ACCEPT

制限付きログインIP:

vim /etc/hosts.allow

sshd:192.168.111.0/24 1.1.1.1 2.2.2.2

vim /etc/hosts.deny

sshd:すべて

上記で許可されているものはログインできますが、他のすべてはログインできません

次に、ログ監査機能を実行する必要があります。この手順では、ログインしているすべてのマシンで操作する必要があります。

ここでは、jinkai01を踏み台として、jinkai01をクライアントとして使用し、jinkai01を操作しています。

[root @ jinkai01〜] #vim /etc/hosts.allow

sshd:192.168.100.137

[root @ jinkai01〜] #vim /etc/hosts.deny

sshd:ALL

このとき、xshellを使用してjinkai01ウィンドウを再度開き、ログインできないことがわかりました。

[root @ jinkai01〜] #mkdir / usr / local / records

[root @ jinkai01〜] #chmod 777!$

chmod 777 / usr / local / records

[root @ jinkai01〜] #chmod + t!$

chmod + t / usr / local / records

[root @ jinkai01〜] #vim / etc / profile

以下を追加します

if [!-d / usr / local / records / $ {LOGNAME}]

その後

mkdir -p / usr / local / records / $ {LOGNAME}#ログイン名に従って同じ名前のサブフォルダーを作成します

chmod 300 / usr / local / records / $ {LOGNAME}#Grant300パーミッション

されます

export HISTORY_FILE = "/ usr / local / records / $ {LOGNAME} / bash_history"#コマンド履歴を記録するファイルを指定します

export PROMPT_COMMAND = '{date "+%Y-%m-%d%T ##### $(who am i | awk" {print \ $ 1 \ "\" \ $ 2 \ "\" \ $ 5} ") #### $(history 1 | {read x cmd; echo "$ cmd";}) ";} >> $ HISTORY_FILE '#特定のレコードコマンド履歴形式

次に、xshellを使用してこのマシンに接続します。上記はログインできないように制限されており、スプリングボードSSHリモートログインを使用できます。

[root @ jinkai02 jail] #ssh 192.168.111.136

[email protected]のパスワード:

最終ログイン:2020年12月26日土曜日17:27:45から192.168.111.137

[root @ jinkai01〜] #ls / usr / local / records /

root // rootログインユーザー用のフォルダが生成されました

[root @ jinkai01〜] #ls / usr / local / records / root /

bash_history

[root @ jinkai01〜] #cat / usr / local / records / root / bash_history

2020-12-26 22:18:34 ##### root pts / 1(192.168.111.137)#### ls / usr / local / records /

2020-12-26 22:18:47 ##### root pts / 1(192.168.111.137)#### ls / usr / local / records / root /

すべてのリモート操作はファイルに記録されます

2020-12-26 22:20:32 ##### root pts / 1(192.168.111.137)#### w

2020-12-26 22:22:57 #####ルートポイント/1(192.168.111.137)#### ls

2020-12-26 22:23:04 ##### root pts / 1(192.168.111.137)#### cat / etc / passwd

jinkai01で通常のユーザーを作成します

[root @ jinkai01〜] #useradd admin

[root @ jinkai01〜] #passwd admin

ユーザーadminのパスワードを変更します。

新しいパスワード:

無効なパスワード:パスワードの一部にユーザー名が含まれています

新しいパスワードを再入力します。

passwd:すべての認証トークンが正常に更新されました。

[root @ jinkai01〜]#

踏み台マシンjinkai02に管理者としてログインします

[root @ jinkai02 jail] #ssh [email protected]

[email protected]のパスワード:

[admin @ jinkai01〜] $ ls

[admin @ jinkai01〜] $ w

22:26:19アップ5:20、2ユーザー、負荷平均:0.00、0.01、0.05

LOGIN @ IDLE JCPUPCPUからのユーザーTTY

root pts / 0 192.168.111.1 17:07 1:39 0.06s 0.04s bash

admin pts / 1 192.168.111.137 22:26 3.00s 0.00s 0.00sw

[admin @ jinkai01〜] $ ls -l / usr / local / records / admin /

ls:ディレクトリ/ usr / local / records / admin /を開くことができません:権限が不十分です

上記でファイルの300権限が設定されており、ファイルを読み取ることができません

jinkai01に戻って履歴を見る

[root @ jinkai01〜] #cat / usr / local / records / admin / bash_history

2020-12-26 22:26:06 ##### admin pts / 1(192.168.111.137)####

2020-12-26 22:26:17 ##### admin pts / 1(192.168.111.137)#### ls

2020-12-26 22:26:19 ##### admin pts / 1(192.168.111.137)#### w

2020-12-26 22:27:17 ##### admin pts / 1(192.168.111.137)#### ls -l / usr / local / records / admin /

2020-12-26 22:29:30 ##### admin pts / 1(192.168.111.137)#### cat / usr / local / records / admin /

ここでは、要塞マシンの機能を簡単に実現できますが、この方法は不完全であり、クラックされる可能性があります。より完全な要塞マシン機能を実現したい場合でも、いくつかの特別なツールまたはソフトウェアが必要です。

おすすめ

転載: blog.51cto.com/11451960/2640823