Onkサーバー

2024年9月11日 (水) 16:07時点におけるShudo (トーク | 投稿記録)による版 (アプリケーション)

目次

Ubuntu server インストールメディアの作成

  1. Ubuntu server .isoファイルをダウンロードする
  2. Fedora Media Writer MacでUSBメモリーに.isoファイルを書き込み 起動メディアを作る
  3. LANケーブルを挿しとく
  4. 起動メディアをパソコンに挿し 電源を入れ F7キーを押して boot managerを表示し USBから起動する

インストール

  1. デフォルトのubuntu serverをインストールする minimizedはVimとか入っていないので選択しない
  2. ipアドレスの固定はあとからする
  3. ストレージ設定
    1. 1stストレージ500GBに16GBのswap領域を設定したら 自動でmaxで1GBちょっとの/bootパテーションが表示されたのでそれに従った 残りすべてを/パテーションにした
    2. 2ndストレージ2TBは/mnt/2nd_storageとしてすべてデータ保存ボリュームにする
    3. もしも2ndストレージと同じものがあればRIDE1を組みたい
  4. user nameはonk277とし システムをいじるときのユーザーにする 管理人二人のユーザーはあとから作る
  5. proはスキップする
  6. OpenSSH serverは後でインストールする
  7. アプリケーションはあとからインストールする
  8. インストール完了

アップデート

sudo apt update && sudo apt upgrade

ネットワーク設定

確認

ip addr

/etc/netplan/ディレクトリの設定ファイルを編集してipアドレ スを固定する
DNSサーバーを192.168.1.40に設定する

network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: no
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 192.168.1.40

ユーザー追加

インストール時のユーザーはそのままにして自分ともう一人のユーザーを追加する

sudo adduser user1
sudo adduser user2

新しいユーザーに管理者権限を付与

sudo usermod -aG sudo user1
sudo usermod -aG sudo user2

ファイアーウォール

UFW(Uncomplicated Firewall)を使用してポートを開ける:

sudo ufw allow 8080

ファイアウォールのステータスを確認する:

sudo ufw status

OpenSSHサーバーをインストール

まず、パッケージリストを最新の状態に更新

sudo apt update

OpenSSHサーバーのインストール

sudo apt install openssh-server

SSHサービスの起動と有効化

sudo systemctl start ssh
sudo systemctl enable ssh

SSHサービスのステータス確認

sudo systemctl status ssh

「active (running)」と表示されていれば、SSHサーバーは正常に動作

SSH接続

クライアントから秘密鍵と公開鍵でSSH接続する

秘密鍵と公開鍵の役割

秘密鍵(Private Key)
場所: クライアントマシンに保持します。
役割: 認証のために使用されます。秘密鍵は厳重に管理し、他人に知られないようにする必要があります。
ファイル名の例: ~/.ssh/id_rsa

公開鍵(Public Key)
場所: サーバーマシンに配置します。
役割: サーバー側でクライアントの認証を行うために使用されます。公開鍵は秘密ではないので、他人と共有しても問題ありません。
ファイル名の例: ~/.ssh/id_rsa.pub
配置場所: サーバーのユーザーのホームディレクトリにある~/.ssh/authorized_keysファイルに追加します。

クライアント側で新しく鍵を作る -cオプションで鍵に指紋を付ける サーバー側に公開鍵を書き込んだとき誰の鍵かわかるようになる

ssh-keygen -t rsa -b 4096 -C "shudo@pokpok.jp"       

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/jq/.ssh/id_rsa): /Users/jq/.ssh/id_rsa_onk-server ※既存の鍵があるので新しい鍵名にする
Enter passphrase (empty for no passphrase): ※パスワードを入力せずにそのままエンターを押す ssh接続のときパスワード無しで接続できる
Enter same passphrase again: 
Your identification has been saved in id_rsa_onk-server
Your public key has been saved in id_rsa_onk-server.pub
The key fingerprint is:
SHA256:LePqJZ0yH4T8lhE2/k1TKHkML8ONjrMBz1kPn6UH+uQ shudo@pokpok.jp
The key's randomart image is:
+---[RSA 4096]----+
|          .      |
|         . B .   |
|      . + X B o  |
|     . B O X *   |
|      o S + O .  |
|       = @ * o   |
|      + @ . E    |
|       O .       |
|     .o .        |
+----[SHA256]-----+

クライアント側に新しい秘密鍵と公開鍵ができた

id_rsa_onk-server
id_rsa_onk-server.pub

新しい公開鍵(~/.ssh/id_rsa_onk-server.pub)をサーバーにコピーする

ssh-copy-id -i ~/.ssh/id_rsa_onk-server.pub shudo@192.168.1.40

クライアント側の~/.ssh/config ファイルを使用してSSH接続設定を書く

Host onk-server
    Hostname 192.168.1.40
    port 22
    User shudo
    IdentityFile ~/.ssh/id_rsa_onk-server

パスワードなしで接続できる

jq@MacBook-Pro % ssh onk-server
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-41-generic x86_64)

パスワード認証を禁止する /etc/ssh/sshd_config

PasswordAuthentication no
KbdInteractiveAuthentication no

BIND9のインストール

sudo apt update
sudo apt install bind9

/etc/bind/named.conf.local

zone "pokpok.jp" {
    type master;
    file "/etc/bind/db.pokpok.jp";
};

/etc/bind/db.pokpok.jp

$TTL    604800
@       IN      SOA     ns.pokpok.jp. root.pokpok.jp. (
                              2         ; Serial  
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.pokpok.jp.
ns      IN      A       192.168.1.40
ssh     IN      A       192.168.1.40

DHCPサーバのインストール

sudo apt update
sudo apt install isc-dhcp-server

/etc/dhcp/dhcpd.conf

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;
    option domain-name-servers 192.168.1.40, 8.8.8.8;
    option domain-name "pokpok.jp";
    option routers 192.168.1.1;
    option broadcast-address 192.168.1.255;
    default-lease-time 600;
    max-lease-time 7200;
}

DHCPサーバを起動し、自動起動を有効にします

sudo systemctl start isc-dhcp-server
sudo systemctl enable isc-dhcp-server

状態確認

sudo systemctl status isc-dhcp-server

DHCPサーバを再起動

sudo systemctl restart isc-dhcp-server

Docker のインストール

リポジトリの更新と依存関係のインストール:

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common

Docker GPG キーの追加:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Docker リポジトリの追加:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Docker のインストール:

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

Docker の起動と自動起動の設定:

sudo systemctl start docker
sudo systemctl enable docker

アプリケーション