ClamAV (Clam AntiVirus)への移行 [Linux]
これまで Linux 上でのウイルスチェックには、下記のフリー版を使用してきた。
・Avira AntiVir Personal (v2.1)
・BitDefender Antivirus Scanner for Unices
しかし、下記の理由から、もうすぐ使用できなくなる(いつまで使用できるかは不明)。
・Avira AntiVir Personal
2016-06-30 をもって、Linux 版のサポートが終了となる。
・BitDefender Antivirus Scanner for Unices
2016-02-02 付けで、今後はサポートされない旨の告知があった。
また、2016-06-20 時点で、フリー・ライセンスの更新ページがなくなっている。
(年次でのフリー・ライセンスの更新ができず、ウイルス情報を更新できなくなる。)
このため、ClamAV (Clam AntiVirus) への移行を行った。
2. 要件
・ウイルス情報の更新、ウイルスチェックは cron を使用して時刻指定で起動する。
(また、必要な場合には、任意のタイミングで手動で起動する。)
・複数の Linux をマルチブートするため、ウイルス情報を共有する。
(CentOS 6、CentOS 7、Debian 7、Debian 8 で共有する。)
・受信メールのウイルスチェックは、Procmail と ClamAV を組み合わせて実施する。
(詳細は省略。また、ISP が当該機能を無料で提供する場合には、そちらを使用する。)
3. 前処理
ウイルス情報を共有するため、実行ユーザーの UID、GID を統一する。
設定例は、下記の通りである。
(1) CentOS 6 の場合
# grep clam /etc/group clam:x:502: # grep clam /etc/passwd clam:x:131:502::/var/lib/clamav:/bin/false
(2) CentOS 7 の場合
# grep clam /etc/group clamupdate:x:502: # grep clam /etc/passwd clamupdate:x:131:502::/var/lib/clamav:/sbin/nologin
(3) Debian 7、Debian 8 の場合
# grep clam /etc/group clamav:x:502: # grep clam /etc/passwd clamav:x:131:502::/var/lib/clamav:/bin/false
4. インストール
(1) CentOS 6 の場合
EPEL リポジトリから下記のパッケージをインストールする。
clamav-0.99.1-1.el6.i686 clamav-db-0.99.1-1.el6.i686
(2) CentOS 7 の場合
EPEL リポジトリから下記のパッケージをインストールする。
clamav-0.99.1-1.el7.x86_64 clamav-data-0.99.1-1.el7.noarch clamav-filesystem-0.99.1-1.el7.noarch clamav-lib-0.99.1-1.el7.x86_64 clamav-update-0.99.1-1.el7.x86_64
(3) Debian 7、Debian 8 の場合
標準のリポジトリから下記のパッケージをインストールする。
clamav clamav-base clamav-freshclam libclamav7
(補足)
Debian 7 では v0.99、Debian 8 では v0.99.2 がインストールされる。
5. 設定
(1) ウイルス情報の共有のための設定
・/var/lib/clamav/ を 共有ディレクトリに移動する。
・/var/lib/clamav を上記で移動したディレクトリへのシンボリック・リンクにする。
(2) ウイルス情報の更新のための設定
(a) 初期設定の無効化
実施する時刻を独自に設定するため、下記の初期設定を無効にする。
# CentOS 6 の場合
/etc/cron.daily/freshclam
# CentOS 7 の場合
/etc/cron.d/clamav-update
# Debian 7 の場合
/etc/init.d/clamav-freshclam の自動起動
# Debian 8 の場合
clamav-freshclam.service の自動起動
(b) cron への登録
freshclam を実行するためのエントリを追加する。
(3) ウイルスチェックのための設定
(a) cron への登録
clamscan を実行するためのエントリを追加する。
6. 備考
(1) ウイルス情報の取得のために接続するサーバー
下記のファイル内の DatabaseMirror で指定されている。
# CentOS 6、CentOS 7 の場合
/etc/freshclam.conf
# Debian 7、Debian 8 の場合
/etc/clamav/freshclam.conf
(補足)
初期値として指定されているサーバーには複数の IP アドレスが設定されている。
(nslookup の実行結果で確認できる。)
このため、DNS ラウンドロビンによるロードバランシングが行われる。
(2) ウイルス情報の取得時のワーニング
インストールされている ClamAV のバージョンが古い場合に表示される。
(動作上は問題ない。)
(例) WARNING: Your ClamAV installation is OUTDATED! WARNING: Local version: 0.99 Recommended version: 0.99.2
また、--no-warnings の指定により、ワーニングの表示を無効化できる。
MewからFirefoxを起動する設定の変更 [Linux]
しかし、最近、選択する URL によっては、Firefox を起動できないという問題が発生するようになってしまった。そこで、左記問題への対応を行った。
詳細は、以下の通りである。
1. 発生事象
Mew のメール参照において、メッセージ内の URL の選択による Firefox の起動ができないことがある。
・問題を発生する URL とそうでない URL が存在する。
・選択した URL は、指定したスクリプトに正しく引き渡されている。
・上記スクリプトを手動で実行した場合には、問題は発生しない。
・ソフトウェアのバージョン: Mew 6.3/6.4/6.6、Firefox ESR 38.8.0/45.1.1
(1) 関係する設定 (~/.mew.el)
;; browse specified URL (with Firefox) (setq browse-url-browser-function 'browse-url-firefox) (setq browse-url-firefox-program "firefox-mew") (define-key mew-message-mode-map "B" 'browse-url-at-point) (define-key mew-message-mode-map [mouse-2] 'browse-url-at-mouse)
・firefox-mew は、URL($1の値) を指定して Firefox(スクリプト) を実行する。
・Firefox は、バージョン/オプションを指定して firefox コマンドを実行する。
・最終的には、下記のコマンドを実行する。
exec /usr/local/firefox-<ver>/firefox -P www-<ver> -new-tab <url>
2. 対象方法
下記のいずれかの手順を実施する。
2-1. 対処方法-1
browse-url-firefox を browse-url-generic に変更する。
(今回は、こちらでの対応を行った。)
[変更前] (setq browse-url-browser-function 'browse-url-firefox) (setq browse-url-firefox-program "firefox-mew") [変更後] (setq browse-url-browser-function 'browse-url-generic) (setq browse-url-generic-program "firefox-mew")
2-2. 対処方法-2
firefox-mew から直接 firefox コマンドを実行するように変更する。
Firefoxのアドオンの整理 [Linux]
その結果、下記のアドオンに絞り込んだ。
# Firefox のバージョン
・Firefox 38.8.0 ESR
・Firefox 45.1.1 ESR
1. Adblock Plus
不要な広告表示を抑止する。
2. Classic Theme Restorer
Firefox の UI をカスタマイズする。
(補足)
再起動ボタンの表示にも対応可能である。
3. Flashblock
Flash コンテンツの自動再生を抑止する。
4. gtranslate
Google 翻訳を使用した翻訳機能である。
翻訳の結果を見たいが、元のページを変更されたくないという方にはお薦めである。
5. Stylish
ユーザースタイルシートを管理する。
(補足)
Remove Google left sidebar for any country と自作のスタイルを使用している。
6. Tab Mix Plus
タブ機能を拡張する。
(補足)
タブが 1 個の場合には、タブを非表示にすることも可能である。
7. User Agent Switcher
User Agent を一時的に変更する。
(補足)
Linux 版 Firefox ではログインできないサイトへのログイン時に使用している。
8. Vacuum Places Improved
SQLite ファイルの最適化を行う。
9. YesScript
特定のページ(URL) において、JavaScript の使用を抑止する。
(補足)
通常は無効化しており、必要となった場合に有効化している。
10. 備考
Windows 版 Firefox では、さらに下記のアドオンを使用している。
(1) IE Tab v2
Firefox 上での Internet Explorer のレタリングエンジンの使用を可能にする。
(2) Video DownloadHelper
MP3 ファイルのダウンロード(作成)を行う。
通常は無効化しており、必要な時に有効化している。
ハードウェアクロックのシステムクロックとの同期 [Linux]
詳細は、以下の通りである。
1. 状況と対処方法
(1) CentOS 6
シャットダウン、またはリブート時に実施される。
(/etc/init.d/halt)
(2) Debian 7
シャットダウン、またはリブート時に実施される。
(/etc/rc{0,6}.d/K08hwclock.sh -> /etc/init.d/hwclock.sh)
(3) Debian 8 (systemd、ntpd を使用)
実施されない(chronyd を使用する場合を除く)。
このため、下記の対応を実施する。
(a) /usr/sbin/halt.local というファイル名のシェルスクリプトの作成
halt-local.service で実行される。
(b) /usr/sbin/halt.local への設定
下記の設定を追加する。
# synchronize the hardware clock to the system time hwclock --systohc
(c) halt-local.service の自動起動の設定
自動起動が無効化されている(disabled と出力される)場合には、有効化する。
# systemctl status halt-local.service (または # systemctl list-unit-files halt-local.service) # systemctl enable halt-local.service
(4) CentOS 7 (systemd、ntpd を使用)
実施されない(chronyd を使用する場合を除く)。
このため、下記の対応を実施する。
(a) /usr/sbin/halt.local の作成
halt-local.service で実行される。
(b) /usr/sbin/halt.local への設定
下記の設定を追加する。
# synchronize the hardware clock to the system time hwclock --systohc
(c) halt-local.service の自動起動の設定
自動起動が無効化されている(disabled と出力される)場合には、有効化する。
# systemctl status halt-local.service (または # systemctl list-unit-files halt-local.service) # systemctl enable halt-local.service
2. 備考
ログ: /etc/adjtime
KVMのゲストOSでのDVD/CDブート [Linux]
1. DVD/CD ブートの手順
(1) virt-manager の起動
(2) メディアのセット
・DVD/CD メディアを使用する場合には、メディアをドライブにセットする。
(ISO ファイルを使用する場合には、特に操作は不要)
(3) ゲスト OS の設定変更
(a) DVD/CD のマウント
・ゲスト OS を選択する。
・メニューから [View] -> [Details] を選択する。
・左側のリスト [CDROM 1] で、[Connetct] を選択する。
・メディアのパスを設定する(DVD/CD、ISO ファイル)。
(補足)
DVD/CD が不要となった時点で、マウントの解除を実施する。
・[Disconnect] を選択する。
(b) ブートメニューの表示
・左側のリストから [Boot Options] を選択する。
・[Enable boot menu] にチェックを入れる。
・[Apply] を選択する。
(4) ゲスト OS の起動
ESC キーを押下し、DVD/CD からのブートを選択する。
2. 備考
上記により、インストールメディアでの rescue モードの実行等が可能となる。
AFN 360の聴取 [Linux]
米軍が駐留する地に設けられた基地関係者とその家族向けの放送局である。
日本では、1997 年まで FEN(Far East Network) と呼ばれていた。
AFN 360 Internet Radio を Debian 7 以外では聴取できなかったため対応を行った。
詳細は、以下の通りである。
1. 発生事象
CentOS 6/7、Debian 8 で AFN 360 を聴取できない。
(1) URL
http://afn360.afnpacific.net/afnp_tko
(2) エラーメッセージ
We're sorry, but this stream is currently unavailable.
If you continue to receive this message when attempting
to listen to this station, please e-mail us at ...
(3) 使用した Web ブラウザ
Firefox 42.0/43.0.4
(ftp.mozilla.org/pub/firefox/ からダウンロード)
2. 対処方法
2-1. Firefox を更新できる場合の対処方法
Firefox 44.0 以降に更新する。
2-2. Firefox を更新できない場合の対処方法
(1) CentOS 6 の場合
gstreamer-ffmpeg-0.10.11-1.el6.rf.i686 パッケージを追加する。
(依存パッケージの追加が不要なため、RPMforge リポジトリのパッケージを採用する。)
(2) CentOS 7 の場合
gstreamer-ffmpeg-0.10.11-1.el6.rf.x86_64 パッケージを追加する。
(CentOS 6 用のパッケージを使用する。)
(補足)
gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64 の追加では状況は変わらない。
(3) Debian 8 の場合
現時点では不明である。
また、得られた情報は、下記の通りである。
・Debian 8 では gstreamer0.10-ffmpeg:i386 が機能しない。
・Debian 8 では gstreamer1.0-ffmpeg:i386 パッケージは存在しない。
(gstreamer1.0-libav に移行している。)
・Firefox と gstreamer1.0-libav の連携に問題がある。
詳細は、備考を参照。
Firefoxでのtelemetry pingsとdatareporting/archivedの保存機能の無効化 [Linux]
また、データは追加となるため、ディスク使用量は増加し続ける。
[保存されるデータ]
・telemetry pings
・datareporting/archived
[データが蓄積されるファイル]
・<profile_dir>/datareporting/archived/
・<profile_dir>/saved-telemetry-pings/
・<profile_dir>/prefs.js
この機能が不要な場合には、以下の手順により、無効化することができる。
1. 手順
Firefox を停止した状態で、以下の手順を実施する。
(1) user.js に下記の設定を追加する。
// disable to save telemetry pings and datareporting/archived user_pref("toolkit.telemetry.archive.enabled", false); user_pref("toolkit.telemetry.enabled", false); user_pref("toolkit.telemetry.unified", false);
(2) prefs.js を編集する。
下記の行を削除する。
user_pref("datareporting.sessions.previous.*", ...);
(補足)
この機能は、Firefox 40.0 から存在する。
(3) 当該ファイルを削除する。
% cd ~/.mozilla/firefox/<profile_dir> % rm -fr datareporting % rm -fr saved-telemetry-pings
(補足)
Windows の場合には、下記の手順を実施する。
・cd %appdata%/mozilla/firefox/profiles/<profile_dir>
・当該ファイルの削除
2. 備考
・ヘルスレポート、クラッシュレポートの送信は無効化している。
・Firefox 42.0 〜 43.0.4 で動作確認を行った。
Stylishの設定画面でのファイル入出力 [Linux]
・Stylish 2.0.6 for Firefox
・設定の変更、変更後の設定内容のファイルへの保存を行った。
Windows 上では、テキストエディタとの間のコピー・ペーストで特に問題なくできた。
しかし、Linux 上では、少々手間取ったため、備忘録としてまとめることにした。
詳細は、以下の通りである。
1. ファイルへの出力
(1) Emacs のバッファへドラッグ・アンド・ドロップする。
(2) Emacs 上でファイルへの保存を行う。
2. ファイルからの入力
(1) 当該ファイルを Firefox で開く。
開けない場合には、ファイルの拡張子を txt に変更する。
(2) Firefox 上の出力と Stylish の設定画面間で、コピー・ペーストを行う。
Mew-6.6でのmew-passwd-alistのフォーマット [Linux]
しかし、Mew-6.6 への更新後、パスワードの自動入力ができなくなってしまった。
原因は、mew-passwd-alist の設定値のフォーマットが変更されたためである。
詳細は、下記の通りである。
1. mew-passwd-alist のフォーマット
(1) Mew-5.1 ~ Mew-6.5 の場合
'(("<user-1>@<smtp-server-1>:submission" "<passwd-1>" 0) ("<user-2>@<smtp-server-2>:submission" "<passwd-2>" 0) ...) (例) '(("user1@smtp.xxx.ne.jp:submission" "pass1-0123" 0))
(2) Mew-6.6 の場合
'(("<user-1>@<mail-domain-1>@<smtp-server-1>:submission" "<passwd-1>" 0) ("<user-2>@<mail-domain-2>@<smtp-server-2>:submission" "<passwd-2>" 0) ...) (例) '(("user1@yyy.ne.jp@smtp.xxx.ne.jp:submission" "pass1-0123" 0))
2. 備考
mew-passwd-alist への設定は、下記のように行っている。
・mew-passwd-alist にパスワードを設定する関数を mew-smtp-set-passwd として作成
・mew-real-send-hook、mew-smtp-flush-hook に mew-smtp-set-passwd を追加
・mew-smtp-sentinel-hook で mew-passwd-alist を初期化(nilを設定)
mgを使用したMewの全文検索 [Linux]
実施手順は、以下の通りである。
0. 制限事項
(1) カレントフォルダのみを検索対象とする。
(2) Mew 6.3 以降を対象とする。
下記の環境において、動作確認を行った。
・Mew 6.3 on CentOS 6.x, Mew 6.4 on Debian 7, Mew 6.6 on Debian 8
(補足)
Mew 5.2 では、想定通りの結果とはならなかった。
(3) Perl、nkf がインストールされていること。
1. mg (multi-line grep) のインストール
(1) ダウンロード
下記 URL から mg-2.26 をダウンロードする。
・ftp://ftp.sra.co.jp/pub/lang/perl/scripts/utashiro-scripts/
(2) カスタマイズ
(a) 1 行目を変更する。
(変更前) #!/usr/local/bin/perl (変更後) #!/usr/bin/perl
(b) 354 行目をコメント化する。
コメント化しない場合、下記のワーニングが出力される。 $* is no longer supported at /tmp/mg line 354.
(3) インストール
/usr/local/bin 等に mg というファイル名でインストールする。
また、実行できるようにパーミションを設定する。
2. Base64 エンコードされたメッセージへの対応
テキストメッセージと Base64 メッセージを同時に検索することはできない。
よって、nkf のオプションを変更する関数を作成し、これに対応する。
手順は、下記の通りである。
(1) mew-search-util.el のインストール
mew-search-util.el を load-path に設定されたディレクトリにコピーする。
(mew-search-util.el のソースコードは、備考を参照。)
(2) ~/.mew.el への設定の追加
;;(setq mew-search-mg-locale "ja_JP.UTF-8") ;; ja_JP.UTF-8 の場合に設定 (setq mew-prog-grep "mg") (require 'mew-search-util)
ja_JP.UTF-8 で機能しない場合には、コメント化する(ja_JP.eucJP が使用される)。
3. 使用方法
(1) 検索対象のフォルダに移動する。
(2) 必要に応じて、mg のフィルタコマンド(nkf) のオプションを変更する。
M-x mew-set-mg-opts
または M-? を押下する。
(3) 全文検索を実行する。
・/ または ? を押下する。
・検索条件を入力する。
詳細は、Mew のマニュアルを参照。