'basic'에 해당되는 글 1건

  1. 2016.12.30 Apache2에서 Basic 인증 방법

오랜만입니다.

블로그는 만들어놓고 어째 급 귀찮아서 글을 달랑 한개 쓰고 안 썼네요;

각설하고, 이번 포스팅은 전 글에서 쓴 것처럼 Apache2에서 Basic 인증을 설정하는 방법입니다.

Basic 인증은, 가장 간단한 인증 방법으로 아이디와 패스워드를 Base64로 인코딩해서 송신합니다. 그런데 이 Base64라는건 거의 일정한 방식으로 인코딩이 되는 바람에 와이어샤크 등의 패킷 캡쳐 프로그램에서 아이디와 패스워드를 그대로 볼 수 있다는 단점이 있습니다. 하지만 간단하기 때문에 많은 사이트에서 사용하고 있다고 합니다. 이 Basic 인증을 발전시켜 MD5로 해시한게 Digest 인증이구요.

설명은 이쯤 하고, 본격적으로 방법에 대해 설명하도록 하겠습니다.

여기서는 리눅스에 Apache2가 설치되어 있는 것으로 가정하도록 하겠는데요. 사실 Basic 인증은 Digest 인증처럼 모듈을 추가한다던지 하는 작업이 필요없기 때문에 Apache2 하나만으로도 충분하긴 합니다.

먼저 Apache2 웹서버 기본 디렉토리에 인증을 걸 디렉토리를 하나 만듭니다. 웹서버에 올라갈 기본 디렉토리는 /var/www/html/ 이고 여기서는 basic이라는 디렉토리명으로 하나 만들었습니다. 

# cd /var/www/html/ 로 html 디렉토리까지 들어가시고

# mkdir basic으로 basic 디렉토리를 만들어줍니다.

다음 

# cd basic 으로 basic 디렉토리에 들어가신 후 작업을 시작합니다.

먼저 만들 파일은 유저 인증 아이디와 패스워드가 저장될 파일입니다.

여기서는 htpasswd 프로그램을 이용해서 만드는데요.

아래와 같이 작성해주시면 됩니다.

# htpasswd -c 파일명 유저명

보통은 파일명을 .htpasswd로 해주므로 예를 들자면 이런 식으로 만드심 됩니다.

# htpasswd -c .htpasswd kim

저걸 입력하시면 비밀번호를 두 번 입력하라고 나오며 그걸 입력하면 kim이라는 유저가 등록되어 인증이 가능하게 됩니다.

스크린샷을 보시면 이렇습니다.

요런 식으로 몇번 더 하시면서 유저를 등록하시면 됩니다.

그러면 잠깐 파일의 내용이 어떤지 보도록 하죠.

# less .htpasswd 를 이용해서 파일의 내용을 보면

이렇게 나름 암호화 된 것처럼 보이지만 사실은 패킷 캡쳐 프로그램에서 간단하게 볼 수 있습니다.

그건 나중에 또 살펴보도록 하겠구요.

다음에는 .htaccess 파일은 만들도록 하겠습니다.

.htaccess 파일은 Digest 인증에서 사용했던 .htdigest 파일과 비슷하게, 디렉토리에 Basic 인증을 거는 용도의 파일로 생각하시면 됩니다.

그럼 vim을 이용해서 파일을 만들도록 하죠.

#vim .htaccess로 파일을 만든 후 아래와 같이 작성합니다.


AuthType Basic

AuthName "Input your ID and Passwd"

AuthUserFile /var/www/html/basic/.htpasswd

require valid-user


이렇게 하시고 저장하시면 됩니다. 

AuthType은 인증 타입의 지정

AuthName은 서버 접속시에 출력되는 말

AuthUserFile은 인증 파일이 있는 디렉토리, 즉 .htpasswd 파일이 있는 디렉토리를 지정하시면 되고

require는 허가된 유저만이 접속할 수 있다는 뜻입니다.

그럼 파일 내용을 살펴보면

요런 식으로 작성을 하시면 됩니다.

마지막으로 인증 성공시에 나올 웹 페이지를 간단하게 만들겠습니다.

#vim index.html 로 대충 파일을 만들어서

간단하게 설정하도록 하겠습니다.

이걸로 Basic 인증 설정은 끝났습니다.

그러면 실제로 접속을 해보도록 하겠습니다.

지금 제 아이피가 192.168.0.6 이므로 웹 브라우저에서 

http://192.168.0.6/basic/index.html 로 접속을 해보면

이렇게 아이디와 패스워드를 인증하는 창이 뜨네요.

여기에 아까 .htpasswd 파일에 등록한 아이디와 비밀번호를 입력하면

이렇게 인증이 성공했습니다.

혹시 아이디와 패스워드가 틀리다면 세 번까지 입력하는 화면이 나오고

인증 실패 화면이 뜨면서 접속이 불가능해집니다.

확실히 Digest 인증보다는 설정이 쉽기는 하지만, 간단하게 아이디와 패스워드가 탈취될 수 있다는 점에서 되도록 사용하지 않기를 권합니다.

여기서 잠깐 정말 아이디와 패스워드가 탈취되는지 확인해보도록 하겠습니다.

와이어샤크를 이용해서 웹서버의 패킷을 캡쳐해보면...

주황색부분에 보이듯이 아이디와 패스워드가 어떤 암호화도 되지 않은 상태로 간단하게 나옵니다. 이렇게 위험합니다 Basic 인증이....;

그러면 이것으로 Basic 인증 설정 방법을 마치도록 하겠습니다.

다음에는 뭘 쓰지...


참고 사이트

https://ja.wikipedia.org/wiki/Basic%E8%AA%8D%E8%A8%BC

http://promamo.com/?p=2976

http://www.luft.co.jp/cgi/htpasswd.php

'정보보안' 카테고리의 다른 글

Apache2でDigest認証の設定方法  (0) 2016.12.02
Apache2에서 Digest 인증 설정  (0) 2016.11.25
Posted by 야마히코
,