Text
Page: 1
lilo.linux.or.jp
を wheezy から
jessie にあげた話
Kazuhiro NISHIYAMA
LILO&東海道らぐオフラインミーティング
2016-05-01
Page: 2
lilo.linux.or.jp とは?
主な用途:
LILO の Web サーバー
(apache)
ML サーバー (mailman)
Page: 3
環境
さくらの VPS
Debian GNU/Linux
Page: 4
アップグレード前
リリースノートを読む
https://www.debian.org/releases/
jessie/amd64/release-notes/ch-
upgrading.ja.html
その他情報収集
Page: 5
問題点 (1/2)
apache 2.2 から 2.4 への変更
がネック
allow や deny の設定⽅法が変わって
いる
中間証明書の設定⽅法が変わった
証明書ファイルに結合して指定するように変わ
った
SSL/TLS を (まだ) 使っていないので影響なし
Page: 6
問題点 (2/2)
denyhosts がなくなる
openssh 6.7 で libwrap サポートが
無くなることもあって fail2ban に移
⾏
milter-manager を使っている
が OS の更新時の⼿順のドキュ
メントがない
Page: 7
denyhosts から fail2ban
への移⾏ (1/2)
aptitude purge denyhosts
aptitude install fail2ban
/etc/hosts.deny の
denyhosts で追加された⾏を削
除
Page: 8
denyhosts から fail2ban
への移⾏ (2/2)
/etc/hosts.allow の「ALL:
127.0.0.1 [::1]」に「sshd:
ALL」を追加
/etc/hosts.deny の「ALL
EXCEPT sshd: ALL」を削除
/etc/hosts.deny に「ALL:
ALL」を設定
Page: 9
ntp 削除
systemd-timesyncd に移⾏す
るため削除
Page: 10
アップグレード (1/2)
/etc/apt/sources.list と /etc/
apt/sources.list.d/milter-
manager.list の wheezy を
jessie に変更
apt-get update
echo $COLUMNS $LINES が
80 25 になるように端末をリサ
イズ (scriptreplay を考慮して)
Page: 11
アップグレード (2/2)
script -t 2>~/upgrade-
jessie1.time -a ~/upgrade-
jessie1.script
apt-get upgrade
apt-get dist-upgrade
reboot
Page: 12
mailman
「古いキューファイルが存在し
ます」で質問が出た
多少メールがロストしても大し
た問題はないので「かまわずに
継続」で進んだ
Page: 13
設定ファイルのマージ
途中設定ファイルをどうするか
聞かれた時は全て既存のファイ
ルを使用を選んだ
Page: 14
rkhunter.conf (1/3)
mv rkhunter.conf.dpkg-dist
rkhunter.conf
aptitude install unhide
aptitude purge unhide.rb
実際は後で unhide パッケージに変更
した
Page: 15
rkhunter.conf (2/3)
反映しなかった変更:
ALLOW̲SSH̲PROT̲V1=1
SCRIPTWHITELIST=/usr/bin/
unhide.rb
unhide.rb から unhide パッケージに
置き換えたため
Page: 16
rkhunter.conf (3/3)
反映した変更:
Page: 17
/etc/etckeeper/
etckeeper.conf
mv etckeeper/
etckeeper.conf.dpkg-dist
etckeeper/etckeeper.conf
GIT̲COMMIT̲OPTIONS="-v"
を再設定
Page: 18
/etc/default/
spamassassin
ENABLED=1 にするだけの変更
だった
mv /etc/default/
spamassassin{.dpkg-dist,}
/lib/systemd/system/
spamassassin.service に移⾏
済みなので ENABLED は影響な
し
Page: 19
spamassassin/local.cf
そのまま rm /etc/
spamassassin/local.cf.dpkg-
Page: 20
/etc/dokuwiki/local.php
ではなく
になっていたので、そのまま「rm
dokuwiki/local.php.ucf-dist」し
た。
Page: 21
/etc/dokuwiki/
apache.conf
「order allow,deny」と「Allow
from ALL」を「Require all
granted」に
「Deny from all」を「Require
all denied」に
rm dokuwiki/apache.conf.ucf-
dist
Page: 22
/etc/milter-greylist/
greylist.conf
mv milter-greylist/
greylist.conf.dpkg-dist milter-
greylist/greylist.conf
http://milter-
manager.sourceforge.net/
reference/ja/install-to-
debian.html の設定
Page: 23
apache2 の sites
rm apache2/sites-enabled/
lilo.linux.or.jp
mv apache2/sites-available/
lilo.linux.or.jp{,.conf}
a2ensite lilo.linux.or.jp.conf
Page: 24
apache2 のアクセス許可設
定
「Order allow,deny」と「allow
from all」を「Require all
granted」に変更
「service apache2 reload」で
反映
Page: 25
apache2 の conf
dokuwiki.conf は自動で conf-
available,conf-enabled に移⾏
済みだった
rmdir /etc/apache2/conf.d
Page: 26
dokuwiki の修正 (1/2)
http://lilo.linux.or.jp/wiki/ で
「A fatal error occured
during compilation of the
CSS files. If you recently
installed a new plugin or
template it might be broken
and you should try disabling
it again. [parse error: failed
at `#line-height: 1em; ` in /
lib/tpl/vector/static/css/
screen.css at line 384]」
Page: 27
dokuwiki の修正 (2/2)
「#line-height: 1em; /* fix
MSIE 6, 7 */」と古いサポート
切れの IE 向け記述だったので削
除
同様の修正をいくつか
Page: 28
ntp 設定 (1/3)
timedatectl set-ntp true
Page: 29
ntp 設定 (2/3)
/etc/systemd/
timesyncd.conf の Servers 設
定
Servers=ntp1.sakura.ad.jp
systemctl restart systemd-
timesyncd で反映
Page: 30
ntp 設定 (3/3)
systemctl status systemd-
timesyncd や timedatectl で確
認
Page: 31
掃除 (1/2)
apt-get autoremove
aptitude purge '~c'
aptitude search '~i!~Odebian!
~Omilter' でもうインストールで
きない古いパッケージ⼀覧
Page: 32
掃除 (2/2)
aptitude purge '~i!~Odebian!
~Omilter'
ここで「rkhunter が unhide.rb |
unhide を推奨」と出たので
unhide.rb から unhide に移⾏
削除後に「Invalid
SCRIPTWHITELIST configuration
option: Non-existent pathname: /
usr/bin/unhide.rb」と出たのでコメ
ントアウト
Page: 33
mailman のエラー対応
(1/4)
昨⽇さとうさんの指摘で気付い
た
lilo ML のメールが流れない状態
になっていた
Page: 34
mailman のエラー対応
(2/4)
根本的な原因は Debian の UTF-8
対応
Page: 35
mailman のエラー対応
(3/4)
Web の設定画⾯から⽂字化けし
ていた description と info を修
正
Page: 36
mailman のエラー対応
(4/4)
/var/lib/mailman/qfiles/
shunt/ に qrunner でエラーに
なったメールがたまっていた
/var/lib/mailman/bin/
unshunt コマンドを実⾏すると
流れた
Page: 37
⼆要素認証導⼊
aptitude install libpam-
google-authenticator
/etc/pam.d/sshd と /etc/ssh/
sshd̲config 設定
対象ユーザーで google-
authenticator コマンド実⾏
Page: 38
/etc/pam.d/sshd
http://blog.n-z.jp/
blog/2016-04-18-libpam-
google-authenticator.html 参照
Page: 39
ssh/sshd̲config (1/3)
ChallengeResponseAuthentic
ation yes
AuthenticationMethods
publickey,keyboard-
interactive
Page: 40
ssh/sshd̲config (2/3)
設定変更後、「service ssh
restart」すると sshd が起動し
ていなかった
LV=-c journalctl -u
ssh.service で調査
AuthenticationMethods is not
supported with SSH protocol 1
Page: 41
ssh/sshd̲config (3/3)
「Protocol 2,1」を「Protocol
2」に変更
rkhunter.conf の
「ALLOW̲SSH̲PROT̲V1=1」
はこれが関係していた
Page: 42
TLS 導⼊
letsencrypt の証明書導⼊
事前準備
JLA (linux.or.jp の管理組織) に確認
letsencrypt 用メールアドレス作成
各種サービスに設定
Page: 43
letsencrypt パッケージイ
ンストール
backports を有効に
deb http://ftp.jp.debian.org/
debian jessie-backports main
インストール
apt install -t jessie-backports
letsencrypt
バージョン 0.5.0-1~bpo8+1 が
⼊った
Page: 44
letsencrypt の証明書発⾏
重要やアカウントの復旧用メールア
ドレス設定 (初回のみ)
Page: 45
letsencrypt の証明書発⾏
Terms of Service に同意 (初回のみ)
Page: 46
letsencrypt の証明書発⾏
証明書発⾏完了
Page: 49
postfix 設定
snakeoil から letsencrypt の証
明書に変更
SSLv2, SSLv3 を禁⽌
service postfix reload で設定
反映
nc localhost 25 で EHLO
localhost で動作確認
(STARTTLS が含まれる)
Page: 50
apache2 設定 (1/2)
/etc/apache2/sites-
available/ の default-ssl.conf
などを元に設定作成
a2ensite
lilo.linux.or.jp̲ssl.conf で有効
に
Page: 51
apache2 設定 (2/2)
a2enmod ssl で SSL を有効に
service apache2 restart で反
映
ufw allow 443/tcp でポート開
放
https://lilo.linux.or.jp/ で表⽰確
認
Page: 52
mailman 設定変更
/etc/mailman/mm̲cfg.py の
DEFAULT̲URL̲PATTERN を
変更
'http://%s/cgi-bin/mailman/' を
'https://%s/cgi-bin/mailman/' に変
更
Page: 53
自動更新設定 (1/2)
/etc/cron.daily/local-
letsencrypt に以下のスクリプト
を設置
Page: 54
自動更新設定 (2/2)
スクリプトについて
基本部分は https://letsencrypt.org/
getting-started/ 由来
ログの保存回数 (⽇数) の 90 は
letsencrypt の証明書の有効期限から
savelog コマンドは debianutils パッ
ケージ由来
失敗した時以外でも差分があればメー
ルが⾶ぶ
Page: 55
まとめ (1/3)
wheezy から jessie へのアップ
グレードしました。
apache の移⾏で少しの間 Web が⾒
えない時間が発⽣しました。
dokuwiki も雑に対処しました。
mailman で問題が起きました。
他は大きな問題はなさそうでした。
Page: 56
まとめ (2/3)
⼆要素認証を導⼊しました。
今は google-authenticator コマンド
を実⾏して
~/.google̲authenticator が存在する
ユーザーだけ
移⾏期間として1ヶ⽉くらい余裕を⾒
て、6⽉になったら
~/.google̲authenticator の存在チ
ェックを外す予定
Page: 57
まとめ (3/3)
letsencrypt の証明書を導⼊
postfix (SMTP over TLS) と
apache2 (https) の設定
mailman の設定も変更
cron で自動更新の設定