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