SELinux事始め

CentOS5をインストールして使い始めたのはSELinuxをそろそろ本格的に実運用モードにもって行きたいと思ったのであるが、のっけから躓いている。
php経由でpostgresqlに接続できないんですが・・・エラーログの内容を見てもちんぷんかんぷんなのでこれからサルでもわかるSELinuxとでも称して地道に連載して知識を蓄えていくことにしよう。
先は長い!

カテゴリー: SELinux | タグ: , | コメントする

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しても立ち上がらない。

続きを読む

カテゴリー: CentOS, Linux, 人気記事 | タグ: , | 1件のコメント

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

カテゴリー: PHP, 人気記事 | コメントする

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パッケージを見つけたら情報ください。

続きを読む

カテゴリー: Linux | タグ: , | 2件のコメント

Fedora7が不安定

実験用にマルチブートでFedoraCoreを入れたことはあってもメインでは使ったことがないとはいえ相変わらず人気があるディストリビューションなので昔の勘を取り戻すべくFedoraCore4以来のFedora7を(ややこしいな)デスクトップマシンにインストールして検証しているのだがどうにも不安定だ。
まずXを含めてインストールしstartxするとXが立ち上がらない。これは後ほど解決するにしても昨日発覚したのが、起動して別のマシンからSSH接続しようとしたら、1時間ほどで接続できなくなった。pingをうったら反応があるのでsshdだけがおかしくなったのかコンソールの前に立つと大量のカーネルエラーメッセージが出ていた。
マシンとの相性もあるかもしれないが(nForce2チップセットのキューブベアボーン)こういったGUIを立ち上げていない状態でのフリーズはこれまでのLinux使用経験上あまりない。別のマシンにインストールして様子を見るか・・・

カテゴリー: Linux | タグ: , | コメントする

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

前回の一時的にSELinuxを無効にするだと再起動するたびにsetenforce 0をしなければいけない。
どうせ家の中でしか使わないからずっとSELinuxOFFでいいという人に贈る
“/etc/selinux/config”を開く、下記の行を入れ替える
SELINUX=enforcing
以下のように
SELINUX=disabled
次回再起動からはこの設定が生きてくる。

カテゴリー: Linux | タグ: | コメントする

SE Linuxを一時的にOFFにする

昨日久々に実験機のCentOS4を触ってMySQLを起動しようとしたら失敗した。
ログを見てみるとどうやらSELinuxが絡んでいるようだ。実験機なのであまり深く考えずにとにかくMySQLを起動させるためにSELinuxを一時的にOFFにした。
以下でSELinuxを無効にできる。
setenforce 0
再びSELinuxを有効にするには
setenforce 1
正直SELinuxはほとんど未知の領域なのでOFFにすることでしのいでいるが、そろそろ本格的にやらないとまずいかなと思う今日この頃。

カテゴリー: 小技 | タグ: | 1件のコメント

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なり、コンソールなりでログインできる環境ではない場合は本当のハマリ)

カテゴリー: VNC | タグ: , | コメントする

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 | タグ: , | 1件のコメント

wgetでproxyを指定する。

proxy経由でしか外が見えない場合のproxy指定方法
以下の内容で~/.wgetrcを作成しproxyを設定する。

vi ~/.wgetrc
http_proxy=PROXY_SERVER:PORT

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

vi ~/.bash_profile
export http_proxy="http://プロキシサーバー名:ポート/"
# proxy除外はnoproxyで指定
export no_proxy="localhost,example.com"

その後は普通にwgetすればよい。

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

# 複数のファイルを一度に取得する(-i)
wget -i URLを列挙したファイル名
# 出力ファイル名を指定する(-o)
wget -o ファイル名 取得ファイル先URL
カテゴリー: 人気記事, 便利なコマンド | タグ: , , | コメントする