---
# System prepended metadata

title: 4_ミレニアムズ_手順書

---

# サーバー構築手順書
チーム名：ミレニアムズ
メンバー：小林、中村、野口
## もくじ
0. 環境構築に関しての注意
1. Linuxの導入手順
    1-1. サーバ側
　　1-1-1. VirtualBox
　　1-1-2. AlmaLinux
    1-2. クライアント側
    1-3. サーバとクライアントの接続
2. Webサーバの構築手順
    2-1. サーバ側
    2-2. クライアント側
3. DNSサーバの構築手順
    3-1. サーバ側
    3-2. クライアント側
4. プロキシーサーバーの構築手順
    4-1. サーバ側
5. OpenSSHでのキーペアの作成
    5-1. サーバ側
    5-2. クライアント側
    

## 0.環境構築に関しての注意
#### エラーが発生しても慌てず一文字ずつ確認をお願いいたします。
#### スペルミスや文法ミスは頻出事項です。慌てず冷静な対処をお願いします。

## 1. Linuxの導入手順
### 1-1. サーバ側
#### 1-1-1. VirtualBox
1. テキスト「Linuxベーシック2_付録3_VirtualBoxの使用方法.pdf」p1~6参照
    - テキストは[**こちら**](https://drive.google.com/file/d/1cjsH3Si8OtglAyn4T9meppEEkdoEOWKc/view)
    - Oracle VM VirtualBoxのダウンロードは[**こちら**](https://www.oracle.com/jp/virtualization/technologies/vm/downloads/virtualbox-downloads.html)
    - (注) VirtualBoxのバージョンは時期によって異なる


#### 1-1-2. AlmaLinux
1. テキスト「Linuxベーシック2_付録3_VirtualBoxの使用方法.pdf」p7~8参照
    - テキストは[**こちら**](https://drive.google.com/file/d/1cjsH3Si8OtglAyn4T9meppEEkdoEOWKc/view)
    - AlmaLinuxのダウンロードは[**こちら**](https://almalinux.org/ja/get-almalinux/)
    - (注) AlmaLinuxのバージョンは時期によって異なる

2. テキスト「Linuxベーシック2.pdf」 p41~53参照
    - テキストは[**こちら**](https://drive.google.com/file/d/1oELAQIOdvJkvt0hjnCEZ63HH4EhOQiAr/view)
    - (注1) p47: ホスト名(H)は、「h111.r-exercise.com」とする
    - (注2) p47: IPv4設定はメソッドを「自動」にする
    - (注3) p49: ユーザー名(U)は、以降の分かりやすさを考慮して「server」とする
    - (注4) p51: 「アカウントが見つかりませんか？」からユーザー名を「root」にし、rootでログインしておく


### 1-2. クライアント側
1. 1-1-2の手順2を実行し、新たにAlmaLinux環境を作成
    - テキストは[**こちら**](https://drive.google.com/file/d/1oELAQIOdvJkvt0hjnCEZ63HH4EhOQiAr/view)
    - (注1) p47: ホスト名(H)は、「h222.r-exercise.com」とする
    - (注2) p47: IPv4設定はメソッドを「自動」にする
    - (注3) p49: ユーザー名(U)は、以降の分かりやすさを考慮して「client」とする
    - (注4) p51: 「アカウントが見つかりませんか？」からユーザー名を「root」にし、rootでログインしておく


### 1-3. サーバとクライアントの接続
1. Windowsのコマンドプロンプトから、IPv4アドレスとデフォルトゲートウェイを取得する
    ```
    C:\Windows\System32>ipconfig /all
    ```
2. サーバ側とクライアント側双方で、「端末」を起動する
    - 左上の「アクティビティ」→ 「端末」

3. サーバ側とクライアント側双方で、Network Managerを起動する
    ```
    [root@h111 ~]# nmtui
    ```
    ```
    [root@h222 ~]# nmtui
    ```
4. サーバ側で「接続の編集」→「<編集>...」より、IPv4設定を以下のように編集する
    - <自動> → <手作業>
    - アドレス: [IPv4アドレス第3オクテットまで].111/24
        - (例) 192.168.30.111/24
    - ゲートウェイ: [デフォルトゲートウェイ]
        - (例) 192.168.30.1
    - DNSサーバー: [IPv4アドレス第3オクテットまで].111、8.8.8.8
        - (例) 192.168.30.111, 8.8.8.8
5. 「OK」→「戻る」→「接続をアクティベートする」
6. 「<解除>」→「<アクティベート>」
    - <解除>に戻っていたらOK
7. クライアント側で「接続の編集」→「<編集>...」より、IPv4設定を以下のように編集する
    - <自動> → <手作業>
    - アドレス: [IPv4アドレス第3オクテットまで].222/24
        - (例) 192.168.30.222/24
    - ゲートウェイ: [デフォルトゲートウェイ]
        - (例) 192.168.30.1
    - DNSサーバー: [IPv4アドレス第3オクテットまで].111、8.8.8.8
        - (例) 192.168.30.111, 8.8.8.8
8. クライアント側で、手順4,5,6を行う
9. サーバ側とクライアント側双方で、IPアドレスを取得し、反映されているか確認する
    ```
    [root@h111 ~]# ip a
    ```
    ```
    [root@h222 ~]# ip a
    ```
10. サーバ側とクライアント側双方で、通信が行われるか確認する
    - 応答があればOK
    ```
    [root@h111 ~]# ping [IPv4アドレス第3オクテットまで].222
    ```
    ```
    [root@h222 ~]# ping [IPv4アドレス第3オクテットまで].111
    ```

なお、以降はIPアドレスを以下と**仮定**して記載している
- サーバ側: **192.168.30.111**
- クライアント側: **192.168.30.222**


## 2. Webサーバの構築手順
### 2-1. サーバ側
1. サーバ側でapacheのインストール
    ```
    [root@h111 ~]# dnf -y install httpd
    ```
2. systemctl コマンドにてサーバに適応、自動起動に設定
    ```
    [root@h111 ~]# systemctl status httpd
    ```
    ```
    Apacheが起動していないことを確認(disable,dead)
    ```
    ```
    [root@h111 ~]# systemctl start httpd
    ```
    ```
    [root@h111 ~]# systemctl enable httpd
    ```
3. サーバ側がFirefoxにてwebページが参照できるかを確認（IPアドレス、ホスト名とドメイン名で検証）
    ```
    http://192.168.30.111
    ```
    ```
    http://h111.r-exercise.com
    ```
4. webページ”millenniums.html”を/var/www/html/下にtest pageとして作成(内容グループ名およびメンバーを記載)
    ```
    [root@h111 ~]# vi /var/www/html/○○.html
    ```
    ↓ 〇〇.htmlの記述例
    ```=
    <!doctype html>
    <html>
        <head>
            <title>top page</title>
        <body>
            <h1>。。。</h1>
            <h2>・・・</h2>
                ・
                ・
                ・
        </body>
    </html>
    ```
5. Apacheの設定ファイル/etc/httpd/conf/httpd.confをバックアップを取ったうえで編集
    ```
    [root@h111 ~]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.bk.conf
    ```
    ```
    [root@h111 ~]# vi /etc/httpd/conf/httpd.conf
    ```
    
6. DirectoryIndexをindex.htmlをmillenniums.htmlに変更し"apachectl -t"で文法確認、syntax okとなればappacheを再起動、エラーが出れば文法の見直し
    ![スクリーンショット 2024-05-20 113645](https://hackmd.io/_uploads/HJqIdNum0.png)

    ```
    [root@h111 ~]# apachectl -t
    ```
    ```
    [root@h111 ~]# systemctl restart httpd
    ```
7. 念のためhtmlファイルのバックアップを作成
    ```
    [root@h111 ~]# cp /var/www/html/○○.html /var/www/html/○○.bk.html
    ```
8. Webサーバ及びクライアントと通信できるかを確認
    - 応答があればOK
    ```
    [root@h111 ~]# ping 192.168.30.111
    ```
    ```
    [root@h111 ~]# ping 192.168.30.222
    ```
9. Firefoxブラウザを開き、Webサイトが出力されるかを確認
    ```
    http://192.168.30.111
    ```

### 2-2. クライアント側
1. Firefoxブラウザを開き、Webサイトが出力されるか確認
    ```
    http://192.168.30.111
    ```


## 3. DNSサーバの構築手順
### 3-1. サーバ側
1. 「dnf -y install bind」をサーバ側で実行しBindのインストール
    ```
    [root@h111 ~]# dnf -y install bind
    ```
2.  systemctl コマンドにてサーバに適応、自動起動に設定
    ```
    [root@h111 ~]# systemctl start named
    ```
    ```
    [root@h111 ~]# systemctl enable named
    ```
    ```
    [root@h111 ~]# systemctl status named
    ```
3.  /etc/named.confのバックアップを取ったうえで編集、listen portに自IPアドレスを追記し、allow-queryをanyに、dnssec-validationをnoに変更
    ```
    [root@h111 ~]# cp /etc/named.conf /etc/named.bk.conf
    ```
    ```
    [root@h111 ~]# vi /etc/named.conf
    ```
    ![ああああ](https://hackmd.io/_uploads/ByHE54dQ0.png)

    

    

4.  named-checkconfにより/etc/named.confの文法ミスを確認、namedを再起動
    ```
    [root@h111 ~]# named-checkconf /etc/named.conf
    ```
    ```
    [root@h111 ~]# systemctl restart httpd
    ```
5.  再度named.confを開きゾーン情報の定義
    ```
    [root@h111 ~]# vi /etc/named.conf
    ```
    ↓ named.confの最後の行に以下を追加
    ```
    zone "r-exercise.com" IN {
        type master;
        file "named.r-exercise.com";
    };
    ```
6.  /var/named/にゾーンファイルnamed.r-exercise.comを作成
    ```
    [root@h111 ~]# vi /var/named/named.r-exercise.com
    ```
    ↓ named.exercise.comの中身
    ```=
    $TTL 1D
    $ORIGIN r-exercise.com.
    @        IN    SOA        ns    root (
                   2024052001       ; Serial
                   8H               ; Refresh
                   4H               ; Retry
                   1W               ; Expire
                   1D )             ; Negative
             IN    NS         ns
             IN    MX    10   mail
    ns       IN    A          192.168.30.111
    mail     IN    A          192.168.30.111
    h111     IN    A          192.168.30.111
    h222     IN    A          192.168.30.222
    www      IN    CNAME      h111
    ```
7.  ゾーンファイルの文法を確認
    ```
    [root@h111 ~]# named-checkzone r-exercise.com /var/named/named.r-exercise.com
    ```
8.  namedを再起動
    ```
    [root@h111 ~]# systemctl restart named
    ```
9.  ゾーンファイルが機能しているかを確認
    - 応答があればOK
    Webサーバー側
    ```
    [root@h111 ~]# ping h111.r-exercise.com
    ```
    DNSサーバー側
    ```
    [root@h111 ~]# ping www.r-exercise.com
    ```
10. Firefoxブラウザを開き、Webサイトが出力されるか確認
    ```
    http://192.168.30.111
    ```
    ```
    http://h111.r-exercise.com
    ```
    ```
    http://www.r-exercise.com
    ```

### 3-2. クライアント側
1.  サーバ側で記述したゾーンファイルが機能しているかを確認
    - 応答があればOK
    ```
    [root@h222 ~]# ping h111.r-exercise.com
    ```
    ```
    [root@h222 ~]# ping www.r-exercise.com
    ```
2.  名前解決がうまくいっているかをFirefox上で確認
    ```
    http://192.168.30.111
    ```
    ```
    http://h111.r-exercise.com
    ```
    ```
    http://www.r-exercise.com
    ```
## 4. プロキシーサーバーの構築手順
1.  Firewallを起動し、自動起動するように設定
    ```
    [root@h111 ~]# systemctl enable firewalld
    ```
    ```
    [root@h111 ~]# systemctl start firewalld
    ```
2.  Firewallが現在許可しているサービスを表示
    ```
    [root@h111 ~]# firewall-cmd --list-all
    ```
3.  クライアント側でFirefoxブラウザを開き、Webサイトが出力されるか確認
    - アクセスできなければ、Firewallが機能している
    - 履歴はあらかじめ削除しておく
    ```
    http://192.168.30.111
    ```
    ```
    http://www.r-exercise.com
    ```
4.  httpサービスを許可する
    ```
    [root@h111 ~]# firewall-cmd --add-service=http
    ```
5.  クライアント側でFirefoxブラウザを開き、Webサイトが出力されるか確認
    - アクセスできれば、Firewallのサービス許可が反映されている
    ```
    http://192.168.30.111
    ```
6.  dnsサービスを許可する
    ```
    [root@h111 ~]# firewall-cmd --add-service=dns
    ```
7.  クライアント側でFirefoxブラウザを開き、Webサイトが出力されるか確認
    - アクセスできれば、Firewallのサービス許可が反映されている
    ```
    http://www.r-exercise.com
    ```
8.  変更内容を永続保存する
    ```
    [root@h111 ~]# firewall-cmd --runtime-to-permanent
    
    ```
    
    
    
## 5. OpenSSHでのキーペアの作成
### 5-1. サーバ側
    ```
    [server@h111 ~]# mkdir ~/.ssh
    ```
### 5-2. クライアント側
1.    
    ```
    [client@h222 ~]$ ssh-keygen
    ```
2.
    ```
    [client@h222 ~]$ scp ~/.ssh/id_rsa.pub server@192.168.30.111:~/.ssh/authorized_keys
    ```
3.
    ```
   [client@h222 ~]$ ls -l ssh
   ```