WEB & WAS/Apache

Apache의 httpd.conf 지시자 정리

서버엔지니어 2023. 3. 8.
728x90

디렉토리별 사용자 권한 부여

.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

댓글