Mongoose라고 아십니까?
Mongoose는 Windows나 Unix에서 작동되는 사용하기 쉬운 웹서버 입니다. Mongoose는 간단하고 깔끔한 API를 제공합니다. 웹 어플리케이션 개발자들, 임베디드 시스템 개발자들, 그리고 파일 공유를 빨리 구축하고 싶은 사람들이 사용하시면 좋습니다. 설치도 간단합니다.
Mongoose의 이전 이름은 SHTTPD였던것 같습니다. SHTTPD 의 웹사이트였던 “http://shttpd.sourceforge.net/“에 들어가면 “http://code.google.com/p/mongoose/“로 연결이 되어 있습니다.
Mongoose의 특징
Crossplatform – works on Windows and most flavors of UNIX
Optional configuration file
CGI, SSL, SSI, Digest (MD5) authorization, resumed download, aliases
IP-based ACL, Windows service, Keep-Alive, GET, POST, HEAD, PUT, DELETE methods
Simple and clean embedded API. Source is in single .c file to make embedding easy
With dynamic loading, embeddable in programs written in Visual Basic, Python, etc
Small footprint: 35 Kb executable on Linux 2.6 i386 system
CGI, SSL, SSI, Digest (MD5) 인증, 등의 기본적인 웹서버 기능이 있습니다. 재미난 것은 임베디드용으로 사용될 수 있다는 것입니다. 어플리케이션에 웹서버 기능을 넣을 수 있다는 이야기가 되는 것이죠.
아파치만을 사용 해 본 저로서는 httpd.conf 파일을 수정하는 것과 비슷한 Mongoose의 config 옵션들이 쉽게 다가 왔고 간단한 설명문으로도 쉽게 웹서버 인증을 걸수 있었습니다. 또, mongoose.exe 파일을 복사해 특정 디랙토리에 넣고 실행시키면 디랙토리의 파일들을 바로 공유할 수 있게 됩니다. mongoose.exe 파일을 실행하면 dos 창이 뜹니다. 그리고 http://yourpcip:8080 을 입력하면 좀전에 공유된 디랙토리의 내용이 표시됩니다. 공유가 끝나면 dos창을 닫으면 더이상 공유가 되지 않습니다. ^^ 더이상 짜증나는 윈도우의 파일 공유를 사용하지 않아도 되는것이죠.
웹서버 실행/종료
윈도우에서 설치라는 것도 단순히 파일의 복사일 뿐 레지스트리를 수정하지 않습니다. 윈도우에서는 서비스 형태로 실행이 되기 때문에 서비스 관리에서 stop/start 를 하시면 됩니다. 설치시 작성되는 시작 메뉴에도 “Start service”나 “Stop service” 메뉴가 있어 이것을 이용해도 됩니다. 서비스 관리에 restart가 없으니 아래와 같이 간단하게 restart.bat 파일을 만들어 실행시킬 수도 있습니다.
C:\WINDOWS\system32\sc.exe stop "Mongoose 2.3"
C:\WINDOWS\system32\sc.exe start "Mongoose 2.3"
ACL 옵션을 이용한 접근 제어
ACL 옵션을 이용해 접근 가능한 IP를 설정해 줄수도 있습니다. mongoose 메뉴얼에 있는 예제를 보면 “mongoose -admin_uri /ctl -protect /ctl=/tmp/passwords.txt” 라고 mongoose를 실행하면 “/ctl”이라는 어드민 URI를 설정하게 되고 “/tmp/passwords.txt” 파일에 등록된 유저들만 접근할 수 있습니다.
사용 중 문제점
단점으로는 한글 디랙토리는 사용할 수 없다는 것입니다. 그나마 다행인것은 파일 이름에 한글을 쓰는 것은 상관 없더군요. 파일 공유에 있어서 한글 디랙토리 지원이 않되는 것은 큰 단점인것 같습니다. 오픈 소스이니 어딘가에 일본어 지원이나 중국어 지원 버전이 있으지도 모르니 찾아 봐야겠네요.
PHP 연결하기
Mongoose는 CGI 방식으로 PHP를 사용 하게 됩니다. 대부분 많이 사용하는 apache + php의 경우 아파치의 모듈 형식으로 사용하는 것이라 Apache와는 작동 방식이 다릅니다. 하지만 대부분은 그냥 사용해도 무리가 없습니다.
php를 연결 하는 방법에서 가장 쉬운 방법은 mongoose.conf 파일에 아래와 같이 php-cgi.exe 파일을 등록시켜 주는 겁니다.
cgi_interp C:\php-5.2.8-Win32\php-cgi.exe -c C:\php-5.2.8-Win32\php.ini-recommended
-c 옵션은 php 환경 설정 파일의 위치를 지정해 주는 것입니다. Mongoose는 CGI Script로 perl과 php를 기본으로 사용할 수 있도록 되어 있습니다. 정확히 이야기 하면 cgi_ext 옵션으로 CGI Script 확장자를 지정할 수 있는데 기본값이 cgi, pl, php 입니다. 따라서 PHP 의 경우 cgi_interp 옵션만 등록하면 모든 php 파일이 정상 작동하게 됩니다.
mongoose.conf 파일을 수정했으면 항상 서비스를 재시작 해줘야 합니다. 이건 아파치 restart와 같은 의미입니다.
간단하게 “phpinfo();”를 실행하는 파일을 만들어 저장하고 브라우저로 확인하면 php 정보가 표시되는 것을 보실 수 있을겁니다. 이제 CGI 방식으로 작동하는 PHP 연결이 완성되었습니다.
CGI Script에 대해 재미있는 설정 방법중에서 파일의 첫번째 라인에 #!c:\full\path\to\cgi_interpreter 와 같이 cgi_interpreter 를 지정해 주는 방식이 있습니다. 이렇게 하면 다른 CGI Interpreter로 CGI Script를 실행하게도 할 수 있게 됩니다.
Dokuwiki 설치 후 실행
dokuwiki를 설치해 사용해 본 결과 CGI 방식이라 초기 실행시 약간 느린것 같은 느낌을 받았습니다. 하지만 설치한 PC가 좀 꼬진것을 감안한다면 성능이 좋은 PC에서는 괸찮을것 같습니다. 그리고 사용 목적이 강력한 웹서버에서 돌리는 웹서비스가 아니라 인트라넷으로나 사용할 목적으로 선택하는 것이기 때문에 충분히 만족할만 합니다. 가장 맘에 드는 것은 윈도우 작업 관리자에 표시되는 mongoose.exe의 “4,312 KB” 메모리 사용량입니다. 웹서버 하나에 4MB 정도면 아주 매력적입니다. 실행 속도도 상당히 빠른것 같습니다..
결론
간단하게 웹서버를 사용하길 원한다면 아파치 보다는 Mongoose를 사용하는 것이 좋을 것 같다. 무겁고 복잡하고 기능도 많고 파일도 많은 Apache 보다는 간단한 Mongoose를 사용하여 웹서버를 돌리는 것이 훨씬더 경제적입니다.
'보안' 카테고리의 다른 글
How to Hide data (Steganography) into MP3 file - mp3stego (0) | 2013.07.23 |
---|---|
AcessData 의 Forensic 이미징 도구 : FTK Imager 3.0 (0) | 2013.07.23 |
디코더, 암호알고리즘 관련 사이트 (0) | 2013.07.12 |
보안용어 (0) | 2013.07.10 |
정보보호 개요 (0) | 2013.07.06 |