지난 포스팅 글에서
아파치 웹 서버의 설정파일을 통해서 인증을 구현해보았다.
이어서 인증 사용자를 추가하고 추가적으로
글로벌 설정 파일과 로컬 설정 파일, 웹 서버 설정 파일에 대해 간략히 이야기 해보겠다.

지난 글에서 설정한 내용에서 우리가
.htpasswd 파일에 정보를 이용해 인증에 사용할거라는 코드가 있었다.
이제 그 파일을 만들어주는 작업을 해주면 된다.

처음 파일을 만드는 경우와 기존에 있던 파일에 사용자를 추가하는데 있어서
코드가 조금 다르다.


처음에 파일을 만드는 경우
#> htpasswd -c /var/www/html/.htpasswd user1




(사용자 생성)



user1을 생성해 보았다.

이제 기존에 있던 파일에 사용자를 추가하는 작업을 해보겠다.

이미 만들어진 파일에 사용자를 추가하는 경우
#> htpasswd /var/www/html/.htpasswd user2
여기서 user2는 사용자 이름이다.



(사용자 추가)



사용자를 추가해보았다.

.htpasswd 파일에 추가해주었는데 이 파일을 확인해 보면



(.htpasswd 파일)



확인해보면 사용자 아이디와 비밀번호가 보인다.
(비밀번호는 보안상 해쉬값으로 저장되어있는 것을 확인 할 수 있다.)

이렇게 만든 파일이 인증에 정말 잘 적용되는지
접속해보겠다.



(인증 접속)




(성공)



인증에 성공되어
페이지에 접근할 수 있는 것을 확인 할 수 있다.

관리자 도구에서 확인해보면
Authorization 항목에 값이 추가되있는 것을 확인 할 수 있다.



(인증 코드)



이렇게 글로벌 설정 파일을 이용하여 웹 페이지 인증을 설정해보았다.
그렇다면
부분적으로 인증을 요구하고 싶다면 어떻게 할까?

예를 들어 전에 우리가 만들었던 auth 폴더에만 인증을 요구하도록..

그러기 위해서는 로컬 설정 파일을 이용하면 된다.
확인해보기 위해 우리가 설정했던 코드들을 원래대로 지워준다.
단, AllowOverride All 은 그대로 둔다.
오버라이드를 허용하겠느냐라는 말인데 허용을 해야
우리가 추가적으로 설정을 할 수 있다.


(수정)



그 후 웹서버를 재시작 시켜준다. :)



(웹 서버 재시작)



글로벌 설정 파일 중
/etc/httpd/conf/httpd.conf
파일의 404번 라인을 보면
.htaccess 파일을 추가적인 설정 파일로 적용 시킬 수 있다는 부분이 보인다.

->
.htaccess 파일이 있는 디렉터리부터 그 하위까지 영향이 있다.
이 파일이 존재하면 그 해당 디렉터리 아래부터 인증을 요구하게 된다.

이 기능을 이용하여 웹 인증을 부분적으로 적용시켜보겠다.
auth폴더에 들어가서 .htaccess 파일을 만들어준다.



(auth 폴더)




(.htaccess)


.htaccess 파일에는 우리가 저번에 사용하였던
코드를 그대로 넣어준다. (인증을 사용하겠다는 말이다.)
그렇게 하여 확인해보면
auth 폴더에 있는 login.php 페이지에 대해 인증을 요구하게 된다.



(인증 요구)



반면 다른 폴더에 있는 제로보드 게시판에 대하여는
인증을 요구하지 않는 모습을 확인 할 수 있다.




(인증 요구없음)



이로써 글로벌 설정과 로컬 설정을 인증 설정을 하면서
확인해 보았다.

다음 글에서는 파일 업로드 취약점을 공략하기 위해
php 파일을 업로드 해야하는데
이 기능이 막혀있었던 것을 우회하는 방법을 살펴볼 것이다.



+ Recent posts