Category Archive: サーバ管理

post by yamamoto | | 0 | 1,771 views

perl で LDAP の ldif を csv に変換してみよう〜

下記のような LDAP の ldif ファイル(似たファイルならなんでも)を dn, objectClass, uid,... のような csv ファイルに変換するプログラムです。ただ100行未満のプログラムですが、スキーマ(下記はinetOrgPersonというデフォルトのスキーマ)の情報がなくてもアカウントの一覧が作れます。いちいちテキストからExcelにコピペすると百数十件でも死ぬほど時間かかりますね。試していないが、数万件でも軽々変換してくれるだろう〜(^^) LDAP以外のテキストは、35行目の my $patten = "^$header:(.*)"; を弄ってみてください〜。 dn: uid=S0205,ou=mailsys,dc=syokuba,dc=mycompany,dc=co,dc=jp objectClass: inetOrgPerson uid: S0205 sn: hanako cn: Yamato Hanako mail: jugyouina@dep.mycompany.co.jp userPassword:: ************************* structuralObjectClass: inetOrgPerson creatorsName: cn=admin,dc=syokuba,dc=mycompany,dc=co,dc=jp createTimestamp: 20090413032409Z entryCSN: 20090413032409.000000Z#000005#000#000000 modifiersName: cn=admin,dc=syokuba,dc=mycompany,dc=co,dc=jp modifyTimestamp: 20090413032409Z dn: uid=S0206,ou=mailsys,dc=syokuba,dc=mycompany,dc=co,dc=jp objectClass: inetOrgPerson uid: S0206 sn: tarou mail: tarou@jimu.mycompany.co.jp structuralObjectClass: inetOrgPerson creatorsName: cn=admin,dc=syokuba,dc=mycompany,dc=co,dc=jp createTimestamp: 20090413032409Z cn: Ooshiro Kuniko userPassword:: ************************* entryCSN: 20090417025558.000000Z#000001#000#000000 modifiersName: uid=S0206,ou=mailsys,dc=syokuba,dc=mycompany,dc=co,dc=jp modifyTimestamp: 20090417025558Z 【サンプルプログラム】 perl ldif2csv.pl filename.ldif

変換した結果はこちら:

post by yamamoto | | 0 | 483 views

Debian Wheezy における Heartbleed bug の対処

Heartbleed bug ってなんぞや? 英語サイト この日本語のサイトがかなり分かりやすいです。 検知する方法はありますか? Tenable の Nessus Vulnerability Scanner ( Nessus 脆弱性スキャナー) 有償版は年間15万円もしますが、内部(同じネットワーク)のみなら無償で使えます。 やり方は簡単で New policies を追加し、Heartbleed Dection を選択します。 オプションとして Quick, Normal, Thorough がありますが、要するにスキャンするポート範囲の違いです。Thoroughはすべてのポートをスキャンするからかなり時間かかります。 Home Edition の Activation Code はこちらから取得できます。(使用できる範囲はパソナールホームネットワーク内、一回のスキャン最大16 IP) 脆弱性を見つけったら、こんな感じでメモリが読まれてしまいます。 Debian Wheezy の解消方法は? # apt-get update # apt-get install openssl libssl1.0.0 (上記のコマンドを実行すれば、関連するサビースも自動的に再起動しますので、これて修正は完了します。特に libssl1.0.0 のバーションが 1.0.1e-2+deb7u5 以上であれば、OKです) しかし、どこまでサーバの情報が取られたか、全然痕跡は残さないので、すべての鍵、すべてのパスワード、すべてのパスフレーズを更新したほうが安全でしょう。既に取られた情報は恐らく諦めるしかありませんね。  

post by yamamoto | | 0 | 554 views

プログラムで 自作 log を作成する

syslog-ng の設定 # watch source s_src { file ("/proc/kmsg" program_override("kernel: ")); unix-stream("/dev/log"); system(); internal(); }; destination df_watch { file("/var/log/watch.log"); }; filter f_watch { facility(local0); }; log { source(s_all); filter(f_watch); destination(df_watch); }; logger コマンドでログを作る logger -p local0.notice -i -t "Hello!" "Good morning !!!" /etc/logrotate.d/watch /var/log/watch.log {     rotate 60     monthly     compress     endscript }    

post by yamamoto | | 0 | 2,753 views

f05d 再 root 化

以前 富士通 f05d を root 化して、debianを入れて開発環境として使っていました。 ポータルウェブアプリ開発セット しかし、ソフトウェア更新を「自動で更新を行う」にしたから、ファームウェアが V08R31C から V11R40A に更新されたから、 root 化が消えてしまいました。fonepad を買って root 化したから、しばらくこちらが放置されました。 最近、内蔵のSDカードが頻繁に容量がいっぱいになって、es ファイルエクスプローラーの 「SD カード解析」機能で解析したところ、 /mnt/sdcard/DCIM の下に2つサムネイルの隠しフォルダがあり、なんと容量が合計2〜3GBも使っていました。恐らく QuickPic とFacebook この二つアプリのせいだと思われます。サムネイルのディレクトリを設定するところが見当たらないので、 やはり root 化してなんとかしないとすごくうざいです。 f05d の再 root 化はこちらのサイトを参考しました。しかし、root 化していても 内蔵の SD カードの fat なので、シンボリックリンクが貼れません。 他にもいい方法あるかもしれませんが、当分 mount -o bind /mnt/sdcard/external_sd/DCIM /mnt/sdcard/DCIM で対応しました。 しかし、毎回端末エミュレータから上記のコマンドを実行するのも大変実用ではないので、BusyBox Installer の Scripter をつかって「Set at boot」にして 起動するときに上記のコマンドを自動的に実行するようにしました。外部の SD カードは32GBもあるから、多分容量いっぱいにはならないだろうと思います。 折角 root 化したから、fonepad にいれた Debian Kit も入れました。もちろん sqlite 版の ...

post by yamamoto | | 0 | 626 views

Debian wheezy Xen 4 の network-bridge.xen のエラー解消

前日下記の記事を書きましたが、今回はNICが2マイのとき、network-bridge.xen のエラーによる IP が全然振らなかった問題について、解消方法を書きます。 Debian Squeeze から Wheezy へアップグレード、Xen 4.1 の問題点 まず、症状としては、起動の最後に /etc/xen/scripts/network-bridge.xen line 243 setup_bridge_port command not found のようなエラーメッセージが表示されます。 ネットで調べると、network-bridge-common.sh に setup_bridge_port ではなく先頭に下線がある _setup_bridge_port が定義されているようです。 そこで、network-bridge.xen のなかの setup_bridge_port を _setup_bridge_port に修正したことで、うまく eth0 と eth1 を xenbr0 と xenbr1 に してくれました。 但し、起動の最後に下記のメッセージがありますが、一応問題は稼働するには影響がないみたいです。 /etc/xen/scripts/network-bridge-common.sh line 90: [: -ne: unary operator expected これはNULLと文字列を比較してしまうために起こる警告とのことだそうですね。  

post by yamamoto | | 0 | 843 views

ラズベリーパイ、食べられないけど、美味しい〜

アマゾンからラズベリーパイ Type B 512MB のケースセットを購入しました。 SDが入っていないので、以前買った Team MicroSDHCカード (16GB Class10)を付属した SDHCカード変換アダプターに差し込んで使っています。 最初は起動用のSDカードを作って、モバイル用の電源に差し込んで HDMI 接続でテレビで見たが、なにも映しませんでした。>< ネットで調べて、電源とかSDカードの相性と作り方とかうんうんいっていますが、自分のほうは多分SDカードの作り方が問題だと思います。 うまく起動できたやり方を紹介します。^^ まず、電源ですが、いろいろなバッテリーを持っているので、試してみました。 1)展示会で貰ったバッテリー(規格不明:テスターで測ればいいのですが^^;、測る気がしません。。。)⇒ 使えません。。。 多分これと同じかな〜^^;   2)enecharger 12800mAh こちらは出力するポートが2つありまして、2.1A のほうはパワーのランプが点くが、しばらくしたら消えました。 1A のポートが使えます。   3)Wintop International(HK) Limited【iPad&iPhone対応】5000mAh 2ポートUSB出力 こちらは 1A のポートが使えました。5Vで700mA~1200mA が必要と言われていますが、500mA のポートも問題なく使えました。(700MHz) こちらのサイトによりますと、消費電流は、1GHzStatic動作時でも500mA程度に収まるようです。(まだ試すつもりはないのですが。。。) 4)DOCOMOのバッテリー まだ試していないのですが、多分使えると思います。(後ほど、テスト結果を追記します^^;) SDカードの作り方ですが、最近あまり windows を触っていないから、Mac OSX の方法でやりました。 1回目は SD フォーマッターを使わなかったが、画面さえでなかったので、Mac 版の SD フォーマッターをインストールして、SDカードを綺麗にしました。 それから、このサイトを参考して、dd ではなく ddrescue で イメージファイルを SD に書き込みました。 事前準備は ・ddrescue のインストール ・このサイトから ddrescue-1.16.tar.gz をダウンロードし、解凍したフォルダの下から、ターミナルで下記のコマンドでインストールする(Xcodeが必須かな) ./configure sudo make sudo make install ・ラズベリーパイの Raw Images をダウンロードし、解凍する ・ダウンロードサイト ・今回のファイル: 2013-09-25-wheezy-raspbian.zip ・SDカードを Mac に挿入し、下記のコマンドで SD がマウントされている情報を取得する sudo diskutil list sudo diskutil umountDisk disk8(こちらの場合は ...

post by yamamoto | | 0 | 719 views

debian apt-get bug debconf: DbDriver “config”: could not open /var/cache/debconf/config.dat

debconf: DbDriver "config": could not open /var/cache/debconf/config.dat apt-get upgrade のとき、依存関係の問題が発生しました。 apt-get -f install で直るかもって書いてあるから、実行してみたら、上のエラーがでました。 いろいろ探してみたが、config.dat は他のプロセスに使われるかもしれないよと言っている人もいますので、 下記を実行してみました。すると、該当するファイルがありませんって怒られました。 fuser -v /var/cache/debconf/config.dat 最後は、debconf should create /var/cache/debconf if it doesn't exist という投稿を見つけまして、 mkdir /var/cache/debconf をしたら直りました。 参考サイト

post by yamamoto | | 0 | 985 views

iPad に WordPress + SQLite

iPad で Web 開発環境を作る のは以前の記事に纏めました。 で、さらに WordPress をインストールできるかを調べたところ、SQLite を使えばできるかもしれないと思い、 インストールしてみました。 まず、こちらのサイトから WordPress 3.1.2をダウンロードします。(3.1.2 以降のバージョンは うまく SQLite のテーブルを作れないので^^;;) 続いて、PDO (SQLite) For WordPress 2.7.0 をダウンロードします。 上記2つのファイルを解凍すると、‘wordpress’ と ‘pdo-for-wordpress’ フォルダになります。 ‘pdo-for-wordpress’ フォルダ内の ‘pdo’ フォルダと ‘db.php’ ファイルを ‘wordpress’ フォルダの下の ‘wp-content’ フォルダに入れます。 ‘wp-content’ フォルダの下に ‘database’ フォルダを作ります。 ‘wordpress’ フォルダのしたにある ‘wp-config-sample.php’ ファイルを‘wp-config.php’ にリネームします。 テキストエディタで ‘wp-config.php’ を開いて編集します。

(https://api.wordpress.org/secret-key/1.1/salt/にアクセスすれば、下記のようなランダムのキー等が得られます)

‘wordpress/wp-content/pdo’ フォルダにある‘wp_install.php’ in a text editor and rep を開いて編集します。     $message = __(‘<strong><em>Note that password</em></strong> ...

post by yamamoto | | 0 | 1,203 views

Apache2 rewrite 開発環境を iPad の lighttpd に移行する

MacBook pro の php 開発環境を iPad に移してどこでも開発できるようにしたいという目標でチャレンジしてみました。 開発しているシステムは、MVC(モデル/ビュー/コントローラー)の枠組みを利用したもので、URI を rewrite して、 index.php から URI に対して応答するコントローラーとメソッドを呼び出しますから、Webサーバの rewrite 機能が必須です。 それから、モデルからはデータベースではなく xml ファイルに対して読み取りと書き込みを DOM で行いました。 MacBook pro の Apache のルートではなく /APP に設置する形で開発を進んでいます。 /APP/.htaccess の中身は下記の通りです。 Options +FollowSymLinks RewriteEngine On RewriteBase /APP/ RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule !\.(pdf|ico|gif|jpg|png|css|html|xml)$ index.php 一方、lighttpd では .htaccess は対応していません。iPad で Web 開発環境を作るのはこちらの記事をご参照ください。 まず、rewrite をオンにするために /etc/lighttpd2.conf を編集する必要があります。mod_rewriteの記載がなければ、追加してください。 server.modules = ( "mod_cgi","mod_indexfile","mod_dirlisting", "mod_accesslog","mod_rewrite" ) 続いて、rewrite の変換ルールを追加します。

これで MacBook と同じ動きができます。

post by yamamoto | | 0 | 2,130 views

Web Proxy CGI によるプライベートネットワーク内の Web サーバの公開

【ご注意】この方法を利用する際に、セキュリティをよく考慮した上て、自己責任でやって下さい。 やりたいこと 既に公開されている web サーバが(例:www.myweb.com)あります。 ルータの NAT のポート 80 に設定されていないプライベートネットワーク内の別の web サーバ(例:192.168.4.80)もあります。 これを www2.myweb.com として公開したいのです。 使用した方法(他にも方法あると思いますが) CGIProxy を www.myweb.com に設置し、www.myweb.com から 192.168.4.80 をアクセス方法です。 手順 CGIProxy をダウンロードします。 nph-proxy.cgi を編集します。 許可するサーバの設定(192.168.4.80をリストに追加します) @ALLOWED_SERVERS= ('192.168.4.80') ; 拒否するネットワークを編集します。(ルータ192.168.4.1をリストに追加します) @BANNED_NETWORKS= ('127', '192.168.4.1', '172', '10', '169.254', '244.0.0') ; ルータへのアクセスを拒否しないとルータの設定ページが公開してしまうからです。 これで、URLを http:/www.myweb.com/cgi-bin/nph-proxy.cgi/30/http/192.168.4.80/ で外から 192.168.4.80 をアクセスすることが可能です。 30 のところは適当に数字をいれてください。しないと下記のメッセージの画面が出てきます。 WARNING: Entering non-anonymous area! www.myweb.com のリダイレクトの設定 vi /etc/apache2/sites-enabled/000-default 下記を追加します。     <VirtualHost *:80>     DocumentRoot /var/www/www2/     ServerName www2.myweb.com       # Other directives here     Redirect / http:/www.myweb.com/cgi-bin/nph-proxy.cgi/30/http/192.168.4.80/     </VirtualHost>  /etc/init.d/apache2 restart apache2 を再起動します。 基本認証のページをアクセスすると下記の画面が出てきます。