GCP(Google Cloud Platform)のGCE(Google Compute Engine)でLinuxサーバを無料でたてよう(その4:LinuxOSの設定)

投稿者: | 2019年12月20日

GoogleのパブリッククラウドGCP(Google Cloud Platform)の
Always Freeの無料枠で サーバ作成環境GCE(Google Compute Engine)の
VMインスタンスに Linuxサーバを作ります。

やること

以下は その3 までで完了しています。
①Googleアカウントを作製
②GoogleのパブリッククラウドGCP(Google Cloud Platform)に申し込み
③サーバ作成環境GCE(Google Compute Engine)に無料枠でLinuxサーバを構築
④作成した仮想マシンの設定

今回の実施内容は、以下になります。
⑤LinuxOSの設定

LinuxOSへのログオン

OSへのログオンは以下の方法があります。
・GCPのコンソールの「SSH」から
・TeraTermなどから

まずはGCPのコンソールがらログオンします。

ポート番号を変更していない場合(ポート22)は「SSH」をクリックするとターミナルウインドウが開き、ログオンできます(GCPでは、ブラウザウインドウと言います)。

もし、ポート番号を変更した場合は、「SSH」- 「ブラウザウインドウでカスタムポートを開く」からポート番号を入力します。

スワップ領域(swapファイル)の設定

作成したf1-microインスタンスはメモリが0.6GBとなります。これではメモリ不足でシステムが停止する可能性があります。
例えば、スワップ領域(swapファイル)がないと、zabbixに必要なMySQL 8.0 はインストールはできますがサービスが起動しません。
そのため、一時的にメモリ使用率が高騰しても耐えられるようswap領域を設定(swapファイルの作成)します。
なお、今回は1GBで作成していますが必要に応じて変更ください。

スワップ領域(swapファイル)の確認

下記のコマンドで、Swap:行の値が0であることを確認します。

--- Debian系、CentOS系 で共通 ---

# free -m

      total used free shared buff/cache available
Mem:    587  171  264      4        150       301
Swap:     0    0    0

スワップ領域(swapファイル)を確保

下記のコマンドで、Swapファイルを作成します(1GBを確保(ブロックサイズ1MBで1024個))。

--- Debian系、CentOS系 で共通 ---

# sudo dd if=/dev/zero of=/swapfile bs=1M count=1024

1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 26.3683 s, 40.7MB/s

下記のコマンドで、アクセス権を変更します。

--- Debian系、CentOS系 で共通 ---

# sudo chmod 600 /swapfile

スワップ領域(swapファイル)の有効化

下記のコマンドで、作成したファイルをswap形式に変換し、swapを有効化します。

--- Debian系、CentOS系 で共通 ---

# sudo mkswap /swapfile
# sudo swapon /swapfile

スワップ領域(swapファイル)の確認

下記のコマンドで、Swap:行の値が0でなくなっていることを確認します。

--- Debian系、CentOS系 で共通 ---

# free -m

      total used free shared buff/cache available
Mem:    587  171  264      4        150       301
Swap:  1023    0 1023

スワップ領域(swapファイル)の永続化

OS起動時に自動的にswapが有効化されるようにします。
エディタで /etc/fstab を開き、下記の1行を追記でも構いませんし、

--- Debian系、CentOS系 で共通 ---

/swapfile                                 swap                    swap    defaults        0 0

以下のコマンドでも構いません。

--- Debian系、CentOS系 で共通 ---

# cat << '__EOF__' >> /etc/fstab
/swapfile swap swap default 0 0
__EOF__

fail2banのインストール

セキュリティ対策として、何度もSSHでログインを試みるIPアドレスを遮断してくれる機能を持つfail2banをインストールします。

リポジトリの追加

「epel」リポジトリが必要ですので、リポジトリがインストールされていない方は「epel-release」をインストールします。
下記のコマンドでリポジトリを追加します。

--- CentOS系 ---
# sudo yum install epel-release

--- Debian系 ---
# sudo apt-get install epel-release

fail2banのインストール

下記のコマンドでfail2banをインストールします。

--- CentOS系 ---
# sudo yum install fail2ban

--- Debian系 ---
# sudo apt-get install fail2ban

設定ファイル

fail2banはメールサーバーやWEBサーバー、SSHやFTPなど各サービスごとにルールを設定して細かく指定することができますが、まずはリモートログオン関連だけを設定します。
エディタで /etc/fail2ban/jail.local を開き、下記を追記します。

--- Debian系、CentOS系 で共通 ---

[DEFAULT]
bantime  = 86400
findtime  = 300
maxretry = 5

[sshd]
enabled = true

[sshd-ddos]
enabled = true    

[DEFAULT]の設定の意味は以下になります。
5分間(findtime=300)で、5回アクセス失敗(maxretry=5)したIPアドレスは1日間(findtime=86400)アクセスが禁止される。

サービスの起動

下記のコマンドでサービスの起動を行います。

--- Debian系、CentOS系 で共通 ---

# sudo systemctl start fail2ban

下記のコマンドでサービスの起動を確認します。

--- Debian系、CentOS系 で共通 ---

# systemctl status fail2ban

下記のコマンドでサービスを自動の起動させます。

--- Debian系、CentOS系 で共通 ---

# sudo systemctl enable fail2ban

日本語化

フォントのインストール

日本語フォントをインストールします。

sudo yum install ibus-kkc
sudo yum install vlgothic-*

locale(ロケール)の変更

ロケールは言語設定の環境です。ロケールを変更しなければ、日本語フォントをインストールしても日本語表示にはなりません。

sudo localectl set-locale LANG=ja_JP.UTF-8
source /etc/locale.conf

Timezoneの変更

日本の時間軸に合わせます。

sudo timedatectl set-timezone Asia/Tokyo

コメントを残す

メールアドレスが公開されることはありません。