DigitalOcean は、AWS、Microsoft Azure、Google Cloud Platform などと同様のクラウド プロバイダーです。 「ドロップレット」と呼ばれるインスタンスを、Debian、Ubuntu、FreeBSD などのさまざまな Linux ディストリビューションで提供しています。AWS と同様に、DigitalOcean には世界中にデータセンターがあり、場合によっては各国に複数のデータセンターがあります。
ただし、特に 1 つの機能により、競合他社とは一線を画しています。少し前に、ユーザーが仮想マシン ディスクをインポートしてドロップレットとして使用できるカスタム イメージのサポートを追加しました。クラウドで独自のバージョンの Kali Linux を使用できるので、これは私たちにとって完璧です。
公式の Kali Linux 仮想イメージをロードすることは可能かもしれませんが、あまり効率的ではありません。代わりに、最小限の機能を備えた軽量の Kali インストールを構築します。
ISO を生成する
デフォルトでは、Kali Linux ISO には GUI がインストールされており、それを使用することはできますが、後で説明する理由により、DigitalOcean にアップロードする必要があるデータの量を最小限に抑えたいと考えています。ヘッドレス システムで GUI を実行するのもリソースの無駄なので、GUI をアンインストールしたり無効にしたりすることはできますが、GUI やその他のツールをインストールせずにカスタム Kali ISO を生成するだけです。 ISO のビルドには約 5 GB のハード ドライブ容量が必要なので、作業を進める場合は十分な容量があることを確認してください。
まず、システムが最新であることを確認します:
apt update
apt -y full-upgrade
新しいカーネルがインストールされた場合は、続行する前にシステムを再起動してから、ビルドを開始してください。
apt -y install git live-build cdebootstrap devscripts
git clone https://gitlab.com/kalilinux/build-scripts/live-build-config.git
cd live-build-config
./build.sh --variant minimal --verbose
大量のパッケージをダウンロードしてアセンブルする必要があるため、ISO のビルドには時間がかかります。それまでの間、おいしいジョーをお楽しみください。またはお茶。
「–verbose」オプションを指定すると、画面にビルド ログが表示されます。ただし、削除することはできます。代わりに、進行状況を build.log で追跡できます。 ファイル:
tail -f build.log
「build.sh」が起動された端末にプロンプトが返されたら、ISO の準備ができており、images/ で見つけることができます。 ディレクトリ。
仮想マシンを作成する
ISO が構築されたので、仮想マシンの構築を開始できます。 OS を最新の Debian 64 ビットに設定し、20 GB のハードディスクを割り当てて、新しい仮想マシンを作成します。必要に応じて、Kali Training Web サイトで詳細なセットアップが説明されています。動的に割り当てられる単一のファイルとして仮想ディスクを保存することが重要です。ディスク ファイルのみが DigitalOcean にアップロードされるため、CPU や RAM の量などの残りは問題になりません。
課金はカスタム イメージのディスク サイズに基づいているため、ディスク サイズは重要です。また、作成できるインスタンスの選択にも影響します。 40 GB のハードディスクが作成されたとします。最大ハードディスク サイズが 25 GB であるため、月額 5 ドル レベルでのインスタンスの作成は失敗します。その場合、50 GB のディスクを持つインスタンスには月額 10 ドルのオプションを使用せざるを得なくなります。ディスクは 20 GB ですが、選択したドロップレット プランに応じて拡張されます。
インストール中に、手動パーティション分割を選択し、以下に示すように設定します。すべてのファイルが 1 つのパーティションにあり、スワップ ファイルはありません。
システムの更新
インストールが完了して再起動したら、コンソールにログインしてシステムを更新します。
apt update
apt -y full-upgrade
「apt update」中にミラーを経由していない場合は、インストール中に誤ってネットワーク ミラーを追加するのを忘れた可能性があります。 Kali-Docs サイトの指示に従って修正し、両方のコマンドを再度実行してください。
必要なパッケージをインストールする
DigitalOcean がシステムを構成するには、cloud-init をインストールする必要があります。 パッケージ:
apt -y install cloud-init
echo 'datasource_list: [ ConfigDrive, DigitalOcean, NoCloud, None ]' > /etc/cloud/cloud.cfg.d/99_digitalocean.cfg
systemctl enable cloud-init
GRUB の更新
起動時に、ディスクが接続され、sda1 としてマップされます。ただし、ドロップレットでは、vda1 として表示されます。これを解決するには、/boot/grub/grub.cfg で sda1 のすべてのインスタンスを vda1 に変更する必要があります。 :
sed -i 's/sda1/vda1/g' /boot/grub/grub.cfg
構成ファイルを更新したら、「update-grub」を実行してシステムを更新できます。
update-grub
SSH の準備
DigitalOcean のシステムに接続するには SSH を使用する必要があるため、openssh-server パッケージもインストール (および有効化) する必要があります:
apt -y install openssh-server
systemctl enable ssh.service
標準のドロップレットを作成するときに、SSH キーを使用するかどうかを選択できます。ただし、カスタム イメージを使用する場合、これはオプションではなく、SSH キーの使用は必須です。このため、DigitalOcean では root パスワードを削除する必要があります:
passwd -d root
/root/.ssh も作成する必要があります フォルダ:
mkdir /root/.ssh
クリーンアップ
仮想マシンの使用を終了する前に、いくつかのコマンドを実行してクリーンアップします。
apt autoremove
apt autoclean
rm -rf /var/log/*
history -c
この時点で、仮想マシンの準備ができているので、「poweroff」を実行してシステムをシャットダウンします。
poweroff
アップロード中
仮想マシン フォルダで、.vmdk を見つけます。 ファイルをダウンロードし、DigitalOcean にアップロードする準備として、bzip2、gzip、または zip を使用して圧縮します。
bzip2 kali.vmdk
DigitalOcean アカウントにログインします。左側の [管理] セクションで、[イメージ] をクリックし、[カスタム イメージ] タブを選択します。
そこから、圧縮されたディスク イメージをアップロードします。 Kali という名前を付け、Debian としてマークし、アップロード先のリージョンとデータセンターを選択します。ある場所にアップロードすると、ドロップレットはその場所でのみ開始できることに注意してください。これは、カスタム イメージの現在の制限です。この段階でもう 1 つ覚えておくべきことは、アップロードされた画像はディスク容量を消費し、DigitalOcean はディスクの使用量に基づいて課金されることです。
ドロップレットの開始
完了すると、「アップロード済み」列に、アップロードされてからの経過時間が表示されます。次に、画像の [その他] オプションをクリックし、[ドロップレットを開始] を選択します。
ドロップレット プラン、SSH キー、および開始するプロジェクトを選択できるドロップレット設定が表示されます。これはカスタム イメージであるため、SSH キーを使用する必要があります。既存のものを選択するか、[新しい SSH キー] をクリックして新しいものをアップロードすると、次の画面が開き、公開キーを貼り付けて名前を付けることができます:
完了したら、下図のように「作成」をクリックします。その後、すべてのドロップレットが一覧表示されているダッシュボード ([管理]> [ドロップレット]) に戻ります。 SSH キーを使用しているため、DigitalOcean はドロップレットの資格情報を含むメールを送信しません。
数秒以内に IP が表示された後、ドロップレットの準備が整います。接続するには、作成した秘密 SSH キー (この例では MY_KEY と呼ばれます) を使用する必要があります:
[email protected]:~$ ssh -i MY_KEY [email protected]
The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.
ECDSA key fingerprint is SHA256:d83fcd43d25e2a7edd291666160b47360cc85870ded.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'IP' (ECDSA) to the list of known hosts.
Linux kali-s-1vcpu-1gb-nyc3-01 4.19.0-kali5-amd64 #1 SMP Debian 4.19.37-2kali1 (2019-05-15) x86_64
The programs included with the Kali GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Kali GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
これで、必要に応じて展開およびカスタマイズできる、適切で最小限の Kali Linux インストールができました。
[email protected]:~# lsb_release -a
No LSB modules are available.
Distributor ID: Kali
Description: Kali GNU/Linux Rolling
Release: 2019.2
Codename: n/a
[email protected]:~# uname -a
Linux kali-s-1vcpu-1gb-nyc3-01 4.19.0-kali5-amd64 #1 SMP Debian 4.19.37-2kali1 (2019-05-15) x86_64 GNU/Linux
[email protected]:~# free -h
total used free shared buff/cache available
Mem: 987Mi 51Mi 527Mi 1.0Mi 407Mi 790Mi
Swap: 0B 0B 0B