アーカイブ

Archive for 2017年3月

www.msmrrenda.net リプレース計画 day4

ゴミリクエストしか来なくなったようなので tsuyukusa.msmrrenda.net をシャットダウンしました。
常設webサーバとしては3代目、稼働日開始は2014/10/7とかだったようです。

カテゴリー:未分類

www.msmrrenda.netリプレース計画 day3

レコードの向け変え、全作業おわりました。表示できないページがあったら教えてください。
tsuyukusa移行時に無効化されたsuexecが再有効化されたので、特にCGI周りが怪しい感じです。

(うまくつながらない場合、一時的に www-sakura.3sh.msmrrenda.net に繋いでみてください。)

2017/3/6 20:54追記: 朝7時半ごろまで、1/2の確率で間違ったバーチャルホストにつながる状態になっていました。現在は修正済みです。

カテゴリー:未分類

www.msmrrenda.net リプレース計画day2

いままではごちゃまぜに置いていた非公開ページを別ホストに分離しようとしてはまった件。

通常、公開用ページは ~/public_html に置きますが、ホームは全ホスト共有です。
したがって、非公開ページを ~/private_html に分離しました。

ところが、なにやってもcgiが呼び出せません。

Mar 4 22:22:24 ainya suexec[1158]: command not in docroot (/home/renda/private_html/env.cgi)

で、suexec -V とかしてみるとこんなことが書いてあります。

-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="apache"
-D AP_LOG_SYSLOG
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=500
-D AP_USERDIR_SUFFIX="public_html"

public_htmlでしか動かないんかーい。
安全上このディレクトリ設定はハードコードされており変更できないようです。
選択肢は二つ。apache全体のリビルドか、バイナリ弄ってGORIOSHI。
ま、手間的に後者かな!!!!

public_htmlよりもprivate_htmlの方が1文字長いので、この際private_htmになっていただきました。が、なぜか動かない。

Mar 4 22:50:08 ainya suexec[1375]: uid: (500/renda) gid: (500/renda) cmd: env.cgi
Mar 4 22:50:08 ainya suexec[1375]: failed to setgid (500: env.cgi)

あれ?suidかsgidでもついてたかなん?と思い、他ホストと見比べます。cap2
cap3
パーミッションは変わらないけどなんか赤い。これはいったい・・・。最悪apacheのリビルドも覚悟し、srpmの中身を覗いてみたら・・・

%caps(cap_setuid,cap_setgid+pe) %attr(510,root,%{suexec_caller}) %{_sbindir}/suexec

そっかー。
cap1

# setcap 'cap_setgid,cap_setuid+ep' /sbin/suexec

したら動きましたとさ。善い子の皆さんは横着せずにapacheをrpmbuildしましょう・・・

カテゴリー:GNU/Linux タグ:

www.msmrrenda.net リプレース計画day1

FreeBSD10で動いていたtsuyukusa.msmrrenda.netをFreeBSD11で作り直そうと時期をうかがっていたものの、
glusterfsとの相性が残念な感じだったのでCentOS7で作り直すことにしました。とりあえず最低限動いたラインなう。

ざっくりとした変更点
・www.msmrrenda.net宛てのアクセスは(他のサービスと違って)proxy-mikanを経由せずに直接tsuyukusaが受けていましたが、こちらもすべてproxy-mikan経由にします。
 ・したがって、自宅全ダウン中でも、chika/anjuのどちらかが生きていれば503くらいは出してくれます。
・tsuyukusaは冗長構成ではありませんでしたが、今回は2台にします。
 ・冗長構成にできない各種サービスは終了します。
・スクフェスボーダー入力用ページが混ざってましたが、それはそれで分離します。

カテゴリー:未分類

systemd socketでxinetdからcatしたみたいにする

なんにもない状態のminimal installしたCentOSにプログラムを流し込むため、
telnetでつなぐととりあえず好き放題出力して終わるだけのsocketが作りたかった。

コツは二つ。
1. socket側に、Accept=true をつける
これやらないと事前にserviceを立ち上げちゃって駄目。中身がcatとかなので、出力だけして死ぬからfailedとか言い出して接続しても何も返してくれなくなる。

2.service側の名前にちゃんと@をつけておく
これ忘れてはまった。

できたのはこんなの。22526/tcpに繋ぐとサーバ側のファイルを吐き出してくる。

socketファイル

[Unit]
Description=rndnet bootstrap script distributor socket

[Socket]
ListenStream=0.0.0.0:22526
Accept=true

serviceファイル

[Unit]
Description=rndnet bootstrap script distributor

[Service]
ExecStart=/bin/cat /path/to/output/file
StandardInput=socket
StandardOutput=socket
Restart=always

Q. minimalのCentOSってtelnetないけどどうすんの?
A. cat < /dev/tcp/hostname/port ってやるととれるんだよ!!!

カテゴリー:未分類