[Apache2.4] 다이제스트 인증 설정 방법

소개



WordPress로 시작해서 블로그를 만들어 보았습니다만, 아직 기사가 전혀 없고 공개하는 것이 부끄럽다··!
그래서 Apache의 다이제스트 인증을 통해 블로그에 액세스하기 위해 사용자 이름과 암호를 입력해야합니다.

환경



서버: CentOS 7.6
웹 서버: Apache 2.4.6

※WordPress의 플러그인은 사용하지 않고, .htaccess의 편집에 의해 설정하는 방법이 됩니다.

다이제스트 인증과 기본 인증 어느 것이 좋습니까?



Apache에는 다이제스트 인증 외에도 기본 인증이라는 인증 방법이 있습니다.
다이제스트 인증이 보안 강도가 높기 때문에 특별한 이유가 없으면 다이제스트 인증을 사용하는 것이 좋습니다.
  • 기본 인증 : Base64라는 방식으로 암호화. 암호화된 데이터를 복호화할 수 있기 때문에 도청된 경우 암호가 누출된다.
  • 다이제스트 인증 : MD5라는 방식으로 해시화. 해시화된 데이터는 복합 불가능하기 때문에, 도청해도 패스워드는 누설되지 않는다.

  • ※오래된 브라우저라면 대응하고 있지 않는 일도 있는 것 같기 때문에, 사이트 공개 후에 회원 한정 페이지등으로 인증을 걸고 싶은 경우에는, 베이직 인증도 검토하는 것이 좋을지도 모릅니다.

    설정 절차



    .htaccess 설정



    게시하는 디렉터리의 .htaccess에 다음 줄을 추가합니다.
    WordPress 설치 폴더 바로 아래의 .htaccess 파일에 설정을 추가했습니다.
    (.htaccess를 사용하지 않고/etc/httpd/conf/httpd.conf에서 같은 설정을 해도 좋지만,
    httpd.conf를 다시 작성하면 Apache를 다시 시작해야 합니다. )

    .htaccess
    AuthType Digest
    # AuthNameには任意の名前を指定
    AuthName "Digest Authentication"
    AuthUserFile "/etc/httpd/.digest"
    Require valid-user
    

    인증 파일 작성



    인증 파일을 만들고 암호를 설정합니다.
    암호 관리 파일을 작성하려면 htdigest 명령을 실행하십시오.
    $ htdigest -c /etc/httpd/.digest "Digest Authentication" testuser
    Adding password for testuser in realm Digest Authentication.
    New password: パスワードを入力してEnter
    

    [구문]
    # htdigest <옵션> <암호 파일> <사용자 이름>

    · realm 이름에는 .htaccess의 AuthName으로 지정한 문자열을 지정.
    ・사용자명에는 임의의 유저명을 지정. (OS에 존재하지 않는 사용자 이름도 좋습니다)
    ・초회 실행시에는 옵션에 「-c」가 필요.

    동작 확인



    대상 페이지에 액세스하여 인증 화면이 표시되는지 확인합니다.
    방금 설정한 유저명・패스워드를 입력해, 인증이 통과하면 통상의 화면이 표시됩니다.






    비고



    · 비밀번호를 재설정하고 싶은 경우에는 옵션 (-c)없이 명령을 다시 실행하십시오.
    $ htdigest /etc/httpd/.digest "Digest Authentication" testuser
    

    · 사용자를 추가하려면 옵션 (-c)없이 사용자 이름을 다시 작성하여 명령을 실행합니다.
    $ htdigest /etc/httpd/.digest "Digest Authentication" testuser2
    

    · 특정 사용자 만 삭제하고 싶다면 직접 .digest 파일을 편집하여 대상 사용자의 행을 삭제합니다.
    $ vi /etc/httpd/.digest
    
    #以下削除したいユーザの行を削除する
    test:Digest Authentication:ハッシュ化されたパスワード
    test2:Digest Authentication:ハッシュ化されたパスワード
    

    ・인증할 수 없는 경우는 이하 의심해 봅시다.
    apache의 다이제스트 인증용 모듈(mod_auth_digest)이 읽혀지고 있는가.
     (이 모듈은 Apache2.4 이상인 경우 디폴트로 유효하게 설정되어 있습니다만, 잘 안 되는 경우에는 무효화되어 있지 않은지 확인하는 것이 좋을까 생각합니다.)

    · 대상 디렉토리에서 htaccess 파일이 유효하도록 Apache 설정 파일 (httpd.conf)에 설정되어 있어야합니다.

    결론



    내용에 오류 등이 있으면, 지적하실 수 있으면 다행입니다!

    그런데, 빨리 WordPress에서도 기사를 쓰지 않으면 ··

    좋은 웹페이지 즐겨찾기