CVS позволяет многим разработчикам работать вместе над большими проектами и поддерживать целостность проектов на уровне исходного кода. Внутренние механизмы защиты CVS довольно просты; фактически многие назовут бы слабыми, и тут я буду должен согласиться. Аутенфикация CVS обычно достигается в сети, использующей pserver, username передаются открытым текстом, а пароли просто хешируются (никакой реальной защиты нет).
Чтобы обойти это, Вы имеете несколько хороших параметров. В Unix среде вероятно самый простой метод состоит в том, чтобы использовать SSH для туннельных подключений между машинами пользователей и сервером. "Tim TimeWaster" (Tim Hemel) написал об этом превосходную страницу: http://cuba.xs4all.nl/~tim/scvs . Несколько более сложный подход (но лучший в конечном счете для больших инсталляций) состоит в kerberize CVS-сервера и клиентов.
Обычно большие сети (особенно в университетских средах) уже имеют установленную Kerberos-инфраструктуру. Детали относительно kerberizing CVS доступны на http://www.cyclic.com/cyclic-pages/security.html. Кроме этого я настоятельно советую использовать firewall для CVS, если Вы не используете его для некоторой общей цели (типа открытого исходного проекта в Internet).
Другой инструмент для обеспечения безопасности CVS, только что появившийся cvsd, обеспечивает для pserver chroot и/или suid pserver безобидному пользователю. cvsd доступен на http://cblack.mokey.com/cvsd в формате rpm и tarball с исходниками.
Имеются другие менее очевидные моменты, которые Вы должны знать. Имея дело с исходниками, надо следить, чтобы в них не попали троянцы. В открытом исходном проекте это относительно просто, его все изучают, и такие вещи будут довольно оперативно выявлены. Позаботьтесь также о резервировании исходников. CVS использует порт 2401, протокол tcp.
ipfwadm -I -a accept -P tcp -S 10.0.0.0/8 -D 0.0.0.0/0 2401
ipfwadm -I -a accept -P tcp -S some.trusted.host -D 0.0.0.0/0 2401
ipfwadm -I -a deny -P tcp -S 0.0.0.0/0 -D 0.0.0.0/0 2401
или
ipchains -A input -p tcp -j ACCEPT -s 10.0.0.0/8 -d 0.0.0.0/0 2401
ipchains -A input -p tcp -j ACCEPT -s some.trusted.host -d 0.0.0.0/0 2401
ipchains -A input -p tcp -j DENY -s 0.0.0.0/0 -d 0.0.0.0/0 2401
Written by Kurt Seifried |