Rabbit Slide Show

lilo.linux.or.jp を wheezy から jessie にあげた話

2016-05-01

Description

lilo.linux.or.jp を wheezy から jessie にあげたので、 その話をします。

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: 47

postfix 設定 (変更前)
                                                        
                                                         
                 
                                                                       
                                                                     

Page: 48

postfix 設定 (変更後)
                                                                          
                                                                       
                                             
                                             
                                   
                 
                                                                       
                                                                     

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 で自動更新の設定

Other slides