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

2018/08/16UbuntuUbuntu, VPS

前回の続き

それではサクサク行きましょう。

時刻の設定

ntpのインストール

sudo apt install ntp

設定のため、一旦ntpを停止させます。

sudo service ntp stop

時刻同期のサーバー設定

日本標準時を同期できるサーバーを設定します。

Qiitaのこの辺の記事を参考に。
【負荷OK】Public NTPサーバの一覧

MFEEDかNICTがメジャーでしょうか。

sudo vi /etc/ntp.conf
#下記の場所のコメントアウトと、サーバーの追記をします。

# more information.
#pool 0.ubuntu.pool.ntp.org iburst
#pool 1.ubuntu.pool.ntp.org iburst
#pool 2.ubuntu.pool.ntp.org iburst
#pool 3.ubuntu.pool.ntp.org iburst
server ntp.nict.jp iburst
server ntp1.jst.mfeed.ad.jp iburst
server ntp2.jst.mfeed.ad.jp iburst
server ntp3.jst.mfeed.ad.jp iburst

ntpの起動と動作確認

hugahuga@hogehoge-vps:/$ sudo service ntp start

hugahuga@hogehoge-vps:/$ sudo ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ntp.ubuntu.com  .POOL.          16 p    -   64    0    0.000    0.000   0.000
*ntp-a2.nict.go. .NICT.           1 u   21   64    1   10.079   -0.556   1.600
+ntp1.jst.mfeed. 133.243.236.17   2 u   24   64    1    9.867   -0.506   1.820
+ntp2.jst.mfeed. 133.243.236.17   2 u   25   64    1    9.695    0.262   1.705
+ntp3.jst.mfeed. 133.243.236.17   2 u   21   64    1   11.046   -1.254   1.446

sysv-rc-confのインストール

sudo apt install sysv-rc-conf

Ubuntuでサービスの自動起動を設定する場合に何かと便利なsysv-rc-confをインストール。
起動するとこんな画面になります。

sudo sysv-rc-conf

自動起動にしたいサービスの2~5の欄でスペースキーを押すと、[x]になります。
これだけで自動起動が設定できるので非常に楽ですね。

ちなみに、コマンド入力だと以下のような感じ。

sudo sysv-rc-conf サービス名 on

自動更新を設定する

毎回のおまじない

sudo apt uodate
sudo apt upgrade -y

が面倒なので、ここらで自動の設定を確認しておきましょう。

unattended-upgradesの確認

標準でインストールされているかと思います。
もし入っていない場合は下記のコマンドでインストールと初期設定ができます。

sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

こんな感じのTUIが開くので、Yesを選択してください。

完了すると、設定ファイルができています。

hugahuga@hogehoge-vps:/$ sudo cat /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

こんな感じ。
このままでも良いのですが、自動アップデートの対象が”重要なセキュリティアップデート”のみとなっています。

その他の設定

その他のアップデートや、自動再起動なんかを設定したい場合は、別の設定ファイルを開きます。

sudo vi /etc/apt/apt.conf.d/50unattended-upgrades

必要な箇所のコメントアウトの削除と、””内の書き換えをおこなってください。

#奨励アップデート
//      "${distro_id}:${distro_codename}-updates";

#プレリリースされたアップデート(個人的に非推奨)
//      "${distro_id}:${distro_codename}-proposed";

#サポートされていないアップデート(個人的に非推奨)
//      "${distro_id}:${distro_codename}-backports";

#更新があった場合のメール通知(別途メール設定必須・今回は説明は割愛)
//Unattended-Upgrade::Mail "mail-address";

#trueでエラー時のみメール通知
//Unattended-Upgrade::MailOnlyOnError "true";

#trueで自動再起動
//Unattended-Upgrade::Automatic-Reboot "false";

#再起動のスケジュール設定
//Unattended-Upgrade::Automatic-Reboot-Time "02:00";

#trueでautoremove
//Unattended-Upgrade::Remove-Unused-Dependencies "false";

autoremoveと合わせてautocleanもしたいよってときはこちら。

hugahuga@hogehoge-vps:/$ sudo vi /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::AutocleanInterval "1";

デフォルト状態から、最下段を追加しています。

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

これはもうあれです、有名所でサクッと行きます。

ufwのインストール

KAGOYAは標準でインストール済みです。
入ってないよって方はインストールしてください。

sudo apt install ufw

ufwの基本操作

基本的には以下のコマンドで、

#portの開放
sudo ufw allow xx

#/etc/services内のサービス名でもいけます
sudo ufw allow ssh

#portの閉鎖
sudo ufw deny xx

#設定したルールの削除
sudo ufw delete allow xx / deny xx

#ログの有効化/無効化 (/var/log/ufw.log)
sudo ufw logging on / off

#許可されたポート以外全ての閉鎖
sudo ufw default deny

#ufw の有効化
sudo ufw enable

#状態の確認
sudo ufw status

よくある初期設定はこんな感じでしょうか。

sudo ufw allow 12345  #前回で設定したsshのport、これを忘れるとログインできなくなって終了します。
sudo ufw allow 80     #http接続
sudo ufw allow 443    #https接続
sudo ufw allow 123    #ntpサーバーとの通信用
sudo ufw default deny #とりあえず他は全部遮断
sudo ufw logging on   #ログ取得

有効化と確認

hugahuga@hogehoge-vps:/$ sudo ufw enable

#ssh大丈夫?と最終確認してくれます。優しさが沁みる。。。
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

hugahuga@hogehoge-vps:/$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
56725                      ALLOW       Anywhere                  
80                         ALLOW       Anywhere                  
443                        ALLOW       Anywhere                  
123                        ALLOW       Anywhere                  
56725 (v6)                 ALLOW       Anywhere (v6)             
80 (v6)                    ALLOW       Anywhere (v6)             
443 (v6)                   ALLOW       Anywhere (v6)             
123 (v6)                   ALLOW       Anywhere (v6) 

IPv6も一度に設定してくれるので楽ですね。
何らかの理由でIPv6のサポートをOFFにしたい場合は、

sudo vi /etc/default/ufw

# Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback
# accepted). You will need to 'disable' and then 'enable' the firewall for
# the changes to take affect.
IPV6=yes

こちらのファイルを確認して、“IPV6=no”としてください。

今後、アプリケーションの追加時には、忘れずにPort設定の追加を行ってくださいね。

fail2banのインストール

不正アクセスとの戦いは終わらない()

ログを確認して、自動でBANしてくれるありがたいソフトなfail2ban。
サクッとインストールして、サーバーを守りましょう。

sudo apt install fail2ban

設定ファイルを確認します。
が、/etc/fail2ban/jail.confの直接の編集は非推奨となっているのでコピーを作ります。
このとき、コピー先をjail.localとしてください。

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

設定の編集

sudo vi /etc/fail2ban/jail.local
#除外IPの設定
ignoreip = 127.0.0.1/8

#遮断する秒数の設定(-1にすると永久BAN)
bantime  = 600

#遮断条件(時間)
findtime = 600

#遮断条件(回数)
maxretry = 5

#これで、600秒以内に5回間違うとBAN

#メール通知の設定(別途メール設定必須・今回は説明は割愛)
destemail = root@localhos

よくある設定はこの辺でしょうか。
その他、監視対象のプロセスを追加する場合はそちらも追加してください。
デフォルトでsshは監視対象です。

apacheだとこんな感じ。

[apache]

# enabled  = false
enabled  = true
port     = http,https
filter   = apache-auth
logpath  = /var/log/apache*/*error.log
maxretry = 6

最後にサービスの再起動を忘れずに。

sudo service fail2ban restart

疲れた。。。

んー、だいたい終わりかな?
次はubuntu 18.04 LTSへのアップデート!

続きはまた次回。

Ubuntu, VPS

Posted by gcga