1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ubuntuを入れたサーバの環境構築をする

Last updated at Posted at 2024-12-18

※この記事はUdon Advent Calendar 2024 - Adventarの19日目の記事です。

はじめに

この記事では、Ubuntuを入れたサーバの環境構築を行います。とりあえず思いついた「sshの設定」「IPアドレスの固定」「公開鍵認証によるログインの設定」「ufwの設定」「Apacheのインストールと設定」「Dockerのインストールと設定」「Tailscaleのインストールと設定」を行います。

事前にサーバを何らかの形でインターネットに接続しておきましょう。

sshの設定

まずはこのサーバにsshでログインできるようにします。

sudo apt update
sudo apt install ssh

その後、IPアドレスを確認します。

ip a

いろいろ書いてありますが、inetの後に書かれているIPアドレスがLAN内でのIPアドレス(クラスが合っているか確認。10か172か192.168から始まるはず)です。これを控えておきましょう。以下では仮にw.w.w.wとします。

わかりづらい場合は、まず以下のコマンドを使ってnet-toolsをインストールします。

sudo apt install net-tools

その後、以下のコマンドを使ってIPアドレスを確認します。

ifconfig

こうするといくらか見やすくなります。

また、ネットマスクも確認しておきましょう。IPアドレスの固定をする際に必要になります。

では、sshでログインしてみましょう。同一ネットワーク内のクライアント機で以下のコマンドを打ち込みます。

ssh [username]@w.w.w.w

パスワード認証が入るので、パスワードを入力します。これでログインできればOKです。

IPアドレスの固定

次に、このサーバのIPアドレスを固定します。IPアドレスはDHCPによって割り当てられるわけですが、クライアントならともかくサーバはIPアドレスが変わると困ることが多いです。なので、固定IPアドレスにしておきましょう。

以下のコマンドで設定ファイルを作成します。

sudo nano /etc/netplan/99_config.yaml

以下の内容を記述します。まずはWi-Fiを使う場合の例です。

network:
  version: 2
  renderer: networkd
  wifis:
    network-name:
      dhcp4: false
      access-points:
        "SSID":
          password: "password"
      addresses:
        - x.x.x.x/z
      routes:
        - to: default
          via: y.y.y.y
      nameservers:
        addresses: [y.y.y.y]

まず、network-nameに関しては、ifconfigip aで確認したネットワーク名を指定します。

dhcp4はDHCPを使うかどうかを指定します。falseにして固定IPアドレスを使うようにします。

access-pointsはWi-Fiの設定です。SSIDにはWi-Fiの名前を、passwordにはパスワードを指定します。

x.x.x.x/zではサーバに割り当てるIPアドレスとネットマスクを指定します。

zの数字については、ネットマスクが1になっているビットの数です。例えば、255.255.255.0の場合は24です。

また、y.y.y.yはゲートウェイのIPアドレスです。nameserversにはDNSサーバのIPアドレスを指定します。基本的にはゲートウェイと同じになるはずです。これだけで大丈夫ですが、GoogleのDNSサーバを使って複数個指定してもOKです。

また、イーサネットを使う場合は以下のようになります。

network:
  version: 2
  renderer: networkd
  ethernets:
    network-name:
      dhcp4: false
      addresses: [x.x.x.x/z]
      routes:
        - to: default
          via: y.y.y.y
      nameservers:
        addresses: [y.y.y.y]

保存できたら、権限を変更して、設定を反映させます。

sudo chmod 600 /etc/netplan/99_config.yaml
sudo netplan apply

反映後、ssh接続していた場合はいったん切断されます。新しいIPアドレスで再接続してください。

ssh [username]@x.x.x.x

公開鍵認証によるログインの設定

パスワード認証は面倒なので、公開鍵認証によるログインを設定します。

まず、クライアント機で以下のコマンドを実行します。

cd ~/.ssh
ssh-keygen -b 4096 -f id_server

id_serverは任意の名前です。わかりやすいようにサーバの名前にしておきましょう。-bはビット数で、多いほど安全なので4096にしておきます。

こうすると、公開鍵と秘密鍵が生成されます。前者はid_server.pub、後者はid_serverです。前者の内容をコピーしておきましょう。

次に、configファイルを編集します。以下の形で記述しましょう。

Host [hostname]
  HostName x.x.x.x
  Port 22
  IdentityFile ~/.ssh/id_server
  User [username]

hostnameは適当に決めて大丈夫です。

そして、サーバにログインし、以下のコマンドを実行します。

mkdir .ssh
cd .ssh
echo [your_public_key] >> authorized_keys

.sshディレクトリやauthorized_keysファイルは元から存在する場合があります。

これで設定は完了です。クライアント機で以下のコマンドを実行してログインしてみましょう。

ssh [hostname]

パスワードを聞かれることなくログインできれば成功です。

ufwの設定

自宅内で使う場合はあまり必要ないかもしれませんが、セキュリティのためにもufwを設定しておきましょう。

まずはufwをインストールします。元から入っている場合もあります。

sudo apt install ufw

次に、以下のコマンドで設定をします。まずはssh接続が切れないようにします。

sudo ufw default deny
sudo ufw allow 22
sudo ufw enable

まず全てを拒否するように設定し、その後ssh接続に用いる22番ポートを許可します。最後に有効化します。有効化を最後にやらないとssh接続が切れ、再接続できなくなってしまいます。

不正アクセス対策で、ssh接続に用いるポートを変更する場合は、それに応じたポートを許可してください。

Apacheのインストールと設定

まずはApacheをインストールします。

sudo apt install apache2

インストール後、以下のコマンドでApacheを起動します。

sudo systemctl start apache2

そして、以下のコマンドで自動起動を設定します。

sudo systemctl enable apache2

これでApacheが自動起動するようになります。

次に、Apacheが表示するページが確認できるようにします。まずはファイアウォールの設定をします。httpプロトコルとhttpsプロトコルが用いるポートを開けます。

sudo ufw allow 80
sudo ufw allow 443

再度に有効化します。

sudo ufw enable

同ネットワーク内で次のURLにアクセスしてみましょう。

http://x.x.x.x

ApacheのDefaultページが表示されれば成功です。

/var/www/html/index.htmlを編集することで、表示されるページを変更できます。

Dockerのインストールと設定

Dockerを使うと、いろいろホスティングすることが楽になります。まずはDockerをインストールしましょう。

以下の一連のコマンドを実行します。

sudo apt update
sudo apt install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
    $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
    sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo groupadd docker
sudo usermod -aG docker [username]
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

完了後、以下のコマンドを実行してDockerが正しくインストールされたか確認しましょう。

docker --version
docker-compose --version

それぞれバージョンが表示されれば成功です。docker-composeがなかったら、以下のコマンドを実行してインストールしましょう。

sudo apt install docker-compose

2025/02/16追記

上記の方法でうまくいかない場合、snapを用いてインストールしても良いようです。

sudo snap install docker

というかこっちのほうが圧倒的に楽なので、こちらを推奨します(docker-composeも同時に入るらしい)。

Gitのインストールと設定

Gitも入れておきましょう。

sudo apt install git

インストール後、以下のコマンドで設定をします。

git config --global user.name [username]
git config --global user.email [email]

[username][email]は適宜変更してください。

適当なリポジトリをクローンしてみて、正しくクローンできていたら成功です。

NetDataのインストールと設定

リソース管理のために、NetDataをインストールしておきます。

手順は以下の通り。

sudo apt install netdata
sudo nano /etc/netdata/netdata.conf

ここで、bind socket to IPをそのサーバのIPアドレスにしておきます。xxx.xxx.xxx.xxx形式で指定します。

それが終わったら、以下のコマンドでnetdataを有効化すればOKです。

sudo systemctl restart netdata

デフォルトでは19999番ポートでホストされるので、以下のコマンドによりufwに穴を開けておきます。

sudo ufw allow 19999
sudo ufw enable

適当なWebブラウザでxxx.xxx.xxx.xxx:19999を指定すると、NetDataのサイトが表示されます。

Tailscaleのインストールと設定

この記事でやったように、Tailscaleをセットアップします。これでこのサーバに外部からもアクセスできるようになり、遠隔保守が可能になります。

詳しくはリンク先を参照してください。

おわりに

サーバの環境構築ができました。ここから、各サーバに合わせて様々なアプリケーションなどを導入していくことになります。

自分が使うサーバの内容はこれからもちょくちょく記事にするつもりです。

ではまた。明日の記事でお会いしましょう。

参考文献

Ubuntu 22.04 LTSで固定IPアドレスの設定 #Linux - Qiita

Ubuntu の IP アドレスを固定する3|荒川仁志

Ubuntu で Docker のインストール #docker-compose - Qiita

ubuntu 24.04 LTSで自宅サーバー構築(NetDataの設定) #Linux - Qiita

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?