rabbit-slide-znz-lilo-20160501 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 81314f54b9a09a67e70ff6feb11c0a7ebbefeb1b
4
+ data.tar.gz: 7966d1f38d905a3066e57a7e1540852aad280a64
5
+ SHA512:
6
+ metadata.gz: 1347770274d5389a98e28fe2e576aee3130198a5c34de7f5622012b995c28960270cf9152d82e3cfd9742baa3eb67a03c5469c980f37333f895872c655aa0813
7
+ data.tar.gz: 30fce6bc1d59b92ebee25a7a47b081f10bb0bc4270c8091a8953942f3f87391565f09ead420e0d3b1897efe795540c18de3e2a0ebb2bc5a5247e8c30837d7fe6
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ lilo-20160501.rab
data/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # lilo.linux.or.jp を wheezy から jessie にあげた話
2
+
3
+ lilo.linux.or.jp を wheezy から jessie にあげたので、
4
+ その話をします。
5
+
6
+ ## 作者向け
7
+
8
+ ### 表示
9
+
10
+ rake
11
+
12
+ ### 公開
13
+
14
+ rake publish
15
+
16
+ ## 閲覧者向け
17
+
18
+ ### インストール
19
+
20
+ gem install rabbit-slide-znz-lilo-20160501
21
+
22
+ ### 表示
23
+
24
+ rabbit rabbit-slide-znz-lilo-20160501.gem
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ # spec.add_runtime_dependency("YOUR THEME")
11
+ end
12
+
13
+ desc "Tag #{spec.version}"
14
+ task :tag do
15
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
16
+ sh("git", "push", "--tags")
17
+ end
data/config.yaml ADDED
@@ -0,0 +1,20 @@
1
+ ---
2
+ id: lilo-20160501
3
+ base_name: lilo-20160501
4
+ tags:
5
+ - debian
6
+ presentation_date: 2016.5.1
7
+ version: 1.0.0
8
+ licenses: []
9
+ slideshare_id: lilo-20160501
10
+ speaker_deck_id: lilo-dot-linux-dot-or-dot-jp-from-wheezy-to-jessie
11
+ ustream_id:
12
+ vimeo_id:
13
+ youtube_id:
14
+ author:
15
+ markup_language: :rd
16
+ name: Kazuhiro NISHIYAMA
17
+ email: zn@mbf.nifty.com
18
+ rubygems_user: znz
19
+ slideshare_user: znzjp
20
+ speaker_deck_user: znz
data/letsencrypt-1.png ADDED
Binary file
data/letsencrypt-2.png ADDED
Binary file
data/letsencrypt-3.png ADDED
Binary file
data/lilo-20160501.rab ADDED
@@ -0,0 +1,420 @@
1
+ = lilo.linux.or.jp を wheezy から jessie にあげた話
2
+
3
+ # : subtitle
4
+ # サブタイトル
5
+ : author
6
+ Kazuhiro NISHIYAMA
7
+ # : institution
8
+ # 所属
9
+ : content-source
10
+ LILO&東海道らぐオフラインミーティング
11
+ : date
12
+ 2016-05-01
13
+ # : allotted-time
14
+ # 5m
15
+ # : theme
16
+ # default
17
+
18
+ = lilo.linux.or.jp とは?
19
+
20
+ 主な用途:
21
+
22
+ * LILO の Web サーバー (apache)
23
+ * ML サーバー (mailman)
24
+
25
+ = 環境
26
+
27
+ * さくらの VPS
28
+ * Debian GNU/Linux
29
+
30
+ = アップグレード前
31
+
32
+ * リリースノートを読む
33
+ * https://www.debian.org/releases/jessie/amd64/release-notes/ch-upgrading.ja.html
34
+ * その他情報収集
35
+
36
+ = 問題点 (1/2)
37
+
38
+ * apache 2.2 から 2.4 への変更がネック
39
+ * allow や deny の設定方法が変わっている
40
+ * 中間証明書の設定方法が変わった
41
+ * 証明書ファイルに結合して指定するように変わった
42
+ * SSL/TLS を (まだ) 使っていないので影響なし
43
+
44
+ = 問題点 (2/2)
45
+
46
+ * denyhosts がなくなる
47
+ * openssh 6.7 で libwrap サポートが無くなることもあって fail2ban に移行
48
+ * milter-manager を使っているが OS の更新時の手順のドキュメントがない
49
+
50
+ = denyhosts から fail2ban への移行 (1/2)
51
+
52
+ * aptitude purge denyhosts
53
+ * aptitude install fail2ban
54
+ * /etc/hosts.deny の denyhosts で追加された行を削除
55
+
56
+ = denyhosts から fail2ban への移行 (2/2)
57
+
58
+ * /etc/hosts.allow の「ALL: 127.0.0.1 [::1]」に「sshd: ALL」を追加
59
+ * /etc/hosts.deny の「ALL EXCEPT sshd: ALL」を削除
60
+ * /etc/hosts.deny に「ALL: ALL」を設定
61
+
62
+ = ntp 削除
63
+
64
+ * systemd-timesyncd に移行するため削除
65
+
66
+ = アップグレード (1/2)
67
+
68
+ * /etc/apt/sources.list と /etc/apt/sources.list.d/milter-manager.list の wheezy を jessie に変更
69
+ * apt-get update
70
+ * echo $COLUMNS $LINES が 80 25 になるように端末をリサイズ (scriptreplay を考慮して)
71
+
72
+ = アップグレード (2/2)
73
+
74
+ * script -t 2>~/upgrade-jessie1.time -a ~/upgrade-jessie1.script
75
+ * apt-get upgrade
76
+ * apt-get dist-upgrade
77
+ * reboot
78
+
79
+ = mailman
80
+
81
+ * 「古いキューファイルが存在します」で質問が出た
82
+ * 多少メールがロストしても大した問題はないので「かまわずに継続」で進んだ
83
+
84
+ = 設定ファイルのマージ
85
+
86
+ * 途中設定ファイルをどうするか聞かれた時は全て既存のファイルを使用を選んだ
87
+
88
+ = rkhunter.conf (1/3)
89
+
90
+ * mv rkhunter.conf.dpkg-dist rkhunter.conf
91
+ * aptitude install unhide
92
+ * aptitude purge unhide.rb
93
+ * 実際は後で unhide パッケージに変更した
94
+
95
+ = rkhunter.conf (2/3)
96
+
97
+ 反映しなかった変更:
98
+
99
+ * ALLOW_SSH_PROT_V1=1
100
+ * SCRIPTWHITELIST=/usr/bin/unhide.rb
101
+ * unhide.rb から unhide パッケージに置き換えたため
102
+
103
+ = rkhunter.conf (3/3)
104
+
105
+ 反映した変更:
106
+
107
+ MAIL-ON-WARNING="(管理者グループ)@lilo.linux.or.jp"
108
+
109
+ # for etckeeper
110
+ ALLOWHIDDENDIR=/etc/.git
111
+ ALLOWHIDDENFILE=/etc/.etckeeper
112
+ ALLOWHIDDENFILE=/etc/.gitignore
113
+
114
+ = /etc/etckeeper/etckeeper.conf
115
+
116
+ * mv etckeeper/etckeeper.conf.dpkg-dist etckeeper/etckeeper.conf
117
+ * GIT_COMMIT_OPTIONS="-v" を再設定
118
+
119
+ = /etc/default/spamassassin
120
+
121
+ * ENABLED=1 にするだけの変更だった
122
+ * mv /etc/default/spamassassin{.dpkg-dist,}
123
+ * /lib/systemd/system/spamassassin.service に移行済みなので ENABLED は影響なし
124
+
125
+ = spamassassin/local.cf
126
+
127
+ # diff -u /etc/spamassassin/local.cf*
128
+ --- /etc/spamassassin/local.cf 2013-11-23 20:11:16.381039020 +0900
129
+ +++ /etc/spamassassin/local.cf.dpkg-dist 2015-02-01 04:08:46.000000000 +0900
130
+ @@ -16,10 +16,7 @@
131
+ # modifying the original message (0: off, 2: use text/plain instead)
132
+ #
133
+ # report_safe 1
134
+ -report_safe 0
135
+
136
+ -remove_header ham Status
137
+ -remove_header ham Level
138
+
139
+ # Set which networks or hosts are considered 'trusted' by your mail
140
+ # server (i.e. not spammers)
141
+ @@ -85,4 +82,3 @@
142
+ # shortcircuit BAYES_00 ham
143
+
144
+ endif # Mail::SpamAssassin::Plugin::Shortcircuit
145
+ -
146
+
147
+ * そのまま rm /etc/spamassassin/local.cf.dpkg-dist
148
+
149
+ = /etc/dokuwiki/local.php
150
+
151
+ Auto-generated by Debian postinst script
152
+ ではなく
153
+ Auto-generated by config plugin
154
+ になっていたので、そのまま「rm dokuwiki/local.php.ucf-dist」した。
155
+
156
+ = /etc/dokuwiki/apache.conf
157
+
158
+ * 「order allow,deny」と「Allow from ALL」を「Require all granted」に
159
+ * 「Deny from all」を「Require all denied」に
160
+ * rm dokuwiki/apache.conf.ucf-dist
161
+
162
+ = /etc/milter-greylist/greylist.conf
163
+
164
+ * mv milter-greylist/greylist.conf.dpkg-dist milter-greylist/greylist.conf
165
+ * http://milter-manager.sourceforge.net/reference/ja/install-to-debian.html の設定
166
+
167
+ = apache2 の sites
168
+
169
+ * rm apache2/sites-enabled/lilo.linux.or.jp
170
+ * mv apache2/sites-available/lilo.linux.or.jp{,.conf}
171
+ * a2ensite lilo.linux.or.jp.conf
172
+
173
+ = apache2 のアクセス許可設定
174
+
175
+ * 「Order allow,deny」と「allow from all」を「Require all granted」に変更
176
+ * 「service apache2 reload」で反映
177
+
178
+ = apache2 の conf
179
+
180
+ * dokuwiki.conf は自動で conf-available,conf-enabled に移行済みだった
181
+ * rmdir /etc/apache2/conf.d
182
+
183
+ = dokuwiki の修正 (1/2)
184
+
185
+ * 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]」
186
+
187
+ = dokuwiki の修正 (2/2)
188
+
189
+ * 「#line-height: 1em; /* fix MSIE 6, 7 */」と古いサポート切れの IE 向け記述だったので削除
190
+ * 同様の修正をいくつか
191
+
192
+ = ntp 設定 (1/3)
193
+
194
+ * timedatectl set-ntp true
195
+
196
+ = ntp 設定 (2/3)
197
+
198
+ * /etc/systemd/timesyncd.conf の Servers 設定
199
+ * Servers=ntp1.sakura.ad.jp
200
+ * systemctl restart systemd-timesyncd で反映
201
+
202
+ = ntp 設定 (3/3)
203
+
204
+ * systemctl status systemd-timesyncd や timedatectl で確認
205
+
206
+ = 掃除 (1/2)
207
+
208
+ * apt-get autoremove
209
+ * aptitude purge '~c'
210
+ * aptitude search '~i!~Odebian!~Omilter' でもうインストールできない古いパッケージ一覧
211
+
212
+ = 掃除 (2/2)
213
+
214
+ * aptitude purge '~i!~Odebian!~Omilter'
215
+ * ここで「rkhunter が unhide.rb | unhide を推奨」と出たので unhide.rb から unhide に移行
216
+ * 削除後に「Invalid SCRIPTWHITELIST configuration option: Non-existent pathname: /usr/bin/unhide.rb」と出たのでコメントアウト
217
+
218
+ = mailman のエラー対応 (1/4)
219
+
220
+ * 昨日さとうさんの指摘で気付いた
221
+ * lilo ML のメールが流れない状態になっていた
222
+
223
+ = mailman のエラー対応 (2/4)
224
+
225
+ 根本的な原因は Debian の UTF-8 対応
226
+
227
+ /usr/share/doc/mailman/NEWS.Debian.gz より:
228
+ mailman (1:2.1.16-1exp1) experimental; urgency=low
229
+
230
+ This version has changed the encoding of most strings, templates
231
+ and pages to UTF-8 to meet the Debian release goal of full UTF-8
232
+ support in all packages. It also no longer automatically converts
233
+ mails to ISO-8859-1.
234
+
235
+ If you have been using any nōn-ASCII strings in places such as
236
+ the mailing list description, these were be stored wrongly in the
237
+ list configuration file (config.pck), so you will need to change
238
+ those (e.g. via the webinterface) again in order to have them be
239
+ displayed correctly.
240
+
241
+ -- Thorsten Glaser <tg@mirbsd.de> Sun, 29 Dec 2013 14:35:50 +0000
242
+
243
+ = mailman のエラー対応 (3/4)
244
+
245
+ * Web の設定画面から文字化けしていた description と info を修正
246
+
247
+ = mailman のエラー対応 (4/4)
248
+
249
+ * /var/lib/mailman/qfiles/shunt/ に qrunner でエラーになったメールがたまっていた
250
+ * /var/lib/mailman/bin/unshunt コマンドを実行すると流れた
251
+
252
+ = 二要素認証導入
253
+
254
+ * aptitude install libpam-google-authenticator
255
+ * /etc/pam.d/sshd と /etc/ssh/sshd_config 設定
256
+ * 対象ユーザーで google-authenticator コマンド実行
257
+
258
+ = /etc/pam.d/sshd
259
+
260
+ http://blog.n-z.jp/blog/2016-04-18-libpam-google-authenticator.html 参照
261
+
262
+ auth [success=ignore default=2] pam_exec.so quiet /bin/sh -c [ \
263
+ : ${HOME:=$(getent passwd "$PAM_USER" | awk -F: '{print $6}')}; \
264
+ test -f "$HOME/.google_authenticator"]
265
+ auth [success=1 default=ignore] pam_google_authenticator.so \
266
+ echo_verification_code
267
+ auth requisite pam_deny.so
268
+ auth required pam_permit.so
269
+
270
+ # Standard Un*x authentication.
271
+ #@include common-auth
272
+
273
+ = ssh/sshd_config (1/3)
274
+
275
+ * ChallengeResponseAuthentication yes
276
+ * AuthenticationMethods publickey,keyboard-interactive
277
+
278
+ = ssh/sshd_config (2/3)
279
+
280
+ * 設定変更後、「service ssh restart」すると sshd が起動していなかった
281
+ * LV=-c journalctl -u ssh.service で調査
282
+ * AuthenticationMethods is not supported with SSH protocol 1
283
+
284
+ = ssh/sshd_config (3/3)
285
+
286
+ * 「Protocol 2,1」を「Protocol 2」に変更
287
+ * rkhunter.conf の「ALLOW_SSH_PROT_V1=1」はこれが関係していた
288
+
289
+ = TLS 導入
290
+
291
+ * letsencrypt の証明書導入
292
+ * 事前準備
293
+ * JLA (linux.or.jp の管理組織) に確認
294
+ * letsencrypt 用メールアドレス作成
295
+ * 各種サービスに設定
296
+
297
+ = letsencrypt パッケージインストール
298
+
299
+ * backports を有効に
300
+ * deb http://ftp.jp.debian.org/debian jessie-backports main
301
+ * インストール
302
+ * apt install -t jessie-backports letsencrypt
303
+ * バージョン 0.5.0-1~bpo8+1 が入った
304
+
305
+ = letsencrypt の証明書発行
306
+
307
+ 重要やアカウントの復旧用メールアドレス設定 (初回のみ)
308
+
309
+ # image
310
+ # src = letsencrypt-1.png
311
+ # relative_height = 100
312
+
313
+ = letsencrypt の証明書発行
314
+
315
+ Terms of Service に同意 (初回のみ)
316
+
317
+ # image
318
+ # src = letsencrypt-2.png
319
+ # relative_height = 100
320
+
321
+ = letsencrypt の証明書発行
322
+
323
+ 証明書発行完了
324
+
325
+ # image
326
+ # src = letsencrypt-3.png
327
+ # relative_height = 100
328
+
329
+ = postfix 設定 (変更前)
330
+
331
+ smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
332
+ smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
333
+ smtpd_use_tls=yes
334
+ smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
335
+ smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
336
+
337
+ = postfix 設定 (変更後)
338
+
339
+ smtpd_tls_cert_file = /etc/letsencrypt/live/lilo.linux.or.jp/fullchain.pem
340
+ smtpd_tls_key_file = /etc/letsencrypt/live/lilo.linux.or.jp/privkey.pem
341
+ smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3
342
+ smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
343
+ smtp_tls_protocols = !SSLv2, !SSLv3
344
+ smtpd_use_tls=yes
345
+ smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
346
+ smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
347
+
348
+ = postfix 設定
349
+
350
+ * snakeoil から letsencrypt の証明書に変更
351
+ * SSLv2, SSLv3 を禁止
352
+ * service postfix reload で設定反映
353
+ * nc localhost 25 で EHLO localhost で動作確認 (STARTTLS が含まれる)
354
+
355
+ = apache2 設定 (1/2)
356
+
357
+ * /etc/apache2/sites-available/ の default-ssl.conf などを元に設定作成
358
+ * a2ensite lilo.linux.or.jp_ssl.conf で有効に
359
+
360
+ = apache2 設定 (2/2)
361
+
362
+ * a2enmod ssl で SSL を有効に
363
+ * service apache2 restart で反映
364
+ * ufw allow 443/tcp でポート開放
365
+ * https://lilo.linux.or.jp/ で表示確認
366
+
367
+ = mailman 設定変更
368
+
369
+ * /etc/mailman/mm_cfg.py の DEFAULT_URL_PATTERN を変更
370
+ * 'http://%s/cgi-bin/mailman/' を
371
+ * 'https://%s/cgi-bin/mailman/' に変更
372
+
373
+ = 自動更新設定 (1/2)
374
+
375
+ /etc/cron.daily/local-letsencrypt に以下のスクリプトを設置
376
+
377
+ #!/bin/sh
378
+ LOGFILE=/var/log/letsencrypt/renew.log
379
+ if [ -f "$LOGFILE" ]; then
380
+ savelog -c 90 -q "$LOGFILE"
381
+ fi
382
+ if ! letsencrypt renew > "$LOGFILE" 2>&1 ; then
383
+ echo Automated renewal failed:
384
+ cat "$LOGFILE"
385
+ exit 1
386
+ fi
387
+ if [ -f "$LOGFILE".0 ]; then
388
+ diff -u "$LOGFILE".0 "$LOGFILE"
389
+ fi
390
+ apachectl graceful
391
+ service postfix reload
392
+
393
+ = 自動更新設定 (2/2)
394
+
395
+ * スクリプトについて
396
+ * 基本部分は https://letsencrypt.org/getting-started/ 由来
397
+ * ログの保存回数 (日数) の 90 は letsencrypt の証明書の有効期限から
398
+ * savelog コマンドは debianutils パッケージ由来
399
+ * 失敗した時以外でも差分があればメールが飛ぶ
400
+
401
+ = まとめ (1/3)
402
+
403
+ * wheezy から jessie へのアップグレードしました。
404
+ * apache の移行で少しの間 Web が見えない時間が発生しました。
405
+ * dokuwiki も雑に対処しました。
406
+ * mailman で問題が起きました。
407
+ * 他は大きな問題はなさそうでした。
408
+
409
+ = まとめ (2/3)
410
+
411
+ * 二要素認証を導入しました。
412
+ * 今は google-authenticator コマンドを実行して ~/.google_authenticator が存在するユーザーだけ
413
+ * 移行期間として1ヶ月くらい余裕を見て、6月になったら ~/.google_authenticator の存在チェックを外す予定
414
+
415
+ = まとめ (3/3)
416
+
417
+ * letsencrypt の証明書を導入
418
+ * postfix (SMTP over TLS) と apache2 (https) の設定
419
+ * mailman の設定も変更
420
+ * cron で自動更新の設定
Binary file
metadata ADDED
@@ -0,0 +1,68 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-znz-lilo-20160501
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Kazuhiro NISHIYAMA
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-05-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ description: |-
28
+ lilo.linux.or.jp を wheezy から jessie にあげたので、
29
+ その話をします。
30
+ email:
31
+ - zn@mbf.nifty.com
32
+ executables: []
33
+ extensions: []
34
+ extra_rdoc_files: []
35
+ files:
36
+ - ".rabbit"
37
+ - README.md
38
+ - Rakefile
39
+ - config.yaml
40
+ - letsencrypt-1.png
41
+ - letsencrypt-2.png
42
+ - letsencrypt-3.png
43
+ - lilo-20160501.rab
44
+ - pdf/lilo-20160501-lilo-20160501.pdf
45
+ homepage: http://slide.rabbit-shocker.org/authors/znz/lilo-20160501/
46
+ licenses: []
47
+ metadata: {}
48
+ post_install_message:
49
+ rdoc_options: []
50
+ require_paths:
51
+ - lib
52
+ required_ruby_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ requirements: []
63
+ rubyforge_project:
64
+ rubygems_version: 2.5.1
65
+ signing_key:
66
+ specification_version: 4
67
+ summary: lilo.linux.or.jp を wheezy から jessie にあげた話
68
+ test_files: []