KAGOYA(カゴヤ)のVPSでUbuntuを初期設定しよう

2018/08/16UbuntuUbuntu, VPS

おはこんばんちは。
何だか仮想通貨のWalletのことばっかり書いてる気がするので、たまにはしっかりとVPSのことを。

よくある?個人的忘備録として。

サーバーの環境

今回も使用するサーバーは以下の通り。

SERVER : KAGOYA VPS (KVM)
SPEC : 2Core / 2GB / 30GB SSD
OS : Ubuntu 16.04.4 LTS

いつものです()



こちらのVPSで、Ubuntuの初期設定を行いたいと思います。

初期設定あれこれ

いつものおまじない

なにはともあれ、まずやっときます。

apt uodate
apt upgrade -y

hostnameの変更

sudo hostnamectl set-hostname 

初期状態でKAGOYAのVPSにログインするとこんな表示になっています。

root@xxx-xxx-xxx-xxx:~# 

この@~がhostnameですね。
だいたいIPが表示されていることが多いのかな?
いわゆる「localhost.localdomain」って部分ですね。

適当なhostnameを設定し、変更されているか確認してみます。

root@xxx-xxx-xxx-xxx:~# hostnamectl set-hostname hogehoge-vps
root@xxx-xxx-xxx-xxx:~# hostnamectl
   Static hostname: hogehoge-vps
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 87ad87dee8e67bf45c65095357b54f0e
           Boot ID: 76f92abef0a542a1ae265c6c4b57781a
    Virtualization: kvm
  Operating System: Ubuntu 16.04.5 LTS
            Kernel: Linux 4.4.0-34-generic
      Architecture: x86-64

みたいになっていればオッケー。

もう一つのhostname

割と見落としがちなところで、もう一箇所hostsの設定箇所があります。
二箇所それぞれの内容を見てみると、

root@hogehoge-vps:~# cat /etc/hostname
hogehoge-vps

root@hogehoge-vps:~# cat /etc/hosts
127.0.0.1       localhost
127.0.1.1       ubuntu

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1

となっています。

sudo hostnamectl set-hostname 

で変更されるのは、

root@hogehoge-vps:~# cat /etc/hostname
hogehoge-vps

の部分ですね。

root@hogehoge-vps:~# cat /etc/hosts

こちらは手動で変更します。
お好みのエディタ等で1行追加し、

root@hogehoge-vps:~# cat /etc/hosts
127.0.0.1       localhost
127.0.1.1       ubuntu
127.0.1.1       hogehoge-vps

こんな感じにしておいてください。

変更の確認

ログインし直すと、@~が変わっています。

root@hogehoge-vps:~# 

ユーザーの追加とsudo権限の付与

ユーザーの追加

adduser user_name

adduserです。useraddではありません。(ややこしい・・・)
adduserだとユーザーディレクトリも自動で作ってくれるので楽。

適当なユーザーを追加してみます。

root@hogehoge-vps:~# adduser hugahuga
Adding user `hugahuga' ...
Adding new group `hugahuga' (1000) ...
Adding new user `hugahuga' (1000) with group `hugahuga' ...
Creating home directory `/home/hugahuga' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: # 新規ユーザー用のパスワード入力
Retype new UNIX password: # パスワード入力(確認)
passwd: password updated successfully
Changing the user information for hugahuga
Enter the new value, or press ENTER for the default
        Full Name []: # 特に設定する必要ないのでEnter連打で
        Room Number []: 
        Work Phone []: 
        Home Phone []: 
        Other []: 
Is the information correct? [Y/n] y # Yesでユーザー追加完了

こんな感じで完了。

sudo権限の付与

続いてsudo権限を付与します。

sudo gpasswd -a hugahuga sudo

正確には、「sudoグループに追加する」ですね。

ちゃんと追加されているか確認、

root@hogehoge-vps:~# gpasswd -a hugahuga sudo
Adding user hugahuga to group sudo
root@hogehoge-vps:~# groups hugahuga
hugahuga : hugahuga sudo

sudoersの設定

ユーザーhugahugaでのログイン時に、sudoでいちいちパスワード入れるのが面倒なときに。

sudo visudo

細かい説明は割愛()
直接設定ファイルを編集するとミスしたときにアレなので、visudoを使ってください。

root@hogehoge-vps:~# sudo visudo

# User privilege specification
root    ALL=(ALL:ALL) ALL
hugahuga    ALL=(ALL:ALL) ALL #hugahugaに全ての権限を付与

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

あくまで自分一人しか使わないよってときはこんなんで大丈夫かと。
複数人での使用時等、都度適切な設定をしてください。
%グループ名でグループ単位での設定も可能です。

ログイン周りのあれこれ

無事sudo権限のユーザーができました。
ここから、sshのログイン周りの設定を行っていきます。

やることは以下の通り。

  • ログインユーザー用の公開鍵認証の設定
  • sshログイン用のport変更
  • rootでのログイン禁止
  • パスワード認証の禁止
  • PAM認証の禁止
  • ログインユーザーの限定

他のブログでもだいたい同じような内容が解説されていますね。

KAGOYA独自っぽいところ

KAGOYAのVPSは初期状態でパスワード認証が禁止されています。
なので、単にユーザーを追加しただけではそのユーザーでのsshログインはできません。
(rootログイン後のユーザー変更は可能)

公開鍵認証の設定

まずは登録する公開鍵を準備します。
利用中のターミナルソフト(Tera TermとかRloginとか)や、gitをインストールしたときに入ってくるssh-keygenとかで作成できます。
が、面倒なので今回は割愛()

もともとrootログインで鍵認証になっているので、それを使いまわします。(いいのか?)

ログインユーザー用のssh設定

まずは.sshディレクトリを作ります。

mkdir /home/hugahuga/.ssh

続いて認証鍵のコピー

cp /root/.ssh/authorized_keys /home/hugahuga/.ssh/authorized_keys

コピーできているか確認

root@hogehoge-vps:~# ls -a /home/hugahuga/.ssh
.  ..  authorized_keys

忘れがちなハマりポイント

.sshディレクトリとauthorized_keysのパーミッションと所有権を必ず確認してください。
私はすっかり忘れてドハマリしました。

それでは確認

ls -la /home/hugahuga
total 28
drwxr-xr-x 3 hugahuga hugahuga 4096 Aug  9 09:14 .
drwxr-xr-x 3 root root 4096 Aug  8 16:59 ..
-rw------- 1 hugahuga hugahuga   19 Aug  9 02:47 .bash_history
-rw-r--r-- 1 hugahuga hugahuga  220 Aug  8 16:59 .bash_logout
-rw-r--r-- 1 hugahuga hugahuga 3771 Aug  8 16:59 .bashrc
-rw-r--r-- 1 hugahuga hugahuga  655 Aug  8 16:59 .profile
drwx------ 2 root root 4096 Aug  9 10:16 .ssh

ls -la /home/hugahuga/.ssh
total 12
drwx------ 2 hugahuga hugahuga 4096 Aug  9 10:16 .
drwxr-xr-x 3 hugahuga hugahuga 4096 Aug  9 09:14 ..
-rw------- 1 root root  381 Aug  9 10:16 authorized_keys

rootですねぇ~。

コピーしてきただけだから当たり前ですが。
新規で認証鍵を生成しても所有権がrootの場合があるので、必ず確認してください。

ポイントは2箇所です。

drwx------ 2 root root 4096 Aug  9 10:16 .ssh

-rw------- 1 root root  381 Aug  9 10:16 authorized_keys

こちらを、.sshの方はパーミッションを700に、authorized_keysはパーミッションを600にします。
また、所有権を全てhugahugaにします。

cd /home/hugahuga
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
chown hugahuga:hugahuga .ssh
chown hugahuga:hugahuga .ssh/authorized_keys

再度確認。

ls -la /home/hugahuga
total 28
drwxr-xr-x 3 hugahuga hugahuga 4096 Aug  9 09:14 .
drwxr-xr-x 3 root root 4096 Aug  8 16:59 ..
-rw------- 1 hugahuga hugahuga   19 Aug  9 02:47 .bash_history
-rw-r--r-- 1 hugahuga hugahuga  220 Aug  8 16:59 .bash_logout
-rw-r--r-- 1 hugahuga hugahuga 3771 Aug  8 16:59 .bashrc
-rw-r--r-- 1 hugahuga hugahuga  655 Aug  8 16:59 .profile
drwx------ 2 hugahuga hugahuga 4096 Aug  9 10:16 .ssh

ls -la /home/hugahuga/.ssh
total 12
drwx------ 2 hugahuga hugahuga 4096 Aug  9 10:16 .
drwxr-xr-x 3 hugahuga hugahuga 4096 Aug  9 09:14 ..
-rw------- 1 hugahuga hugahuga  381 Aug  9 10:16 authorized_keys

オッケー。

sshの再起動をして、

sudo service ssh restart

登録したユーザーでログインできるか確認。

hugahuga@hogehoge-vps:~$

お疲れ様でした。

ssh設定の残り

後はsshd_configをいじるだけなので、まとめてやってしまいます。

sudo vi /etc/ssh/sshd_config

#Port番号の変更(何でも良いのですが、他と被らないように5桁くらいの番号が無難)
# Port 22
Port 12345

#rootでのログイン禁止
#PermitRootLogin prohibit-password
PermitRootLogin no

#パスワード認証の禁止
PasswordAuthentication no
#公開鍵ログイン
PubkeyAuthentication yes
#上記2つはデフォルトで設定されています(KAGOYA VPSの場合)が、念の為確認。

#PAM認証の禁止
#UsePAM yes
UsePAM no

#ログインユーザーの限定(最下部に追記)
AllowUsers hugahuga

port変更の追加

sudo vi /etc/services

で、/etc/servicesの中を確認し、Port番号が22になっているところを全て修正してください。

確認と再起動

sudo sshd -t
sudo service ssh restart

特に何も起こらなければ完了です。

rootでのログイン不可・指定ユーザーでログイン可を確認してください。
ターミナルの設定(sshポートの変更)も忘れずに!

疲れた。。。

後は何だろう?ファイアーウォールとかかな?

続きはまた次回。

Ubuntu, VPS

Posted by gcga