.htpasswd + 예제를 사용하여 사이트를 보호하는 방법

여러 가지 이유로 웹 서버의 특정 디렉토리에 대한 액세스를 제어하거나 사용자 이름 및 비밀번호를 기반으로하는 인증 서비스를 통해 단순히 당사 페이지 또는 블로그의 콘텐츠에 대한 액세스를 제어하는 ​​것이 매우 유용 할 수 있습니다. 서비스가 제한된 웹 사이트에 들어 가려고 할 때 나타나는 일반적인 창과 같은 것에 대해 이야기하고 있습니다.

인증 양식으로 창을 생성하는 방법은 여러 가지가 있지만 서버 수준에서 흥미로운 솔루션이 제공됩니다. htpasswd. 인증 서비스에서 Apache가 사용할 수 있도록 암호를 암호화 된 형식으로 저장하는 기능을하는 유틸리티입니다. 이를 사용하면 확인 된 사용자에게만 http를 통해 특정 디렉토리 나 파일을 표시 할 수 있으며 모든 사람이 반드시 자유롭게 사용할 수 있습니다.

나는 그것이 매우 화려한 주제는 아니지만 일부에게는 유용 할 수 있음을 이해합니다. 지루함으로 그들을 죽이지 않기 위해 이미지를 사용하여 더 교훈적으로 만들 것입니다.

이전 고려 사항 : 우분투 서버 12.04.1 y 아파치 2.2.22 통제 된 환경에서.

시작합니다.

이미 알고 계시 겠지만 기본적으로 사용 가능한 Apache 사이트는 디렉토리에 저장됩니다. / var / www / 이 예제에서는 HTML 템플릿으로 디렉토리를 만들고 .htpasswd로 보호하려고합니다.

보호 할 디렉토리는 / var / www / 예 / 다음 페이지를 배치했습니다.

서버에서

브라우저에서

1. .htpasswd를 생성 할 것입니다.

위치는 중요하며 공용 디렉토리 외부에 배치하는 것이 권장되는 것 이상일 수 있습니다. 제 경우에는 개인 폴더 (공용 Apache 디렉토리가 아님)에 .htpasswd라는 이름으로 저장합니다. (선험적으로 그렇게 부를 필요는 없지만 숨겨진 것은 항상 좋습니다).

Linux를 처음 사용하는 사용자에게 적합합니다. 디렉토리 나 파일을 숨기려면 이름이 마침표 (.)로 시작하면됩니다.

다음 명령을 사용하여 "Luke"라는 이름의 웹 사용자에 대한 .htpasswd 파일을 만듭니다.

# htpasswd -c /home/krel/.htpasswd Luke

암호를 두 번 입력하도록 요청합니다. 제 경우에는 "skywalker"(따옴표없이)를 입력했습니다. 통제되지 않은 환경에서 우리는 더 강력한 암호를 설정해야합니다. Linux의 기본 암호화는 MD5이지만 Unix에서는 crypt ()의 표준 구현이며 8 자 미만의 암호의 경우 취약 할 수 있습니다. 이제 나는 BSD에서 그것이 같은지 의심합니다.

명령의 구조는 다음과 같습니다.

  • -c → 파일 생성
  • /home/krel/.htpasswd → 파일의 절대 경로.
  • Luke → 사용자 이름 (원하는대로 가능)

마찬가지로 인터넷에 서비스가있을 때 다른 사람이 터미널을 사용하도록 강요하지 않습니다.
http://www.web2generators.com/apache/htpasswd_generator

http://www.htaccesstools.com/htpasswd-generator/

원하는 경우 결과를 텍스트 파일에 .htpasswd라는 이름으로 복사합니다. 이 방법과 관련하여 다음 단락에서 내가 언급 한 내용을 읽는 것을 중단하지 마십시오.

우리의 경우에는 /home/krel/.htpasswd가 예상했던 곳에 파일이 생성 된 것을 볼 수 있습니다. 이미지에서이 방법을 사용하면 파일이 Ubuntu에서 www-data라고하는 apache 그룹 및 사용자에 속함을 강조했습니다. 다른 방법으로 .htpasswd를 생성 한 경우 644 권한이 있는지 확인해야하기 때문에 이것은 중요합니다.

이제 우리는 그들의 배짱이 어떤 것인지 볼 것입니다.

보시다시피 사용자 (Luke)가 있지만 암호는 암호화되어 있습니다.

이런 식으로 우리는 이미 Luke 사용자를 위해 .htpasswd를 만들고 설계했으며, 결국 이것은 암호를위한 컨테이너 일뿐입니다. "All with one command"는 좋은 캐치 프레이즈가 될 것입니다.

2. 사이트에서 해당 서비스를 사용하고 허용하도록 Apache를 구성합니다.

# nano /etc/apache2/sites-available/default

여러 호스트가있는 경우 각 호스트에서 작동해야합니다. 제 경우에는 기본적으로 제공되는 호스트 만 있습니다. 해당 파일의 백업을 항상 만드는 것이 좋다는 것을 잊지 마십시오.

해당 파일의 기본 구조는 다음과 같습니다.

ServerAdmin 웹 마스터 @ localhost

..................

..................

특정 디렉토리에 액세스하기 위해 .htpasswd 사용이 지정되는 것은 정확히 Virtualhost 제목 내에 있습니다. 아래 이미지가 표시되고 예제에 적합 할 때 수행합니다.

좋은. 나는 라인을 설명한다 :

보호 할 디렉토리를 넣어야합니다.

AuthType이 기본

브라우저와 협상 된 사용자 유형 및 비밀번호이며이 경우 암호화없이 기본입니다.

또 다른 유형의 협상이 있습니다. 다이제스트, 이것은 사용자 이름과 암호를 암호화하지만, 마지막 단어는 해당 서비스를 지원하는지 여부에 대한 브라우저입니다. 다이제스트는 스니퍼에 대해 약간 더 강력한 구현이라고 할 수 있습니다. 이것에 대해 자세히 알아보십시오.

AuthName "들어가기 전에 문을 두 드리십시오."

로그인 폼과 함께 브라우저에서 사용자에게 표시되는 메시지이며 우리가 원하는 메시지가 될 수 있습니다.

인증 사용자 파일 /var/www/.pass/.htpasswd

.htpasswd 파일을 경로 지정하십시오. 그 이유는 .htpasswd라는 이름을 붙일 필요조차 없다고 말하고 단순히 경로를 입력하면 똑같이 작동합니다.

유효한 사용자가 필요합니다

이 줄은 개별화 된 암호를 가진 여러 사용자를 위해 설계되었습니다. 단일 사용자 인 경우 다음과 같은 변형으로 요약 할 수 있습니다.

사용자 el_que_sea 필요

내 예에서는 다음과 같습니다. 사용자 Luke 필요

그리고 마지막으로 우리는 모든 것을

아파치를 다시 시작합니다.

# service apache2 restart

해보자.

올바르게 인증하지 않으면 오류 401이 발생합니다.

반대로 올바른 사용자 이름과 비밀번호를 입력하면 큰 불편없이 통과 할 수 있습니다.

추가 팁.

  • 이미 생성 된 htpasswd 파일에 더 많은 사용자를 추가하려면이 명령을 사용할 수 있습니다.

htpasswd -mb /home/krel/.htpasswd 사용자 암호

"유효한 사용자 필요"가 아닌 "사용자 필요"를 설정 한 경우 새 사용자 다음에 이전 사용자를 추가하고 공백으로 구분해야합니다. 예:

사용자 Luke Anakin 필요

  • 사용자 그룹 사용

개별 사용자 대신 다음 웹 사이트에서 그룹과 함께 작업하는 것을 선호하거나 필요로하는 경우에는 매우 자세하게 설명하고 훌륭한 기사입니다.
http://www.juanfelipe.net/node/23

  • 다른 유형의 암호화를 설정할 수도 있습니다 (예 : SHA).

htpasswd -sb /home/krel/.htpasswd 사용자 암호

다음은 SHA 암호 등록이 .htpasswd에 반영되는 방식에 대한 이미지입니다. 둘 다 "스카이 워커"였습니다.

자세히 알아보십시오.

htpasswd--도움말

이 주제에 대해 더 자세히 알고 싶다면 RTFM이 항상 좋습니다!
http://httpd.apache.org/docs/2.0/es/howto/auth.html

http://httpd.apache.org/docs/2.2/misc/password_encryptions.html

htaccess 및 htpasswd 생성기를 만들기 위해 그라나다 대학의 페이지에서이 PHP 스크립트가 호기심을 나타 냈습니다. 나는 그것을 실행에 넣을 수 없었지만 나는 당신을 "지능으로 캐내다"라고 초대합니다.

누구나 관심이있을 경우를 대비하여이 페이지에서 얻은 HTML 템플릿입니다.
http://www.templatemo.com/

이 htpasswd 프레젠테이션이 마음에 드셨기를 바랍니다.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   크렐

    이제 게시물을 다시 읽고 나는 내가 작은 혼란을 겪었다는 것을 깨달았습니다. 사이트 구성의 줄을 설명 할 때 AuthUserFile에 /var/www/.pass/.htpasswd를 다음과 같이 입력합니다.
    /홈/크렐/.htpasswd.

    이미지로는 괜찮지 만 거기에서 빠져 나왔고, 이전에 그 루트로 기사를 만든 적이 있었지만, 마지막 순간에 변경해서 수정하지 못한 것 같습니다.

    미리 사과드립니다.

  2.   페르난도

    노틸러스에 대한 대안 ??

    1.    크렐

      당신이 묻는 것은 반대 방향이라고 생각하지만 어쨌든 대답합니다.
      나는 Cryptkeeper를 사용하면 디렉토리와 같은 것들을 보호하는 것이 유용 할 것이라고 믿습니다.

      내가 그놈에 대해 싫어하는 것이 노틸러스라면 솔직히 말하면. Dolphin (KDE)은 이러한 보호, gpg 암호화 등의 작업에 훨씬 더 강력합니다.

  3.   디모즈

    Krel, 여기에 가져온 완전한 튜토리얼과 특히 일반적인 주제가 아닌 것에 대해 감사드립니다 ...

    건배 !!! ...

  4.   후안 카를로스

    안녕하세요 모든 것이 잘되었지만 .. 크롬 탭을 닫고 다른 탭을 열면 주소를 쓰고 비밀번호를 묻지 않습니다 ...

  5.   동료

    화려하지 않다고 누가 말했다.
    내가 찾던 것이었고 불가능하다고 더 잘 설명했습니다.
    대단히 감사합니다.
    인사말

  6.   basco7

    안녕하세요, 정보, 특히 .htpasswd에 여러 사용자를 추가하는 부분에 대해 감사드립니다.

    하나님의 축복이 있기를!

  7.   모타디

    축하합니다.이 글은 명확하고 소화가 잘되는 아주 좋은 기사입니다. 정말 고맙습니다

  8.   에두아르도

    사용자 이름과 비밀번호를 입력하면 오류 500이 표시됩니다.

    AuthType이 기본
    AuthName "Tocc tocc"
    인증 사용자 파일 /var/www/html/.pass/.htpasswd
    사용자 Akira 필요

  9.   에두아르도

    다른 댓글을 보지 않고 댓글을다는 것이 얼마나 좋은 일인지 perodna.
    훌륭한 게시물을 작동합니다.

  10.   솜 누스 시니어

    안녕하세요, 좋은 튜토리얼이지만 "htpasswd"에 대한 대안이 있습니까? Linux mint 17.3을 사용하고 있는데 명령이 없기 때문에 묻습니다. 설치해야합니까?

  11.   솜 누스 시니어

    좋아, 알아 냈어… sudo apt-get install apache2-utils로 설치해야했다

  12.   페르난도 몬 틸라

    안녕하세요, 훌륭한 튜토리얼입니다. 여기에 표시된대로 정확하게 수행했습니다. 유일한 것은 2 번 항목에 표시된 내용을 실행하는 대신 수행하는 것입니다.

    nano / etc / apache2 / sites-available / default

    그것은 나를 위해 일했습니다.

    나노 /etc/apache2/sites-enabled/000-default.conf

  13.   호르헤 로드리고 토 레즈 아라 마요

    인사, 그것은 나를 위해 작동하지 않습니다 🙁 내 폴더가 내 서버에 나타나지 않습니다. 즉, 내 / var / 222 / html / 콘텐츠 폴더를 보호했으며 브라우저에서 들어가면 콘텐츠 폴더가 나타나지 않습니다. 도움