カテゴリー
PC Web

CentOS の SELinuxを無効にする

CentOS インストール直後、
Apache の mod_aliasを使うと、

(13)Permission denied: access to /hoge/hoge denied

といったメッセージが出る。

ネット上に公開するサーバにはおすすめしないけど、
手物のVMWareで手っ取り早く動かしたいので、Slinuxを無効にする。

キーワードは”enforce”。

現在の状態を取得するには、

getenforce

Enforcingと表示されれば、SELinuxが有効になっている。

一時的に無効にするには、

setenforce 0

この状態で getenforce をすると、Permissive となる。この状態で、Apacheの動作確認などを行うことができる。

再起動したら設定が戻っちゃうので、無効のまま起動させるために、/etc/sysconfig/selinux を書き換える。

SELINUX=disabled

このファイルには、以下のように親切に書かれているので、書き換えるファイルさえわかれば迷わないはず。

# SELINUX= can take one of these three values:
#     enforcing – SELinux security policy is enforced.
#     permissive – SELinux prints warnings instead of enforcing.
#     disabled – No SELinux policy is loaded.

カテゴリー
PC Web

CentOS の Apache にアクセス出来ない? iptablesか!

VMWareにCentosを入れて、yum でapacheを入れる。でもそれだけじゃアクセス出来ない。

CentOSのFirewall 、iptablesの設定を更新する必要がある。

まずは初期状態の確認。

[root@centos ~]# iptables -L –line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED
2 ACCEPT icmp — anywhere anywhere
3 ACCEPT all — anywhere anywhere
4 ACCEPT tcp — anywhere anywhere state NEW tcp dpt:ssh
5 REJECT all — anywhere anywhere reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all — anywhere anywhere reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num target prot opt source destination

Chain INPUTがフィルターの流れ。
4行目でsshが許可されているが、次の5行目で残りがrejectされるようになっている。
つまりこの間に、httpやhttpsといった外部からつなげたいポートを許可する設定を書くって訳だ。

# /sbin/iptables -I INPUT 5 -p tcp –dport https -j ACCEPT
# /sbin/iptables -I INPUT 5 -p tcp –dport http -j ACCEPT

確認。

[root@centos ~]# iptables -L –line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED
2 ACCEPT icmp — anywhere anywhere
3 ACCEPT all — anywhere anywhere
4 ACCEPT tcp — anywhere anywhere state NEW tcp dpt:ssh
5 ACCEPT tcp — anywhere anywhere tcp dpt:http
6 ACCEPT tcp — anywhere anywhere tcp dpt:https
7 REJECT all — anywhere anywhere reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all — anywhere anywhere reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num target prot opt source destination

よしよし。

設定を保存。

# /sbin/service iptables save

後からpostgresを許可したければ、こんな感じにすればいいのかな。

# /sbin/iptables -I INPUT 7 -p tcp –dport 5432 -j ACCEPT

カテゴリー
PC Web

vmshrink の最新版は何処?

「仮想の背中」さんが閉鎖されてからだいぶ経ちますが、「VMwareのディスク使用量を減らす – VMwareToolsがインストールされていない場合」のページは「vmshrink」でGoogle検索すると2番目に表示されるようですね。

HDDの容量が大きくなった昨今、vmshrink の必要性はかなり減ったとは思います。
また最近のVMwareのバージョンであれば、「仮想マシンのクリーンアップ」機能があり、これが同じような働きをしているのでは無いでしょうか?(検証したわけではないので間違っているかもしれません)

ですが、vmshrink などの開発は止まっちゃったのかな?とか、作者さんはご健在?といった疑問は残るわけです。

vmshrink.cの冒頭を見てみると、

	vmshrink.c
	virtual disk shrink utility

	Copyright (c) 2006 Ken Kato

とあります。これと「vmshrink」で検索したら、”それらしい”ページがサイトがあるじゃないですか。

VMware Command Line Tools – VM Back

このサイトのオーナーに関する情報を見つけるには至っていませんが、掲載されている内容からするに、 「仮想の背中」の後継のサイトとみて良さそうです。

カテゴリー
PC

Memo:ディレクトリ内のファイル数を数える

どんどん蓄積されるファイル群の期間ごとのファイル数を知りたくて、いつものようにこんなコマンドを打ったんだけど、ファイル数が多いと時間がかかるのよね。そこで調べたら、速度比較までして検証しているサイトがあった。 ディレクトリ内のファイル数を速く数える(Linux,ext3,ls,find,wc)。そこにも書かれているけど、find はいろいろ使えるので、メモ。

ls コマンドは通常ファイル名でSortが発生するので、普通に使ったのでは遅い。だから単にlsと打ったのではだめ。

ls . | wc -l

ls のソートを止めるには、オプションの -f を使う。

ls -f . | wc -l

一番高速なのが、find コマンドを使う方法。

find . -type f | wc -l

カテゴリー
Mac PC

Unable to copy the users Xauthorization file.

メモ。サポート環境の整備のためにリモートデスクトップ接続。

LAN1 -(INTERNET)-> LAN2 -(VPN)-> LAN3

ちと面倒な接続で、LAN3には外部から直接アクセスできないので、LAN2内のPCを経由する必要がある。というわけで、中継用のPCとして、ライセンス云々が面倒な事にならないUbuntuなノートを用意。

順調にリモートデスクトップを使っていたのだが、パッケージ管理の様に管理者権限が必要とされるアプリケーションを起動させようとすると、エラーメッセージが表示される。

Unable to copy the users Xauthorization file.

で、このエラーメッセージで調べたところ、ubuntuにwindows7からリモートデスクトップ接続したときのメモというタイトルでそのまんまの記事を発見!オリジナルはUbuntuのフォーラムの[ubuntu] xrdp user permissions problem – Ubuntu Forums

touch ~/.Xauthority
chmod 600 ~/.Xauthority

あっさり解決できて良かった。

カテゴリー
PC

LVM内のパーティションを拡張する(メモ)

作業、テストなどに使っているLinux の VMwareイメージ。これのディスク容量が小さくなったので、広げるための手順のメモ。
/(ルートパーティション)を拡張するのはちょっと手間だったのと、いちいちコマンドを覚えていられないので。

  1. VMWareから、ディスクサイズを大きくする。
    普通なら大きなディスクに交換しなければならないけど、ここは仮想マシン。管理画面からディスクサイズを大きめに設定してやればあっという間に大きなディスクに変更される。
    今回は、 8GB から 16GBに広げました。
  2. 対象のlinuxを起動させて現状確認。
    論理ボリューム(LV)は当然8GB内から作られています。

    [root@centos46 ~]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup00-LogVol00
                          6.8G  3.8G  2.7G  59% /
    /dev/sda1              99M   14M   80M  15% /boot
    none                  506M     0  506M   0% /dev/shm
    none                  506M   84K  506M   1% /var/log
    none                  506M   24K  506M   1% /tmp
  3. fdiskでパーティションを操作。
    パーティション情報を操作しても、最後に書き込みしなければ反映されない ということを逆手にとって、
    削除 -> 拡張したサイズで再作成 – > 書き込み
    という流れで操作します。

    [root@centos46 ~]# fdisk /dev/sda
     
    The number of cylinders for this disk is set to 2088.
    There is nothing wrong with that, but this is larger than 1024,
    and could in certain setups cause problems with:
    1) software that runs at boot time (e.g., old versions of LILO)
    2) booting and partitioning software from other OSs
       (e.g., DOS FDISK, OS/2 FDISK)
     
    Command (m for help): p
     
    Disk /dev/sda: 17.1 GB, 17179869184 bytes
    255 heads, 63 sectors/track, 2088 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
     
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          13      104391   83  Linux
    /dev/sda2              14        1044     8281507+  8e  Linux LVM
     
    Command (m for help): d
    Partition number (1-4): 2
     
    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 2
    First cylinder (14-2088, default 14): (リターン)
    Using default value 14
    Last cylinder or +size or +sizeM or +sizeK (14-2088, default 2088): (リターン)
    Using default value 2088
     
    Command (m for help): t
    Partition number (1-4): 2
    Hex code (type L to list codes): 8e
    Changed system type of partition 2 to 8e (Linux LVM)
     
    Command (m for help): w
    The partition table has been altered!
     
    Calling ioctl() to re-read partition table.
     
    WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
    The kernel still uses the old table.
    The new table will be used at the next reboot.
    Syncing disks.
  4. コンピュータを再起動。
    ただし、ubuntu のCDを用意して(他のlinuxでもOK)そこから起動させます。
    #オンラインでそのまま拡張できると思っていたんだけど、後の操作で、「オンラインじゃ操作できません」といったメッセージがでて操作できなかったので。
    以下ubuntuからの操作
  5. 物理ボリューム(PV)を拡張
    ubuntu@ubuntu:~$ sudo pvresize /dev/sda2
      Physical volume "/dev/sda2" changed
      1 physical volume(s) resized / 0 physical volume(s) not resized
  6. 論理ボリューム(LV)を拡張
    ubuntu@ubuntu:~$ sudo lvextend -L+10Gb VolGroup00/LogVol00
      Extending logical volume LogVol00 to 16.84 GiB
      Insufficient free space: 320 extents needed, but only 257 available

    最初の1回目は、本来より大きな値をセットしています。すると、257というっ設定すべき値が表示されるので、今度はその値を使って実際に拡張させます。

    ubuntu@ubuntu:~$ sudo lvextend -l+257 VolGroup00/LogVol00
      Extending logical volume LogVol00 to 14.88 GiB
      Logical volume LogVol00 successfully resized
  7. エラーが出ないようにfsck
    ubuntu@ubuntu:~$ sudo e2fsck -f /dev/VolGroup00/LogVol00
    e2fsck 1.41.11 (14-Mar-2010)
    Adding dirhash hint to filesystem.
     
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
     
    /dev/VolGroup00/LogVol00: ***** FILE SYSTEM WAS MODIFIED *****
    /dev/VolGroup00/LogVol00: 96586/897600 files (3.2% non-contiguous), 1004439/1794048 blocks
  8. ファイルシステムを拡張
    ubuntu@ubuntu:~$ sudo resize2fs /dev/VolGroup00/LogVol00
    resize2fs 1.41.11 (14-Mar-2010)
    Resizing the filesystem on /dev/VolGroup00/LogVol00 to 3899392 (4k) blocks.
    The filesystem on /dev/VolGroup00/LogVol00 is now 3899392 blocks long.

手順5,6,7は本来の仮想マシンで実行できるんだろうけど、最後のファイルシステムを拡張するところは、別のパーティションから起動したlinuxから操作するというのが今回の味噌だった。

#SE奮闘記: 【CentOS】LVMでディスク容量を拡張(VMwareのHDD容量を増やす)を参考にして作業したんだけど、今もう一度検索しなおしたら、ext3 on LVMのサイズ拡張:のらねこ雑記帳:So-netブログにもっと細かく解説されたページがありました。

カテゴリー
PC

CentOSのkernel panic

一月程前に書いた「kernel panic は体に悪いぜ」に、コメントを頂きました。”もぎゃ”さんありがとうございます。

Red Hart Bugzill Bug 456664 – Kernel panic when unloading ip conntrack modulesを見ると。最新のkernelでは修正されているということだったが、治ってないよっていう意見も出ていて、自分のところも同じ状況だったのですが、、、hanetaにも同じような件があがってますね。

もぎゃさんが「CentOS4でiptablesをリスタートしたらsshが切られる」で書いているように、iptablesの設定を変えて、panicを回避するということのようです。

/etc/sysconfig/iptables-configを開いて、IPTABLES_MODULES_UNLOAD を”no”にする

iptablesをstar, stopさせると、panicを起こすことから、終了時にiptablesをunloadさせなければ、panicしない ということらしい。

なるほどね。

カテゴリー
PC Web

kernel panic は体に悪いぜ

レンタルしている専用サーバのうちの一台がやたらとkernel panicになって止まる。

サポートセンターに電話すれば、24時間、対応してくれるので、リブートさせるのは簡単だが、原因がわからないと、「起動しなくなったらどうしよう」ってのが怖い。

で、今日、そして前回のハングアップしたときに何をしていたか、共通点があるのではないか?と思い起こしてみると、webminを使って、iptablesの設定を更新した直後から反応がなくなって、リブート依頼をしていたことに気が付いた。

iptablesで必要なポートに穴をあける設定だけしかしていないのだが、iptables kernel panic でgoogle先生に聞いてみたら、一発だった。検索の先頭に出てきたおれ最前線ネットのページは、昨年の10月の記事だ。このページ内のリンクにあった、redhat のbugリストによると、最新のkernelでも直っていないらしい。

Bug 456664 – Kernel panic when unloading ip conntrack modules

場当たり的な解決方法は、このredhatの書き込みの中の#31とかにあるけど、kernel自体に問題があるんじゃ、なかなか枕を高くして寝れないよ。

しかし、この日付が変わるかどうかという時間に、しかも明日は6時起きなのに、「明日の朝までにサーバが動いていなかったらどうしよう」なんて問題を抱えたくないから、専用サーバを借りてたんだけど、あまり考えていなかったこういった状況は早々に解決しないといけないな。

カテゴリー
PC

VMwareのディスク使用量を減らす – VMwareToolsがインストールされていない場合

何ヶ月も前のトピックだけど、VMWare Toolsがインストールされている時の、VMWareのディスクを縮小する(shrink)方法を書いたけど、Toolsがインストールされていないときの対処方法をまだまとめてなかった。

googleで検索したら、「PC総合研究所」がヒットしたんだけど、ここの人は、断念してしてVMWareToolsをインストールして解決したらしいが、「仮想な背中」で、目的のソフトがズバリあった。vmshrink。

—追記—
infoseekのサービス終了に伴って、「仮想な背中」が閉鎖。
pc.casey.jpさんの[VMware] vmdkファイルの肥大化対処で書かれているように、
infoseekの無料HPサービス死亡関連 避難所からファイルへのリンクが見つかけられます。
——

そもそも、CentOSを使ったレンタルサーバがあって、そのテスト環境を手元に作るために、仮想環境を用意した。だからXを動かさないので、Toolsをインストルしても起動できないんだよね。

ホストとなるWindows環境にCygwinを入れて、仮想マシンの画面をCygwinの特定のポートに転送すれば、Xを起動できそうな気がするんだけど、あまりこの手の作業をした事がないので、これはまたさらに後日気が向いたら。

さて本題。
仮想な背中から、vmw-060510.zipをダウンロードして解凍。中のLinux-FC4フォルダを仮想マシンのコピーする。もちろん上記サイトのファイルのURLをコンソールにて入力してもいいけど、ホスト-仮想環境のファイル共有をしてあれば、それで簡単にコピーできるね。

仮想環境にコピーしたら、コンソールでrootとしてログイン。
まずは実行フラグをつける。そうしないとファイルが実行可能として認識されない。chmod +x vmshrink とでもすればOK
で ./vmshrink として実行あとはメッセージに従って待つだけ。

ファイルを仮想環境に持ってくる事さえ出来れば後は簡単。

VMware の細かなTipsは憩いの場 Wikiにもいろいろあって、今回やり方も書いてあった。

—– 追記 @ 2011/11/07 —–

「仮想な背中」さんが閉鎖された後、「vmshrink」でGoogle検索されるとこのページが2番目に表示されるようになりましたが、
後継のサイトがあるようなので、記事を追加しました。「vmshrink の最新版は何処?

カテゴリー
Mac PC Web

Darwin Streaming Server

せっかく買ったハンディカメラ。それを誰かに見せようと思うと、DVDに焼くしかないかなぁあきらめていた。
でも待てよ?ストリーミングサーバを自前で用意できルンじゃないか?って調べてみたのが事の始まり。

サービスとしては、YouTubeが有名だけど、それに近い事を自前でね。システムで有名なところはshoutcastとか。フリーなシステムもいくつかありそう。そのなかで、Darwin Streaming Serverを触ってみる事に。
なぜappleのかって、ハンディからパソコンに取り込む際に、MacBookだと、iMovieを起動してつなげるだけ。Windowsは何やら他のソフト入れたり、ソフトの使い方も直感的じゃないので、即アンインストール。この辺Appleのソフトの出来は非常に高いと思う。
QuickTime Streaming Serverというのが、OS X Serverには入っているらしい。それのOpenSource版として、Mac OS Forgeで開発が続けられているという事だ。当然Linuxで動くようにもなっているので、意外と早く始められた。

ここで、Linux用のあれこれが話されているが、掲載されていrpmでは途中でデッドロックしてしまい、うまくインストールできなかった。src.rpmから、specファイル書き直して云々なんてスキルはまだないので、ソースにpatchを当てる方法(英語で書かれてるけど)で対処。

Firewallをセットして、管理画面へのアクセス、サンプルの再生、ここまではすごく順調だった。

問題は、iMovieからの書き出し。
いったいどういう形式で書き出すのがいいのか?
再生できなかったり、帯域を大量に使ったり、試行錯誤状態。

09/02/14 追記
最初はうまく設定できていたと思ったのですが、
このページをロードすると、自動的に再生が始まってしまうようなので、掲載したサンプルを削除しました。