> 운영 및 유지보수 > Apache > mod_auth_basic 및 mod_auth_digest를 사용하여 Apache에서 HTTP 인증 (기본 인증, Digest Auth)을 구현하려면 어떻게합니까?

mod_auth_basic 및 mod_auth_digest를 사용하여 Apache에서 HTTP 인증 (기본 인증, Digest Auth)을 구현하려면 어떻게합니까?

Robert Michael Kim
풀어 주다: 2025-03-12 18:43:06
원래의
323명이 탐색했습니다.

mod_auth_basic 및 mod_auth_digest를 사용하여 Apache에서 HTTP 인증을 구현합니다

mod_auth_basicmod_auth_digest 사용하여 Apache에서 기본 및 다이제스트 인증 구현에는 Apache의 가상 호스트 또는 디렉토리 구성 파일을 구성해야합니다. 기본 인증부터 시작하겠습니다.

기본 인증 :

  1. 모듈 활성화 : mod_auth_basic 활성화되어 있는지 확인하십시오. 이것은 일반적으로 LoadModule auth_basic_module modules/mod_auth_basic.so aPache 구성 파일 ( httpd.conf 또는 관련 가상 호스트 구성 파일)에서 줄을 떼지 않음으로써 수행됩니다.
  2. 비밀번호 파일 작성 : 사용자 이름과 암호화 된 암호가 포함 된 비밀번호 파일이 필요합니다. Apache는이를 위해 htpasswd 유틸리티를 제공합니다. 이를 사용하여 새 파일 (예 : .htpasswd )을 만들고 사용자 추가를 사용하십시오.

     <code class="bash">sudo htpasswd -c /path/to/.htpasswd username</code>
    로그인 후 복사

    ( -c 플래그는 새 파일을 생성하고 기존 파일에 사용자를 추가하기 위해 생략합니다.) 명령은 비밀번호를 제출합니다. 각 사용자마다 반복하십시오. 결정적 으로이 파일을 안전하게 저장하십시오. 타협은 당신의 인증을 손상시킵니다.

  3. Apache 구성 : APACHE 구성 파일에서 보호 영역을 정의하는 <directory></directory> 또는 <location></location> 블록 내에서 다음 지시 사항을 추가하십시오.

     <code class="apache"><directory> AuthType Basic AuthName "Restricted Area" AuthUserFile /path/to/.htpasswd Require valid-user </directory></code>
    로그인 후 복사

    /path/to/protected/directory/path/to/.htpasswd 실제 경로로 대체하십시오. AuthName 사용자에게 표시된 영역 이름을 설정합니다.

다이제스트 인증 :

Digest Authentication은 비밀번호를 일반 텍스트로 보내는 것을 피하기 때문에 기본 인증보다 안전합니다. 프로세스는 비슷합니다.

  1. 모듈 활성화 : mod_auth_digest 활성화되어 있는지 확인하십시오 ( mod_auth_basic 과 유사).
  2. 비밀번호 파일 만들기 : 이전과 동일한 htpasswd 유틸리티를 사용하지만 Digest 인증을 위해 별도의 비밀번호 파일을 사용하여 물건을 구성 할 수 있습니다.
  3. Apache 구성 : 구성은 기본 인증과 유사하지만 AuthType 변경되었습니다.

     <code class="apache"><directory> AuthType Digest AuthName "Restricted Area" AuthUserFile /path/to/.htdigest Require valid-user </directory></code>
    로그인 후 복사

    /path/to/.htdigest Digest Password 파일로가는 경로로 바꾸십시오.

기본 대 다이제스트 인증의 보안 영향

기본 인증 : 일반 텍스트로 사용자 이름과 암호를 전송합니다 (Base64 인코딩되었지만 쉽게 디코딩 됨). 이렇게하면 연결이 HTTP로 고정되지 않으면 도청에 취약 해집니다. HTTPS없이 기본 인증을 사용하지 마십시오.

소화 인증 : 더 안전합니다. 비밀번호의 해시를 전송하여 도청이 실제 비밀번호를 드러내지 못하게합니다. 기본 인증보다 훨씬 안전하지만, 안전한 컨텍스트 (HTTP) 내에서 제대로 구현되지 않으면 재생 공격 및 중간 공격과 같은 특정 공격에 여전히 취약합니다.

특정 디렉토리 또는 파일에 대한 인증이 필요한 Apache 구성

Apache를 사용하면 <directory></directory><location></location> 지침을 사용하여 인증을 세밀하게 제어 할 수 있습니다.

  • <directory></directory> : 전체 디렉토리 및 하위 디렉토리에 인증을 적용합니다. 지정된 경로는 절대적이어야합니다.
  • <location></location> : 파일 시스템의 위치에 관계없이 특정 URL에 인증을 적용합니다. 특정 스크립트 또는 페이지를 보호하는 데 유용합니다.

예 : 전용 /private 디렉토리 및 해당 하위 디렉토리를 보호하지만 /public 되지 않습니다.

 <code class="apache"><directory> AuthType Basic AuthName "Private Area" AuthUserFile /path/to/.htpasswd Require valid-user </directory> <directory> # No authentication required here </directory></code>
로그인 후 복사

구성 변경 후 Apache를 다시 시작하십시오 ( sudo systemctl restart apache2 ).

HTTP 인증을위한 사용자 자격 증명 관리 및 업데이트

사용자 자격 증명은 htpasswd 유틸리티를 통해 관리됩니다.

  • 사용자 추가 : htpasswd -m /path/to/.htpasswd newuser 사용합니다 ( -m 옵션은보다 안전한 MD5 해싱 알고리즘을 사용합니다).
  • 비밀번호 변경 : htpasswd /path/to/.htpasswd existinguser 사용하십시오. 이렇게하면 새 비밀번호가 표시됩니다.
  • 사용자 삭제 : htpasswd 파일에서 사용자를 삭제하는 직접 명령이 없습니다. 가장 안전한 접근법은 원하는 사용자와 함께 새 비밀번호 파일을 작성한 다음 이전 사용자를 교체하는 것입니다. 이 작업을 수행하기 전에 모든 Apache 프로세스가 중지되도록해야합니다.

도청으로부터 보호하기 위해 HTTP 인증을 구현할 때 항상 HTTPS를 사용해야합니다. 생산 환경에서 보안이 증가하기 위해 Oauth 2.0 또는 OpenID Connect와 같은보다 강력한 인증 방법을 고려하십시오.

위 내용은 mod_auth_basic 및 mod_auth_digest를 사용하여 Apache에서 HTTP 인증 (기본 인증, Digest Auth)을 구현하려면 어떻게합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿