액세스 암호 보호 트릭

♦ 제프 스타에 의해 게시 됨.2018 년 6 월 30 일 업데이트•25 개의 댓글

최근 한 독자가 다른 사람에게 오픈 액세스를 허용하면서 지정된 모든 아이피 디렉토리를 암호로 보호하는 방법에 대해 질문했습니다. 내 기사에서,바보 같은 액세스 트릭,나는 지정된 것을 제외한 모든 아이피에 대한 디렉토리를 암호로 보호하는 방법을 보여 주지만 반대의 경우는 아닙니다. 이 글에서,나는 내 바보에서 몇 가지를 포함하여 다른 유용한 암호 보호 트릭의 다양한와 함께이 기술을 시연 할 예정이다. 수분이 많은 물건에 들어가기 전에,우리는 몇 가지 기본 사항을 검토 할 것입니다.

시작하기 전에,아파치의 다양한 암호 보호 지시문에 대해 알아야 할 몇 가지 사항이 있다. 첫째,이러한 암호 보호 트릭은 배치 된 디렉토리에 적용됩니다. 예를 들어,전체 사이트를 암호로 보호하기 위해,당신은 당신의 사이트에 대한 웹 액세스 루트 액세스 파일에 이러한 트릭 중 하나를 배치 할 것입니다. 따라서 모든 하위 디렉터리도 보호됩니다.

당신은 암호 보호를 위해 두 개의 파일이 필요합니다:당신이 알아야 할 두 번째 것은 대부분의 경우,어떤 암호 보호 구현에 두 부분이 있다는 것입니다:.htaccess파일과.htpasswd파일. .htaccess파일에는 이 문서에서 제공하는 유용한 트릭이 포함되며.htpasswd파일에는 필요한 사용자 이름과 암호화된 버전이 포함됩니다.

.htpasswd파일을 생성하는 방법에는 여러 가지가 있습니다. 당신이 유닉스에 익숙하다면,당신은 단순히”htpasswd“명령을 실행할 수 있습니다. 예를 들어 다음 명령을 입력하면/home/path/디렉터리에 작업 암호 파일이 만들어집니다:

htpasswd -bc /home/path/.htpasswd username password

웹 액세스 루트 디렉토리 위에 암호 파일을 배치하는 것은 좋은 보안 조치입니다. 파일을 만든 후에 파일을 검사하면 다음과 비슷한 줄만 포함됩니다:

username:Mx1lbGn.nkP8

대신 유닉스 명령을 실행하는,당신은 온라인 암호 생성기를 제공하는 20 만 온라인 서비스 중 하나를 사용하는 것을 선호 할 수 있습니다.

.htpasswd파일을 만드는 방법이나 위치에 관계없이 연결된 액세스 파일에서 사용할 위치를 염두에 두십시오. 예,여러 디렉토리에 배치 된 여러 액세스 파일에 대해 하나의.htpasswd파일을 사용할 수 있습니다.

를 사용하고 있는 아파치 버전을 파악한다. 이것은 필요한 아파치 모듈을 사용할 수 없거나 설치되지 않은 경우 서버가 충돌하는 것을 방지하기 위한 것입니다. 일반적으로 필요한 모듈이 있지만<IfModule>검사는 좋은 예방 조치입니다.

이 문서의 암호 보호 방법 중 하나를 구현할 때 시작하기 전에 사용 중인 아파치 버전을 다시 확인하십시오. 이 문서의 예제에서는<IfModule>컨테이너가mod_auth모듈의 존재를 확인하기 때문에 아파치 1.3 또는 2.0 을 사용하고 있다고 가정합니다. 따라서 아파치 2.2(또는 그 이상)를 실행하는 경우 현재<IfModule>컨테이너를 다음과 같이 대체 할 수 있습니다:

<IfModule mod_authn_file.c></IfModule>

의심스러운 경우,호스트에게 상영 파이어 폭스 확장을 설치하거나 서버의 제어판에서 주위 발굴. 그리고,그냥 모르는 경우,상관 없어,또는 그것을 알아낼 수 없습니다,그냥 열고 닫는 제거<IfModule>사용 하 고 좋은 호출 하 고 싶습니다 메서드에서 태그. 서버가 필요한 모듈을 장착되지 않은 경우 그들없이,그것은 단순히 쉽게 암호 지시문을 제거하여 해결 500 오류 메시지를 반환합니다.

당신은 암호 프롬프트에 대화를 사용자 정의 할 수 있습니다

당신이 몇 가지 달콤한 트릭으로 다이빙하기 전에 알아야 할 마지막 것은이 문서의 각 예에서 다음 줄을 편집하여 암호 프롬프트에 표시된 메시지를 사용자 정의 할 수 있다는 것입니다:

AuthName "Username and password required"

따옴표 안의 텍스트를 변경하면 암호 프롬프트에 원하는 언어를 사용할 수 있습니다.

그래서 지금 우리의 모험에서이 시점에서,우리는 몇 가지 육즙 액세스 암호 보호 트릭에 뛰어들 준비가 된 것입니다..

기본 암호 보호

사이트 또는 디렉터리를 암호로 보호하려면 이 코드를 관련 액세스 파일에 넣습니다:

# basic password protection<IfModule mod_auth.c> AuthUserFile /home/path/.htpasswd AuthName "Username and password required" AuthType Basic <Limit GET POST> Require valid-user </Limit></IfModule>

그것은 얻는 것처럼 기본적인 것입니다. 암호 파일을 만들고 첫 번째 줄에 해당 디렉토리를 지정해야합니다. 의 더 흥미로운 무언가로 이동하자.

이 방법은 프로젝트 개발 중에 암호를 통해 다른 사람에게 액세스 권한을 부여 할 수있는 오픈 액세스를 원하는 경우에 유용합니다:

# password protect excluding specific ip<IfModule mod_auth.c> AuthName "Username and password required" AuthUserFile /home/path/.htpasswd AuthType Basic Require valid-user Order Deny,Allow Deny from all Allow from 111.222.333.444 Satisfy Any</IfModule>

모든 사용자는 적절한 사용자 이름과 암호를 입력해야 합니다.

오픈 액세스 다중 지능 지능 지수,다른 사람을 암호로 보호

위의 코드는 다른 사람을 거부하면서 다중 지능 지수 개방형 액세스를 제공하기 위해 쉽게 수정 될 수있다:

# password protect excluding specific ips<IfModule mod_auth.c> AuthName "Username and password required" AuthUserFile /home/path/.htpasswd AuthType Basic Require valid-user Order Deny,Allow Deny from all Allow from localhost Allow from 111.222.333.444 Allow from 555.666.777.888 Satisfy Any</IfModule>

당신은 필요에 따라 많은 유도능력을 추가 할 수 있습니다. 이 방법은 다음 조건이 적용되는 프로젝트 개발 중에 유용합니다:

  • 일반 방문자에 대한 프로젝트 개발은 비공개로 유지
  • 암호
  • 개발 팀의 구성원은 해당 컴퓨터에서 오픈 액세스 권한을 부여할 수 있습니다

팀에 대한 무제한 액세스 권한을 제공하는 것 외에도 다음 지시문을 포함하여 특정 웹 서비스를 염두에 두어야 할 수도 있습니다.Satisfy Any지시어):

Allow from validator.w3.org
Allow from jigsaw.w3.org
Allow from google.com

이 메서드는 악의적인 지능 지능의 목록을 차단 하려는 경우를 포함 하 여 다양 한 상황에 유용 합니다.

# password protect only for specified ips<IfModule mod_auth.c> AuthName "Username and password required" AuthUserFile /home/path/.htpasswd AuthType Basic Require valid-user Order Allow,Deny Allow from all Deny from 111.222.333.444 Deny from 555.666.777.888 Satisfy Any</IfModule>

또한 그에 따라 주소를 잘라내 전체 아이피 블록에서 거부할 수 있습니다. 예를 들어,”999.888“로 시작하는 모든 사람을 차단하려면 다음 지시문을 추가합니다:

Deny from 999.888

이 작동 방식에 대한 자세한 내용은 이 섹션을 참조하십시오.

특정 암호 보호 번호를 가진 모든 사람을위한 오픈 액세스

이전 방법과 유사하게,여기에 선택 암호 번호에서만 암호를 요구하는 기술이다. 이 방법은 잘 익은,옵티넷 등과 같은 메가 스패머를 차단하는 데 유용합니다. 예를 들어,아파치Deny같은 처음 몇 개의 숫자로 시작하는 주소에 대한 지시문의 줄 뒤에 줄을 추가하는 것을 발견하면 그 중 하나를 선택하고 후이즈 조회를 시도하십시오. 후이즈 결과 내에서 나열된 특정 네트워크와 관련된 모든 아이피 주소를 나타내는 사이디르 값이 될 것입니다. 따라서,사이버 범죄자를 통한 차단은 범죄자의 모든 지적 재산권 인스턴스가 귀하의 사이트에 액세스하는 것을 능란하게 방지하는 효과적인 방법입니다. 다음 예제는 다음과 같습니다:

# password protect only for specified CIDR<IfModule mod_auth.c> AuthName "Username and password required" AuthUserFile /home/path/.htpasswd AuthType Basic Require valid-user Order Allow,Deny Allow from all Deny from 10.1.0.0/16 Deny from 80.0.0/8 Satisfy Any</IfModule>

암호 보호 단일 파일

이 기술을 여러 번 사용했습니다. 단일 파일을 암호로 보호하려면 이 파일을 액세스 파일에 추가합니다:

# password protect single file<IfModule mod_auth.c> <Files "protected.html"> AuthName "Username and password required" AuthUserFile /home/path/.htpasswd Require valid-user AuthType Basic </Files></IfModule>

여기서 우리는”protected.html“이라는 파일을 액세스로부터 보호하고 있습니다. 이 파일은 적절한 사용자 이름과 암호를 제출 한 후에 만 사용할 수 있습니다.

암호 여러 파일을 보호

여러 파일을 보호하기 위해,방법은 매우 유사하다,우리는 아파치의FilesMatch지시문을 사용하는이 시간. 이를 통해 필요에 따라 많은 파일을 나열 할 수 있습니다:

# password protect mulitple files<IfModule mod_auth.c> <FilesMatch "(protected\.html)|(passwords\.txt)"> AuthName "Username and password required" AuthUserFile /home/path/.htpasswd Require valid-user AuthType Basic </FilesMatch></IfModule>

이 예에서는”protected.html“및”passwords.txt“의 두 파일을 암호로 보호합니다. 더 추가하려면 파일 목록에”|(filename\.ext)“인스턴스를 더 포함하십시오.

여러 파일 형식을 암호로 보호

이 방법으로,우리는 아파치의FilesMatch지시문을 사용하여 여러 파일 형식을 암호로 보호하고 있습니다. 다음은 예입니다:

# password protect mulitple file types<IfModule mod_auth.c> <FilesMatch "\.(inc|txt|log|dat|zip|rar)$"> AuthName "Username and password required" AuthUserFile /home/path/.htpasswd Require valid-user AuthType Basic </FilesMatch></IfModule>

일단 자리에,이 코드는 다음 파일 형식에 대한 액세스를 위해 암호가 필요합니다: .inc, .txt, .log, .dat, .zip, 그리고.rar. 사용자의 요구에 맞게 사용자 정의 할 수 있습니다.

단일 파일을 제외한 모든 암호 보호

다른 모든 암호를 보호하는 동안 하나의 파일에 대한 액세스를 허용하는이 강력한 기술에 대한 브렛 바티 덕분에:

# password protect everything except a single file<IfModule mod_auth.c> AuthName "Username and password required" AuthUserFile /home/path/.htpasswd Require valid-user AuthType Basic <Files "open-access.html"> Order Deny,Allow Deny from all Allow from 123.456.789 Satisfy any </Files></IfModule>

루트 디렉토리 또는 어떤 부모 전화번호부든지에서 둘 경우,이 부호는”open-access.html“지명된 파일을 제외하고 모두를 암호로 보호할 것입니다,그 자체는 어떤 연속적인 전화번호부 또는 서브디렉토리든지에서 있을지도 모릅니다.

여러 파일에 대한 액세스를 허용하면서 모든 것을 보호하기 위해 아파치의FilesMatch지시문을 대신 사용할 수 있습니다. 다음은 액세스를 허용하는 예입니다”open-access-1.html“, “open-access-2.html“, 그리고”open-access-3.html“:

# password protect everything except specified files<IfModule mod_auth.c> AuthName "Username and password required" AuthUserFile /home/path/.htpasswd Require valid-user AuthType Basic <FilesMatch "(open-access-1.html)|(open-access-2.html)|(open-access-3.html)"> Order Deny,Allow Deny from all Allow from 123.456.789 Satisfy any </FilesMatch></IfModule>

다음과 같이 우리는 파일 목록을 통합 할 수 있습니다:

<FilesMatch "open-access-\.html">

모든 파일 또는 파일 그룹에 대한 오픈 액세스를 허용하는 다른 방법은 액세스 파일에 추가 된 다음 지시문을 사용하여 자신의 디렉토리에서 파일을 찾는 것입니다:

Allow from all
satisfy any

다음 마무리

당신이 볼 수 있듯이,아파치’mod_auth기능은 당신이 필요로 할 수 있습니다 단지 암호 보호 설정에 대해 구성 할 수 있습니다. 아파치는 특정 파일 및 디렉토리에 대해서만 액세스 할 수 있도록 허용함으로써 파일을 쉽고 안전하게 보호 할 수 있습니다. 그리고 우리는 심지어 특정 사용자 및 그룹 권한을 구성하는 데 사용할 수있는 많은 가능성에 못 했어. 나는 다른 기사를 위해 그것을 구할 것이라고 생각한다. 한편,아파치의 강력한mod_auth에 대한 자세한 내용은 공식 문서를 확인하십시오.

제프 스타

저자 소개
제프 스타=웹 개발자. 보안 전문가. 워드 프레스 버프.