« 2007年08月 | メイン | 2007年10月 »

2007年09月 アーカイブ

2007年09月03日

wgetでproxyを指定する。

English Post is Use wget via proxy

proxy経由でしか外が見えない場合のproxy指定方法

以下の内容で~/.wgetrcを作成しproxyを設定する。

http_proxy=PROXY_SERVER:PORT


環境変数http_proxyに設定する方法もある。どう考えてもこっちのほうが楽。当然ながらProxyサーバーの指定にはhttp://を忘れないように(昔忘れてうまくいかないと嘆いていた)

export http_proxy="http://プロキシサーバー名:ポート/"
その後は普通にwgetすればよい。

せっかくなのでほかのテクニックを

複数のファイルを一度に取得する(-i)

wget -i URLを列挙したファイル名

出力ファイル名を指定する(-o)

wget -o ファイル名 取得ファイル先URL

2007年09月04日

VNCでLinuxを操作する その1起動確認

SSHがあるからGUIなんて遅くて使ってられるか!という信条に基づきいままでほとんどXwindowは入れてなかったのだが、最近Linuxデスクトップをよく利用するようになって俄然Xの利用頻度が多くなってきた。

それに伴い本来GUI不要のサーバー用途のマシンにもXを入れておいてそれをVNC経由で(ディスプレイがないので)操作することにした。LinuxのVNCはXプロトコルを利用しているので、WindowsマシンをVNCで操作するときと違い同一LAN内部であれば直接操作しているのと変わらないほどのレスポンスのよさがあるのも採用の大きな決め手である。ただし暗号化はされていないので外のネットワークに公開するのはやめておいたほうがいいだろう。余談ではあるがWindowsをリモートコントロールするならVNCよりも、素直にリモートデスクトップを使ったほうが早いし多彩な操作ができるだろう。

最近のディストリビューションにはすでにvncが入っていることが多い。CentOSでは最小インストールでも入っていた。なければパッケージでいれればよい。ここではインストールが終わっている前提で話を進める。

まずはVNCのパスワードの設定。これはVNC接続の時に必要になる。

# vncpassword

そしてvncの起動

# vncserver :1

デフォルトではtwmという古いwindowマネージャとなるので一瞬面食らうがこれで動作確認は取れる。

後はデフォルトであれば5901ポートに対してvncviewerで接続してみること。なおhttp://vncサーバー:5801/でJavaアプレットによるVNCViewerも立ち上がる(重いのでお勧めしないが)

なお接続できない場合はたいていファイヤーウォールが邪魔をしているので該当ポートを空けること。

VNCでLinuxを操作する その2 GNOMEデスクトップに変更

さて前回のエントリーでVNCViewerからの接続に成功しただろうか?

しかし接続に成功したとはいえデジタルRGB(こんな例えでわかる奴おるか!)みたいな画面で途方にくれた人もしくはVNCはこんなものかとあきらめに入る人もいるがまだ早い。

次はこのあまりにしょぼいtwmというウィンドマネージャーを(おそらく大多数にとっては)見慣れたGNOMEに変更する方法である。

VNCサービスの再起動が伴うので、ここからはsshでの操作になる。

まずはvncを立ち上げているユーザのホームディレクトリに移動し

.vnc/xstartupを以下の内容で置き換える。

#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc

このままでは設定変更が反映されないのでvncセッションを再起動(すでに接続が確立されている場合は強制切断される)

vncserver -kill :1
vncserver :1

VNCViewerで再接続してみれば見事GNOMEデスクトップの画面が出てくるはずである。

なおVNCViewerからログアウトしてしまった場合は何も操作できず一見ハマリになるが、sshでログインして上記のvncセッションを再起動してやれば元に戻る(逆を言うとsshなり、コンソールなりでログインできる環境ではない場合は本当のハマリ)

2007年09月05日

SE Linuxを一時的にOFFにする

昨日久々に実験機のCentOS4を触ってMySQLを起動しようとしたら失敗した。

ログを見てみるとどうやらSELinuxが絡んでいるようだ。実験機なのであまり深く考えずにとにかくMySQLを起動させるためにSELinuxを一時的にOFFにした。

以下でSELinuxを無効にできる。

setenforce 0

再びSELinuxを有効にするには

setenforce 1

正直SELinuxはほとんど未知の領域なのでOFFにすることでしのいでいるが、そろそろ本格的にやらないとまずいかなと思う今日この頃。

SE Linuxを恒久的に無効にする

前回の一時的にSELinuxを無効にするだと再起動するたびにsetenforce 0をしなければいけない。

どうせ家の中でしか使わないからずっとSELinuxOFFでいいという人に贈る

"/etc/selinux/config"を開く、下記の行を入れ替える

SELINUX=enforcing
以下のように
SELINUX=disabled

次回再起動からはこの設定が生きてくる。

2007年09月11日

Fedora7が不安定

実験用にマルチブートでFedoraCoreを入れたことはあってもメインでは使ったことがないとはいえ相変わらず人気があるディストリビューションなので昔の勘を取り戻すべくFedoraCore4以来のFedora7を(ややこしいな)デスクトップマシンにインストールして検証しているのだがどうにも不安定だ。

まずXを含めてインストールしstartxするとXが立ち上がらない。これは後ほど解決するにしても昨日発覚したのが、起動して別のマシンからSSH接続しようとしたら、1時間ほどで接続できなくなった。pingをうったら反応があるのでsshdだけがおかしくなったのかコンソールの前に立つと大量のカーネルエラーメッセージが出ていた。

マシンとの相性もあるかもしれないが(nForce2チップセットのキューブベアボーン)こういったGUIを立ち上げていない状態でのフリーズはこれまでのLinux使用経験上あまりない。別のマシンにインストールして様子を見るか・・・

Fedora7,CentOS5でパッケージ管理のaptがなくなった???

元はDebianのパッケージ管理システムであるapt

Debianのみならずその派生であるUbuntuやKNOPPIXなどでもベースはaptである。

RedHat9の頃から非公式ではあるがaptが使え、RedHat系のFedoraやCentOSなどでもaptを使うことができた。今回CentOS5をインストールするにあたっても標準パッケージ管理であるyumは最初の一回すなわち

yum install apt

だけで後はaptで運用していくつもりが、なんと見つからない。あわててFTPサイトをのぞいてみると今までextrasにRPMパッケージがあったのに今回のバージョンからなくなっているのだ!

これまでほぼaptでパッケージ管理をしてきた身にはyumはどうにもしっくり来ないがしかたなく身に着けなければならないのだろうか?

だれかCentOS5用のaptパッケージを見つけたら情報ください。

続きを読む "Fedora7,CentOS5でパッケージ管理のaptがなくなった???" »

2007年09月12日

PHPで画面が真っ白になる時はエラーを疑え!

PHPで画面にまったく何も表示されずソースを見てもほとんど何も出力されていない時がある。

実はこれ複数原因があるが、以下見ていこう。

まずは出力の文字コードが違う場合IE6だと画面が真っ白になる。この場合はソースの表示をさせると本来出力される内容が出てくるのでその場合はエンコーディングの自動選択を選ぶ(もしくはわかっていればそのエンコードを指定する)

次にソースを見ても手がかりとなるような出力がない場合だが、コレは単純でphp.iniでエラーがApacheのエラーログに出力されるようになっているだけだ。エラー情報は開発中は画面に出たほうがうれしいのだが、運用時に出してしまうとPHPのバージョンがわかってしまったりして思わぬ攻撃の手がかりを与えることになりかねない。ほとんどのディストリビューションのデフォルトではPHPのエラーはApacheのエラーログに出力されるようになっている。

もし出力するようにしたければphp.iniの以下の場所を変えて、Apacheを再起動すればよい。

display_errors = Off←On

RedHat系のディストリビューション(Fedora,CentOS)であればエラーログの場所は下記にあるはず。

/var/log/httpd/error.log

VineLinuxではApacheのバージョンが1か2によるが

/var/log/apache/error.log
/var/log/apache2/error.log

開発サーバーであれば画面に表示するように変更してもいいだろう(というか変更すべき!)

2007年09月14日

CentOS5で最小ネットワークインストール構成に後からXWindowを入れる

前回のCentOS5ネットワークインストールをした後の話である。

普段であればサーバー用途なのでGUIは入れないで後はyumでがつがつサーバーソフトウェアを入れていくのだが、せっかくLinuxデスクトップを利用しているのでCentOSでもXwindowを入れてみることにした。

デスクトップ用途だとディスクがいったい何枚必要になるのかわからないので、そういった意味でもネットワークインストール最小(途中でフリーズする危険がインストールサイズが大きくなるほど多い)でインストールを完了させ、その後yumで後からXwindowを入れるのがディスク1枚ですむので地球に優しいのである。

さてかといって一つ一つyumのパッケージを入れるのは大変なのでパッケージのさらにパッケージというのがyumにはある。実はコレインストール時に選ぶパッケージ群とほぼ同じと考えてよい。以下のコマンドをrootで実行する。するとインストーラーで見慣れた名称が現れるはずだ。

# yum grouplist

最小限のXwindowsSystemとGNOMEデスクトップを入れる。

# yum groupinstall "X Window System" "GNOME Desktop Environment"

さすがにパッケージのサイズはトータルで300Mほどあるはずなので1時間ほど覚悟しよう。インストールが完了してもこのままではハードウェアの設定がすんでいないのでstartxしても立ち上がらない。

続きを読む "CentOS5で最小ネットワークインストール構成に後からXWindowを入れる" »

SELinux事始め

CentOS5をインストールして使い始めたのはSELinuxをそろそろ本格的に実運用モードにもって行きたいと思ったのであるが、のっけから躓いている。

php経由でpostgresqlに接続できないんですが・・・エラーログの内容を見てもちんぷんかんぷんなのでこれからサルでもわかるSELinuxとでも称して地道に連載して知識を蓄えていくことにしよう。

先は長い!

2007年09月15日

一定日数経過したバックアップファイルを消す方法

emacsやviでも編集後自動的にファイル名~でbackupファイルが作成される

これはこれで設定ファイルの変更ミスしたときにリカバリーできるのでありがたいが、一定時間経過してしまえば不要となるし、攻撃の足がかりとなる可能性もあるので古いバックアップファイルは消してしまおう。

30日経過したバックアップファイルを列挙(あらかじめディレクトリは移動しておくこと)

$ find . -name "*~" -type f -mtime +30

いちおうこの実行結果を見て問題なければ消してしまおう

$ find . -name "*~" -type f -mtime +30 | xargs rm

なお、最終更新日付の条件は不正アクセス対策入門の入門という本にのっていた方法を加えさせていただいた。

2007年09月19日

HTTPヘッダー書き換えFirefoxプラグイン Modify Headers

携帯端末を偽装して開発する時などにどうしてもHTTPHeaderを加工する必要がある。そういう需要がある人にはありがたいツール。

これまで同種のツールにはParosを利用してきたが、ParosはProxyとして動作するのでFirefoxのみで完結するわけじゃないのが玉に瑕。ただしリクエストの再送などはParosの出番が残されている。

現在のバージョンは0.7だが、十分使い物になる。

2007年09月20日

こんな定額制はいらない

Docomoがデータ通信の定額制を始めるという。

しかし、FTPやSSHができないという。

メールやWebの閲覧だけならネットカフェでも十分だから、こんな定額制は意味がない

pukiwikiでwikiスパムを撃退する

誰でも編集できるのがwikiのいいところであるが、折角のシステムもスパムのターゲットにされてしまうと大変である。

実はこのブログの大本となっているrutakewikiというwikiも残念ながら有名になるに従ってwikiスパムのターゲットとなり、内容と全く関係ないリンク満載の新規ページが作られるようになった。

あまりに頭にきたので内部LANと特定のIP以外からは編集不可能にPHPのコードを変更したのだが、そこまでしなくてもpukiwikiには編集に認証を必須とする仕組みがありこれでwikiスパムを撃退できる。

続きを読む "pukiwikiでwikiスパムを撃退する" »

2007年09月25日

Windows⇔Linux間のファイル転送

一番楽な方法はWinSCPなどのGUIソフトを使ってファイルをやり取りすること。SSHでアクセスできるならこれを利用するのがいいだろう。コマンドラインでもいいぜというベテランにはputtyに同梱されているpscp.exeを使える。

次によく使われるのはLinux側にsanbaサービスを立ち上げておいてWindowsからはネットワークコンピュータとして認識させる方法。これは相手がMacでも使える。samba自体は主要なディストリビューションではバイナリが用意されているし、最初からインストールされていることも多い(ただしサービスは立ち上がってない)、しかしながらsambaユーザーの設定は自分自身でやる必要がありちょっとなれていないと面倒だろう。あと注意しなければいけないのは、インターネット間でのファイルのやり取りに使うことは避けるべきである。

最後はFTPを使う方法。これも設定が必要でセキュリティ的にも問題があるのでおすすめしない。

続きを読む "Windows⇔Linux間のファイル転送" »

VNCViewerとVNCServer間でクリップボード共有

そんなのデフォルトでできるようにしてくれと叫びたいが、その手順がなかなかWebページ上でヒットしなかったのでここにまとめておく。

VNC間でクリップボードの共有を実現するためにはvncconfigというアプリケーションをVNCServer側で走らせておかねばならない。

# vncconfig &

とするとXのアプリケーションが立ち上がる。それが立ち上がっている間のみVNCViewer Server間のクリップボードの共有ができる。

2007年09月26日

VNCで接続用パスワードを忘れたときは

vncではセッションを立ち上げるユーザー毎にパスワードを設定することができる。

どこに格納されるかというと~/.vnc/passwdファイルである。

なので忘れてしまった場合はこのファイルを削除すると次回セッション起動時にパスワード設定要求ダイアログが出現するので設定しなおせばよい。

2007年09月27日

JDBCドライバーの4タイプを理解する

JDBCドライバをダウンロードする時に困るのが複数タイプのドライバがあってどれをダウンロードすべきかということである。とりあえずどんなタイプがあるのかだけでも抑えておこう。


タイプ1 ODBC経由。windows環境でお手軽に試す場合。JDBCドライバが用意されていなくてもODBCドライバがあればよい。最近ではSQLServerもJDBCドライバを提供しているので本番環境での出番はなさそうである。

タイプ2 クライアント側にネイティブライブラリ必要。OracleのJDBC接続はまだこれが主流ではないだろうか?Oracleクライアントの設定とさらにJDBCの設定が必要なので面倒だ。

タイプ3 ミドルウェアサーバー経由。というだけでほとんど実利用されているのを聞いたことがない。絶滅寸前か?

タイプ4 100%JavaでJDBCドライバのみで接続可能。一般に重い商用DBクライアントをインストールしなくていいので便利。OracleやDB2など主要なDBMSではドライバが提供されている。

2007年09月28日

アクセス数の増減は現実社会と同じ

25日給料日近辺になると銀行の窓口はもとより道路などさまざまなところで混雑する。

そして月末や年度末にも同じような傾向が見られる。アクセス解析も似たようなもので過去3ヶ月ほど月の後半に行くにしたがってアクセス数が上昇傾向にある。

ネットショップをやっている人はこういった動きに敏感になるべきだろう。天気と連動したデータも取れると面白いかもしれない。

About 2007年09月

2007年09月にブログ「技術メモ」に投稿されたすべてのエントリーです。過去のものから新しいものへ順番に並んでいます。

前のアーカイブは2007年08月です。

次のアーカイブは2007年10月です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。