[질문] CVS암호인증방식에서 암호생성하는 법?

elecguy의 이미지

안녕하세요.
CVS의 암호인증방식을 통해 소스를 관리하려고 합니다.
kldp의 'CVS 사용' 문서에서 CVSROOT 밑에 passwd 파일을 만들때 crypt()를 이용해서 암호를 만들라고 되어있습니다.
계획은 MINGW 로 암호생성프로그램을 만들어서 변환된 암호를 email 로 받아서 암호를 저장하려고 합니다.
그냥 crypt() 함수로 만들기만 하면되는건지?
crypt() 함수의 인자중 salt 를 어떻게 생성하는 것이 보안상 유리한지?
알고 싶습니다. 그럼.

monpetit의 이미지

cygwin의 crypt.exe를 사용하시거나 다음과 같이 스크립트를 만들어 사용하시면 됩니다.

#!/usr/bin/perl
#
# cryptout.pl
#

srand (time());
my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))";
my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);
my $plaintext = shift;
my $crypttext = crypt ($plaintext, $salt);

print "${crypttext}\n";

이 스크립트는 salt를 랜덤하게 만들어줍니다.
그리고 CVS의 pserver는 사실 보안상 유리할 이유가 없습니다. crpyt()로 만들어진 암호는 8자리까지 밖에 수용할 수 없으며, 깨질 가능성도 있기 때문에 요즘은 사용자 패스워드로 사용하지 않습니다.
그냥 연습용으로 CVS를 사용하신다면 몰라도 보안을 요하는 프로젝트라면 ssh나 다른 인증방식을 사용하는 게 좋을 것 같습니다.
elecguy의 이미지

그렇다면, 리눅스서버에 사용자계정을 발급하지 않고 가상의 CVS 전용 ID를 만드는 다른 방법이 있나요?
ssh 이용하는 것같은 보안을 염두한 방법이면 더 좋구요.

폐인, 노가다 그 끝은..?

monpetit의 이미지

elecguy wrote:
그렇다면, 리눅스서버에 사용자계정을 발급하지 않고 가상의 CVS 전용 ID를 만드는 다른 방법이 있나요?
ssh 이용하는 것같은 보안을 염두한 방법이면 더 좋구요.

있는지는 모르지만 제가 아는 방법은 없습니다.
kserver, gserver 모드로는 한 번도 사용해 보지 않아서 뭐라 말씀 드릴 수 없네요.
가상의 CVS 전용 ID는 pserver에서만 가능하다고 알고 있는데 혹시 알고 계시는 분은 답글 바랍니다.
그런데 계정 발급에 상당히 인색하신가 보네요. ;)
소스포지 같은 곳에서도 개발자는 모두 ssh를 이용하여 CVS에 접근하고 있습니다. 물론 pserver도 함께 운영되지만 그건 어디까지나 anonymous 전용입니다.
2인 이상의 프로젝트를 하신다면 개발자에게 계정 발급은 어쩔 수 없는 일인 것 같습니다. 단 해당 계정에 대한 관리와 감독은 administrator의 책임이겠죠.

피치 못하게 계정을 내줄 수 없으면서 보안을 요하는 상황이라면 CVS 대신에 요즘 새롭게 개발되고 있는 Subversion도 고려해볼 만 합니다. CVS를 대체하기 위해 만들어졌는데 상당히 편리합니다. apache와 mod_ssl을 이용하기 때문에 기본적으로 보안을 염두에 두고 만들어졌으며, apache의 인증 방식에 통합되어 있기 때문에 mod_auth_xxx 류의 인증 방식 중에서 입맛대로 골라서 사용 가능합니다.

verotas의 이미지

elecguy wrote:
그렇다면, 리눅스서버에 사용자계정을 발급하지 않고 가상의 CVS 전용 ID를 만드는 다른 방법이 있나요?
ssh 이용하는 것같은 보안을 염두한 방법이면 더 좋구요.

원하시는 걸 모두 충족시켜 줄 수 있는 방법이 sourceforge.net 나 kldp.net 등에서 쓰고 있는 chroot + ssh 방식입니다. 그거보다 더 쉬운 방식을 원한다면 그냥 계정 발급해주는게 있고요. 요컨대, ssh 를 쓰면서 서버에 계정을 아예 안 만드는 방법 같은건 by definition 존재하기 어렵습니다.

뱀발. subversion 은 cvs 다음 세대 프로그램으로 상당한 기대주입니다만 아직은 cvs를 대체할만한 수준은 아닌 거 같습니다. 뭐, 그냥 해보는 거라면 (소스가 조금 이상해진다고 짤릴 일 없으면 ;-) 써보는 것도 좋겠지요.

The good is the enemy of the best.

elecguy의 이미지

그렇군요.
CVS 는 가끔 써봤지만 직접 구축하려고하니 고려사항이 많네요.
subversion 홈페이지주소는 어떻게 되나요?
chroot+ssh 방식에 대한 문서는 어디서 구할 수 있는지요?

폐인, 노가다 그 끝은..?

monpetit의 이미지

Subversion의 홈페이지는 여기입니다: http://subversion.tigris.org/ 한국에선 접속이 꽤 느리다는 얘기가 있습니다.
chroot+ssh에 대한 문서는 당장 생각나는 건 일전에 북마크만 시켜놓고 팽개쳐둔 http://www.idealx.org/prj/idx-chrooted-ssh-cvs/dist/chrooted-ssh-cvs-server.html 인데 찾아보면 더 있을지도 모르죠...

shkwon81의 이미지

Quote:
그렇다면, 리눅스서버에 사용자계정을 발급하지 않고 가상의 CVS 전용 ID를 만드는 다른 방법이 있나요?
ssh 이용하는 것같은 보안을 염두한 방법이면 더 좋구요.

CVS의 pserver 전용 ID 만드는 것은 가능합니다.
GNU의 cvs 매뉴얼에 관련 내용이 있었는데, 안타깝게도 지금 접속이 안되네요..

http://www.gnu.org/manual/cvs/

위에서 한번 passwd 를 검색해 보세요..

기본적으로 pserver는 $CVSROOT/CVSROOT 밑에 passwd 파일이 있으면 그 파일에서 자체적인 유저 인증을 시도합니다. 거기서 해당 유저가 발견되지 않으면 시스템 계정을 이용해 인증을 시도하는 것이죠..

따라서,

1) cvs 전용 계정을 하나 만든다.. (예: cvsuser)

2) $CVSROOT 디렉토리를 cvsuser 소유로 만들고, 읽기/쓰기 권한을 준다.

3) $CVSROOT/CVSROOT/passwd 파일을 만들고, 거기에 원하는 cvs 계정을 추가한다. 이 때, 각 cvs 전용 계정은 cvsuser 라는 uid로 시스템에 접근하게 설정해야 한다.

3) 번 과정은 저도 자세히 기억이 안 나는군요.. 위에 매뉴얼에서 찾아 보세요.. 지금 접속이 안되서요

그럼 성공하시길 빕니다!!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.