디렉토리별 사용자 권한 부여
.htaccess 파일을 사용하도록 설정하는 부분이다. 설정파일에 들어가서 디렉토리 설정 아래에 AuthConfig 옵션을 추가한다.
<Directory "/해당 디렉토리별 경로">
AllowOverride AuthConfig
</Dicrectory>
AuthName "login"
AuthType Basic
AuthUserFile /해당 디렉토리별 경로/.htpasswd
AuthGroupFile /dev/null
require valid-user
<Limit GET POST>
require valid-user
</Limit>
======================================================================
디렉토리 리스트(Index of …) 숨기기
방법 1. 각 디렉토리마다 index 파일을 넣기
방법 2. Apache 설정을 바꾸기
Global 설정
Local(Virtual) 설정
수정 전 (디렉토리 리스트가 보이는 상태)
<Directory />
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
수정 후 (디렉토리 리스트가 보이지 않는 상태)
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory />
Options -Indexes FollowSymLinks
AllowOverride All
</Directory>
======================================================================
파이썬을 CGI 스크립트로 사용하도록 설정하기
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.html index.py
</IfModule>
<IfModule mime_module>
...
#
# AddHandler allows you to map certain file extensions to "handlers":
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
#
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#
AddHandler cgi-script .cgi .py
</IfModule>
======================================================================
Internal Server Error (500)
여러가지 원인이 있을 수 있다.
제대로 된 Header 가 전달되지 않은 경우
1. CGI script 에 버그가 있는 경우
2. CGI script 에 버그는 없지만 환경에서의 문자셋이 제대로 설정되지 않은 경우
3. 파이썬 CGI script에 한글이 포함되었을 경우에 파이썬의 os 모듈을 이용하여 현재 설정된 환경변수들을 한번 체크해 보자.
print(os.environ['LANG'])
아차피 환경설정 파일에 다음과 같이 환경변수를 넘겨준다. 파이썬 스크립트에서 os.environ['LANG']을 했을 때 제대로 utf-8 이 되어야 한글이 포함된 스크립트를 읽을 수 있다.
SetEnv LANG en_US.UTF-8
======================================================================
파일/폴더 이름이 잘려 보여지는 경우
위와 같이 파일이나 폴더의 이름이 긴 경우에는 잘려 보이는 경우가 있다. 이 때에 환경설정 파일에 다음과 같이 IndexOptions 지시어에 NameWidth 옵션을 설정하면 된다. NameWidth 옵션의 값은 숫자로 지정할 수 있지만 별표(*)로 지정하는 경우에는 파일이나 폴더 이름이 다 표시될 수 있도록 충분한 가로 길이를 제공하라는 의미로 쓰인다. 여기에서는 이름이 모두 다 나오길 원하므로 별표(*)를 입력해 주었다.
<Directory "/var/www/html">
...
IndexOptions NameWidth=*
...
</Directory>
======================================================================
Digest 인증 (HTTP Digest Authentication)
-Basic 인증보다 보안이 강화된 인증 방법이다.
-사용자 명, 패스워드 등을 조합하여 생성한 md5 값으로 인증에 사용한다.
-mod_auth_digest 모듈을 사용한다.
vi /usr/local/apache/conf/extra/httpd-auth_digest.conf
======================================================================
<Directory "/usr/local/apache/htdocs/digest">
AuthType Digest
AuthName "Private Area"
AuthDigestDomain http://www.asdasdad.com/digest/
AuthUserFile /usr/local/apache/.htdigest
Require valid-user
Order deny,allow
Deny from all
Allow from [IP or all]
======================================================================
<Directory "/usr/local/apache/htdocs/digest">
Digest 인증을 적용할 디렉터리
AuthType Digest
인증 방식을 Digest로 설정
AuthName "Private Area"
-인증 화면에서 사용자에게 보여줄 메시지
-내용은 사용자 생성 시 Realm으로 사용된다.
AuthDigestDomain http://www.asdasdad.com/digest/
Digest 인증이 적용되어 보호가 될 URL
AuthUserFile /usr/local/apache/htdocs/digest/.htdigest
사용자의 패스워드가 저장될 파일의 경로
Require valid-user
.htdigest에 등록된 사용자만 접근 허용
======================================================================
htdigest -c /usr/local/apache/htdocs/digest/.htdigest 'Private Area' web-admin
Adding password for web-admin in realm Private Area.
New password:
Re-type new password:
======================================================================
htdigest -c [해당 정보가 저장될 파일명] ['Realm'] [사용자]
-Digest 인증을 사용할 사용자를 생성한다.
-파일명과 Realm을 설정 파일과 일치하게 지정한다.
-Realm은 사용자가 속한 영역을 의미한다.
/usr/local/apache/bin/apachectl -t
systemctl restart apachectl
mkdir /usr/local/apache/htdocs/digest
cd /usr/local/apache/htdocs/digest
ll /usr/local/apache/htdocs/digest 인증성공시 사용자에게 출력할 초기 화면 파일이 생성한다.
index.html
http://www.asdasdad.com/digest 에 접속
Digest 인증 성공! (index.html 파일 내용 출력)
'WEB & WAS > Apache' 카테고리의 다른 글
Apache mod_cband 모듈 추가 설치 (0) | 2023.03.08 |
---|---|
buypass SSL인증서 실습 (0) | 2023.03.08 |
http -> https 리다이렉트 (0) | 2023.03.08 |
mod_rewrite 실전 2 (0) | 2023.03.08 |
Apache cronolog (0) | 2023.03.08 |
댓글