GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntuで自動セキュリティアップデート(無人アップグレード)を設定する

このチュートリアルでは、Ubuntuで自動セキュリティ更新(無人アップグレード)を設定する方法を説明します。洞窟の下に住んでいない場合は、おそらくEquifaxの大規模なデータ侵害を知っているでしょう。 2017年5月から7月の間に、名前、社会保障番号、生年月日、運転免許証、20万枚のクレジットカード番号など、1億4300万人のEquifaxの顧客情報が盗まれました。

2017年3月、Apache Structsに重大な脆弱性が発見され、Apache Foundationは、脆弱性の存在を発表したときにその修正をリリースしました。ただし、Equifaxは2か月間脆弱性にパッチを適用しなかったため、大規模なデータ侵害が発生しました。複雑なアプリケーションを実行している企業は、更新をインストールする前に広範なテストを行う必要がある場合がありますが、個人使用の単純なLinuxサーバーがある場合は、脆弱性にパッチを適用するために自動セキュリティ更新をできるだけ早くオンにすることができます。

Ubuntuサーバーでの自動セキュリティ更新(無人アップグレード)の構成

まず、unattended-upgradesをインストールします パッケージ。

sudo apt update

sudo apt install unattended-upgrades

update-notifier-commonをインストールする必要があります 自動再起動を設定するためのパッケージ。

sudo apt install update-notifier-common

次に、50unattended-upgradesを編集します ファイル。

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

このファイルでは、どのパッケージを自動的に更新するかを構成できます。デフォルトでは、次の行に示すように、セキュリティ更新プログラムのみが自動的にインストールされます。したがって、このセクションを変更する必要はありません。

Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}";
        "${distro_id}:${distro_codename}-security";
        // Extended Security Maintenance; doesn't necessarily exist for
        // every release and this system may not have it installed, but if
        // available, the policy for updates is such that unattended-upgrades
        // should also install from here by default.
        "${distro_id}ESMApps:${distro_codename}-apps-security";
        "${distro_id}ESM:${distro_codename}-infra-security";
//      "${distro_id}:${distro_codename}-updates";
//      "${distro_id}:${distro_codename}-proposed";
//      "${distro_id}:${distro_codename}-backports";
};

  • 最初のオリジン"${distro_id}:${distro_codename}" セキュリティアップデートは、セキュリティ以外のソースから新しい依存関係を取り込む可能性があるため、必要です。このオリジンはソフトウェアアップデートを提供していません。
  • 2つ目の原因は、定期的なセキュリティ更新です。
  • 3番目と4番目のオリジン(ESMAppsとESM)は、拡張されたセキュリティメンテナンス用です。つまり、保守終了に達したUbuntuリリースを実行するユーザー向けです。そのままにしておくことができます。

メール通知

Ubuntuがセキュリティアップデートのインストールに失敗することがあるため、手動アップデートが必要です。セキュリティが更新されるたびに電子メール通知を受け取りたい場合は、次の行を見つけてコメントを外してください。 (最初の二重スラッシュを削除します。)

Ubuntu 18.04

//Unattended-Upgrade::Mail "root";

Ubuntu 20.04

//Unattended-Upgrade::Mail "";

以下のように通知を受信するメールアドレスを指定できます。

Unattended-Upgrade::Mail "[email protected]";

セキュリティの更新中にエラーが発生した場合にのみメール通知を受信する場合は、次の行のコメントを解除してください。

Ubuntu 18.04

//Unattended-Upgrade::MailOnlyOnError "true";

Ubuntu 20.04では、次の行を見つける必要があります

//Unattended-Upgrade::MailReport "on-change";

コメントを外して変更します-変更

Unattended-Upgrade::MailReport "only-on-error";

未使用の依存関係の自動削除

おそらくsudo apt autoremoveを実行する必要があります 更新するたびに、次の行を見つけます:

//Unattended-Upgrade::Remove-Unused-Dependencies "false";

この行のコメントを外し、falseを変更します trueに 。

Unattended-Upgrade::Remove-Unused-Dependencies "true";

自動再起動

Linuxカーネルのセキュリティ更新プログラムがインストールされている場合、カーネル更新プログラムを適用するには、Ubuntuサーバーを再起動する必要があります。サーバーを自分または数人だけが使用している場合は、自動再起動を有効にすると便利です。次の行を見つけます。

//Unattended-Upgrade::Automatic-Reboot "false";

コメントを外して、falseを変更します trueに 自動再起動を有効にするには

Unattended-Upgrade::Automatic-Reboot "true";

再起動を実行する時刻を指定することもできます。デフォルトでは、再起動はカーネルアップデートのインストール直後に行われます。午前4時に再起動するように設定しました。サーバーに正しいタイムゾーンを設定していることを確認してください。

Unattended-Upgrade::Automatic-Reboot-Time "04:00";

ファイルを保存して閉じます。

サーバーが多くのユーザーによって使用されている場合、または高い稼働時間が必要な場合(このブログなど)、自動再起動を有効にしないでください。代わりに、Canonical livepatchを使用して、再起動せずにLinuxカーネルにパッチを適用できます。

  • 正規のLivePatchサービス:再起動せずにUbuntuでLinuxカーネルにパッチを適用する

自動セキュリティ更新を有効にする

自動セキュリティ更新が構成されたので、20auto-upgradesを作成して有効にする必要があります。 ファイル。

sudo nano /etc/apt/apt.conf.d/20auto-upgrades

次の2行をコピーしてファイルに貼り付けます。

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

  • 最初の行はaptになります 「apt-get update」を実行します 」毎日自動的に。 2に設定されている場合は、1日おきに。 (0 =無効)
  • 2行目はaptになります セキュリティ更新プログラムを自動的にインストールします。 (1 =有効、0 =無効)

ファイルを保存して閉じます。

特定の時間に無人アップグレードを実行する

無人アップグレードは午前12時から午前7時の間にランダムに実行され、全員が同時に更新を実行することによるミラーサーバーへの負荷の急増を防ぎます。次のコマンドを使用して、無人アップグレードを手動で実行できます。

sudo unattended-upgrade -v

このコマンドをCronジョブに追加することもできます。

sudo crontab -e

Crontabファイルの最後に次の行を追加して、無人アップグレードが毎日午前2時に実行されるようにします。

0 2 * * * sudo /usr/bin/unattended-upgrade -v

SMTPリレーの設定

セキュリティが更新されるたびに電子メール通知を受信するには、サーバーが電子メールを送信できる必要があります。これがメールサーバーの場合、あとはbsd-mailxをインストールするだけです。 パッケージ。

sudo apt install bsd-mailx

これがメールサーバーでない場合は、SMTPリレーを設定する必要があります。 Postfix SMTPサーバーをインストールしてから、メールサービスプロバイダーを介してメールを中継できます。

いくつかのメールサービスプロバイダーがあります (ESP)リレーホストとして機能できます。少額の料金を請求するものもあれば、毎月無料の割り当てを提供するものもあります。この記事では、1日あたり300通のメールを無料で送信できるメールサービスプロバイダーであるSendinblueの使用方法を紹介します。

sendinblue.comで無料のアカウントを作成します。ユーザープロファイルを完成させたら、Transactionalをクリックします タブをクリックすると、SMTP設定が表示されます。 SMTP設定がない場合、トランザクションメールサービスを有効にするには、Sendinblueカスタマーサービスに連絡する必要があります。

次に、SendinblueSMTP設定を使用するようにPostfixSMTPサーバーを構成する必要があります。

次のコマンドを使用して、UbuntuにPostfixSMTPサーバーをインストールしましょう。

sudo apt install postfix libsasl2-modules

次のメッセージが表示されたら、Tabキーを押してEnterキーを押します。

次に、2番目のオプションを選択します:Internet Site

次に、システムメール名を設定します。たとえば、ドメイン名linuxbabe.comを入力します 。

Postfixをインストールしたら、Nanoなどのコマンドラインテキストエディタでメインの構成ファイルを開きます。

sudo nano /etc/postfix/main.cf

次の行を見つけます。

relayhost =

デフォルトでは、その値は空です。 relayhostの値を設定します [smtp-relay.sendinblue.com]:587へ 。

relayhost = [smtp-relay.sendinblue.com]:587

次に、このファイルの最後に次の行を追加します。

# outbound relay configurations
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = may
header_size_limit = 4096000

ファイルを保存して閉じます。次に、/etc/postfix/sasl_passwdを作成します ファイル。

sudo nano /etc/postfix/sasl_passwd

以下のように、SMTPリレーホストとSMTP資格情報をこのファイルに追加します。 smtp_usernameを置き換えます およびsmtp_password SendinBlueによって提供された独自のユーザー名とパスワードを使用します。ユーザー名とパスワードの間にコロンがあることに注意してください。

[smtp-relay.sendinblue.com]:587      smtp_username:smtp_passowrd

ファイルを保存して閉じます。次に、postmapを使用して対応するハッシュデータベースファイルを作成します 。

sudo postmap /etc/postfix/sasl_passwd

これで、ファイル/etc/postfix/sasl_passwd.dbが作成されます。 。変更を有効にするには、Postfixを再起動します。

sudo systemctl restart postfix

デフォルトでは、sasl_passwd およびsasl_passwd.db ファイルは、サーバー上のすべてのユーザーが読み取ることができます。権限を600に変更して、rootのみがこれら2つのファイルの読み取りと書き込みを行えるようにします。

sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

今後、PostfixはSendinblue経由でメールを送信します。

送信者アドレスの追加

Sendinblueアカウントダッシュボードの右上隅にあるドロップダウンメニューをクリックして、送信者とIPを選択します タブをクリックして、ドメインと送信者アドレスを追加します。

テストメールの送信

これで、mailxを使用してテストメールを送信できます。 以下のようなコマンド。

sudo apt install bsd-mailx

echo "this is a test email." | mailx -r from-address -s hello to-address

SMTP構成が正しい場合は、メールが届きます。

メールが送信されませんか?

メールログを確認できます(/var/log/mail.log )メールが送信されない理由をデバッグします。

/etc/postfix/main.cfでリレーホストを角かっこで囲む場合 ファイル。

relayhost = [smtp-relay.sendinblue.com]:587

次に、ホスト名を/etc/postfix/sasl_passwdでラップする必要もあります。 ファイル。

[smtp-relay.sendinblue.com]:587  [email protected]:YourGmailPassword

ハッシュデータベースファイルを再生成することを忘れないでください。

sudo postmap /etc/postfix/sasl_passwd

変更を有効にするには、Postfixを再起動します。

sudo systemctl restart postfix

受信メールを無効にする

デフォルトでは、Postfixは受信メールを受け入れるように構成されています。メールを送信するだけで、受信メールを受け入れないようにPostfixを設定できます。 /etc/postfix/main.cfで次の行を見つけます ファイル。

inet_interfaces = all

Postfixがローカルホストでのみリッスンするように次のテキストに変更してください。

inet_interfaces = loopback-only

メールレポート

無人アップグレードによって送信される可能性のあるメールは3つあります:

  • 無人アップグレードが返されました:True。これは、パッケージが正常にインストールされたことを意味します。
  • 無人アップグレードが返されました:False。これは、アップデートのインストール時にエラーが発生したことを意味します。通常、人間の介入が必要です。このメールを受け取った場合は、手動でsudo apt upgradeを実行する必要があります 。
  • 無人アップグレードが返されました:なし。利用可能なアップデートはありますが、システムはそれらのインストールを拒否しました。

ログ

ログは/var/log/unattended-upgrades/にあります ディレクトリ。

再起動を確認

checkrestart コマンドは、アップグレード後に再起動する必要があるプロセスを見つけるのに役立ちます。 debian-goodiesから入手できます。 パッケージ。

sudo apt install debian-goodies

sudo checkrestart

Ubuntu
  1. Ubuntu – Ubuntuで静的IPを設定する方法は?

  2. Ubuntuを更新する方法は?

  3. UbuntuでOpenSSLを更新する

  1. Ubuntu 14.04を15.04に更新しますか?

  2. 自動更新?

  3. Ubuntu 16.04.1を16.04.3に更新しますか?

  1. UbuntuでLinuxカーネルを更新する方法

  2. Python 2.7にアップデートする方法は?

  3. Ubuntu 20.04で自動ナイトモードを設定する方法は?