Ubuntu 20.04 LTS サーバ構築 – 初期セットアップ
2022.05.01
この記事は最終更新日から1年以上が経過しています。
VPSサーバなどレンタルで使用するにあたって、Ubuntu 20.04サーバを構築するためのステップを最小限で構築できるようにまとめました。
個人的に利用するために最小限で、nginx、Let’s Encryptなど設定しTLS化されたwebサーバー構築
Postfix、Dovecotなど設定を行いGmailなどにも送信できるセキュアなメールサーバ構築までがゴールです。各コマンド、ツールの詳細は省略させていただき、コマンド、設定中心に記載しております。
DigitalOceanやconohaなどVPSサーバをレンタル時にUbuntu 20.04 LTSがインストールできるので、VPSサーバをレンタルしUbuntu 20.04 LTSをインストールし設定していく想定で進めます。
環境
- OS Ubuntu 20.04 LTS
メニュー
- Ubuntu 20.04 LTS サーバ構築 – 初期セットアップ
- Ubuntu 20.04 LTS サーバ構築 – Nginxインストール
- Ubuntu 20.04 LTS サーバ構築 – Let’s EncryptでSSL/TLS化
- Ubuntu 20.04 LTS サーバ構築 – Postfixインストール
- Ubuntu 20.04 LTS サーバ構築 – Dovecotインストール
- Ubuntu 20.04 LTS サーバ構築 – Postfix SASL認証
- Ubuntu 20.04 LTS サーバ構築 – Postfix Let’s EncryptでTLS化
- Ubuntu 20.04 LTS サーバ構築 – DKIM、DMARCを設定する
ユーザーの作成
rootユーザーとしてssh接続して、サーバーにログインします。
your_server_ipは、パブリックIPアドレスもしくは、取得したドメイン。
$ ssh root@your_server_ip
パスワード認証を使用している場合は、ログインするためのrootパスワードを入力します。
rootユーザーは、Linux環境では非常に幅広い権限を持つ管理者ユーザーなので、新しくユーザー作成し、そちらを利用するようにします。
例として、webappと呼ばれる新しいユーザーを作成します。(ユーザー名は任意)
# adduser webapp
いくつか質問されますが、アカウントのパスワードから入力。必要に応じて追加情報を入力します。任意のフィールドはENTERキーでスキップ可能。
管理権限を付与
先ほど作成したユーザーがsudoコマンドを使用出来る様にsudo グループに追加します。
# usermod -aG sudo webapp
ファイアウォールの設定
UFW アプリケーション一覧確認
# ufw app list
Output Available applications: OpenSSH
ファイアウォール SSH接続を許可
# ufw allow OpenSSH
ファイアウォールを有効
# ufw enable
yと入力してから、ENTER
ファイアウォール状態確認
# ufw status
Output Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)
通常ユーザーの外部アクセスを有効化
日常的に利用する通常ユーザーがSSH接続できるようにします。
rootアカウントがパスワード認証の場合と、SSHの鍵認証を行っている場合で接続が異なります。
パスワード認証の場合
SSHを試みるとパスワードを求められるので入力。
$ ssh webapp@your_server_ip
ログイン後、sudoコマンドはセッションごとにパスワードが必要となる。
$ sudo command_to_run
パスワードでの認証は許可しない形が望ましい。
DigitalOceanのDropなどは初期で許可されていない様子。
SSHの鍵認証の場合
rootアカウントのサーバー上のローカル公開鍵のコピーを作成したユーザーの~/.ssh/authorized_keysファイルに追加するため、rsyncコマンドを用いて.sshディレクトリを丸ごとコピーします。
# rsync --archive --chown=webapp:webapp ~/.ssh /home/webapp
新規ターミナルを立ち上げ、作成したユーザー名でSSHを使用して接続します。
$ ssh webapp@your_server_ip
セッションごとに初めてsudoを使用する場合、通常ユーザーのパスワードが必要(以降は定期的に必要)。
$ sudo command_to_run
DNSレコード設定
お名前ドットコムなどでドメイン取得していれば、
example.com と、www.example.com を持つAレコード として追加します。
以下のDNSレコードを追加
タイプ | 名称 | TTL | 値 |
---|---|---|---|
A(通常) | @ | 3600 | (VPSのIPアドレス) |
A(通常) | www | 3600 | (VPSのIPアドレス) |
続いて、Nginxの設定を行っていきます。