[server] 중앙 소스 저장소를 유지 보수 할 위치

소스 코드에 대한 액세스 보안에 관한 업계 모범 사례는 무엇입니까? 아파치를 통해 SSL 만 연결이 다른 포트와 충돌하지 않는 모호한 포트에서 서버로 허용된다고 생각합니다. 나를 귀찮게하는 것은 공개 서버에 소스 코드를 저장하는 것입니다. 즉 LAN을 통해서만 액세스 할 수 있습니다. 또한이 서버는 여러 용도로 사용됩니다. Apache는 이미 다른 내부 회사 웹 사이트를 제공하고 있습니다. 올바른 자격 증명이있는 한 모든 사람이 어느 곳에서나 (집, 공항 등) 소스 코드에 액세스 할 수 있기를 바랍니다. 제안?



답변

공용 서버에 관심이 있지만 어디에서나 액세스하려는 경우 개발자가 클라이언트 기반 VPN을 사용하여 네트워크에 원격으로 로그인하여 내부 소스 제어 서버에 액세스하도록하는 것이 좋습니다.


답변

사람들이 왜 VPN 접근 방식이 최선이라고 생각하는지 잘 모르겠습니다. 반드시 더 안전 할 필요는 없으며 제가 생각할 수있는 장점 하나만 제공합니다.

예를 들어 PPTP는 이상적인 보안 수준이 아닌 것으로 알려져 있지만 처음 도입 된 이후 다소 개선 된 것으로 판단됩니다. 따라서 사용하는 VPN 솔루션에주의하십시오. OpenVPN 또는 IPSEC와 함께 갈 것입니다.

그러나 VPN없이 SSL / TLS의 편리함을 능가 할 수는 없습니다 (더 읽기). 더욱 안전하게하기 위해 인증서 만 만들 수 있습니다.

그러나 소스 제어 이외의 다른 서비스를 제공 할 수 있다고 생각되면 다른 서비스를 터널링하기 때문에 VPN 솔루션을 고려하십시오.

VPN을 사용할 때의 단점은 PC가 연결된 네트워크의 일부가된다는 것입니다. 그것은 또한 이점이 될 수 있습니다. 그러나 집에서 백만 마일 떨어져 있고 집에 대한 네트워크 연결이 너무 빠르지 않은 경우 diff 또는 코드를 체크인 또는 체크 아웃 할 때마다 VPN 연결 및 연결 끊기를 찾을 수 있습니다.

나는 개발자로서 개인적인 경험으로 말할 수 있으며, 이것을하는 것은 부랑자에게 진짜 고통이었습니다! 이상적으로 두 옵션이 모두 선호됩니다.

따라서 웹 등을 탐색 할 경우 뉴스 등을 읽는 것이 다소 느려질 수 있습니다. 그러나 최소한 이메일에 안전하게 액세스 할 수 있습니다. 먼저 어떻게 사용할지 생각해보십시오. 내가 당신이라면 둘 다 구현하는 것을 고려할 것입니다.


답변

사실, 나는 당신의 제안을 좋아합니다. SSL / TLS를 통해서만 소스 코드 저장소에 액세스 할 수있게하고 개발자가 쉽게 이해할 수있는 암호문 (또는 더 나은 인증서를 사용)을 사용하지 않도록하는 경우, 그 어느 것보다 안전해야합니다 .

대신 LAN 내부에서 서버를 숨기고 개발자가 VPN을 사용하여 액세스하도록 할 수 있지만 이는 개발자가 사용자 이름 / 암호 (및 / 또는 인증서)를 다른 로그인 상자에 넣어야한다는 것을 의미합니다. 단일 서비스에 대한 액세스를 허용하기 위해 항상 보안에 영향을 줄 수있는 네트워크에 진입 점을 만들지 않는 것이 좋습니다. 이미 다른 용도로 VPN을 구성하고 보안을 설정했다면, 당연한 일이므로 사용하지 마십시오. 그렇지 않으면 SSL / TLS를 통해 서비스 자체를 직접 사용할 수있는 것이 더 간단하고 안전 할 수 있습니다.


답변

산업 표준은 아마도 (또는 고객의) 산업이 무엇인지에 달려 있습니다 🙂

실제로 액세스 권한을 부여 할 사람과 처리 할 수있는 대상을 고려해야합니다. 액세스를 원하거나 액세스해야 할 수도있는 일부 사용자는 사용자 이름 / 암호 이상을 처리 할 수 ​​없습니다. 다른 사람들은 ssh 주위에 머리를 댈 수 있으며 개인 키는 안전하게 키를 얻을 수 있다면 나쁘지 않습니다. TortoiseSVN 클라이언트는 ssh + svn을 처리 할 수 ​​있으며 약간의 비틀림이있는 개인 키를 지원합니다. 그것은 내 목적에 충분했습니다.

VPN 터널은 공정한 제안이지만 많은 곳에서 외부 사람들에게 소스 제어에 대한 액세스 권한을 부여하지만 전체 네트워크에는 액세스하지 못하게 할 수 있습니다!


답변

다른 사람들과 마찬가지로 VPN을 선호합니다. 대안은 SSH 터널입니다. 실제 용어로는 일종의 VPN이라고 가정합니다.


답변

내부 전용으로 만들고 원격 사용자 VPN 솔루션을 구현하십시오. / Doh- 복제.


답변

어디에서나 액세스하려면 공용 서버가 필요합니다. 그 정도는 분명합니다.

해당 서버에서 가능한 적은 노출 을 원합니다. 가급적 이면 Mercurial / Subversion 만 사용하십시오. 이는 보안 위반이 소스 제어에서 회사의 다른 부서로 확산되는 것을 방지하기위한 것입니다. 이런 이유로 Matt 는 VPN이 위험 할 수 있다고 말할 때 Matt에 동의 합니다. VPN은 필요한 것보다 훨씬 광범위한 액세스를 제공합니다.

Mercurial의 경우 hg-sshSSH를 통해 연결하는 클라이언트에서 사용 가능한 명령을 제한 하여을 사용하여 항목 을 단단히 잠글 수 있습니다 . SSH를 사용하면 클라이언트 가 암호 대신 공개 키 인증을 사용하도록 요구할 수 있습니다 . 이는 무차별 로그인 공격으로부터 서버를 보호합니다.

SSH 키가 손상된 경우에도 (암호가 약하고 암호를 저장 한 랩톱이 도난 당했을 경우) 공격자가 할 수있는 최악의 피해는 Mercurial에 가비지 기록을 추가하는 것입니다. 사용 된 프로토콜은 본질적으로 추가 전용이므로을 사용하여 삭제할 수있는 것은 없습니다 hg push.

HTTPS의 경우 인증은 프론트 엔드 웹 서버에서 수행됩니다 . 즉, 원하는 경우 클라이언트 사이트 인증서가 필요할 수 있으며 위의 SSH 공개 키 인증과 같은 보안을 얻을 수 있습니다.