新・ネットラジオのはじめ方-#1 (SHOUTcast サーバ)。

 ネットラジオについて初めて書いたのは, 2011 年 10 月 13 日だった。発端は,電右衛門さんのコメントで,なーんにも知らなかったくせに,大胆にも,自前のネットラジオを作ってみた(滝汗)。局は,自己満足の極みで,今もそれは変わっていない。ともあれ,自前のネットラジオ局があって,そのサーバには, SHOUTcast DNAS を使っているのだという前置き。
 昨年末, AOL は SHOUTcast と Winamp を手放すことに決めた。で,今年の 1 月 14 日に Radionomy が SHOUTcast を買い取った。そんなこんなで, SHOUTcast 使用の自前ネットラジオについて,新しい記事を書こうと思う。始めまっさ。

||SHOUTcast サーバの作り方||

  1. ここから SHOUTcast DNAS をダウンロードする。 ‘DOWNLOAD’ をクリックしないと,ダウンロード用のリンクが見れない作りになっている。
    SHOUTcast のダウンロード#1

    SHOUTcast のダウンロード#1

    SHOUTcast  のダウンロード#2

    SHOUTcast のダウンロード#2

    SHOUTcast DNAS は自分の OS にあったバージョンをダウンロードしないといけない。うちの場合は, sc_serv2_win32_xx_xx_xxxx.exe をダウンロードした。

  2. sc_serv2_win32_xx_xx_xxxx.exe のインストール
     
    DNAS を デフォルトでインストールしようとすると, ‘SHOUTcast のインストール#4′ が現れる。大体の場合,ここでは ‘いいえ’ をクリックしてインストール場所を変更したほうが無難である。たとえば, D\:SHOUTcast なんてところに。
    ‘Finish’ をクリックすると,ブラウザが起動して, ‘Readme_DNAS_Server.html’ が表示される。で,まずは ‘Getting Started’ を読むことをお勧めする。
    SHOUTcast DNAS のインストール#1

    SHOUTcast のインストール#1

    SHOUTcast のインストール#2

    SHOUTcast のインストール#2

    SHOUTcast のインストール#3

    SHOUTcast のインストール#3

    SHOUTcast のインストール#4

    SHOUTcast のインストール#4

    SHOUTcast のインストール#5

    SHOUTcast のインストール#5

    SHOUTcast のインストール#6

    SHOUTcast のインストール#6

  3. SHOUTcast DNAS サーバのセットアップ
     
    SHOUTcast DNAS についての ‘Windows セキュリティの重要な警告’ が出るので,パブリックネットワークについてのみ,アクセスを許可する(図 SHOUTcast のセットアップ#1 を参照)。実のところ,パブリック,プライベート,ドメイン設定の違いがよく呑み込めていないだが, ファイアウォールのプロファイルについてを読むとサーバ PC に関してはパブリックが無難かなと。
     
    cmd.exe を ‘管理者として実行’ で起動し, ‘setup.bat’ のある SHOUTcast フォルダに移動し, setup.bat を以下のように起動する。
    > setup.bat
     
    ブラウザ上に以下のようなセットアップ画面が現れる(図 SHOUTcast のセットアップ#2 ~ #4 を参照)。
    SHOUTcast のセットアップ#1

    SHOUTcast のセットアップ#1

    SHOUTcast のセットアップ#2

    SHOUTcast のセットアップ#2

    SHOUTcast のセットアップ#3

    SHOUTcast のセットアップ#3

    SHOUTcast のセットアップ#4

    SHOUTcast のセットアップ#4

    以上の画像に従い,設定を行う。

    ブラウザを閉じる。
    ‘sc_serv.conf’ という名前の設定ファイルが, SHOUTcast フォルダにできているはずである。この設定ファイルが,このサーバのデフォルトになる。

    sc_serv.conf の中身:
    adminpassword=(設定した adminpassword)
    autoauthhash=0
    うちのサーバはprivateにしてあるので。
    maxuser=20 デフォルトのままでも,多分無問題。
    password=(設定した password)
    publicserver=never
    streamid_1=1

     
    見ての通り,パスワードが平文で記述されている。そんなわけで,セキュリティ上,以下の2つを強調しておきたい。

    1. パスワードは絶対に使いまわしてはいけない。他の重要なサイトやシステムのものを併用するなど論外である。
    2. 必ず数字,英文字,記号を含み,できる限り予想されにくいランダムなものを使う。
  4. サービスとしてインストール
    サービスの設定変更

    サービスの設定変更

     
    cmd 上で:
    > sc_serv.exe install sc_serv
    cmd.exe を閉じる。
     
    ‘コントロール パネル’ >> ‘管理ツール’ >> ‘サービス’
    sc_serv を選択し,スタートアップの種類を ‘自動’ に変更。 ‘開始’ , ‘OK’ をクリック。
     
    設定ファイルとして他の名称を使うなどより詳しい情報については, SHOUTcast\docs にある ‘DNAS_Server.html#Install_as_a_Service’ を参照のこと。
  5. SHOUTcast DNAS のファイアーウォール設定
     
    ‘コントロール パネル’ >> ‘管理ツール’ >> ‘セキュリティが強化された Windows ファイアウォール’
    ‘受信の規則’ をクリック。
     
    ‘SHOUTcast のセットアップ#1′ のときの操作が正常に終わっていれば,パブリックプロファイルを持つ SHOUTcast DNAS (sc_serv) v2 に関するルールが2つあるはずである。ひとつは UDP 用で,もうひとつは TCP 用である。 UDP ポートは開けないので, UDP 用のはここで削除しておく(図 Firewall の設定#1 と #2 を参照)。
     
    TCP に関してもデフォルトは甘々なので値を変更する(図 Firewall の設定#3 ~ Firewall の設定#6 を参照):
    Firewall の設定#1

    Firewall の設定#1

    Firewall の設定#2

    Firewall の設定#2

    Firewall の設定#3

    Firewall の設定#3

    Firewall の設定#4

    Firewall の設定#4

    Firewall の設定#5

    Firewall の設定#5

    Firewall の設定#6

    Firewall の設定#6

    ‘OK’ をクリック。

  6. ログインテスト。
     
    先ほど設定した adminpassword でサーバにログインする。
    ブラウザで http://サーバのip:8000 (デフォルトは http://localhost:8000) にアクセスすると, ‘SHOUTcast Server Summary’ というページが表示される。あとは,以下の図の通りにやって,ログアウト。
    Login test#1

    Login test#1

    Login test#2

    Login test#2

    Login test#3

    Login test#3

 これで, SHOUTcast サーバができた。次記事は, Winamp と SHOUTcast DSP のインストールについて書くつもり。

十六夜見えず,立待を撮る。

投稿アップデート情報  追記(9/17)

 関東以北は大雨のようですが,皆さん大丈夫だったでしょうか。

 2014 年 9 月のセキュリティ情報 (月例) – MS14-052 ~ MS14-055も出ましたね。今回は大丈夫ですかね。うちは,前回,今回とも無問題でした。 adobe に関してですが, Adobe Reader と Acrobat のが結構シビアみたいです。ほかのは出たようですが,このシビアなのに関しては,結局,来週回しのようです。

 前記事のコメントで十六夜も撮影してみようと待っていたのですが,夕べの月は雲の陰。りりさんのところは,昨日のほうが撮れたみたいなので,リンクを貼らせていただこう。りりさん撮影の十六夜。

 で,私のほうは,本日の立待が何とか撮れたので,それ載せときますワ。雲間の月も,いいもんです。

立待月-1

立待月

立待月-2

雲間の月

追記(9/17):
 上記の APSB14-20 の関係, Adobe Reader / Acrobat 11.0.09, 10.1.12 が出ました。

中秋の名月,ちょっと曇り。

 中秋の名月ですな。昨夜はきれーに見えたんですが,今(9時くらい)ちょっと雲が出てる。

庭の月

庭の月

名月や

名月や

ウサギって

こんな風に見たんかな

 月のうさぎさんの杵は,搗ち杵でしょうね。それと,ウサギは1羽だと思うな。3番目の画像みたいにね。月のうさぎと言えば,やはり,この歌かな。

  • うさぎ
    うさぎ,うさぎ,なに見てはねる。
    十五夜お月さま,見てはねる。

 今見たら,すごくきれいだ。もう,ほとんど,9日だが。

ただいま日本語版待ち,WordPress 4.0。

投稿アップデート情報  追記 追記2(9/6)

 WordPress 4.0 が出た。ただし,我が家は,日本語版待ち。皆さんはいかがですか。

 昨夜, WP Multibyte Patch のアップデートも来ていたので,グローバル版 4.0 を入れるならこちらも忘れずにやっておいたほうがいいのかもしれない。この間のためしもあるし。

追記:
 くりくりさんから,「インストール時に言語選択ができるようになった」の書き込みをいただいた。これ,インストール時だけかな。 @pages ではアップグレードしてみたのだが,なにも出なかった。本家は,マルチなので,アップグレードが不安で,待っている。日本語版はどうなるんだろう。 @pages の language フォルダを見ると,一応,新しい ja.mo が上書きされてはいる。

 しかし,本家の親言語は,英語だからなあ。どうなるんだろ。グローバル版,いれてみようか,どうしよう。

追記2(9/6):

 2 時 57 分に, WordPress 4.0 日本語版にアップデートした。WordPress 4.0 における言語関連実装の変更とその注意点を読んでみると,次回からは,日本語版を待つ必要はないかなと思う。古い wp-config.php から define('WPLANG', 'ja'); を削除し,プラグイン WP Multibyte Patch については,「ネットワークで有効化」をやめて,日本語のこのブログと netradi に対してのみの有効に変更した。

 それと,次回も忘れないように,自分に強ーく言い聞かしておこう。

  1. class-http.php に 2 行追加。
  2. ca-bundle.crt に 自前の CA のデータを追加。

Android 版 Kindle の SSL サーバ証明書検証不備脆弱性。

 表題の件,我々一般人には,一見関係なさそうに見えるが,怪しいアプリをうかつに使わないとか,メールアカウントやパスワードの管理をしっかりするとかいうことでは,同じなんじゃないかと思う。

 そういえば,昨日,「ネット競売、消せぬ情報 大手3社、履歴・カード番号保存 利用者「流出が心配」」というのもあったな。えって,思うかもしれないけど,結構そういうとこ多い。だって,登録させる側からいえば,データの不正使用をする気はなくても,ユーザ側の無料版の反復利用を防ぐためだけでも,元情報は必要なわけだから,良心的であっても,罰則がないなら,データを保持するほうが妥当だと思う。どのくらい保持するとかで口を拭ってる様子は感じられるが……。知識の欠如から対応がいい加減なところもあるにはあるけどね。

 登録データの削除については,簡単/困難/不能をまとめたこんなサイトがある。 justdelete.me
 このサイトは, bitly.com (有名どころだが,日本語対応がないみたいなので, twitter そのものの短縮リンクが向上してからは,使うのをやめようとしたのだ) のアカウントを削除しようと四苦八苦しているときに発見した。
 まぁ, justdelete.me の一覧を見ると,サイトの性質から考えても, HARD あるいは impossible で当然だなと思うところもたくさんあるけど……。 justdelete.me ,日本語でも似たものがあるのかな。

 やっと,本題。
 29 日に JVN から Android 版アプリ Kindle における SSL サーバ証明書の検証不備の脆弱性というのが出ていて,セキュリティホール memo さんが「そのうち徳丸さんから解説が出るだろう」と書いておられた解説が出た。「Android版KindleにおけるSSLサーバ証明書の検証不備の脆弱性CVE-2014-3908」。読んでみたけど,難しくて,よくわからん。

 証明書を作るときに「コモンネームをちゃんとやってねー」というのはよく聞く。一致してない場合は,アクセスさせてくれないからだと,理解していた。これは,自前証明局の話ね。

 でも,奥さんの記事「SSL/TLSライブラリの正しい使い方(もしくは、コモンネームの検証について)」を読むと,多数の人がアクセスするアプリの場合,コモンネームの検証の実装はそれほど単純なものではないみたいだ。うちの自宅サーバレベルは蚊帳の外みたい(爆)。

 徳丸さんの解説は難しくて 100% 理解しているとはいいがたいのだが,それでも「コモンネームの検証が漏れてる場合があるって,超ヤバいじゃん」ということくらいは十分わかる。

 8月初めには,「App Storeのアプリが盗まれた」って話もあったし,スマホが一気に普及して,それ関係の悪事も花盛りだな。

 徳丸さんの記事の件は,実際に悪用されてるかどうかは現時点で不明なようだが,持っている方は,既に対応バージョンが出ているようだし, 「Kindle – Google Play の Android アプリ」でアップデートしておこう。

 「App Storeのアプリが盗まれた」の件については,セキュリティホール memo さんによると,いたのくまんぼうさんとこが,有用みたい。「注意喚起:アプリ乗っ取り犯の手口判明。ITCアカウントの入力を求めるアプリには注意!

親サイトの自動保存がうまくいかない。

投稿アップデート情報  追記(9/6)

 いつからかは定かでないが,最近, o6asan.com での自動保存ができなくなっていた。 o6asan’s soliloquyo6asan’s soliloquy-part2 では問題なし。

 それとは別に, 29 日に php_opcache.dll がらみで, Apache のエラーログを見ていたときに多量の「WordPress database error Duplicate entry ‘0’ for key ‘PRIMARY’ for query INSERT INTO `WordPress DB table name` ~」に気づいた。

 昨日,ふとそのエラーのことを思い出して,対処してやろうと,エラーログをのぞきに行ったら, Notes 関係のものがたくさんあるということに気づいた。ここに至って,このエラーと自動保存の根が一緒だと気付いた。そんでもって,このエラーは 23 日に始まっていた。 MariaDB のアップデートのときに,何かまずいことをやらかしたに違いない (-_-;)。

 ログに含まれているテーブル名を確認したところ, `wp_postmeta`, `wp_posts`, `wp_redirection_logs`, `wp_sitemeta` の 4 つだった。 phpMyAdmin にログインして,無問題の wp_2_postmeta と wp_postmeta の構造をじっくり見比べてみた。 wp_postmeta の meta_id に AUTO_INCREMENT がないじゃん。ほかのテーブルも, ID に AUTO_INCREMENT がない。多分,このせいだ。

 何はともあれ,全データをバックアップの後,修復に取り掛かった。

  1. wp_postmeta テーブルを選択。
  2. メニューから「構造」を選択。
  3. 「操作」から meta_id の「変更」を選択。
  4. 「A_I」のチェックボックスをオンにしたのち保存。

 コマンドラインでやるなら,下みたいになるのかな。
ALTER TABLE `WordPress のデータベース名`.`wp_postmeta` CHANGE `meta_id` `meta_id`
BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;

 `wp_postmeta` と `wp_posts` については,問題無しだったが, `wp_redirection_logs` と `wp_sitemeta` では下記のエラーが出た。
#1062: ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry ‘1’ for key ‘PRIMARY’

 `wp_redirection_logs` は単に Redirection プラグインのログなので,空にしてやってから,上の手順を再実行。テーブルを空にするのを CUI でやるなら,こんな感じになるんかね。
TRUNCATE `WordPress のデータベース名`.`wp_redirection_logs`;

 `wp_sitemeta` のほうは中のデータが絶対にいるので,ひとまず空にして,上の手順を再実行したのち,さっきバックアップした sql ファイルから `wp_sitemeta` の INSERT 文を切り出し,テーブルに再インポートした。

 Apache のエラーログから,問題のエラーが消えて,親サイトの自動保存も生き返った。めでたしめでたし。

 自己流の修復なので,あまりあてにしないでくださいませ m(_”_)m。

追記(9/6):
 BulletProof Security .50.8 へのアップデートのときに,どうやっても, “Network/Multisite BPS plugin Network Activation correction:” が消えないトラブルに遭遇した。で,フォーラムに相談に行ってきた。素早い対応をもらって解決したわけだが,これも AUTO_INCREMENT がらみだったようだ。どうも,2・3日前に読んだ phpMyAdmin のバグ関連の気がするのだが,真相は,藪の中。溜息。

 まあ,とにかく,消えるべきものは消えた。これで,安心して眠れるワ (^_^;)。

本家のお世話-#109。(PHP 5.5.16 から PHP 5.6.0 への移行)

 予定通りというか, Aug-27 21:52:22 に Windows 版の PHP5.6.0 が出た。ここのところよくあるのだが, php.net より半日ばかり早かった。そんなわけで,今日の午後, PHP 5.5.16 から PHP 5.6.0 に移行した (Windows7 HP + SP1 (x86))。で, ChangeLog

 「PHP 5.6.x にしても,現在のコードはほぼそのままで動きます。ほんのわずか,考慮すべき few incompatibilitiesnew features がありますので,これについては,バージョン変更の前にテストしておいてください」ということらしいのだが,うちの環境でも,コードの書き換えは特に必要なかった。もっとも,我が家の場合は, PHP 5.5.16 から PHP 5.6.0 だから,すごく古いバージョンからとなれば,それなりに対処が必要になる。

 そうは言いつつ, php.ini はだいぶ変えた。というのが, PHP 5.6.0 ではデフォルトで UTF-8 になったので, mbstring についての細かいカスタマイズはいらないだろうと思ったからだ。

【注】 ところで,PHP スクリプトの開発環境を作るのでない限りは, php.ini の元ファイルには, php.ini-production INI file を使うべきである。これは,オフィシャルの INI 内にちゃんと書いてあるのだが,いまだに php.ini-development INI file の使用を勧めているサイトもあって,困ったもんだと思っていたので,この際明記しておく。

 以下に今回作った PHP 5.6.0 用の php.ini の変更点を示す。 Drive_SV はサーバソフト用のパーティションである。

  デフォルト カスタム
1 output_buffering = 4096 output_buffering = Off
2 disable_functions = disable_functions =”shell_exec, suexec, passthru, phpinfo”
3 expose_php = On expose_php = Off
4 ; extension_dir = "ext" extension_dir = "Drive_SV:\PHP\ext\"
5 allow_url_fopen = On allow_url_fopen = Off
6 ;extension=php_curl.dll extension=php_curl.dll
7 ;extension=php_gd2.dll extension=php_gd2.dll
8 ;extension=php_mbstring.dll extension=php_mbstring.dll
9 ;extension=php_mysqli.dll extension=php_mysqli.dll
10 ;extension=php_openssl.dll extension=php_openssl.dll
11   zend_extension= "Drive_SV:\PHP\ext\php_opcache.dll"
12 ;date.timezone = date.timezone ="Asia/Tokyo"
13 ;sendmail_from = me@example.com sendmail_from = My email address
14 mysql.allow_persistent = On mysql.allow_persistent = Off
15 ;opcache.enable=0 opcache.enable=1
16 ;opcache.memory_consumption=64 opcache.memory_consumption=128
17 ;opcache.interned_strings_buffer=4 opcache.interned_strings_buffer=8
18 ;opcache.max_accelerated_files=2000 opcache.max_accelerated_files=4000
19 ;opcache.revalidate_freq=2 opcache.revalidate_freq=60
20 ;opcache.fast_shutdown=0 opcache.fast_shutdown=1

 1 と 14 の設定はサーバの環境によっては,不具合が生じることがあるかもしれない。 11 および 15 – 20 は OPcache のためなので, OPcache を使わない場合は,デフォルトのままでよい。移行から1日。 php_opcache.dll でエラー頻発。解決策がわかるまで使用中止にした。 mbstring の細かい設定を変えたことで,何か影響が出るかなぁ。様子見の予定。

 MySQL Extension は使うのをやめた。うちの環境だと,もう MySQLi Extension だけでいいようだ。

 現時点の自鯖の環境。

 おっと,書き忘れるとこだったが,今回,実は,「Bad Host request」が出た。犯人は, BulletProof Security だった(爆笑)。そんなわけで,1回ヤツを停止後, PHP を移行し,改めて有効にした。これはぬれぎぬ。犯人は, php_opcache.dll だった。 BulletProof Security くん,ごめんなさい。

米倉斉加年が亡くなったって……。

 米倉斉加年さんが亡くなった。昨日のことらしい。元気だったのにと思っていたら,午後 9 時半すぎに腹部大動脈瘤破裂でと書いてあった。 1934 年 7 月生まれだから, 80 歳か。先日の林隆三さんよりはかなり上だけれども,何かなあ。林さん以上の急死だよ。若いころから好きな俳優さんだったが,年が行くほど,さらに気になるようになってきた。

 腹部大動脈瘤破裂だと,やはり,勝負早いんだね。破裂してしまったあとでは,今の時代でもなかなか難しいものなんだろうか。

 ご冥福をお祈りする。合掌。

覚え書-#19。

 なんでだかすごく疲れているので,やったことのメモだけ。

 うちのサーバ OS は Windows7 HP SP1 (x86)。

  1. PHP 5.5.15 (php-5.5.15-Win32-VC11-x86.zip)
    —> PHP 5.5.16 (php-5.5.16-Win32-VC11-x86.zip)
  2. MariaDB 10.0.12 (mariadb-10.0.12-win32.zip)
    —> MariaDB 10.0.13 (mariadb-10.0.13-win32.zip)
  3. phpMyAdmin 4.2.7 (phpMyAdmin-4.2.7-english.zip)
    —> phpMyAdmin 4.2.7.1 (phpMyAdmin-4.2.7.1-english.zip)

 全部,単なるセキュリティアップデート。なので,速やかに対処。