[IP 별 접근통제]
welcome.conf
주석 처리
/etc/httpd/conf/httpd.conf
<Directory> var/www/html
indexes
all denied
</Directory>
Require ip 192.168.10.200 192.168.10.150
192.168.10.0/24
환경 설정 파일에 index 설정이므로
index.html 파일 없을 시 in.html 존재 시
디렉터리 리스팅 확인
index 설정 삭제 시 거부됨
<Directory "/home/*/public_html">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<RequireAll>
Require all granted
Require ***not*** ip 192.168.10.200
Require method GET POST OPTIONS
</RequireAll>
</Directory
Require method GET POST OPTIONS
order deny,allow
deny from all 192.192.
[디렉터리별 접근 통제]
vi /etc/http/conf.d/auth.conf 파일 생성
<Directory /var/www/html/[디렉터리 이름]>
AuthType Basic
AuthName "Test"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user
<RequireAll>
Require ip 192.168.10.200 // 200에서만 접근 가능
Require valid-user
Require test test1
</RequireAll>
</Directory>
Require valid-user = Require [사용자명]
<Directory /var/www/html/pse>
AuthType Basic
AuthName "Test"
AuthUserfile /etc/httpd/.htpasswd
require valid-user
require user test
<RequireAll>
Require all granted
Require not ip 192.168.10.150 ///
150에서만 인증창 팝업
</RequireAll>
</Directory>
<Directory /var/www/html/pse>
AuthType Basic
AuthName "Test"
AuthUserFile /etc/httpd/.htpasswd
<RequireAll>
Require ip 192.168.10.200
Require valid-user
</RequireAll>
</Directory>
200에서만 접근 및 인증 가능
다른 IP 에서 forbidden 표시되어야 함
하지만 다른 IP에서 접근 가능 확인함
[원인]
설정 파일이 여러 개라
다른 곳에서 Require all granted가 적용되고 있을 가능성
/etc/httpd/conf/httpd.conf 또는 /etc/httpd/conf.d/*.conf 파일에서 다른 설정이 IP 제한을 무효화할 수 있음
특히, Require all granted가 설정되어 있다면 모든 IP에서 접근 가능
[결과]
[root@localhost basic]# grep -r "Require all granted" /etc/httpd/conf*
/etc/httpd/conf/httpd.conf: Require all granted
/etc/httpd/conf/httpd.conf: Require all granted
/etc/httpd/conf/httpd.conf: Require all granted
/etc/httpd/conf.d/autoindex.conf: Require all granted
/etc/httpd/conf.d/manual.conf: Require all granted
/etc/httpd/conf.d/userdir.conf: Require all granted
/etc/httpd/conf.d/welcome.conf:# Require all granted
다른 설정 파일에서 all granted 되어있기에 접근 가능
[기본 인증 (Basic Authentication) 활성화]
AuthType ***Basic*** → 기본 인증 방식 사용
AuthName "Test" → 인증 프롬프트에서 보이는 메시지
AuthUserFile /etc/httpd/.htpasswd → 사용자 인증 정보 저장 경로
[인증 요구 사항]
require user test test1 → test 또는 test1 사용자만 허용
require valid-user → 모든 유효한 사용자 허용 (즉, .htpasswd에 있는 모든 계정 허용)
[사용자 정보 인증]
# htpasswd -c /etc/httpd/.htpasswd test
# htpasswd -c /etc/httpd/.htpasswd test1
디렉터리 생성
cd /var/www/html
mkdir basic
vi index.html
로그인 안 될 시
1.재시도
2.사용자 패스워드 재변경
3.htpasswd 재변경
[DIGEST]
<Directory /var/www/html/digest>
AuthType Digest
AuthName "Digest Test"
AuthUserfile /etc/httpd/.htdigest
require valid-user
</Directory>
mkdir digest
vi index.html
index.html 파일 미생성 시 디렉터리 리스팅 출력
# htdigest -c /etc/httpd/.htdigest ***'Digest Test'*** test
# htdigest /etc/httpd/.htdigest **'Digest Test'** test1
"Digest Test"는 **AuthName**에 지정된 값과 동일해야 함
<Directory /var/www/html/basic>
AuthType Basic
AuthName "Test"
AuthUserfile /etc/httpd/.htpasswd
<RequireAll>
Require ip 192.168.10.200
Require valid-user /// 유효 이용자 인증 가능
</RequireAll>
</Directory>
<Directory /var/www/html/basic>
AuthType Basic
AuthName "Test"
AuthUserfile /etc/httpd/.htpasswd
<RequireAll>
Require ip 192.168.10.200
Require valid-user
Require user test //// test 인증 가능 // test1 인증 불가
</RequireAll>
</Directory>
# cat /etc/httpd/.htdigest
test:Digest Test:2cabc62a225fce0ecf0e2fb50af0f24e
test1:Digest Test:7a1658fb4c1aea0e3436124fcc1fff95
'IT 엔지니어 > Linux server' 카테고리의 다른 글
Web Security (0) | 2025.04.25 |
---|---|
SSL/TLS (0) | 2025.04.24 |
TOMCAT (0) | 2025.04.23 |
Web Security (0) | 2025.04.23 |
KAIL linux & UTM (0) | 2025.04.22 |