Hyper-VにUbuntu 22.04 LTSを入れた際の初期設定

インストール後の初期設定一覧

いろいろ初期設定を行わないと不便なUbuntuですが、新しいインスタンスを作るたびに調べるのはとても面倒なのでまとめました。
完全に自分好みな設定となっておりますのでお好みで調節してください。
また、ブログの最後にこれらを全自動でやってくれるスクリプトがありますので、ぜひご活用ください。

Sudoパスワード無効化

sudo nano /etc/sudoers

{USERNAME_HERE} ALL=(ALL) NOPASSWD:ALL


CTRL+ s
CTRL+ x

Authentication Required 無効化

sudo nano /etc/polkit-1/localauthority/50-local.d/99-sudonopassword.pkla

[No sudo password]
Identity=unix-group:sudo
Action=*
ResultActive=yes
ResultInactive=yes
ResultAny=yes


CTRL+ s
CTRL+ x
再起動で適用

画面サイズ変更

sudo nano /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1920x1080"
GRUB_CMDLINE_LINUX="quiet splash video=hyperv_fb:1920x1080"


sudo update-grub
再起動で適用

スクリーンセーバー無効化

Settings > Privacy > Screen

Blank Screen Delay = Never
Automatic Screen Lock = False
Lock Screen on Suspend = False

ダークモード有効化

Settings > Appearances
Dark

パッケージの自動更新を無効

sudo nano /etc/apt/apt.conf.d/20auto-upgrades

APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

//"${distro_id}:${distro_codename}-security"

必要なものインストール

sudo apt update && sudo apt upgrade -y && sudo apt install -y nginx-extras openssh-server glances iftop mysql-server prometheus

SSH 設定

sudo nano /etc/ssh/sshd_config
#Port 22 -> Port 10022
#PermitRootLogin prohibit-password -> PermitRootLogin yes
CTRL + s
CTRL + x

sudo nano /root/.ssh/authorized_keys
{paste public key}
CTRL + s
CTRL + x

sudo nano ~/.ssh/authorized_keys
{paste public key}
CTRL + s
CTRL + x

sudo /etc/init.d/ssh restart

UFW 設定

sudo ufw enable
sudo ufw default deny
sudo ufw allow 10022/tcp

もしもローカル通信のみを受け付けるのであれば、以下のコマンドで設定できます。
sudo ufw allow from 192.168.0.0/24 to any port 10022 proto tcp

sudo nano /etc/default/ufw
IPV6=yes -> no
CTRL + s
CTRL + x

vim エディターバグ修正

sudo nano ~/.vimrc

set nocompatible

CTRL + s
CTRL + x

IP固定

ip aでMACアドレス表示。
ルーター側でIP固定。

まとめ

お疲れさまでした。ほかに追加を忘れている項目等ございましたら是非お知らせください。

なんですって?!これらのコマンドを打つのもめんどくさいですと……?!
そんな方へ自動化スクリプトを用意しました。
コピペし、script.shファイルでDesktopに保存。
chmod +x ~/Desktop/script.sh で実行ファイル化。
sh ~/Desktop/script.shで実行出来ます。

#!/bin/bash

PUBLIC_KEY=""

# Get MAC address and print
MAC_ADDRESS=$(ip link | grep ether | awk '{print $2}')
echo "MAC Address: $MAC_ADDRESS"

sudo sed -i 's/IPV6=yes/IPV6=no/' /etc/default/ufw

# Install necessary packages
sudo apt update && sudo apt upgrade -y && sudo apt install -y nginx-extras openssh-server glances iftop mysql-server baobab prometheus

# Ask for public key if empty
while [ -z "$PUBLIC_KEY" ]; do
    read -p "Please enter your public key: " PUBLIC_KEY
done

# Disable sudo password prompt
USERNAME=$(whoami)
sudo sh -c "echo '$USERNAME ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers"

# Disable authentication requirement
echo "[No password prompt]
Identity=unix-group:sudo
Action=*
ResultActive=yes
ResultInactive=yes
ResultAny=yes" | sudo tee /etc/polkit-1/localauthority/50-local.d/99-sudonopassword.pkla > /dev/null

# Update grub for screen resolution
sudo sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"/GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1920x1080"/' /etc/default/grub
sudo sed -i 's/GRUB_CMDLINE_LINUX="quiet splash"/GRUB_CMDLINE_LINUX="quiet splash video=hyperv_fb:1920x1080"/' /etc/default/grub
sudo update-grub

# Disable screensaver
gsettings set org.gnome.desktop.session idle-delay 0
gsettings set org.gnome.desktop.screensaver lock-enabled false
gsettings set org.gnome.desktop.lockdown disable-lock-screen true
gsettings set org.gtk.Settings.FileChooser show-hidden true

# Enable dark mode
gsettings set org.gnome.shell.ubuntu color-scheme prefer-dark

# Disable automatic package updates
sudo bash -c 'echo "APT::Periodic::Update-Package-Lists \"0\";" > /etc/apt/apt.conf.d/20auto-upgrades'
sudo bash -c 'echo "APT::Periodic::Unattended-Upgrade \"0\";" > /etc/apt/apt.conf.d/50unattended-upgrades'

# SSH configuration
sudo sed -i 's/#Port 22/Port 10022/' /etc/ssh/sshd_config
sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

# Configure authorized SSH keys for root and current user
sudo mkdir -p /root/.ssh/
echo "$PUBLIC_KEY" | sudo tee -a /root/.ssh/authorized_keys > /dev/null
sudo mkdir -p ~/.ssh/
echo "$PUBLIC_KEY" | sudo tee -a ~/.ssh/authorized_keys > /dev/null
sudo /etc/init.d/ssh restart

# UFW configuration
sudo ufw enable
sudo ufw default deny
sudo ufw allow from 192.168.0.0/24 to any port 10022 proto tcp
sudo ufw allow from 192.168.0.0/24 to any port 9090 proto tcp

# Fix vim editor bug
echo 'set nocompatible' | tee -a ~/.vimrc > /dev/null

# Prompt for reboot
read -p "Press enter to reboot the system... " dummy-variable
sudo reboot

コメントはお気軽にどうぞ!