Kali Linuxのネットワークを構築していきます。
構成は以下のようになります。
アダプター1はハッキング実験用のホストオンリーアダプター、アダプター2はインターネット接続用のNATです。
また、Kali Linuxに新しいユーザーを追加します。
まとめ記事(①〜⑯をまとめてます)
【ハッキング・ラボのつくりかた】をやってみた
システム環境
仮想化ソフト
:VirtualBox 6.1.0
ホストOS
:Windows10
ゲストOS
:Kali Linux 2020.1
ネットワークの構築
仮想LANアダプターの追加
仮想LANアダプターを追加します。
VirtualBoxの「設定」→「ネットワーク」から追加します。
ホストオンリーネットワークの設定
ホストオンリーネットワークの設定を行います。
「ファイル」→「ホストネットワークマネージャー」から以下の画像のようにIPアドレスやDHCPサーバ等の設定をします。
静的IPアドレスの設定
今の設定のままでは、Debian特有のnetwork-managerの仕様により、2つのアダプターを認識することができず、片方にしかIPアドレスが割り振られていません。
この問題を解決するために/etc/network/interfacesファイルに設定を直接書き込んでいきます。
# vi /etc/network/interfaces
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 10.0.0.2
netmask 255.255.255.0
# The secondary network interface
allow-hotplug eth1
iface eth1 inet dhcp
再起動して、ifconfigコマンドで確認すると、2つのアダプター両方ともIPアドレスが割り振られていることがわかります。
ここでは、アダプター1には10.0.0.2、アダプター2には10.0.3.15が割り振られています。
ユーザー追加
新しくユーザーを追加します。
今回はnakatatsuというユーザーを追加します。
さらにパスワードを変更、sudoコマンドの使用権限の付与、ログインシェルをbashに設定します。
以下のコマンドを入力します。
# useradd -m nakatatsu
# passwd nakatatsu
# usermod -a -G sudo nakatatsu
# chsh -s /bin/bash nakatatsu
また、passwdコマンドでrootユーザーのパスワードを変更しておきましょう。
SSH環境の構築
SSH環境を構築します。
SSHを使うと、セキュアな通信でリモートアクセスすることができます。
接続される側(ゲストOS)にはSSHサービスを提供するsshdを起動し、接続する側(ホストOS)にはSSHクライアントとしてTera Termを使用します。
SSHホスト鍵を再生成
SSHホスト鍵はあらかじめ生成されていますが、ここでは再生成しておきます。
過去のSSHホスト鍵をバックアップしてからSSHホスト鍵を再生成します。
# cd /etc/ssh
# mkdir default_keys
# mv ssh_host_* default _keys/
# dpkg-reconfigure openssh-server
生成した鍵とデフォルトの鍵のハッシュ値を比較して、別のものであることを確認します。
# md5sum ssh_host_*
# md5sum ./default_keys/ssh_host_*
sshdを起動
sshdを起動します。
合わせてブート時も起動するように設定します。
# service ssh start
# update-rc.d ssh enable
ホストOSからSSHでアクセス
ホストOSからSSHでアクセスします。
Tera Termを起動し、ホストにKaliのIPアドレスを指定します。
初回は警告が出ますが、信頼できるホストなのでそのまま「続行」ボタンを押します。
次に認証画面が表示されるので、ユーザー名とパスフレーズを入力し、「OK」ボタンを押します。
rootユーザーのログインを許可する
ホストOSからSSHでアクセスできるようにしましたが、今のままではrootユーザーのログインができないようになっています。
そこでrootユーザーで直接ログインできるようにしていきます。
Kali Linuxを起動し、/etc/ssh/sshd_configファイルを編集します。
#PermitRootLogin prohibit-password
PermitRootLogin yes
以下のコマンドを入力し、sshdを再起動すれば、rootユーザーでログインできるようになります。
# systemctl restart ssh
公開鍵認証の設定
これでパスワード認証によりログインできるようになりましたが、セキュリティを高めるため公開鍵認証を採用することにします。
公開鍵認証ではユーザー名、パスフレーズ、秘密鍵の3つが揃わないとログインすることができません。
まずTera Termで公開鍵と秘密鍵を生成します。
「設定」→「SSH鍵生成」と進み、生成します。
次にKali Linuxに公開鍵を転送します。
パスワード認証でログイン後、「ファイル」→「SSH SCP」と進み、公開鍵を転送します。
Kali Linux側で公開鍵認証を有効にします。
まず公開鍵(id_rsa.pub)をauthorized_keysファイルにコピーし、さらに権限を変更します。
# cat id_rsa.pub >> ./.ssh/authorized_keys
# chmod -R 700 ./.ssh/
# chmod -R 600 ./.ssh/authorized_keys
そして、/etc/ssh/sshd_configファイルにて以下のようにコメントアウトし、公開鍵認証を有効にします。
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
sshdを再起動すれば、公開鍵認証でログインできるようになります。
# systemctl restart ssh
パスワード認証は必要ないので無効にしておきます。
/etc/ssh/sshd_configファイルを編集します。
#PasswordAuthentication yes
PasswordAuthentication no