全9件 (9件中 1-9件目)
1
ProCurve Switch 2610-24/12PWR の Flash のアップデートをしたのだが、リリースドキュメントの中に Enforcing Switch Security という項目があった。そこでは、デフォルトの設定でセキュリティに影響がある項目として次のものが上げられている。ということで、ProCurve スイッチのセキュリティを高める設定をしてみる。TelnetWeb-browser interfaceSNMP accessFront-Panel accessTelnet を無効にするデフォルトの状態では、デフォルトの状態ではパスワードなしなので、コンソールケーブルで接続するとパスワードなしでアクセスできるし、telnet 等でも同様。ローカルの Operator と Manager のパスワードを設定すれば、telnet 経由のアクセスも同様にそのパスワードでアクセスできるようになる。けれども、ネットワークを生のパスワードが流れることになるので、セキュリティ上は好ましくない。ということで、telnet を禁止するには、CLI から次のコマンドを入力する。Switch (config) # no telnet-serverこれで、telnet 経由のアクセスを禁止できる。SSH を使えるようにするには、「crypto key generate ssh rsa 」または「crypto key generate ssh dsa」で SSH 用の鍵を生成して、「ip ssh」で SSH 接続を有効にしておく必要がある。HTTP を無効にするデフォルトで HTTP 経由でウェブブラウザから操作できる。これも、セキュリティ上、パスワードがネットワークを流れてしまうので停止する。Switch (config)# no web-management「web-management ssl」 で SSL は使えるようにすることもできる。ちなみに「web-management plain-text」だと通常の HTTP。次のようなメッセージが出る場合は、「crypto host-cert generate self-signed」で、サーバ証明書を作ってやる必要がある(とりあえず self-signed でオレオレ認証の場合)。Web インターフェイスの Security タブ、SSL のあたりから設定してもいいかもしれない。https cannot be enabled with no certificate present. To install aself-signed certificate, * Use 'crypto key generate...' to install RSA key; then * Use 'crypto host-cert generate...' to install certificate.SNMP のアクセス制限デフォルトの状態で、かつコミュニティ名を public と private 等で使っていると、セキュリティがないに等しい状態。加えて、この状態だと、スイッチを乗っ取ることもできてしまう(ローカルユーザやそのパスワードが書かれている MIB の hpSwitchAuth にアクセスすればよい)。これを防ぐには、まず、次のコマンドで、該当箇所にアクセスできないようにする。Switch (config)# snmp-server mib hpswitchauthmib excludedさらに、ProCurve は、SNMP v1, 2c, 3 に対応しているので、セキュリティが確保しやすい v3 を使うことにする(デフォルトでは v1,2 でアクセスできる状態)。ただし、SNMP v1, 2 のみ対応しているツール類は使えなくなる。とはいえ、無償で使える TWSNMPマネージャ なども v3 に対応しているから、いいやと。HP の ProCurve Network Manager (PCM) とか、HP MIB Browser とかも当然、SNMP v3 に対応している。SNMP v3 を有効にするには次のコマンドを使う。Switch(config)# snmpv3 enableそこで対話的にパスワードなどを設定できる。これは長くなるので別の機会にまとめる。とりあえず initial というユーザが作られる。snmp restrict-access が云々のところは n にしておくと、SNMP v1, 2 は読み込みの権限だけになる。「snmpv3 only」で SNMP v3 のみ有効になる。フロントパネルからの物理的アクセスの制限ProCurve はフロントパネルにあるボタンを押すと、スイッチのパスワードをクリアしたり、リブートしたり、あるいはスイッチの設定自体をクリアすることができる。本来、スイッチは物理的にセキュリティが確保された場所に置かれているはず、というのがデフォルトの設定。物理的に管理者以外でもアクセスできる場所にスイッチが置かれている場合、やられてしまうと困る。これをできないようにしたいという場合は、「no front-panel-security 無効にしたいもの」のコマンドを使う。ただし、工場出荷時の設定に戻すことができないようにして、パスワードもクリアできないようにしたあと、パスワードを忘れてしまうと、HP のサポートに電話をしなければ復旧できないので注意。現状の設定は「show front-panel-security」で確認できる。アクセスできる IPアドレスの制限Authorized IP Managers の設定を行うと、どのネットワークあるいはホストから telnet や SSH、Web ブラウザ、あるいは SNMP のアクセスを許可するかを指定することができる。管理者の端末以外の IP アドレスを含まないようにするのが安全だが、自分のどこからでもアクセスできるようにしておきたい(Operator レベルで設定や状態の確認をしたい)とかいうのであれば、できるだけ狭い範囲のサブネットを指定するか、IP アドレスの指定のあとにさらに 「access manager」か「access operator」を指定する。Operator の範囲を広く、manager の範囲はできるだけ狭くとかする。Switch (config) # ipauthorized-managers 192.168.1.10 255.255.255.255あるいは、Switch (config) # ip authorized-managers 192.168.1.0 255.255.255.0セキュアな管理用の VLANの設定Secure Management VLAN の設定を行うと、さらに安全性を高めることができる。そもそも、スイッチの管理インターフェイスに通常のユーザが接続できるネットワークを使ってしまうことがよろしくない。管理用のネットワークのために別の VLAN を用意すればよいというのが Secure Management VLAN。Authorized IP Managers の設定よりさらに厳しいアクセス制限がかけられる。Secure Management VLAN に設定された VLAN へは、その他の VLAN からアクセスすることができなくなる。その逆に、Secure Management VLAN から他の VLAN へ ping をうったりすることはできる。Switch (config) # management-vlan 1これで、VLAN 1 からのみ、スイッチの管理インターフェイスにアクセスできるようになる。SNMP などのトラフィックも、この VLAN 上で流せばいい。その他の VLAN から SNMP 関連の攻撃をかけることができなくなる。また、SNMP のトラフィックが他のトラフィックに邪魔されることもないので管理上も好ましいと思う。RADIUS 認証を使ったアクセスの制限スイッチにアクセスしたときのユーザ認証を、スイッチ本体のローカルユーザを使うのではなく、RADIUS を使ってやる。コンソール接続や、telnet、SSH、FTP/SFTP/SCP など、それぞれ設定が行える。Solaris 10 で RADIUS サーバを動かす (1) や Solaris 10 で RADIUS サーバを動かす (2) 802.1X を参照。TACACS+ 認証を使ったアクセスの制限スイッチにアクセスしたときのユーザ認証に RADIUS ではなく TACACS+ を使うことも可能らしいが、TACACS+ は使ったことがないので、よく分からない。そのうち試す。その他、Web 認証と MAC 認証とか、ポートセキュリティとか、あれこれ書かれているが、とりあえず、長くなったのでここまで。
2008.12.31
コメント(0)
大量の文書を読んでいると、だんだん目が疲れてくる。音声合成を使って、寝っ転がりながら聞きたいときがある。やっぱり、音声合成のソフトが欲しくなった。以前 ピグマリオン・コンプレックス とか、簡単に使える音声合成プログラム とか、書いたときにあれこれためしてみたが、改めて試してみた。フリーの音声合成ソフト Galatea Project は無償で使えるのはよいけど、うーん、やっぱり聞いて疲れる。少々、お金払ってもいいやと、比較的安く入手できるものを探す。Skyfish の JukeBox が、実用的に比較的使えそうな感じ。サンプルあり。個人向け製品の音声エンジンは富士通製(FineSpeech)だけど、デモを聞く限り、法人向け製品の日立KEシステムズの方がいい。とりあえず、体験版をダウンロードして使ってみたが、なんとか使えそう。個人向けでも 18,900円 (法人向けのは 200,000円~)。ちょっと高いかなぁ。PDF ファイルとかも、そのまま食わせることができて便利。対応ファイルフォーマット一覧。これはポイントが高い。英語のところだけ、英語用の TTS (Text-to-Speach) を使うようにできるのもいい。ちなみに青空文庫 のテキストを読み上げさせようとするとき、ルビが邪魔になるので ルビなしテキストの作り方 みたいなことをする必要がある。ルビつきの字を読みのみに変換するプログラム みたいのもある。もっと読ませる範囲が広がると、あれこれ処理を入れてやらないといけない。いろいろな形式のファイルから直接読めても、ゴミの文字が多いと聞いていて疲れるから、事前の処理が必要になる。となると、対応フォーマットの多さはあまりメリットでないとかいうことになるかもしれないが。そういう意味で、フィルタが欲しいところだな。ユーザ辞書程度じゃ、不足。もっと安いのはないかということで、あらためて、Windows だと無償で使える AquesTalk を使ってみるかな。でも、読みを渡してやらないといけないので、茶筅や MeCab あたりで解析させて読みを取り出さないと。とはいえ、IPA DIC を使った解析結果を見てみると、読みがちゃんと付かないことが多くて、UniDic を使えばいいかなと思っているうちに面倒になって諦めてしまっていた。と思っていたら、ドキュメントトーカ が AquesTalk を日本語合成エンジンとして使っていて無償で使えるのね (ダウンロード (DTALKERPV2115.EXE: 9.39MB))。 AquesTalk はそれなりによい線まで行っているので、なんとか使えるか。製品版「ドキュメントトーカ日本語音声合成エンジン for Windows」 は、無償版で付いている制限がはずれて、より実用的に使えるようだけど(無償版では、例えば、ときどき「ドキュメントトーカプラス フリー版で喋っております。」というメッセージが入ります。とかある)。サンプルは こんな感じ。SAPI に対応しているから、他の SAPI 対応のソフトからも使える。でも、ペンタックス音声合成ソフトウェア: VoiceTextデモンストレーション と比べると、やっぱりなぁ。。。。。MISAKI の声が欲しい。このレベルのものがあるんだと分かっちゃうと、使いたくなるのが人情。Misaki の声も入っている xpNavo は、税込:¥26,040 か。あれこれ探すうちに、電子かたりべ.com の電子かたりべプレーヤーをインストールして、高品質音声合成サービスを買えば、なんと VoiceText が使えるじゃんということに気づく。しかし、分かりにくいよなぁ、このサイト。。。。でも、Misaki の声には満足。とりあえず、一年で \3,150 をとりあえず購入した。ということで、Misaki にしゃべらせることができるようになった。現状で一番これがよい選択しかもしれない。しゃべるんです。 (シェアウェア) なんかも、電子かたりべプレーヤーをインストールした後なら、ちゃんと Misaki の声でしゃべるようになる。読み上げソフト開発と音声学習 の Text To Wav も使える。要するに、Microsoft の SAPI5 (Speech API) に対応しているソフトで VW Misaki が使えるようになるのね。自分でも何か SAPI 対応のソフトを作ればよいのだな。PlaggerでSAPI5を使ってフィード読み上げ 的なこともよいかな。SAPI5の音声ファイルを作るWSHスクリプト、青空文庫のテキストを音声ファイルにするWSHスクリプト2 が便利か。みたいのもできるようになるわけね。JavaScript などで英語を喋らせる方法 とか、Microsoft .NET Speech - 技術リソース とか参照。日本語の TTS がインストールされていれば、例えば、次のように sample.js とかファイルを作って、var spkr = new ActiveXObject("SAPI.SpVoice");spkr.Speak("今日は天気が良いですね。");spkr.Speak("外に出て遊びましょう。");コマンドラインからC:\work> cscript sample.jsで、しゃべっちゃうのだな。なんか嬉しい。Python だと pyTTS みたいのもある。Text to Speech in Python のような使い方。 でも、pyTTS はもう更新されてない。Speech API を使うだけだから特にバグもないからか不明。Text to Speech using COM (Python) みたいに win32com から直接 speak = win32com.client.Dispatch('Sapi.SpVoice') って、単純に使うのもいいか。A SAPI Module With Pitch and Create も参照。NVDA日本語化のためのTTSの開発 とか見たら、オープンソースのWindows用スクリーンリーダNVDAってのは、Python 使っているのだな。NVDAJp の方々が日本語化を進めているのね。MS SAPI を離れた世界では 日本語を音素に分解してくれるPythonスクリプト とかもあるのね。でも、「平成17年10月1日に調査された日本の総人口は、127,767,994人です。」のデモ(mp3) なので、研究用としてはおもしろいだろうけど、実用ですぐに使うのには辛い。でも、Microsoft 以外のプラットフォームで使えるところはいいけど。そういえば、GalateaTalk は、NHK の TVML の TVML プレーヤー で使われているのね。TV4U 日本放送協会 放送技術研究所 : DigInfo (YouTube) ということか。TV4U(TV For You)。こういうの や、こういうの みたいのもできるわけね。視覚的には iClone や CrazyTalkの方がインパクトあるなぁ。そのうち試してみるかな、とか書いているときは、そのまま放置モードになることが多いのだけど。話が逸れてしまったが、ペンタックス音声合成ソフトウェア: VoiceText は、とってもよい。実用で使ってみようという気になる。ただ、微妙に間をとって欲しいところで、間を取ってくれたりとかまではしてくれないときがあるから(変につながってしまうときがある)、癖をつかんで事前処理を入れた方が聞きやすくなりそう。あとは、やっぱり、ちゃんと読めないものは辞書を作るとか、書き換えをするとかも必要かな。とりあえず、たくさん使って癖をつかむか。
2008.12.28
コメント(1)

Solaris 10 で RADIUS サーバを動かす (1) では、L2 スイッチのユーザ認証に radius を使うというのをやってみた。Windows では WinRadius を使い、Solaris では FreeRadius を使ってみた。Windows から radius の接続を確認するには、WinRadius Client が使え、FreeRadius では radtest が使える。FreeRadius はデフォルトの状態だと、/usr/local/etc/raddb/users にユーザを追加しなくても、/etc/passwd のユーザを使うようになっているので Solaris のユーザアカウントが使える。人数が多くなれば実用上 OpenLDAP などとの連携になるのだろうけど、とりあえずは、OpenLDAP は使わないで進めることにした。次は 802.1X の接続。Windows XP から L2 スイッチを Authenticator として、Solaris 上で動いている RADIUS サーバで認証を行わせて、ログインユーザことに指定された VLAN を動的に割り当てるというのをやってみる。/usr/local/etc/raddb/users を編集して、次のようにユーザのアカウントを作成する。kugutsushi のところがユーザー名、パスワードは password で設定している。このユーザでログインすると、VLAN 10 に接続する。Tunnel-Type 以下が設定されていないと、スイッチでそのポートに設定した VLAN がそのまま使われる。"kugutsu" Auth-Type := EAP, User-Password == "password" Tunnel-Type = VLAN, Tunnel-Medium-Type = IEEE-802, Tunnel-Private-Group-ID = 10このあたり 苦手克服IEEE802.1X の Part2[攻略編]“登場人物”を確認して,役割や関係を押さえよう にある図 IEEE802.1Xで使われる代表的な認証方式は三つ など参照。設定が終わったら、/usr/local/sbin/rc.radiusd start で radiusd を起動しておく。802.1X を使うには、クライアントの Windows 側でのサプリカントの EAPOL (Extensible Authentication Protocol over LAN) の設定が必要。Windows XP SP2 の場合はレジストリを変更すると、サプリカントが有効になるので、次の内容をレジストリに反映させる。簡単にやるには、.reg の拡張子をつけたファイルとして保存して、ダブルクリックすればよい。手動でやるなら、regedit を起動して該当箇所のレジストリを作って値を入れてやればいい。indows Server 2003 のグループ ポリシーを使用してワイヤレス設定を構成する あたりを参照。Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EAPOL\Parameters\General\Global]"AuthMode"=dword:00000001"SupplicantMode"=dword:00000003Windows XP SP3 以降は、これをやらなくてもよい。SP3 だと、これが Vista と同様、扱いが変わっているので不要。もし、コンピュータのみの資格情報でアクセスさせるとかしたい場合には、KB 929847やauthMode (OneX) Element Element など参照。ここでは関係ないのでやらない。レジストリを変更した場合は、いったん Windows XP を再起動。ローカルネットワーク接続のプロパティの [認証] タブを開き、[IEEE 802.1X 認証を有効にする] チェックボックスをオンにして、ネットワーク認証方法として [MD5-Challenge] を選択する。認証タブが表示されない場合、Windows XP SP3 以降や Vista の場合、Wired AutoConfig サービスを起動する必要があるので注意。[保護された EAP (PEAP)] の方が当然のことながら安全で好ましいのだけれど、とりあえずは簡単にやるためにこうしておく。FreeRadius 自体は EAP-MD5 だけでなく、PEAP や EAP-TLS, EAP-TTLS にも対応しているが、EAP-MD5 以外はサーバ証明書を先に作る必要があるので、一手間省いておく。ただし、無線LANでも使うことを考えると、MD5 はよろしくないので、サーバ証明書等の設定を済ませたら EAP-PEAP や EAP-TLS の設定もしてみる予定。次に L2 スイッチで次のような設定をする (ProCurve Switch の場合)。Cisco の場合は、IEEE802.1X認証(認証VLAN) など参照。radius-server key testing123 radius-server host 192.168.1.200aaa authentication port-access eap-radiusaaa port-access authenticator 13-20aaa port-access authenticator activeこれで、ポートの 13 から 20 のどれかに PC を接続すると、PC が指定された VLAN (radius 側で Tunnel-Private-Group-ID = 10 となっているので VLAN 10) につながる。Switch # show vlans 10とすれば、次のようにポートが 802.1x でアップ状態にあることが確認できる。 13 802.1x Learn UpSwitch # show port-access authenticator session-counters とすれば、ポート 13 に接続しているユーザ名も確認できる。 Port Access Authenticator Session Counters Port-access authenticator activated [No] : Yes Allow RADIUS-assigned dynamic (GVRP) VLANs [No] : No Session Session Port Frames In Frames Out Time(sec.) Status User ---- ----------- ----------- ----------- ----------- ------------------------ 13 64 62 0 in-progress kugutsuローカルネット接続のプロパティの[認証]タブ最初にケーブルをポートにつないだときに出るメッセージ上記の吹き出し部分をクリックすると出る入力画面接続に成功したとき接続に失敗したときユーザ数が少ない実験段階であれば、上記のように簡易的な手段で 802.1X を使ったポートアクセスの実験ができるんじゃなかろうか。同じことを Windows Server を使ってやれば、いったん設定が済めばあれこれ柔軟にできる一方、それなりに設定に手がかかってしまう。ちょっと確認したいときには、こちらがお手軽でしょと。FreeRadius を使っても、OpenLDAP とか連携させるとそれなりに手間がかかるし。ちなみに Windows 上の Radius の選択肢としては、FreeRadius を cygwin でコンパイルした FreeRADIUS.net というのがあるようだが、これは試していない。
2008.12.24
コメント(0)
802.1X でスイッチのポートアクセスを制限するのに RADIUS を入れたくなった。Windows Server の ISA を使ってもよいのだが (というか、現状、そのやり方しか知らない)、Windows Server がいなくても動くようにしたいので Solaris 10 上で RADIUS サーバを動かしたいなと。ついでに iSCSI 構成の RADIUS を構成する方法 あたりも試してみたい。無償で使えるものは、FreeRadius か GNU Radius、OpenRadius、XTRadius あたりなのかな。とりあえず、簡単に Windows で試すには、WinRadius とか使うとよいか。5 ユーザまでは無償で利用できる。ここから WinRadius をダウンロードしてファイルを解凍する(WinRadius の説明、このページに WinRadius Client 等のリンクもある)。WinRadius.exe をダブルクリックすると ODBC の設定が必要だとメッセージが出ているので、[Settings]-[Databse]を選択し、[Configure ODBC automatically] を選択する。これで同じディレクトリにある WinRadius.mdb をデータベースとしてくれる。とりあえずは Access の MDB を使う設定にしておき、後で必要なら他のデータベースに変える。再起動が必要とのメッセージが出るので、WinRadius を再起動する。[Settings]-[System settings] を見ると、NAS Secret が WinRadius になっているので、必要に合わせて後で変更する。Authorization port が 1812、Accounting port が 1813 なので標準的設定なのでこれは変えない。[Launch when system startups] のチェックボックスをオンにしておけば、Windows の起動時に自動起動するようにできる。ついでに [Minimize the application when startups] もオンにしておくと、起動後、自動的に最小化される。[Settings]-[Authentication] で認証関連の設定ができる。UserName/Password が Authorized by に指定されているのを確認して、その他は後で設定。[Settings]-[Accounting method] でアカウンティング(課金)の設定ができる。秒単位で cent の課金の設定。[Settings]-[LOG setting]でログの設定。[Detailed message] もとりあえずチェックしておく。[Setting]-[Multi-Secret] で NAS ごとにシークレットの設定ができるようだ。[Operation]-[Add user] でユーザの追加ができる。パスワードは平のまま表示されちゃうなぁ。とりあえず適当な User Name、Password を指定して、その他はそのままにして、[OK]ボタンをクリックする。RadiusTest.exe を起動して、[Send] をクリックするとテストが行われる。接続性のテストはできるが、何を入れても返ってくるメッセージが HEX なので接続できたところまでは分かるが認証が成功したかどうかは分かりにくい。[PerformanceTest] をクリックすると、1秒あたりに扱うことができるユーザ数の推計値が表示される。一応動作はしているようなので、WinRadius Client で接続してみる。***Access accepted*** が表示されれば接続成功、ダメなら ***Access rejected*** が表示される。C:\RADIUS\winradiusclient -u username -p password -s server -port 1812 -secret secret成功した場合----------------------------------------------------------------- Now, you are using WinRadiusClient. Powered by www.ITconsult2000.com-----------------------------------------------------------------User name is : usernamePassword is : passwordRadius Server's Address is : localhostRadius Server's Secret is : WinRadiusMessage sent***Access accepted***----------------------------------------------------------------- Now, you are using WinRadiusClient. Powered by www.ITconsult2000.com-----------------------------------------------------------------失敗した場合C:\Radius\WinRadiusClient -u username -p password -s localhost----------------------------------------------------------------- Now, you are using WinRadiusClient. Powered by www.ITconsult2000.com-----------------------------------------------------------------User name is : usernamePassword is : passwordRadius Server's Address is : localhostMessage sent***Access rejected***----------------------------------------------------------------- Now, you are using WinRadiusClient. Powered by www.ITconsult2000.com-----------------------------------------------------------------ついでに ProCurve Switch の telnet のアクセスを RADIUS 認証を使うようにしてみる。Switch# configureSwitch(config)# radius-server host 192.168.1.10Switch(config)# radius-server key WinRadiusSwitch(config)# aaa authentication telnet login radius noneSwitch(config)# aaa authentication telnet enable radius noneこれで、Operator (login) も Manager (enable) も、telnet のユーザ認証が RADIUS で行われるようになる。telnet の箇所を web にすれば web アクセスも RADIUS を使うようになるし、ssh にすれば SSH でもユーザ認証が RADIUS になる。とりあえず、簡単にテストするには WinRADIUS は簡単に使えてよいかもしれない。本題の Solaris 10 で RADIUS を使うところに入る。SunFreeware.com の pkg-get を使って調べると、freeradius のバイナリがあるので、とりあえず、これを使ってしまうことにする。依存関係を見ると、freeradius-1.1.7-sol10-sparc-local.gz The Radius server - installs in /usr/local. Dependencies: openssl-0.9.8i, netsnmp, gdbm, openldap, mysql, zlib, sasl, libtool, and /usr/local/lib/libgcc_s.so.1 from either gcc-3.4.6 or libgcc-3.4.6 or higher. なので、# pkg-get -i openssl-0.9.8i# pkg-get -i netsnmp-5.4.1.1# pkg-get -i gdbm# pkg-get -i openldap-2.4.11# pkg-get -i zlib-1.2.3# pkg-get -i sasl# pkg-get -i libtool-1.5.24# pkg-get -i db-4.2.52.NC# pkg-get -i freeradius-1.1.7等々、インストールする。やっぱり、このあたり Sunfreeware よりも Blastwave を使った方が楽だなぁとか改めて思ったりするが、まあいいや。とりあえず、デバグモードで動かすことにして -X を付けて radiusd を起動したあと、radtest コマンドでテストしてみる。ユーザー名とパスワードは /etc/passwd にあるものを使う。# mkdir /etc/raddb# cp /usr/local/etc/raddb/dictionary /etc/raddb/# /usr/local/sbin/radiusd -X $ /usr/local/bin/radtest username password localhost 0 testing123Sending Access-Request of id 207 to 127.0.0.1 port 1812 User-Name = "username" User-Password = "password" NAS-IP-Address = 255.255.255.255 NAS-Port = 0rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=207, length=20とりあえず、動作はする。スイッチの接続も、RADIUS サーバを Solaris に切り替える(前の設定を外して、設定し直す)。シークレットも変更しておく。Switch(config)# no radius-server host 192.168.1.10Switch(config)# radius-server host 192.168.1.100Switch(config)# radius-server key testing123/usr/local/etc/clients.conf の中に対象のスイッチの情報を入れておく。client 192.168.1.240 { secret = testing123 shortname = switch01}radiusd を Ctrl-C でいったん殺して、再び radiusd -X で起動しておく。スイッチに telnet 経由でアクセスして、Solaris 上にあるユーザ名とパスワードで再びログイン。Operator のモードでログインに成功し、enable で、もう一度、同じユーザ名とパスワードを入れると Manager モードになった。とりあえず、使えそうな感じなので、次は 802.1X を使ってポートアクセスを制御するところ。
2008.12.16
コメント(0)
Python 3.0 がリリースされたのね。とりあえず 2.6 でいいやと思っているので、3.0 を使うのはだいぶ先になると思うが、とりあえず見ておく。「すべてのテキストがUnicodeになったが、エンコードされたUnicodeはバイナリデータとして表現される。基本コンセプトがこのように変更された結果、Unicodeやエンコーディング、バイナリデータなどを扱うコードはほとんどすべて変更する必要がある。この変更は改善である。2.xの世界では、エンコードされたテキストとそうでないテキストの混在に関係したバグが多数あったからだ」「Python 3.0」は目標を達成したか?Zope なんて、これはメリットになるんじゃないかな。最近、Zope 見てないけれど、string と unicode の取り扱いで汚くなっていたところがあるから、そういうところがすっきりするかもしれない。もうすでにそういう方向に行っているんだろうか。「Python 3.0」リリース「Python 3.0」は目標を達成したか?Python 3.0で大きく変わる言語仕様 (1/2)2to3先日、Solaris 10 10/08 と Cool Stack 1.3.1 をインストールした あとに、Python 2.6 を Cool Stack の Python と同じようにしてコンパイルしてみたのだけど、エラーが出るので Makefile を編集して、-OPT:Olimit=0 を外した。「警告: 整数オーバーフローが検出されました」等の警告ががけっこうたくさん出るが、コンパイルはできて、一応、動くみたいだったが放置していた。Python 2.6.1 が 04-Dec-2008 にリリースされていた。バグフィックス版。ということで、もう一度、同じようにコンパイルしてみる。バイナリができたので、試してみる。Tools/pybench.py を試してみる。Cool Stack の Python 2.5.2 と自分でコンパイルした Python 2.6.1 の比較。若干 2.6.1 の方が速い。けれど、この程度なら、まだ、安定度優先で 2.5.2 でよいかな。2.6.2 が出たぐらいで考えるか。後々のコードの互換性を考えると、どこかで 2.6 系にとりあえず移行しておいた方がよいとは思うけど。ちょっと意外なのは 3.0 がきれいになった分、速くなったかといえば、ぜんぜん速くなっていないどころか遅くなっているのね。リリース前は遅くてもデバグが済んでないから、あれこれ入っていて遅いんだろうと思っていたのだが、どうやらそういうことでもなかったようで、純粋に遅い。うーむ。そのうちコードを最適化して高速化の方向に行くような気がする。きれいになっても、遅くなるのはいただけない。【バージョンごとの速度比較】VersionminimumaveragePython 2.5.224095ms25537msPython 2.6.123744ms24953msPython 3.026762ms28229msIronPython 2.0 もリリースされているのね。Python 2.5 compatible release on .NET 2.0 SP1 らしい。C ベースの cmath and _winreg も同梱されているようで、CPython との互換性は高くなっているみたい。以前に試したときには CPython より、よいパフォーマンスを出すこともあったので、互換性が確保されるなら、Windows 上では IronPython もよい選択肢になるかもしれない。いまだに Windows の 64bit 版って使ってないのだけど、64bit版 Windows で 64bit版 Python の常用に挑戦してみた 方がいらっしゃるのでメモ。X端末のエミュレータバージョンアップといえば X端末のエミュレータは何年も前に買った Starnet X-Win32 を使っているのだが、そろそろアップデートするかなぁ。速度的にも速くなっているみたいだし。Suspend/Resume の機能もついているし。cygwin とか使えば無料でできるけど、実用で使うには遅かったのだよね。最近はどうなんだろう。Reflection X はちょっと高い。X-Win32 と Reflection X の比較 を見ても、X-Win32 でいいかなと。WiredX なんかも無償で使えるし、けど、遅い。X-Deep/32 は有料になったけど、6 month $9.99、1 year $19.99、2 year $29.99、期限なしで $49.99 なので安い。改めて試してみる(15日使用できる)。Xming は、Cygwin なしに独立して Windows 上で動かせる。このサイトからリリースをダウンロードするときには、ダウンロードの際に寄付金をしたときにもらえるパスワードが必要になるが、SourceForge: Xming X Server for Windows からダウンロードすれば無償。Xming-6-9-0-31-setup.exe と Xming-fonts をダウンロードしてインストールしてみた。Xming って、使ってみたら、思ったより使えそうな印象。X-Win32 のアップグレードはやめて、しばらく、使ってみるかな。XDeep/32 もいらない。と、あれこれ試す。Xming の日本語入力シングルウィンドウのモードでは日本語は問題ないが、マルチウィンドウで日本語入力するときには、root で /usr/bin/iiimd を起動しておいて、Xで接続したあとに、そのユーザで iiimx を起動する。iiim-panel が独立したウィンドウで表示されるので、あとは、Ctrl-SPACE で漢字変換モードになる。Solaris 10 には Wnn もついているから、せっかくだから使ってみるかとふと思う。svcadm enable svc:/application/wnn8/server:default しておく。日本語入力方式: Wnn8 で localhost のみの binding を外す方法 しておけば、複数マシンで使えるかな。Linux / Wine / wime で ATOK 2008 を動かしてしまっている方もいらっしゃるようで。wimeにATOK2008体験版を入れて動作するかどうかを確認する(準備とIMEインストール)、wimeにATOK2008体験版を入れて動作するかどうかを確認する(動作確認・各種制御・入力メソッド対応など) に動いている画面がある。ふーん、そんなこともできるのねぇ。
2008.12.13
コメント(0)
ZFS で RAIDZ2 壊す実験 (2008.12.07) の続き。わざと HDD を引き抜きまくって、RAIDZ2 を壊滅的な状況に追い込んだ。引き抜いた HDD を挿し直して、zpool status してみると、次のような状態まで戻った。 プール: xpool 状態: DEGRADED状態: 1 つまたは複数のデバイスが、持続エラーへの応答に失敗しています。 十分な複製が存在するため、プールは縮退状態で動作を継続 できます。アクション: 失敗したデバイスを置き換えるか、または修復されたデバイスを 'zpool clear' を使用して マークしてください。 スクラブ: Sun Dec 7 08:13:19 2008 上で 0 エラーが発生した 0h0m のあとの resilver completed構成: NAME STATE READ WRITE CKSUM xpool DEGRADED 0 0 0 raidz2 DEGRADED 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 FAULTED 0 0 0 エラーが多すぎます c2t2d0 FAULTED 0 0 0 エラーが多すぎます spare DEGRADED 0 0 0 c2t3d0 FAULTED 0 0 0 エラーが多すぎます c2t10d0 ONLINE 0 0 0 c2t8d0 ONLINE 0 0 0 c2t9d0 ONLINE 0 0 0 スペア c2t10d0 INUSE 現在使用中ですエラー: 既知のデータエラーはありませんそこで、とりあえず、# zpool clear xpool c2t1d0# zpool clear xpool c2t2d0 として、2台追加。これで、1台壊れて、ホットスワップが生きている状態まで戻った。 プール: xpool 状態: DEGRADED状態: 1 つまたは複数のデバイスが、持続エラーへの応答に失敗しています。 十分な複製が存在するため、プールは縮退状態で動作を継続 できます。アクション: 失敗したデバイスを置き換えるか、または修復されたデバイスを 'zpool clear' を使用して マークしてください。 スクラブ: Sun Dec 7 08:13:19 2008 上で 0 エラーが発生した 0h0m のあとの resilver completed構成: NAME STATE READ WRITE CKSUM xpool DEGRADED 0 0 0 raidz2 DEGRADED 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t2d0 ONLINE 0 0 0 spare DEGRADED 0 0 0 c2t3d0 FAULTED 0 0 0 エラーが多すぎます c2t10d0 ONLINE 0 0 0 c2t8d0 ONLINE 0 0 0 c2t9d0 ONLINE 0 0 0 スペア c2t10d0 INUSE 現在使用中ですエラー: 既知のデータエラーはありません使われているスペアをここで、いったん外してみる。# zpool detach xpool c2t10d0で NAME STATE READ WRITE CKSUM xpool DEGRADED 0 0 0 raidz2 DEGRADED 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t2d0 ONLINE 0 0 0 c2t3d0 FAULTED 0 0 0 エラーが多すぎます c2t8d0 ONLINE 0 0 0 c2t9d0 ONLINE 0 0 0 スペア c2t10d0 AVAIL そして、clear にする。# zpool clear xpool c2t3d0で プール: xpool 状態: ONLINE スクラブ: Sun Dec 7 08:13:19 2008 上で 0 エラーが発生した 0h0m のあとの resilver completed構成: NAME STATE READ WRITE CKSUM xpool ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t2d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 c2t8d0 ONLINE 0 0 0 c2t9d0 ONLINE 0 0 0 スペア c2t10d0 AVAIL エラー: 既知のデータエラーはありません元に戻った。ここで、もう一度、しつこく一台引き抜いて、入れ替えてとかやってみる。# zpool detach xpool c2t3d0# zpool add xpool spare c2t3d0# zpool remove xpool c2t3d0# zpool replace xpool c2t10d0 c2t3d0# zpool detach xpool c2t3d0# zpool add xpool spare c2t3d0# zpool status -xすべてのプールが正常ですこの状態では NAME STATE READ WRITE CKSUM xpool ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t2d0 ONLINE 0 0 0 c2t10d0 ONLINE 0 0 0 c2t8d0 ONLINE 0 0 0 c2t9d0 ONLINE 0 0 0 スペア c2t3d0 AVAIL 途中で status はどのように推移したでしょうって、クイズじゃないが、ディスクの抜き差しはかなり柔軟にできるのがいい感じ。ぐちゃぐちゃ、入れ替えても大丈夫なのね。あれこれやってみて、ZFS の縮退モードはかなり強そうということが確認できた。ちなみに、もしも「起動のたびに ZFS がパニック状態になったらどうすればよいですか」1. boot using '-m milestone=none'2. # mount -o remount /3. # rm /etc/zfs/zpool.cache4. # rebootこれにより、プールのすべてのデータがシステムから削除されます。プールを作成し直し、バックアップから復元してください。ZFS についてよくあるご質問 (Frequently Asked Questions、FAQ)らしい。パニック状態にするには、どうやったらよいかな。とりあえず、そこまでは面倒なので実験しない。
2008.12.08
コメント(0)
そういえば、Blade 1000 に Solaris 10 08/10 をインストールし直したら、そのとき D2 (Sun StorEdge D2 を買った (2008.06.21)) を切ったままにしたせいか分からないが、D2 のディスクが見えなくなってしまった。以前と同様 devfsadm を実行したら見えるようになった。(デバイスへのアクセス (概要))。ディスクが見えるようになったら zpool import poolname でインポート。ほっと一息。以前はストライプにしていたのだが、ついでなので信頼性重視で、RAID-Z で作り直すことにした。ダブルパリティーを使うことにする。HDD は中古のやつだし、いつ壊れるか分からないからw1 つまたは 2 つのデバイスで障害が発生しても、データを失うことなく処理を続行できることを意味します。raidz2 キーワードを指定すれば、ダブルパリティー RAID-Z 構成にすることができます。あるいは、raidz または raidz1 キーワードを指定すれば、シングルパリティー RAID-Z 構成にすることができます。ダブルパリティー RAID-Z (raidz2)そういえば、ZFS Disk Crash Demo、ZFS is Smashing Baby とか、端的に分かりやすいデモだけど、でもでも、まったくもう。。。。って感じ。まあ、銃弾打ち込んだり、爆破したりするのに比べたらましだけど。ディスクが 7 台あるので、6台で RAID を組んで 1台をホットスペアにしてみる。とりあえず、zfs のスナップショットの機能を使って、別のマシンにバックアップを取る。ZFS データを送信および受信する など参照。# zfs snapshot mypool/mydata@snap1# zfs send mypool/mydata@snap1 | ssh another-host zfs recv mypool/mydata_snap1リモートの storage_snap1 のところは、使われていない名前を指定するか、あらかじめ作ってあってもアンマウントできる状態にしておく。アンマウントできない状態だとエラーになるみたい。ちなみに、root で、これをやるには受け側のホストで root で ssh ログインできるようにしておかないとダメなので、/etc/ssh/sshd_config で PermitRootLogin yes と一時的にしておく。でも、セキュリティ上、受ける側を user@another-host とした方がいいな。それにしても、こういうのをやるときにはネットワークがギガビット対応でないと時間がかかる。。。。加えて ssh 使うから CPU をそれなりに使うのね。あまりロースペックなマシンだと、ここでもだと時間がかかる。ssh 使わずにできないのか。。。。ssh を使わない zfs send/recv という手もあるのね。mbuffer を使って ZFS data stream を送受信してあげるのね。おぉ、ちなみに、zfs recv の -v オプションを利用すると、全ての data stream 受信完了後、受信にかかった時間や受信データ量、1 秒間の平均転送速度を出してくれます。このオプションは気づいていなかった。-v つけるようにしよっと。んー、でも、ssh を使う場合は、送信側だけでえいとやれるのに、mbuffer を使う場合は受信側でも用意をしてから、投げないとダメなのが若干、面倒。特に自動化する場合とか。ちなみに、zfs data stream を送受信中に他のホストからゴミを投げつけるとか、別のバックアップ開始しちゃったら壊れるかw 他のホストからは、そのポートに通信を受けないようにしておけば安心できるか。自動化するなら、ホストごとにポートを変えるだな。時間が予想以上かかって別のマシンから送られてきたらドカンじゃまずいものね。バックアップができたら、いったん、ちゃんとバックアップができたか確認してからプールを破壊して、作り直す。とりあえず、1台は念のためスペアにして、raidz2 で作成。# zpool destroy mypool# zpool create xpool raidz2 c2t0d0 c2t1d0 c2t2d0 c2t3d0 c2t8d0 c2t9d0 spare c2t10d0 そして、ptime mkfile 1g test.dat で簡単にパフォーマンスを見てみる。あれ、やけに遅いな。何でかな。ストライプで試してみたけど、やっぱり遅くなっている。んー、以前、作成データの大きさを間違えるとか、何か間違ったことして速いと思っちゃっただけなのかな。。。。1GB の書き込みがかなり遅くなっているけど、数百MB 以下のファイルは速くなっているから、実用上は困らない。まあ、いいや。ちなみに、今回は raidz2 でホットスペア 1台にしてみた。稼働中のディスクが仮に 2台すっ飛んでも、1台はホットスペアが入るから、さらに 1台飛んでも死なないかなと。さすがに 4台すっ飛ぶ間に手は打てるだろうと。とりあえず 1台引っこ抜いて、ちょっと待つと。ホットスペアが機能して、使用中になる。NAME STATE READ WRITE CKSUMxpool DEGRADED 0 0 0 raidz2 DEGRADED 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t2d0 ONLINE 0 0 0 spare DEGRADED 0 0 0 c2t3d0 FAULTED 0 110 0 エラーが多すぎます c2t10d0 ONLINE 0 0 0 c2t8d0 ONLINE 0 0 0 c2t9d0 ONLINE 0 0 0スペア c2t10d0 INUSE 現在使用中ですさらに1台ディスクを引っこ抜く。ホットスペアがもうないので、DEGRADED になる。そうすると、状態: DEGRADED状態: 1 つまたは複数のデバイスが、持続エラーへの応答に失敗しています。 十分な複製が存在するため、プールは縮退状態で動作を継続 できます。アクション: 失敗したデバイスを置き換えるか、または修復されたデバイスを 'zpool clear' を使用して マークしてください。 スクラブ: Sun Dec 7 00:00:00 2008 上で 0 エラーが発生した 0h0m のあとの resilver completed構成: NAME STATE READ WRITE CKSUM xpool DEGRADED 0 0 0 raidz2 DEGRADED 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t2d0 FAULTED 0 207 0 エラーが多すぎます spare DEGRADED 0 0 0 c2t3d0 FAULTED 0 110 0 エラーが多すぎます c2t10d0 ONLINE 0 0 0 c2t8d0 ONLINE 0 0 0 c2t9d0 ONLINE 0 0 0 スペア c2t10d0 INUSE 現在使用中ですとりあえず、2台死んでもまだ大丈夫(実質、ホットスペアが機能しているので 1台が死んだ状態)。ダブルパリティだから、もう1台死んでも大丈夫なはず。さらにもう 1台ディスクを引っこ抜く。 プール: xpool 状態: DEGRADED状態: 1 つまたは複数のデバイスが、持続エラーへの応答に失敗しています。 十分な複製が存在するため、プールは縮退状態で動作を継続 できます。アクション: 失敗したデバイスを置き換えるか、または修復されたデバイスを 'zpool clear' を使用して マークしてください。 スクラブ: Sun Dec 7 00:10:53 2008 上で 0 エラーが発生した 0h0m のあとの resilver completed構成: NAME STATE READ WRITE CKSUM xpool DEGRADED 0 0 0 raidz2 DEGRADED 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 FAULTED 0 128 0 エラーが多すぎます c2t2d0 FAULTED 0 207 0 エラーが多すぎます spare DEGRADED 0 0 0 c2t3d0 FAULTED 0 110 0 エラーが多すぎます c2t10d0 ONLINE 0 0 0 c2t8d0 ONLINE 0 0 0 c2t9d0 ONLINE 0 0 0 スペア c2t10d0 INUSE 現在使用中でエラー: 既知のデータエラーはありません3台引っこ抜いたけれど、1台はホットスワップが入って、実質 2台が壊れた状況。それでも、「エラー: 既知のデータエラーはありません」の状態で生きている。強い!さて、もう 1台引っこ抜くとどうなるか。つまり、7台中、4台引っこ抜く。残り3台。これで壊れるはず。なかなかステータスが返ってこない。うー、全然返ってこない。この状態で zfs list とか、zpool list とかやっても返ってこない。意外な弱点。ひょえぇ。もし、こういうダメ状態になったときに、ステータスが返ってこないと対処できないじゃん。それにしても、壊滅的に壊れた場合の追試が必要だなぁ。壊滅的に壊れてから zfs status でどのディスクが壊れているか確認できないのが辛い。もし、いつでも、こうなっちゃうとすると、万が一に備えてもう少しディスクを増やして、さらに一台ホットスワップのディスクを用意した方がいいか。。。。それにしても、zpool status や zpool listや zfs list のプロセスは Ctrl-C しても殺せない。kill コマンドも効かない。ssh のセッションごと殺しちゃえ。いえいえ、それでもプロセスはまだまだ生き延びてます。ちなみに、こういう状態でも、恐ろしいことに、その pool をマウントしたところで読み書きできるなぁ。生きているディスクだけに書き込みするのか。試しにここで、強引に reboot してみる。うー、なかなか起動時の処理が終わらない。生き残ったディスクがガリガリやっている。ログインもできない状態が続く。ZFS が強いと言っても、ほんとうに壊れちゃうところまでやると、やっぱり、大変なことになるようだw 仕様上、壊れるところまでやって壊れるのは当然だからよいとして、その後、お手上げ状態になるのがちと困るな。壊滅的に壊れた後の運用ノウハウもきちんと身につけておかないといかんね。
2008.12.07
コメント(0)
![]()
以前に 小説という糖衣錠に包まれた理論 (2006.08.31) でエリヤフ・ゴールドラットの ザ・ゴール のシリーズをこのシリーズはとてもおもしろい。理論がどうのこうのという次元だけでなく、ちゃんと読み物としておもしろく描けている。こういうものが書ける人は実に尊敬に値する。と書いたが、それ以降、新しいのを読んでなかった。突然思い出したので、まとめて読んでなかったものを買った。忙しくて読む暇がないのだけど、だからこそ読むのだな。気分転換に読んでみる。なぁんだ、ちゃんと読む時間ぐらいあるじゃないか。そして、さらに自分の首を絞めることになる。でも、精神的には忙しいときほど仕事以外のことをした方が楽になる。肉体的には大変だけど。肉体的に大変なら痩せるかといえば、ちゃんとストレス食いするから太るんだなぁ。減量も、本格的にまた始めよう。。。。ちなみに、今回買った中で ゴールドラット博士のコストに縛られるな! だけは小説ではない。トム・デマルコの デッドライン なんかも、とてもおもしろい。やっぱり、こういう理論をベースにして小説家できる人はすごい。
2008.12.04
コメント(0)
Blade 1000 に Solaris 10 10/08 をインストールし直した。boot cdrom - text でテキストモードでインストールしたのでルートのファイルシステムも ZFS にできた。これで気持ちよくなった。グラフィック画面からのインストールでも、デフォルトで ZFS のインストールになればいいのにな。まあ、過渡的な状態だろうから、いつかはそうなるんだろう。とりあえず Cool Stack 1.3.1 をインストールしてみた。Optimized Open Source Software Stack (Cool Stack)。CoolStack のご紹介、第2回 Cool Stackで手軽に「SAMP」、SAMP構築 - Cool Stack使用 - など参照。Apache Roller でブログサーバーを構築してみよう! を参考に Apache Roller を CoolStack で動かしてみる。一応、動くことだけ確認。CoolStack じゃないのと比べてどうか比較しようと思ったが面倒なので止めた。楽に環境を整えられるだけでもメリットはある。ちなみに、古めの CoolStack 1.2.x の関連の文書を見ていると、# svcadm enable svc:/network/csk-http:CSKapache2みたいになっているけど、1.3 だと、# svcadm enable svc:/network/http:apache22-cskとか、SMF でのサービスの名前が変わっていたりするのね。svcs -a | grep csk とかやって調べればよいようだ。svc:/application/database/mysql:mysql-csksvc:/network/http:apache22-csksvc:/network/http:tomcat5-csksvc:/network/http:tomcat6-csksvc:/network/http:lighttpd-csksvc:/network/http:squid-cskちなみに、CoolStack って、Sun Studio 12 を使って Selecting the Best Compiler Options でコンパイルしてるのね。たとえば、Python の場合、README.python を見ると、次のようなオプションでコンパイルされている。Python 2.6 も同じようにしてコンパイルしてみるか。まあ、劇的に速くなるってもんじゃないだろうけど、気持ち速くなればいいかなと。SunStudio12 もインストールしておく。LDFLAGS="-L/opt/coolstack/lib" \OPT="-fast -xipo -xtarget=generic" \BASECFLAGS="-I/opt/coolstack/include" \LINKFORSHARED="-fast -xipo -xtarget=generic -xipo_archive=writeback" \BLDSHARED='$(CC) -G -R/opt/coolstack/lib' ./configure \ --prefix=/opt/coolstack \ --disable-static \ --enable-ipv6 \ --without-gcc \ --with-threads
2008.12.01
コメント(0)
全9件 (9件中 1-9件目)
1
![]()
![]()
