Устаревший контроль версий: CVS под xinetd
У нас есть команда, которая использует устаревшую систему контроля версий: cvs. Мы запускаем cvs pserver под xinetd (файл конфигурации ниже).
Флаг аудита
Аудит безопасности поднял флаг: «убедитесь, что сервер cvs не работает под root».
Вопрос:
Могу ли я безопасно заблокировать cvs pserver, заменив user = root на user = cvs? Какие-либо вредные побочные эффекты или подводные камни?
Примечание. Пользователь cvs владеет всеми файлами в каталоге cvs root "/ var / cvs / cvs"
Я спрашиваю, потому что я просмотрел всю документацию десятилетней давности, и во всех примерах есть 'user = root', и ни один из них не предлагает изменить параметр «user =» для повышения безопасности.
Обновить: Я попробовал. Это сработало. Без проблем.
Спасибо
Пример: файл конфигурации cvspserver
# Begin /etc/xinetd.d/cvspserver
service cvspserver
{
port = 2401
socket_type = stream
protocol = tcp
wait = no
user = root
passenv = PATH
server = /usr/bin/cvs
server_args = -f --allow-root=/var/cvs/cvs pserver
}
# End /etc/xinetd.d/cvspserver
Вы должны обязательно следовать их советам. Это очень хороший совет.
Как правило, при этом вам необходимо убедиться, что у демона достаточно прав, чтобы делать то, что он делает. В данном конкретном случае это, скорее всего, просто означает уже имеющееся право собственности. Я предлагаю создать резервную копию вашего репозитория и просто внести изменения.
Это работает так: xinetd (часто работающий от имени root) отбрасывает привилегии, а затем выполняет / usr / bin / cvs с stdin и stdout, направленными на сокет, которым управляет xinetd. В этом нет ничего особенного. CVS достаточно проста и не требует никаких разрешений, кроме возможности манипулировать файлами в своем корне.