현재 저는 VisualSVN 서버를 사용하고 있으며 홈 네트워크에서만 액세스할 수 있습니다. 결국에는 다른 사람들이 액세스하게 되지만 지금은 저와 커피숍(또는 어느 곳이든)에 가서 집 밖에서 일할 수 있기를 바랍니다.
현재 의 서버에 액세스하고 있습니다 http://user-pc:xx/svn/Projects/
. 포트 XX를 서버로 전달하도록 라우터를 설정할 때 서버 보안을 위해 어떤 단계를 수행해야 합니까?
나는 Windows에서 이 작업을 수행하고 있으며 일반 명령 프롬프트를 광범위하게 사용하고 있지만 SVN을 사용한 적이 없으며 지금까지 TortoiseSVN 이외의 다른 것을 사용하지 않았습니다.
편집하다: 제가 알고 있는 공격자가 할 수 있는 유일한 해로운 일은 저장소에 들어가기 위해 포트 번호, 사용자 이름, 비밀번호를 추측하는 것입니다. 그러나 속담처럼, 나는 내가 모르는 것을 모른다.
따라서 나는 고려해야 할 사항만큼 단계별 지침을 요구하는 것은 아닙니다. (물론 나도 물론 그렇게 하고 싶지만)어느포트가 열리면 가능한 공격입니다.
답변1
- VisualSVN 서버를 보호하려면 좋은 비밀번호 강도를 사용하세요.
- 기본 포트 80 또는 443 대신 서버에 더 높은 포트(예: 39517)를 사용하십시오. 공격자가 추측하기 어렵게 만듭니다. 공격자는 포트 스캔에 의존해야 합니다.
- VisualSVN 서버는 익명 액세스를 허용하지 않습니다. 사용자를 명시적으로 정의해야 합니다.
- 당신이 알고 있거나 신뢰하는 사람들에게만 사용자 액세스 권한을 부여하십시오.
답변2
- 다이제스트 인증을 사용하는 일반 http(AuthType Basic은 가로챌 수 있음)가 아닌 서버 측에서 https를 사용합니다(Apache를 직접 구성해야 함).
- 자체 서명이 아닌 서버에서 (무료) CA 발급 인증서 사용(자체 서명 인증서를 사용할 수 있지만 매번 눈으로 확인해야 함(?))
- 최신 VisualSVN 서버 버전 유지(Apache 및/또는 SVN 자체에서 발생할 수 있는 문제에 대한 수정 포함)
- 보안 감사를 위해 httpd.conf에서 로깅 활성화(VisualSVN 서버에서는 기본적으로 로깅이 없음)
답변3
svn 서버에 SSH 액세스를 사용하는 것이 좋습니다. 저는 개인적으로 공개/개인 키 인증을 선호합니다.
그럼에도 불구하고 desaivv의 제안은 제가 추천하고 싶은 것이기도 합니다.