Hyper-VにUbuntu 22.04 LTSを入れた際の初期設定
![](https://asobo.fun/wp-content/uploads/2024/03/image-1024x766.jpg)
インストール後の初期設定一覧
いろいろ初期設定を行わないと不便な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