ずいぶん昔にCentOS 7ベースのVPS設定(さくらVPSセキュリティ設定)記事を書きましたが、
CentOSではなくUbuntuを使うようになっていて、Docker等を使って管理するようになったので、最近している基本的なサーバー立ち上げ方法をまとめておきます。
ホスト名がremoteになっているのがリモートサーバーで行う処理、localhostになってるのがローカルマシンで行う処理です。
[]で囲われている部分は実際の値に置き換えてください。
目次
OS & SSH 初期設定・セキュリティ設定
SSHで接続
ssh root@[ホスト名]
SSHで接続
ssh root@[ホスト名]
一般ユーザを追加
adduser [ユーザー名]
※CentOSではuseraddコマンドを使って新規ユーザーを作りましたが、Ubuntuではadduserコマンドを使います。useraddだとホームディレクトリが作成されないので注意
sudoに所属させる
usermod -aG sudo [ユーザー名]
※CentOSではwheelグループに所属させることでsudoできるようになりましたが、Ubuntuではsudoグループに所属させるとsudoできるようになります。
SSHの設定
vim /etc/ssh/sshd_config
rootログインを禁止
PermitRootLogin yes
↓
PermitRootLogin no
システムアップデート
apt update
apt upgrade
- 1回サーバー再起動しておく。
一般ユーザーでSSH接続
ssh [ユーザー名]@[ホスト名]
SSHに公開鍵認証設定
ローカルで暗号鍵作成
ssh-keygen -t rsa
//Enter file in which to save the key: [暗号鍵ファイルを置く場所]
SCPでサーバーへ転送
scp [暗号鍵ファイルを置いた場所] [ユーザー名]@[ホスト名]:~/id_rsa.pub
サーバーで暗号鍵設定
cd ~/
mkdir .ssh
chmod 700 .ssh
cat id_rsa.pub > .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
rm -f id_rsa.pub
ローカルでSSHの設定ファイル作成
vim ~/.ssh/config
Host [設定名]
HostName [サーバーのホスト名]
IdentityFile ~/.ssh/[鍵のファイル名]
User [ユーザー名]
これで
ssh [設定名]
でssh接続できる
公開鍵認証でSSH接続
ssh [設定名]
SSHの設定
sudo vim /etc/ssh/sshd_config
パスワードでのログインを禁止
PasswordAuthentication yes
↓
PasswordAuthentication no
- 1回サーバー再起動しておく。
visudoのエディタをvimに変更
sudo update-alternatives --set editor /usr/bin/vim.basic
sudoをパスワードなしで使用できるように
sudo visudo -f /etc/sudoers.d/[ユーザー名]
[ユーザー名] ALL=(ALL) NOPASSWD:ALL
Docker環境の構築
必要なパッケージのインストール
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
リポジトリの追加
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 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 Engineのインストール
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
dockerに所属させる
sudo usermod -aG docker [ユーザー名]
Docker Composeのインストール
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
dockerに所属させる
sudo usermod -aG docker [ユーザー名]
参考
OS&SSH設定
- https://ayame.space/2017/04/security-settings-for-sakuravps/
- https://qiita.com/koara-local/items/35b999631b6ab41fdc9f
- https://qiita.com/RyodoTanaka/items/e9b15d579d17651650b7
- https://qiita.com/ngyuki/items/88d0f71601e05f239750
Docker構築
- https://docs.docker.com/engine/install/ubuntu/
- https://docs.docker.com/compose/install/