カテゴリー
Linux

Ubuntu 20.04へ

Ubuntuサーバを18.04から20.04に更新。
LTSからLTSの更新はいつもながらトラブルほとんどなし。
今回は前回と違ってApache周りも問題なく、全く何もせずに普通に動いてる。
カテゴリー
Linux 日記

Ubuntu 18.04.2へ

今更ながらUbuntuを16から18に更新。
相変わらずUbuntuのパッケージ管理は優秀。

Apacheの設定ファイルだけ上書きしたらphpが無効化されてしまっていたので、

# a2enmod php7.2

して事なきを得た。

カテゴリー
Linux

ドコモメールを自宅サーバで受信してGmailに転送

やっとこさ docomo.ne.jp なメールも公式にIMAP経由で受信できるようになったので、Gmailに転送できるようになった。
ただ、GmailはPOP3しか対応していないので、自宅のLinuxサーバでfetchmailを使いIMAP受信をしてGmailに転送することとした。

これでうんざりする迷惑メールもGmailの優秀なフィルタで排除されるし、携帯のメールもGmailにアーカイブしておけるようになった。

fetchmailインストール

# aptitude install fetchmail

設定ファイル作成
# vi /etc/fetchmailrc

poll imap.spmode.ne.jp
proto imap
uidl
timeout 30
username “docomo ID”
password “docomo IDパスワード”
smtpname “kuniharumaki+docomo@gmail.com”
smtphost “localhost”
idle
no mimedecode
keep
ssl

パスワード直書きなのでパーミッション注意
# chmod 600 /etc/fetchmailrc

デーモンとして起動するように設定
# vi /etc/default/fetchmail

OPTIONS=–syslog
START_DAEMON=yes

起動してメールがGmailに転送されてるか確認して終わり
# /etc/init.d/fetchmail start

動作状況はsyslogに出力されてるので確認する。
daemonとして起動させておくと、ほぼメールの着信と同時に転送がかかる。

参考情報: ドコモメールアプリ以外のメールソフトでのご利用方法
https://www.nttdocomo.co.jp/service/docomo_cloud/docomo_mail/function/other/index.html

カテゴリー
Linux

Apache CVE-2011-3192 対応

先月末に世間を賑わせたRange headerを悪用したDoS攻撃を食らうApacheの脆弱性。
Ubuntuでも対応パッケージがリリースされていたのでインストール。
ウチはUbuntu 10.04LTSを使ってるけど、Apache 2.2.14にパッチを当てたパッケージになっているので細かい動作検証は不要っぽい。
Debianの対応チームに感謝!!

以下、更新パッケージ詳細

apticron report [Sat, 03 Sep 2011 04:40:11 +0900]
========================================================================

apticron has detected that some packages need upgrading on:

kuniharumaki.com

The following packages are currently pending an upgrade:

apache2 2.2.14-5ubuntu8.6
apache2-mpm-prefork 2.2.14-5ubuntu8.6
apache2-prefork-dev 2.2.14-5ubuntu8.6
apache2-utils 2.2.14-5ubuntu8.6
apache2.2-bin 2.2.14-5ubuntu8.6
apache2.2-common 2.2.14-5ubuntu8.6

========================================================================

Package Details:

Reading changelogs…
— Changes for apache2 (apache2 apache2-mpm-prefork apache2-prefork-dev apache2-utils apache2.2-bin apache2.2-common) —
apache2 (2.2.14-5ubuntu8.6) lucid-security; urgency=low

* SECURITY UPDATE: Range header DoS vulnerability
– debian/patches/207_CVE-2011-3192.dpatch: filter out large
byte ranges and improve memory efficiency in handling buckets.
(thanks to Debian and upstream)
– CVE-2011-3192
* Include fix for regressions introduced by above patch:
– debian/patches/208_CVE-2011-3192_regression.dpatch: return 206
and 416 response codes where appropriate (see deban bug 639825)

— Steve BeattieThu, 01 Sep 2011 01:52:17 -0700

========================================================================

You can perform the upgrade by issuing the command:

aptitude full-upgrade

カテゴリー
Linux MySQL PHP

phpMyAdmin 初期設定メモ

このblogもWordpressで運用しているので、たまにデータのメンテナンスでphpMyAdminを使うことがある。
Ubuntuなので、基本はaptitudeで簡単インストールなのだが、その後若干の設定変更が必要なので、その部分のメモ。
Ubuntu 10.04 LTS のphpMyAdmin 3.3.2deb1 想定。

まず、インストールが終わってログインすると、

リンクテーブルを処理するための追加機能が無効になっています。理由についてはこちらをご覧ください

というアラートが表示されている。
これを解消するための設定。

管理用テーブル(phpmyadmin)の作成

  1. zcat /usr/share/doc/phpmyadmin/examples/create_tables.sql.gz > /tmp/create_tables.sql
  2. mysql -u [mysql管理者ID] -p < /tmp/create_tables.sql
  3. rm /tmp/create_tables.sql

/etc/phpmyadmin/config-db.php 編集
$dbname=”; を $dbname=’phpmyadmin’; に変更
※それ以外の箇所はデフォルトのままで問題ないはず。

/etc/phpmyadmin/config.inc.php 編集
$cfg[‘Servers’][$i][‘designer_coords’] = ‘pma_designer_coords’; の下に
$cfg[‘Servers’][$i][‘tracking’] = ‘pma_tracking’; を追記(なんでこれ書かれてないんだろ)

これでphpMyAdminをログアウトしてからログインしなおせばアラートが消えて、追加機能が有効になる。
例えば追加される「デザイナ」タブでは、テーブルのリレーションがグラフィカルに設定できるようになったりする模様。

カテゴリー
Linux

Apacheのログ出力はcronolog経由が便利

Ubuntuでもそうだけど、Apacheインストール直後はlogrotateで4時くらいにログをローテートさせるのが一般的。

  • 何か追加でインストールする必要が無い
  • 指定した期間でローテートできる
  • 指定した期間で削除できる
  • 自動的に圧縮できる

みたいなメリットがある。
でも逆に、

  • 出力ファイル名を変更できない(出来るけど面倒)
  • さらに月別にディレクトリを掘るとかが大変

ってことで、出力ファイル名を変えたい人は普通Apacheに付属のrotatelogsを使っているみたい。
でも、どうにもrotatelogsのオプションがしっくりこなくて使ってなかったんだけど、似たようなものでcronologというのがあって、そっちがしっくりきたので、簡単にメモ。

インストールはaptitudeで簡単に入るので省略。

使い方も簡単で、ログ出力指定のところにパイプで書くだけ。

CustomLog “|/usr/bin/cronolog -S /var/www/logs/latest -P /var/www/logs/latest.prev /var/www/logs/%Y/%m/default-%Y%m%d-access.log” combined

こんな感じ。ErrorLogやRewiteLogなどパイプで渡せる部分にならどこでも使える。(別にApacheじゃなくても良い)
年/月 とディレクトリを作成して、その下に default-20100601-access.log みたいなファイル名でログを出力する設定になっている。

詳しいオプションは本家ページのUsageを確認して貰うとして、便利なのは S オプションと P オプション。
それぞれ、Sが最新(現在出力中)のファイルへのシンボリックリンク作成、Pが一個前(上記の例だと1日前)のファイルへのシンボリックリンクが作成される。
いちいち今出力されているログファイルのパスとかファイル名を考えなくてもシンボリックリンクを参照すれば良いので管理が楽になる。

結構ボケーッとログファイルを眺めていることが好きなので、そういうときには、

tail -q –follow=name –retry /var/www/logs/latest

とかやっておけば、ログを流して見ておけるし、日付が変わってリンク先が切り替わっても追従してくれる。
pオプションで作ったリンクは、前日のログファイルをvisitorsなどで解析するときの指定に便利。

rotatelogsは付属してくるので割と使われているのを見るけど、cronologの方が高機能だからオススメ。

ちなみに当たり前だけど、ログは出力されっぱなしで圧縮も削除もされないので、その辺りはfindコマンドなどで別途実装する必要がある。