웹서버관련정보/윈도우

[팁] 아파치서버에서 특정폴더에 암호걸기(인증사용)

박디 2007. 4. 25. 00:26

아파치 서버를 사용하다 보면 자료실 폴더등을 만들어 쓸수도 있는데 무단링크 방지도 해봐도

이리저리 편법을 사용해 자료만 외부에서 쏙 빼가는 경우가 많기 때문에 짜증나는 경우가 많다.

그리고 특정 폴더만 다른사람이 접근 불가능 하게 만들고 싶을 때가 있는데 그 방법에 대해 알아

보도록 하겠다.

1. 특정폴더에 나 자신만 접근하게 암호걸기

 일단 httpd.conf 파일을 수정해야한다. 특정폴더에만 인증 암호를 넣을것이므로 따로 아래와 같이

 구문을 추가하는것이 좋겠다.

<Directory "C:\암호파일을저장할 폴더">
 AllowOverride AuthConfig
 Order allow,deny
 Allow from all
</Directory>

그리고 혹시 # AccessFileName .htaccess 이부분에 '#'(주석)이 달려있다면 지워주면 된다.

수정,저장후에 메모장 같은 텍스트 편집기를 하나 실행해서 '.htaccess' 라는 파일을 하나 만든다.

여기서 '.' 은 숨김이라는 의미인데 어쨋든 만들고 나서 아래와 같이 붙혀넣고 사용자취향에 맞게

편집하도록 한다.

AuthName "인증창에 표시될 내용"
AuthType Basic
AuthUserFile C:/암호파일이 저장될폴더/.htpasswd
require user example

여기까지 마쳤다면 이제는 아파치 서버의 프로그램인 htpasswd 프로그램으로 암호파일을 만들어

줘야한다. 암호화 되서 저장되고 .htpasswd 파일을 따로 만드는 것이 아니다.

시작->실행-> cmd 입력-> 아래와 같이 입력한다.(물론 사용자의 아파치가 설치되있는폴더를 참고

로 입력한다..)

C:\apache\bin\htpasswd.exe -c c:\apache\htdocs\.htpasswd example


invalid-file

Download binary


여기서 htpasswd 다음의 폴더명들은 '.htpasswd' 파일이 저장될곳을 지정해준곳이고 example은

위의 '.htaccess' 파일에서 지정해준 user 의 이름이다. 이렇게 입력,실행하면 지정할 암호를

물어오고 적당히 알아서 써주면 되겠다. 확인은 자신이 지정해놓은 폴더를 웹브라우저에서

입력해 보면 되겠다.

(인증 창 실행 성공의 예)

사용자 삽입 이미지



2. 그룹단위로 특정폴더 접속권한 설정

위에선 개인만 접속할수 있게 인증하는 암호설정에 대해서만 알아봤고 이번엔 맨위에서 언급한대로

특정 폴더에 여러 사용자가 제각각의 이름을 가지고 접속할수 있는 방법에 대해 알아보겠다.

위에서 '.htaccess' 파일 내부에 require user example 이 구문이 있었는데 사용자를 추가

하고 싶다면 require user example example2 example3 이런식으로 한칸씩 띄우고 저장

하면 된다. 그리고 그룹을 지정해서 접속하게 하고싶다면 아래와같이 파일을 변경하면 된다.

AuthName "인증창에 표시될 내용"
AuthType Basic
AuthUserFile C:/암호파일이 저장될폴더/.htpasswd
AuthGroupfile C:/암호파일이 저장될폴더/.group
require group admin


이제는 그룹을 설정해 줘야 하는데 '.group' 파일을 하나 만들고 아래의 예를 참고한다.

admin:parkdi webhdd

이구문의 뜻은 admin그룹속에 parkdi라는 유저와 webhdd 라는 유저를 묶는다는 것이다.

이렇게 하면 webhdd 라는 유저는 접속시에 맞는 암호를 입력하게되면 해당폴더에 접근이

가능하다. 물론 사용자가 많으면 이런식으로 관리하는것은 곤란하며 개인적으로는 큰용량 파일의

무단링크 방지를 위해 이런기능을 사용하는것은 괜찮은 방법일듯 싶다.

암호가 많이 알려지게 되면 그시기쯤에 암호를 바꿔버리면 되니까 그렇게 힘든일도 아닐것이라

생각된다.