액세스 암호 보호 트릭
최근 한 독자가 다른 사람에게 오픈 액세스를 허용하면서 지정된 모든 아이피 디렉토리를 암호로 보호하는 방법에 대해 질문했습니다. 내 기사에서,바보 같은
시작하기 전에,아파치의 다양한 암호 보호 지시문에 대해 알아야 할 몇 가지 사항이 있다. 첫째,이러한 암호 보호 트릭은 배치 된 디렉토리에 적용됩니다. 예를 들어,전체 사이트를 암호로 보호하기 위해,당신은 당신의 사이트에 대한 웹 액세스 루트
당신은 암호 보호를 위해 두 개의 파일이 필요합니다:당신이 알아야 할 두 번째 것은 대부분의 경우,어떤 암호 보호 구현에 두 부분이 있다는 것입니다:.
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>
# 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
에 대한 자세한 내용은 공식 문서를 확인하십시오.