セキュリティ上、常に最新のRPMパッケージに更新する事が推奨されています。事前に確認せずにパッケージを更新するだけならcronにyum updateコマンドを登録する事で実施可能ですが、場合によってはRPMパッケージがアップデートされたことによって問題が発生する事もあります。
そこで、更新可能なパッケージのリストを確認するBashスクリプトを作成してCronに登録し、更新可能なパッケージが発生した場合にメール通知するようにしてみました。
これによって更新可能なパッケージが発生するとメールでリストが送信され、特にアップデートしても問題なければ手動で適宜アップデートするという運用が可能となります。
※目次をクリックすると目次の下部にコンテンツが表示されます。
$ yum list updates Loaded plugins: fastestmirror, refresh-packagekit Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * epel: ftp.tsukuba.wide.ad.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp Updated Packages audit.x86_64 2.2-4.el6_5 updates audit-libs.x86_64 2.2-4.el6_5 updates
#! /bin/bash echo "From: root@mail.server.com" > rpm-msg echo "To: test@example.com" >> rpm-msg echo "Subject: rpm updates list" >> rpm-msg echo "" >> rpm-msg yum list updates >> rpm-msg if grep "Updated Packages" rpm-msg then /var/qmail/bin/sendmail -t < rpm-msg fi
※上記例では、メールとして"qmail"を使用しているため"/var/qmail/bin/sendmail"となっています。
"yum list updates"コマンドで、更新可能なパッケージが存在する場合は、"Updated Packages"と表示され、その後にパッケージが表示されるようなので、"yum list updates"のコマンド実行結果に"Updated Packages"の文字列が含まれているか確認し、含まれている場合はメール送信します。
VPSサーバーのcron、anacronの設定
一般ユーザーで作成したBashスクリプトをcronに登録します。
①cronデーモンの確認
cronデーモンが稼動しているか確認します。
(確認例)
$ ps -ef | grep cron root 1532 1 0 Sep27 ? 00:00:16 crond $ chkconfig --list crond crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
②cronの設定
一般ユーザーを使ってcronに登録します。
/etc/crontabを使ってcronに登録する場合はユーザー名を記述しますが、今回はユーザー毎のcron設定なので記述しません
(設定例)
毎日、3時1分にスクリプトを実行させる例です。
$ crontab -e
cronの編集モードになるので以下の記述追加
01 3 * * * /home/user/sample.sh
③ログ確認
実行されたかどうかは/var/log/cronファイルを見て確認します。
-
dnfコマンド
- CentOS Stream9のパッケージ管理(dnfコマンド)
- RPMコマンドで既存サービスの確認
- RPMパッケージであるセキュリティバグが修正済みがRPMコマンドで確認する
- RPMパッケージのマニュアルを探す
- インストール(アップデート)日時順にRPMパッケージ一覧を表示
- インストールせずにRPMパッケージ内から特定のファイルを抽出
- “yum list”コマンドでパッケージのリスト、バージョンを確認
- 過去に実施したyumの履歴を確認する
- yumコマンドで最新のパッケージにアップデート
- CentOSでrpmパッケージ更新後の適用
- RPMパッケージを個別に入手し、yumコマンドで依存性を解決しながらインストール
- yumでグループ単位にパッケージをインストール
- yum.confのmainセクションの設定方法
- yumのプラグインに関する設定
- CentOS5.10環境のyumでepelのリポジトリを使用する
- CentOS6環境のyumでepelのリポジトリを使用する
- CentOS5環境のyum updateでNot Foundのエラーが発生した場合
- CentOS6.10でSoftware collections(SCL)導入時に発生したエラーに対する対応
- CentOS6.10でremoving mirrorlist、YumRepo Errorが発生した場合の対応
- Linuxで「~のファイルが無い」とか「~のコマンドが無い」でインストールが失敗した場合
- LinuxのRPMパッケージ内のファイルのパーミッション、オーナーの設定を元に戻したい場合
- yumでインストール済みのパッケージを元に戻す
- /var/tmpディレクトリにyumのキャッシュ、キャッシュの削除方法
- 更新可能なRPMパッケージのリストをメールで送信する
rpmコマンド
yumコマンド 表示、確認
yumコマンド インストール、アップデート
yumコマンド 設定、リポジトリ
yumコマンド トラブル対応
運用、その他
- VPSサーバーでスナップショットを取得
- ~障害に備え、リカバリーポイントを作成。
- VPSサーバーにログインして、設定内容を確認
- ~グローバルIPアドレス確認、SSHキーを作成。
- VPSサーバーにSSHでログイン
- ~Tera Term、SSH、公開鍵認証方式
- yumコマンドで最新のパッケージにアップデート
- ~全パッケージを最新にアップデート
- Apacheのインストール
- ~yumコマンドでApacheインストール、iptablesでファイアウォールの設定
- PHPとMySQLをインストール
- ~yumコマンドでPHP、MySQLインストール
- WinSCPを使ってWordPressをアップロード
- ~WinSCPをクライアントPCにインストール、ファイルアップロード方法
- WordPressをインストール
- ~MySQLでWordPress用データベース作成、wp-config.phpファイルの設定
- CentOSのファイアウォール設定
- ~iptablesを使ってネットワークフィルタリング設定を一から行う
- OpenSSHの設定をよりセキュアに
- ~ログイン制限、ポート変更、認証方式
- ApacheでTCPのTraceメソッドを無効にする
- ~Apacheの設定変更、Telnetで動作確認
- ヘッダーにApacheバージョンが表示されないようにする
- ~Apacheの設定変更、Telnetで動作確認
- Apacheでディレクトリ内一覧表示を無効にする
- ~autoindex_moduleのロードを無効にする
- セキュリティを考慮し、MySQLの匿名ユーザーにパスワードを設定、または削除
- ~MySQLの匿名ユーザーにパスワードを設定、または削除
- PHPのバージョンが表示されないようにする
- ~php.iniの設定変更
- WordPressディレクトリのパーミッションをセキュアに
- ~WordPress用ディレクトリの所有グループ、ユーザー、パーミッション設定
- パーマリンク設定時のApache設定
- ~WordPressパーマリンクの設定、Apache .htaccessの設定
- WordPressテーマの選定
- ~テーマ追加の特徴フィルターの項目、テンプレートキング
- WordPressで画像のアップロード、サイズ調整、リンクを設定
- ~アップロード画像の画像サイズ、サムネイル、画像編集、リンク設定
- 更新可能なRPMパッケージのリストをメールで送信する
- ~yumコマンド、Bashスクリプト、Cron
- Linuxでディスク使用量が多いディレクトリを調べる方法(1)
- ~du --max-depth
- Linuxでディスク使用量が多いディレクトリを調べる方法(2)
- ~duコマンド、sortコマンド
- WordPressデータベースのバックアップとリストア
- ~コマンドラインでバックアップ、リストア
- WordPressのバージョンアップと旧バージョンへの戻し
- ~データベースとディレクトリのバックアップ、リストア
- BashスクリプトでWordPressデータベースを自動バックアップ
- ~MySQLデータベースをBash、Cronを使って自動バックアップ、メール通知
- BashスクリプトでDos攻撃など大量アクセスのログを検知
- ~Apacheアクセスログ、Dos、Cron、メール通知
- ブートストラップ3を使って自作テーマ作成
- (1)全体概要
- (2)ブートストラップのサンプルを使ってindex.phpを作成
- (3)header.php、sidebar.php、footer.php、index.phpのテンプレートファイル作成
- (4)JavaScriptインクルードの設定
- (5)投稿本文表示用のテンプレートファイルを作成
- (6)単一投稿用(single.php)のテンプレートファイル作成
- (7)固定ページ用(page.php)のテンプレートファイル作成
- (8)検索結果表示用(search.php)のテンプレートファイル作成
- (9)アーカイブ表示用(archive.php)のテンプレートファイル作成
- (10)カテゴリー表示用(category.php)のテンプレートファイル作成
- (11)WordPressのメニュー画面でナビゲーションメニューを設定
- (12)サイトタイトル、キャッチフレーズを表示できるようにheader.phpを修正
- (13)カスタムヘッダー画像を使えるようにheader.phpを修正
- (14)404.phpテンプレートファイルを作成
- (15)記事タイトル部分のCSS設定
- (16)記事メタデータ部分のCSS設定
- (17)記事本文部分のCSS設定
- (18)前後のページへのリンクのCSS設定
- (19)前後の投稿へのリンクのCSS設定
- (20)コメント投稿フォーム、コメント表示部のCSS設定
- (21)ウィジェット部のCSS設定
- (22)アーカイブページのCSS設定
- (23)画面を左右にスライドさせるボタンのCSS設定
- ~Bootstrap3、自作テーマ作成、TwentyFourteen
- Bootstrapのフリーのテーマを使ってデザインを簡単にカスタマイズ
- ~Bootstrap3のスタイルをカスタマイズ
- 簡単なショートコードを作ってみる
- ~ショートコードの作り方
- ショートコードを使って関連記事のリンクを自動で挿入
- ~ショートコードの簡単なサンプル
- ショートコードを使ってディレクトリ内のファイル名を取得し、投稿内にリンクを挿入
- ~カスタムフィールド利用、PHPで日本語文字列検索などのコーディング
- WordPress投稿内でAngularJSを使用
- ~AngularJS、Bootstrap、アコーディオン
- Bootstrap3で作成したナビゲーションメニューをAngularJSに変更
- ~AngularJS、Bootstrap、自作テーマheder.php
- WordPressでAngularJSを使ったGoogleマップを使えるようにする
- ~AngularJSを使って投稿内にGoogleマップ
WordPresssショートコード
AJAX、AngularJSなどその他応用
- Ruby on Rails(他サイト)
- ~構築、CMS、Bootstrap、AngularJS
-
rpmコマンド
- RPMコマンドで既存サービスの確認
- RPMパッケージであるセキュリティバグが修正済みがRPMコマンドで確認する
- RPMパッケージのマニュアルを探す
- インストール(アップデート)日時順にRPMパッケージ一覧を表示
- インストールせずにRPMパッケージ内から特定のファイルを抽出
- “yum list”コマンドでパッケージのリスト、バージョンを確認
- 過去に実施したyumの履歴を確認する
- yumコマンドで最新のパッケージにアップデート
- CentOSでrpmパッケージ更新後の適用
- RPMパッケージを個別に入手し、yumコマンドで依存性を解決しながらインストール
- yumでグループ単位にパッケージをインストール
- yum.confのmainセクションの設定方法
- yumのプラグインに関する設定
- CentOS5.10環境のyumでepelのリポジトリを使用する
- CentOS6環境のyumでepelのリポジトリを使用する
- CentOS5環境のyum updateでNot Foundのエラーが発生した場合
- Linuxで「~のファイルが無い」とか「~のコマンドが無い」でインストールが失敗した場合
- LinuxのRPMパッケージ内のファイルのパーミッション、オーナーの設定を元に戻したい場合
- yumでインストール済みのパッケージを元に戻す
- /var/tmpディレクトリにyumのキャッシュ、キャッシュの削除方法
- 更新可能なRPMパッケージのリストをメールで送信する
yumコマンド 表示、確認
yumコマンド インストール、アップデート
yumコマンド 設定、リポジトリ
yumコマンド トラブル対応
運用、その他
-
ネットワーク、ポート番号
- iptablesを使ってCentOSのファイアウォール設定
- CentOS6のTCPラッパーの概要と設定方法
- nmapでオープンしているポート番号とバージョンを確認
- yumコマンドで最新のパッケージにアップデート
- 更新可能なRPMパッケージのリストをメールで送信する
- CentOSで不要なサービスは起動しないようにする
- RPMパッケージのインテグリティチェック
- cronで使用するファイルのパーミッション設定
- CentOSのumaskの設定
- ユーザーホームディレクトリ内の権限設定をセキュアにする
- CentOSのパスワードファイルのパーミッション設定
- findコマンドでファイル書込権限をいっせいにチェック
- findコマンドでセットユーザ(グループ)IDが不要にセットされていないかチェック
- findコマンドで所有者、グループが存在しないファイルを抽出
- ログイン時などに表示されるシステムバナーを変更するには?
- CentOSのユーザーアカウントのパスワードポリシーを設定
- pam_cracklibモジュールでパスワードポリシーを設定
- pam_unix.soモジュールを使って過去のパスワード再使用を制限する
- システムコンソールでのrootログインを制限する方法
- suコマンドによるrootへのスイッチを制限する
- root権限でのコマンド実行、sudoだと監査ログが取得できる
- デーモン用アカウントなどに対しシェルを使用を無効にする
- パスワード認証を失敗時にアカウントをロックアウトする設定
- rootアカウントのPATH環境変数のセキュリティについて
- NTPのセキュリティを考慮した設定
- セキュリティを考慮してX Windowsを設定または削除する方法
- ファイルの改ざん対策用にTripwireを導入
- CentOSにホスト型侵入検知ソフトAIDE(Advanced Intrusion Detection Environment)を導入
- アイドルのシェルを自動で強制終了させるには?
- CentOSでコアダンプを無効にする方法
- Linuxのbash脆弱性CVE-2014-6271、Shellshockを修整
- CentOSでバッファーオーバーフロー脆弱性に対する防御機能が有効になっているか確認する
yum、rpmパッケージ、サービス
パーミッション
ログイン、認証、パスワード、アカウント制御
ツール
トラブルシューティング