기본적으로 Lucee Server의 경우 Java기반의 웹어플리케이션 서버이다 보니 Java를 통한 시스템접근에 대한 보안 이슈가 있을 수 밖에 없습니다. 즉, .cfm파일을 작성하여 사용할 때 시스템 내부의 파일과 폴더에 접근이 되는 보안상 문제가 생길 수 있습니다.
분명 어플리케이션을 만들다보면 시스템에 파일을 기록하거나(게시판에서 업로드하는 것과 같은) 아니면, 파일을 삭제하거나, 이동하거나 하는 기능이 필요합니다. 그런데 Web root를 벗어나서 시스템의 중요 파일이 존재하는 /bin이나, /etc 등에 접근이 가능하다면 보안에 매우 취약해 지겠죠?
그래서 Lucee Server의 관리자에 들어가보면 아래 그림처럼 Securty 메뉴에 Access에 대한 다양한 보안기능을 제공합니다. 특히 이중 CFML Environment의 File Access 설정은 cfm문서내에서 파일을 읽고, 생성하고, 지우고, 이동하는 범위를 웹 파일들이 존재하는 Web root내로 제한할 것인지, 아니면 시스템 전체로 제한하지 않을 것인지를 설정하는 기능을 제어할 수 있습니다.
Defines how Lucee can interact with the local filesystem in a web context.
- none: allows no access to the filesystem at all
- local: allows only access to the filesystem within the webroot
- all: allows full file access on the hosts filesystem
옵션은 크게 none, local, all 입니다. none은 말그대로 파일시스템에 일체의 접속을 허락하지 않는 옵션입니다. 그리고 all은 호스트의 파일시스템 전체에 접근이 가능합니다. 기본값은 all입니다. 마지막으로 local은 시스템의 특정 부분은 Local로 지정해서 그 부분에만 접근이 가능하도록 제한합니다.
local옵션을 선택하면, 어느 디렉토리를 local로 지정할지 묻습니다. 그런데 이 local 옵션이 버그가 있는지 한번 local로 지정하면 재부팅 등 후 관리자로 접근이 불가능해지는 불상사가 발생합니다.
만약 local directory를 /home/user/ 등의 경로로 지정하고 시스템을 재부팅하거나 Lucee를 재시작하게 되면 관리자모드에 접근이 불가능해 집니다. 일종의 버그인데 이를 해결하는 방법은 다음과 같습니다.
이 문제는 이미 보고는 된 것 같은데, 아무리 검색해도 해결방법은 없는 것 같아서 오늘 이 글을 작성하게 되었습니다. 차기 버전에서는 해결 되길 기대합니다.
참조 :
Access to Lucee Server Admin prohibited by security manager
No access to Server admin if changing file access to local
1. 일단 Lucee Server를 중지합니다. Linux의 경우라면 시스템에 로그인해서 /etc/init.d/lucee_ctl stop 명령으로 중지할 수 있습니다.
2. 그런 다음, 다음의 경로의 파일을 vi에디터로 열어 수정합니다.
/opt/lucee/tomcat/lucee-server/context/lucee-server.xml
위 파일은 관리자모드에서 설정한 값들이 저장된 일종의 설정파일입니다. 이 파일의 하단부에 CFML Environment의 File Access 설정부분이 있습니다. xml파일을 열어 아래 코드와 같은 xml 노드 부분을 찾아 기재된 부분의 값(file="local")을 yes로 변경해 줍니다.
<security access_read="protected" access_write="protected" cache="yes" cfx_setting="yes" cfx_usage="yes" custom_tag="yes" datasource="yes" debugging="yes" direct_java_access="yes" file="yes" gateway="yes" mail="yes" mapping="yes" orm="yes" remote="yes" scheduled_task="yes" search="yes" setting="yes" tag_execute="yes" tag_import="yes" tag_object="yes" tag_registry="yes"/>
3. Lucee Server를 다시 시작합니다. Linux의 경우라면 /etc/init.d/lucee_ctl start 명령으로 실행할 수 있습니다.
4. 이제 http://[SERVER IP or SERVER DOMAIN]/lucee/admin/server.cfm?action=security.access 으로 접속하면 관리자 접속이 가능해 집니다.
'ColdFusion' 카테고리의 다른 글
[ColdFusion Security] LOG4J 이슈 (0) | 2022.01.06 |
---|---|
Adobe ColdFusion Pre-Release Program Closure (0) | 2021.04.17 |
ColdFusion에서의 QR코드 생성, 그리고 Image Masking (0) | 2019.11.29 |
Lucee Server에서 PDF생성 시 한글 폰트(CJK custom font) 사용하기 (0) | 2019.09.23 |
Lucee Server에서 Remote address가 127.0.0.1로만 반환될 때 (2) | 2019.09.03 |
JSP와 ColdFusion의 Session 공유 (0) | 2019.08.26 |
ColdFusion에서 만들어 보는 동적 음성 Captcha (0) | 2019.08.26 |
CFFTP 연결 후 디렉토리 및 파일명의 한글이 깨져 보일 때 (0) | 2019.08.25 |