Changes between Version 15 and Version 16 of HowTo/SakuraVpsSetup2


Ignore:
Timestamp:
May 31, 2012, 11:17:34 AM (12 years ago)
Author:
村山 俊之
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • HowTo/SakuraVpsSetup2

    v15 v16  
    454454}}}
    455455 * バージョンの違い故か、もしくは Scientific Linux を採用したが故か、 https://developer.harapeko.jp/ にアクセスした際に表示される 403 ページがあんまり 403 ページらしく見えないが、ヘッダ情報を確認したところちゃんと 403 ページだった。ちなみに前回は何らかの内容が表示されるようなことを書いているが、 https プロトコル用の DocumentRoot は http プロトコル用のそれとは別にしてあるので、ファイルが存在せず、 Forbidden となるのが正しい。
     456
     457== メールサーバーの認証周り設定 ==
     458
     459=== ユーザーアカウントの引き継ぎ ===
     460
     461メールのユーザー情報は MySQL に保存してあるので、まずはそいつを移転する。
     462
     463 * 旧サーバー側:
     464{{{
     465$ cd ~/tempsql
     466$ mysqldump -u mailusers -p mailusers >mailusers.sql
     467}}}
     468 * 新サーバー側:
     469{{{
     470$ cd ~/tempsql
     471$ rsync -ae ssh onaka.harapeko.jp:/home/murachi/tempsql/mailusers.sql .
     472$ mysql -u root -p
     473
     474mysql> create database mailusers;
     475mysql> grant all privileges on mailusers.* to mailusers@localhost identified by 'パスワード';
     476mysql> quit
     477
     478$ mysql -u mailusers -p mailusers <mailusers.sql
     479}}}
     480
     481必要に応じてユーザーアカウントも作ってしまおう。
     482
     483{{{
     484$ sudo su -
     485# useradd -m -s /sbin/nologin toshiyuki.murayama
     486# passwd toshiyuki.murayama
     487# useradd -m -s /sbin/nologin sysadmin
     488# passwd sysadmin
     489(...snip)
     490}}}
     491
     492転送設定をしてたアカウントはそれも引き継がないとね。
     493
     494{{{
     495# su -s /bin/bash toshiyuki.murayama
     496$ cd
     497$ vim .forward
     498
     499(旧サーバーからコピペ)
     500
     501$ exit
     502}}}
     503
     504=== パスワードを暗号化 ===
     505
     506前回、メールアカウントのパスワードは平文で保存するしかないものと思い、平文で保存していたが、暗号化 (正確には salt を付けてハッシュ関数で符号化) して保存しても運用できそうな目処が立ったので、暗号化することにした。
     507
     508 1. mailusers DB にアクセス。
     509{{{
     510$ mysql -u mailusers -p mailusers
     511}}}
     512 1. users テーブルに、符号化されたパスワードのためのフィールドと、 salt のためのフィールドを追加。ハッシュ関数は SHA1、 salt は 5文字とする。
     513{{{
     514mysql> alter table users add (passwd char(40), salt char(5));
     515}}}
     516 1. salt を設定する。ランダムな 5文字を設定する方法はいくつか考えられるかも知れないが、とりあえず以下のような感じでやってみた。ちなみに plain_passwd が NULL になっているアカウントは、届いたメールを転送するだけで送受信に使う予定のないアカウントなので、 salt は設定していない。
     517{{{
     518mysql> update users set salt = substring(encrypt(rand()), 3, 5) where plain_passwd is not null;
     519}}}
     520 1. salt を元に、平文のパスワードを符号化する。 SHA1() 関数も CONCAT() 関数も引数が NULL ならよしなに NULL を返してくれるので、 WHERE 句は不要。
     521{{{
     522mysql> update users set passwd = sha1(concat(salt, plain_passwd));
     523}}}
     524 1. 平文のパスワードはもはや不要。捨ててしまえ。
     525{{{
     526mysql> alter table users drop plain_passwd;
     527}}}
     528