【備忘録】KaliLinuxインストール後の初期設定

## 1. パッケージ情報のアップデートを行う
- 常時バグフィックスや機能改善が行われており、リポジトリを経由して提供される。アップデートを実施することにより、ローカルのパッケージを更新する。

### aptコマンドとdpkgコマンド
- apt → リポジトリを参照し、依存関係を含め管理。依存関係は自動で解決される
    - 設定ファイル → /etc/apt/sources.list
- dpkg → 個々のパッケージ単位で管理を行う。依存関係は自動で解決されないが、事前に必要はパッケージ情報は表示される

### aptコマンドの実行
- apt-get update → パッケージリストの更新
- apt-get upgrade → インストールされているパッケージの更新

```
sudo apt-get update
sudo apt-get upgrade
```

## 2. システム時刻の同期
- 時刻はシステムクロック(System Clock)によって管理されている
- システムクロックはLinuxカーネルのメモリ上に以下の2つのデータとして保持され、インターバルタイマーの割り込みにより時刻を進める
    - 1970年1月1日0時0分0秒からの経過秒数
    - 現在秒からの経過ナノ秒数
- 時間の表示にはUTC(協定世界時)とローカルタイム(地域標準時)の2つがある
    - UTC → 原子時計を基に定められた世界共通の標準時
    - ローカルタイム → 国や地域の標準の地域標準時。日本はJST(Japan Standard Time)
- システム起動時、カーネルはハードウェアクロックの時刻をシステムクロックにUTCで設定している
- 時差情報
    - /usr/share/zoneinfo/配下に格納されている
- /etc/localtime
    - インストール時に指定されるタイムゾーンによって、対応するファイルがコピーされる
### 時間の表示
```
date
```

### timedatectlコマンドによる時刻設定
```
timedatectl list-timezones
timedatectl set-timezone Asia/Tokyo
date
```

![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1677523/91aa3a0b-7463-dd2c-525c-aafdd526a888.png)

## 3. ユーザ登録を行う
### ユーザ種別
| ユーザ種別         | 内容                                         |
|:------------------ |:------------------------------------------- |
| root               | 全ての操作の権限を持つ                       |
| 一般ユーザ         | 限られた操作のみ行える                       |
| システムアカウント | 特定のアプリケーションを実行する際に使用される |

### ユーザ登録
#### useraddコマンド
- ユーザ登録時(useraddコマンド実行時)の挙動
    - /etc/passwdと/etc/shadowファイルへのエントリおよびホームディレクトリを作成することが出来る
        - /etc/passwd → ユーザ情報の一覧
        - /etc/shadow → ユーザパスワード情報の一覧

    - ユーザは1つ以上のグループに所属する必要があるので、/etc/groupと/etc/gshadowファイルにグループ情報が書き込まれる
        - /etc/group → グループ情報の一覧
        - /etc/gshadow → グループパスワード情報の一覧
- useraddコマンド
    ```
    useradd [オプション] [ユーザ名]
    ```

    - オプションを指定せずuseraddコマンドを実行した場合は、以下の設定ファイルの値がデフォルト値として設定される
        - /etc/default/useradd

#### passwdコマンド
- passwdコマンド実行時の挙動
    - パスワードの設定を行う
    - rootユーザは任意のユーザのパスワードが変更可能だが、一般ユーザは自分自身のパスワードのみ変更が可能
    - オプションを指定せずに実行した場合、対話形式で設定が行われる

- passwdコマンド
    ```
    passwd [オプション] [ユーザ名]
    ```
#### adduserコマンド
- 対話形式でユーザを追加する
- 対話の中でパスワードを設定するため、改めてpasswdコマンドを実施する必要はない

### ユーザ削除
- userdelコマンド
    ```
    userdel [オプション] [ユーザ名]
    ```

### ユーザ情報更新
- usermodコマンド
    ```
    usermod [オプション] [ユーザ名]
    ```

## 4. ログイン情報を見る
### ログイン履歴の表示
```
last
```

### ログインユーザの表示
```
who
```

## 5. (SSHを使用する場合)SSHの設定を行う※別記事でまとめる予定※
### sshコマンド
<!-- - ネットワーク上にある他のホストへ接続できるコマンド
- 全ての通信を公開鍵暗号により暗号化されている-->

- sshコマンドはSSH(Secure Shell)のOSSである[OpenSSH](https://www.openssh.com/)のクライアントコマンド、サーバはsshd

### sshdの起動確認
- 初期状態で既にインストールされている
    - インストール確認
        ```
        dpkg -l | grep openssh-server
        ```
        - 実行結果
        ![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1677523/9a67759a-f8db-be2d-fa9a-afc66bb53a95.png)

- サービスの起動確認は以下のコマンドで行う
    ```
    systemctl status sshd
    ```

    - ステータスが <font color="ForestGreen">active</font>であること
    ![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1677523/8032c57e-26a5-3b7a-393d-c2ff5bb00a40.png)

### sshによるログインを行う
- ログイン時
    ```
    ssh ユーザ名@ホスト名またはIPアドレス
    ```

    :::note warn
    初めてのホストに接続する際に警告メッセージが表示される
    「yes」を入力して問題ない
        :::

    - 実行結果
    ![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1677523/4df49e3a-33d3-64cc-d09a-454c828ce565.png)

- ログアウト時
    ```
    exit
    ```

## 6. (RDP接続する場合)xrdpの設定
1. パッケージのアップデートを行う  
    ```
    sudo apt-get update
    sudo apt-get dist-upgrade
    ```

1. xrdpのインストールを行い、xrdpを起動する
    ```
    sudo apt-get install kali-desktop-xfce xorg xrdp
    sudo systemctl enable xrdp --now
    ```

1. xrdpがactive状態か確認
    ![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1677523/c20162af-ee2b-4f91-46fa-9619002a462a.png)

1. 再起動を行う
    ```
    sudo reboot
    ```

1. 接続する
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1677523/6ddf7afb-7593-d2b5-44fc-e20c2af827b7.png)
---