Computer/Network

[Linux] throttle-status 및 암호설정

알찬돌삐 2005. 5. 24. 08:34
1. throttle-status의 인증 걸기

throttle-status 페이지를 아무나 접속해서 리셋을 한다면, 아마나 관리자 권한으로 트래픽 제한을 풀어주는것과 같을것이다.
이에 대해 throttle-status의 인증을 걸고, User가 로컬에서 리셋을 방지 하여야 할 것이다.

이에 대한 아파치 환경 설정의 예로 다음과 같이 들 수 있다.


[CODE]< Location /throttle-status> SetHandler throttle-status Order Deny,allow Deny from all Allow from 127.0.0.1 AuthName "관리자 인증" AuthType Basic AuthUserFile /(관리자 패스워드 경로)/.htpasswd AuthGroupFile /dev/null require valid-user satisfy any < /Location>[/CODE]


2. throttle-status 자정에 리셋

아파치 환경파일 설정시

- 중략 -
[CODE] ThrottlePolicy Volume 500M 1d < /VirtualHost>[/CODE]으로 하면 1일 500M의 트래픽 제한을 하게 된다.
하지만 하루를 뜻하는 1d를 하여도, 리셋한지 24시간이 지나도록 다시 리셋이 되지 않았다. (아직도 이해가 되지 않는 부분.. ㅡㅡa 아시는 분은 알려주세요..)


때문에 매일 자정에 강제로 리셋을 시키게 된다.
매일 자정에 리셋을 하기 위해서는 /etc/crontab 의 내용 추가로 간단히 할 수 있다.


새로 추가될 내용은 다음과 같다.

[CODE]00 0 * * * lynx -source -auth=인증아이디:인증패스워드 "도메인/throttle-status?command=reset,*" > /dev/null 2>&1[/CODE]

인증 아이디와 패스워드는 throttle-status 페이지를 아무나 접근하지 못하도록 하기 위한 인증 아이디, 패스워드 이다.


3. 디렉토리 접근 권한 설정
아파치 인증 방식은 믿을 만한 보안 체계는 이루어 지지 않아 보안상 헛점이 들어 날수도 있다는 것을 명심해야 된다.



1. 사용자 추가 하기

htpasswd라는 명령을 이용하여 접근허용 가능한 사용자 아이디, 패스워드를 설정할 수 있다.

htpasswd [옵션] 패스워드파일 사용자ID

-c : 패스워드 파일을 새로 생성할 경우 사용

-m : MD5를 이용한 비밀번호 생성

-d : crypt()를 이용한 비밀번호 생성

-p : 평문(암호화 하지 않음)으로 비밀번호 생성

여기서 패스워드파일은 보통 .htpasswd라는 파일로 생성한다.

처음 사용자를 추가할 경우엔 -c 옵션을 사용하며, 기존의 파일이 있음에도 -c 옵션을 사용할 경우 기존의 패스워드파일에 새로운 패스워드 파일을 덮어쓰게 된다.





사용자ID는 새로 추갛할 사용자의 아이디를 적어주면 되는데 ':'문자를 포함하지 않는 문자로 255자까지 설정이 가능하다.

다음은 ninja라는 아이디로 사용자를 처음 생성한후, naezip이라는 아이디를 추가하는 예이다.





[naezip@www]# htpasswd -c .htpasswd ninja

New password: (패스워드 입력)

Re-type new password : (패스워드 재입력)

Adding password for user ninja

[naezip@www]# httpasswd .htpasswd naezip

New password: (패스워드 입력)

Re-type new password : (패스워드 재입력)

Adding password for user naezip





2. 디렉토리 접근 권한 설정

위에서 설정한 사용자들에 한하여 지정한 디렉토리에 접근 할 수 있더록 설정할 필요가 있겠다.

다시 말하자면 http://도메인/STAT 라는곳의 접근 권한을 설정하겠다라는 뜻이다.

이는 STAT디렉토리내에 .htaccess 파일을 저장해 주면 된다.

다음은 .htaccess 파일의 내용이다.



AuthName "내집인증"

AuthType Basic

AuthUserFile /절대경로/.htpasswd

Require valid-user





AuthName

인증창의 제목이라고 생각하면 된다. 간단한 스트링을 입력



AuthType

인증 유형을 설정하는 지시자이다. Basic과 Digest를 설정할 수 있다.

Digest는 MD5 방식을 사용하는데 MD5를 지원하는 브라우저가 제한되어 있기 때문에 Basic을 많이 사용한다.





AuthUserFile

사용자 아이디 패스워드 정보가 들어 있는 파일을 지정해 주는곳이다.

보안상 웹문서 디렉토리 밖에 위치 시키는것이 좋다.





Require

인증할 대상을 지정한다.

valid-user는 AuthUserFile에 등록된 모든 사용자를 인증을 통해 받아 들이는 설정

valid-user대신 사용자 아이디만 적어 넣을 수 있으며, 여기에 적은 사용자 ID역시 AuthUserFile에 등록되어 있어야 한다.



4. 현재 아파치 접속으로 어느 페이지를 보고 있는지..

아파치에서 현재 접속자가 어떤 파일을 열고 있는지 실시간(?)으로 확인하기 위해서는 httpd.conf 수정을 통해 확인할 수 있다.

httpd.conf 에 보면 server-status 설정을 하는 부분이 있다.

server-status 설정을 하시고 http://domain.com/server-status/ 로 접속하면 확인할 수 있다.



httpd.conf의 수정할 곳의 내용은 다음과 같다.


코드
# http://servername/server-status을 통해 서버 상태 보고를 허용한다. 여기서

# "localhost" 부분을 허용할 도메인으로 바꿔 사용하라.

#

[CODE]<IfModule mod_status.c> <Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from localhost #Allow from all #AuthName "administrator Area" #Authtype Basic #AuthUserFile /home/httpd/.htpasswd #AuthGroupFile /dev/null #require valid-user #satisfy all </Location> </IfModule> [/CODE].

'Computer > Network' 카테고리의 다른 글

[Linux] Proftpd 대역폭 제한하기  (0) 2005.05.24
[Linux] 계정별로 트래픽 제한하기  (0) 2005.05.24
[Linux] throttle 설치 및 설정  (0) 2005.05.24
[Linux] Route 명령어로 IP 차단  (0) 2005.05.24
암호화  (0) 2005.05.15