cvs pserver

なんか、世間では cvs の脆弱性を突かれて、オープンソースものを 公開しているcvsサーバが乗っ取られて大変らしい。

もちろん、悪さをする方が悪いが、cvsみたいな公共サーバをroot権限で 起動するのもどうかと思う。せっかくポート番号2401って 特権ポートじゃないのに、rootで起動しなくたっていいわけ。というか、するな。

tcpserverとdaemontools使いなはれ。

ついでに、chroot も噛ますと万全。 うちの /service/cvspserver/run スクリプト。

#!/bin/sh
ulimit -c 0
exec env - \
PATH=/bin:/usr/bin:/usr/sbin:/usr/local/bin \
HOME=/cvspsv \
chroot /var/chroot/cvsroot \
setuidgid anonymous \
tcpserver -vR -c4 -x/cvspsv/cvs.cdb 0 2401 \
cvs pserver 2>&1

setuidgidは、子プロセスを起動する前に UID/GID を変えるコマンド。 非特権ポートを掴むデーモンを起動する場合は setuidgid を使う。 いっぽう、特権ポートを使うデーモンを呼ぶ場合には envuidgid と tcpserver の -U オプションを組み合わせて使うべし。

え、どうやるかって? 自分で調べなはれ。


Generated with mkdiary.rb
yuuji@example.org
Fingerprint16 = FF F9 FF CC E0 FE 5C F7 19 97 28 24 EC 5D 39 BA
HIROSE Yuuji - ASTROLOGY / BIKE / EPO / GUEST BOOK / YaTeX [Tweet]