2020年12月
月額349円(税込)からの低価格。使った期間だけの従量課金方式。
国内の VPS でこの値段は破格だと思います。いや、使える VPS の中では世界一安いのでは?w
詳細はリンク先を見てもらうとして、この「月額349円(税込だぞ)」のスペックが「CPU 1vCPU SSD 20GB メモリ 1GB」です。
やはり安い。だって、HDD じゃなくて SSD だもん。だって、メモリ 512MB じゃなくて 1GB だもん。さらに、仮想化方式が OpenVZ じゃなくて KVM なんだよねぇ。びっくり。
但し、IPv6 は付きません。あと、任意の逆引き設定が出来ないです。
僕的には、この2点があるため、このサイト用のサーバには使えないのですが、もう一つ別に借りている CloudatCost の VPS の代わりには使えるかなと。CloudatCost の VPS はバカ安なのですが、3〜4ヶ月に1回ぐらいトラブって数日アクセスできなくなるので。w ←笑いごとじゃない 💢
…というわけで、KVM Instance 1 CPU 1 GB - CentOS 8.1 での初期設定を自分用にメモっておきます。
今使っている鍵を使いたかったので「SSH鍵の作成」ではなく「SSH鍵のインポート」を行いました。
「SSHキー」のエリアに「公開鍵」を貼り付けます。
インスタンスの IP アドレスは、「インスタンス管理」→「インスタンス」で確認できます。
SSH のログインユーザ名は、
CentOSの場合:centos
Ubuntuの場合:ubuntu
です。
ココに書かれています。↓
インスタンスへのログイン方法
@local ~]$ ssh centos@xxx.xxx.xxx.xxx
んで、root になるには。
~]$ sudo su -
ssh の設定ファイル確認。
~]# vi /etc/ssh/sshd_config
以下のようになっているか確認。
SyslogFacility AUTHPRIV
PermitRootLogin no
PermitEmptyPasswords no
PasswordAuthentication no
編集したら sshd 再起動。
~]# systemctl restart sshd
~]# timedatectl set-timezone Asia/Tokyo
確認。
~]# timedatectl
~]# localectl set-locale LANG=ja_JP.utf8
確認。
~]# localectl
~]# localectl set-keymap jp106
確認。
~]# localectl
ホスト名を変更して(例:centos8.localdomain)再起動。
~]# hostnamectl set-hostname centos8.localdomain
~]# reboot
root も SSH ログインユーザの centos もパスワードが設定されていません。
~]# getent shadow root
root:!!:18274:0:99999:7:::
~]# getent shadow centos
centos:!!:18432:0:99999:7:::
1カラム目がユーザ名で、2カラム目がパスワードです。
パスワードが設定されていない場合、パスワード欄が「!!」となります。
パスワードを設定します。
なお、パスワードの設定をしないと管理画面のコンソールからのログインが出来ません。
~]# passwd root
~]# passwd centos
また、パスワードを設定すれば、su - で root になれるようになります。
~]$ su -
wheel グループに所属しているユーザのみが「su」の実行を出来るようにする。
centos は、すでに wheel グループに所属している。
~]# id centos
uid=1000(centos) gid=1000(centos) groups=1000(centos),4(adm),10(wheel),190(systemd-journal)
/etc/pam.d/su ファイルを編集する。
~]# vi /etc/pam.d/su
下記、コメントアウト(#)を解除。
#auth required pam_wheel.so use_uid
↓↓↓
auth required pam_wheel.so use_uid
~]# cat /etc/resolv.conf
~]# nmcli d
DEVICE TYPE STATE CONNECTION
eth0 ethernet 接続済み System eth0
lo loopback 管理無し --
~]# nmcli d show eth0
~]# ls -l /etc/sysconfig/network-scripts/ifcfg-*
-rw-r--r--. 1 root root 315 Jan 13 21:52 /etc/sysconfig/network-scripts/ifcfg-ens3
-rw-r--r--. 1 root root 252 Jun 19 04:34 /etc/sysconfig/network-scripts/ifcfg-eth0
~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Created by cloud-init on instance boot automatically, do not edit.
#(インスタンスの起動時にcloud-initによって自動的に作成されます。編集しないでください。)
BOOTPROTO=none
DEFROUTE=yes
DEVICE=eth0
・・・・・
・・・・・
sysctl.conf に下記を追加。
~]# vi /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
設定を反映。
~]# sysctl -p
/etc/hosts ファイルの「::1」行をコメントアウトする。
~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
NetworkManager を再起動する。
~]# systemctl restart NetworkManager
SELinuxの無効化。
~]# setenforce 0
SELINUX=disabled にする。
~]# vi /etc/sysconfig/selinux
~]# dnf -y install epel-release
EPEL 設定ファイルの「enabled=1」を「enabled=0」に変更。
~]# vi /etc/yum.repos.d/epel.repo
~]# dnf -y update
dnf-automatic インストール。
~]# dnf -y install dnf-automatic
dnf-automatic 設定。「apply_updates」の no → yes にする。
~]# vi /etc/dnf/automatic.conf
dnf-automatic 自動起動設定+起動。
~]# systemctl enable --now dnf-automatic.timer
ベース,開発ツールパッケージ群インストール。
~]# dnf -y group install base "Development tools"
nkf コマンドインストール。
~]# dnf --enablerepo=powertools install nkf
現在使用中のカーネルバージョンを確認する。
~]# uname -r
インストール済みを確認する。
~]# dnf repoquery --installonly
カーネルがアップデートされていると思うので再起動する。
~]# reboot
firewalld がインストールされていません。
~]# systemctl status firewalld
Unit firewalld.service could not be found.
インストール。
~]# dnf -y install firewalld
自動起動設定+起動。
~]# systemctl enable --now firewalld.service
確認。
~]# firewall-cmd --state
running
アクティブゾーンを確認する。
~]# firewall-cmd --get-active-zones
public
interfaces: eth0
アクティブゾーンの恒久的なファイアウォール設定を確認。
~]# firewall-cmd --list-all --zone=public --permanent
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Swap 領域が作成されていなかったので、作成します。
~]# free -m
total used free shared buff/cache available
Mem: 808 154 241 6 413 517
Swap: 0 0 0
swap ファイル領域を 1GB 確保(ブロックサイズ 1MB で 1024 個)。(swap 1GB の例)
~]# dd if=/dev/zero of=/swapfile bs=1M count=1024
パーミッションを変更。
~]# chmod 600 /swapfile
swap を作成。
~]# mkswap /swapfile
swap を有効化。
~]# swapon /swapfile
swap を確認。
~]# free -m
total used free shared buff/cache available
Mem: 808 138 55 6 615 543
Swap: 1023 0 1023
OS の再起動時も作成したスワップ(swap)領域が、自動的にマウントされるよう設定をする。
~]# sed -i '$ a /swapfile swap swap defaults 0 0' /etc/fstab
端末で ssh 接続するたびに、
Activate the web console with: systemctl enable --now cockpit.socket
とか言われるので、
~]# systemctl enable --now cockpit.socket
してみました。
ログイン画面は、https://xxx.xxx.xxx.xxx:9090/ にアクセスします。
自己署名証明書の場合は、ブラウザに警告が表示されます。
Cockpit は僕的には使わないと思いますが、CPU, メモリの使用量のグラフはたまに見るかもです。
端末もあります。端末はコンソールとは違って、コピペできるので使おうと思えば普通に使えそうです。
あと、ちょっと気になるのがセキュリティです。ブラウザを使ってパスワードだけでログイン出来ちゃうのが怖かったので、firewalld で 9090 番ポートへは特定 IP からのアクセスのみ許可するようにしました。
まずは、設定されている Cockpit 接続許可を一旦削除して、全ての接続を拒否します。
~]# firewall-cmd --remove-service=cockpit --zone=public --permanent
設定反映。
~]# firewall-cmd --reload
特定 IP 接続許可のルールを追加。「xxx.xxx.xxx.xxx/xx」の箇所は接続元の「IP アドレス/サブネットマスク」です。1つのIPからのみを許可するならば、サブネットマスクは「32」となります。
~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="xxx.xxx.xxx.xxx/xx" port protocol="tcp" port="9090" accept"
設定反映。
~]# firewall-cmd --reload
設定確認。
~]# firewall-cmd --list-all
・・・・・
・・・・・
rich rules:
rule family="ipv4" source address="xxx.xxx.xxx.xxx/xx" port port="9090" protocol="tcp" accept
ちなみに、追加した設定を削除したい場合は、add を remove にします。(他の部分は全く同じ)
これで、「Activate the web console with: systemctl enable --now cockpit.socket」の表示は出なくなりました。
…が、今度は下記が出ます。ゴリ推し?
Web console: https://centos8.localdomain:9090/ or https://xxx.xxx.xxx.xxx:9090/
うん。いきなり root でログイン出来るし、端末も使えるから便利かぁ。Cockpit、使ってみようかな。w
- guitar site WAVE -