웹 서버의 보안을 ip나 url에서 보안을 강화하거나 .htaccess파일을 사용하여 다중 사용자 환경에서 접근제어를 하고자 할 경우
apache의 인증 설정을 사용하여 웹 리소스에 접근할 때 인증을 요구하는 방식으로 htapsswd를 사용합니다.
1) .htaccess파일 생성
1-1) vhost를 사용하는 경우 (apache -S로 확인)
vhost 별 DocumentRoot를 확인하여 .htaccess 파일을 확인하여 설정합니다.
1-2) vhost가 아닌경우
DocumentRoot를 확인하여 .htaccess 파일을 확인하여 설정합니다.
.htaccess파일은 각각의 DocumentRoot로 이동하여 생성하고
vi .htaccess
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /PATH/TO/DocumentRoot/.htpasswd # documentroot 경로 지정
Require valid-user
AuthUserFile에 .htpasswd의 경로를 지정해줍니다.
2) conf파일 설정
vhost라면 conf파일에
<Directory "/PATH/TO/DocumentRoot"> # vhost의 docroot 경로
AllowOverride ALL
Options FollowSymLinks
Require all granted
</Directory>
를 추가로 설정합니다.
3) 계정/비밀번호 생성
먼저 1번에 설정한 경로로 이동한 후
htpasswd -c .htpasswd user1 # 최초 생성
htpasswd .htpasswd user2 # 추가 생성
으로 계정 생성 후 비밀번호를 설정합니다.
4) apache 재시작
이제 아파치를 재시작하여 사용하면 적용이 됩니다.
만약 해당 방법으로도 적용이 되지 않는다면 설정 파일에서
<Directory /PATH/TO/DocumentRoot>
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /PATH/TO/DocumentRoot/.htpasswd
Require valid-user
</Directory>
를 직접 httpd.conf에 추가하여 적용이 가능합니다.
아래는 성공 시 화면입니다.
'OS > Linux' 카테고리의 다른 글
apache vhost 설정하기 (0) | 2024.04.15 |
---|---|
AWStats 설정 및 설치 (1) | 2024.04.12 |
letsencrypt를 사용하여 무료ssl 인증서 발급 및 적용 (0) | 2024.04.11 |
ubuntu) LEMP(nginx + php + mysql) 설치 및 연동테스트 (0) | 2024.04.08 |
centos) LEMP(nginx + php + mysql) 설치 및 연동테스트 (0) | 2024.04.05 |