さくらのVPSの初期設定

ひさびさにレンタルサーバじゃなくてVPS借りてみたので備忘録代わりに。

使用VPS
さくらのvps 2コア 1GB
OS  Centos7 x86_x64

使用クライアント
MacOS
ターミナル

・初期ログイン

サーバ起動後にターミナルでSSH使ってでログイン
ssh root@サーバIPアドレス
はじめてのssh接続先だとキーがないと言われるが続けるので yes
The authenticity of host 'サーバIP' can't be established.
ECDSA key fingerprint is SHA256: .
Are you sure you want to continue connecting (yes/no)? 

・ユーザ追加

rootでばかり作業するわけにもいかないので。
通常ユーザとバックアップのダウンロードユーザを作る
ユーザ作った後、passwdでパスワード変えるのを忘れずに。
useradd ユーザ名
passwd ユーザ名

・sudoの設定

rootでログインさせないためにユーザにroot権限を渡せるように設定
wheelグループにsudoできるユーザを追加する
 usermod -G wheel  ユーザ名

設定ファイル編集(Centos7だと初期で設定できてるかも)
visudo
%wheel ALL=(ALL) ALL  の先頭にコメント(#) があったら外す
 --
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
--
設定が終わればユーザ名でログインした後、sudoが使える

以下、root以外で作業する

・ssh  サーバの設定

とりあえずの設定だけやっとく。
ポート番号変える(22じゃないやつ)
rootでログインさせない
sudo vi /etc/ssh/sshd_config
----
Port 30022
PermitRootLogin no
---
最終的にはPasswordAuthentication no としてパスワードでのログインも禁止したいけどまだにする。
やっちまった人はVPSのvncコンソール使えば、rootでログインできる。


・ファイアウォールの設定

Centos7からiptablesからfirewalldにかわったようなので設定していく。
※現時点でのポート状況はポートスキャンでチェックできる
※インストール直後はfirewalldが停止してることが多い、起動するとほぼすべてのポート閉じてしまうので設定が終わってから起動する

firewalldの動作状況
systemctl status firewalld

firewalldの起動
systemctl start firewalld


firewalldのストップ
systemctl stop firewalld

現在のゾーン
firewall-cmd --list-all
eth2に設定されている
--
public (default, active)
interfaces: eth2
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
--

現在のすべてのゾーン
firewall-cmd --list-all-zones

追加できるゾーン
firewall-cmd —get-services

各サービス(ゾーン)を利用する際は/etc/firewallにコピーして使う
※詳しくはここがくわしい

sshのポート(上記だと30022)を開ける
設定ファイルコピー
cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services
ポート番号を修正する
vi /etc/firewalld/services/ssh.xml
--
<port protocol=“tcp” port=“30022”/>
--
現在のゾーンからサービス削除
firewall-cmd --remove-service=ssh --zone=public --permanent
firewall-cmd --remove-service=dhcpv6-client --zone=public --permanent
※hdcpv6もいらないので削除しておく

ゾーンにサービス追加(永続)
firewall-cmd --add-service=ssh --zone=public --permanent
※サービス名(ファイル)じゃなくて直に設定する場合
firewall-cmd --zone=public --add-port=ポート番号/tcp --permanent
firewalldをリロード
firewall-cmd --reload
確認する
firewall-cmd --list-services --zone=public --permanent


・パッケージのアップデート

yum update
 

・秘密、公開鍵を使ってsshでログインする

sshの鍵を作る(別記事
今回はroot用はLinux、個人用はMacで作る
id_rsa 秘密鍵
id_rsa_pub 公開鍵

公開鍵のファイル名は/etc/ssh/sshd_confで指定されている
AuthorizedKeysFile .ssh/authorized_keys
keygenで作成されたファイルの名前変える
mv id_rsa.pub authorized_keys
作った公開鍵の中身をアクセス先のファイルにコピーする

パーミッションは
~/.ssh が0700
~/.ssh/authorized_keysが0600

/etc/ssh/sshd_configの設定確認
PermitRootLogin no
root アカウントでログインさせない
PubkeyAuthentication yes
公開鍵使ってログイン
PasswordAuthentication no
パスワード使ってのログインさせない
PermitEmptyPasswords no
空パスワード使わせない

ターミナルから ログインする
ssh -i .ssh/秘密鍵 -p ポート番号 接続先アドレス