NinjaFireWall 플러그인에서 .user.ini 경고 해결하는 방법

최근 NinjaFireWall 보안 플러그인으로 변경한 후 FULL WAF 설정을 완료했는데, 다음 날 .user.ini 경고가 발생하는 것을 발견했습니다. 이 경고는 보안 플러그인의 작동에 문제가 있는 것이 아니라, 보안을 강화하라는 메시지입니다.

보안 문제를 해결하기 위해 여러 방법을 찾아보았는데, .htaccess 파일에 코드를 추가하면 문제가 해결된다는 문서를 참고하여 시도해보았으나, 여전히 문제가 해결되지 않았습니다.

OpenLiteSpeed 웹 서버를 사용하고 있기 때문에 다른 방법을 적용해야 하는지 알아본 결과, Webadmin 관리 도구에서 규칙을 추가함으로써 문제를 해결할 수 있었습니다. 비록 간단한 해결 방법일 수 있지만, 처음 시도하시는 분들을 위해 정리해보겠습니다.

.user.ini 경고

user.ini

NinjaFireWall 플러그인 대시보드에 들어가면 상단에 PHP INI 관련 경고 메시지가 표시됩니다. 이 메시지를 그대로 해석하면 user.ini 파일이 웹 사용자가 읽을 수 있습니다.는 내용으로, 이는 파일 접근을 차단하라는 경고입니다.

이 문제를 해결하는 방법은 아래에 공식 블로그 게시물로 제시되어 있습니다. 저는 설명된 방법으로 해결하지 못했지만, 시스템이 다를 수 있으니 내용을 정리해 보겠습니다.

Apache HTTP server

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteRule \.ini$ - [F,L]

</IfModule>

아파치 서버일 경우 위의 코드를 .htaccess 파일에 추가하시면 됩니다.

Nginx HTTP server

server {

...

location ~ \.ini$ {

return 444;

}

...

}

Nginx 서버일 경우에는 vhost 구성 파일에 위의 코드를 추가하시면 됩니다.

위의 내용을 추가한 후 서버를 재시작하면 문제가 해결될 수 있습니다. 그러나 OpenLiteSpeed 웹 서버를 사용하는 경우, 위의 방법으로는 해결되지 않으므로 아래의 방법을 따라 진행하시기 바랍니다.

OpenLiteSpeed Webadmin 해결 방법

user.ini

OpenLiteSpeed 웹 서버를 사용한다면 브라우저 주소창에 IP주소:7080 입력하게 되면 OpenLiteSpeed Webadmin 관리 도구로 들어갈 수 있습니다. 여기서 왼쪽 메뉴에 Virtual Hosts 들어간 후에 주 도메인을 선택하시면 됩니다.

user.ini

주 도메인에 접속하면 상단에 여러 가지 메뉴가 표시됩니다. 여기서 ‘Context’를 선택한 후, 오른쪽에 있는 ‘+’ 버튼을 클릭하여 추가 규칙을 생성하시면 됩니다.

user.ini

+ 버튼을 클릭하면 New Context 화면이 나타납니다. 여기서 Type을 Static으로 선택한 후, 오른쪽에 있는 다음 버튼을 클릭하시면 됩니다.

user.ini

다음 버튼을 클릭하면 Static Context Definition 화면이 나타납니다. 이곳에서 아래와 같이 설정하시면 됩니다.

  • URI: /.user.ini
  • Accessible: No

위와 같이 설정을 마친 후, 오른쪽 상단에 위치한 디스켓 모양의 저장 버튼을 클릭하여 설정을 완료하시면 됩니다.

user.ini

설정이 완료되었다면, OpenLiteSpeed Webadmin 관리 도구의 왼쪽 상단에 있는 IP 주소를 클릭하여 서버를 재시작하시면 됩니다.

.user.ini 경고 해결 모습

user.ini

이제 NinjaFireWall 플러그인 대시보드로 가게 되면 경고 메시지가 사라진 것을 확인할 수 있을 것입니다. OpenLiteSpeed 웹 서버를 사용하는 경우 위에 소개한 방법을 통해서 문제를 해결해 보시기 바랍니다.

▶ NinjaFirewall 보안 플러그인Full WAF 모드 활성화하는 방법

▶ LiteSpeed Cache+LightSail CDN 설정하는 방법을 정리

▶ OpenLiteSpeed 웹서버에서 CORS 오류 해결하는 방법

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다