레거시 소스 제어: xinetd의 CVS
레거시 소스 제어를 사용하는 팀이 있습니다: cvs. xinetd(아래 구성 파일)에서 cvs pserver를 실행합니다.
감사 플래그
보안 감사에서 "cvs 서버가 루트에서 실행되지 않는지 확인하세요"라는 플래그가 표시되었습니다.
질문:
"user=root"를 "user=cvs"로 대체하여 'cvs pserver'를 안전하게 잠글 수 있습니까? 유해한 부작용이나 '문제'가 있습니까?
참고: 사용자 "cvs"는 'cvs 루트' 디렉토리 "/var/cvs/cvs"에 있는 모든 파일을 소유합니다.
10년이 지난 문서를 모두 검색했는데 모든 예제에 '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
답변1
당신은 그들의 조언을 절대적으로 따라야 합니다. 매우 좋은 조언입니다.
일반적으로 이 작업을 수행할 때는 데몬이 수행하는 작업을 수행할 수 있는 충분한 권한이 있는지 확인해야 합니다. 이 특정한 경우에는 이미 가지고 있는 소유권을 의미할 가능성이 높습니다. 내 제안은 저장소를 백업하고 계속해서 변경하는 것입니다.
이것이 작동하는 방식은 xinetd(종종 루트로 실행됨)가 권한을 삭제한 다음 xinetd가 관리하는 소켓을 향한 stdin 및 stdout을 사용하여 /usr/bin/cvs를 실행하는 것입니다. 정말 아무것도 없습니다. CVS는 매우 간단하며 루트 아래의 파일을 조작하는 것 이상의 권한이 필요하지 않습니다.