NinjaFirewall .user.ini 경고 사라지지 않을 때 OpenLiteSpeed 해결 과정

NinjaFirewall .user.ini 경고는 플러그인 오류가 아니라 보안 점검 과정에서 발견되는 항목입니다. FULL WAF 모드를 활성화한 뒤 대시보드를 확인하던 중 PHP INI 관련 경고가 표시되는 것을 발견했습니다. 사이트는 정상적으로 작동하고 있었기 때문에 처음에는 무시해도 되는 메시지라고 생각했습니다.

며칠 동안 그대로 두었다가 내용을 자세히 살펴보니 .user.ini 파일이 웹에서 직접 접근 가능한 상태라는 의미였습니다. 보안 플러그인이 문제를 일으킨 것이 아니라 서버 설정을 조금 더 강화하라는 알림이었습니다.

경고 메시지에서 확인할 수 있었던 내용

NinjaFirewall 대시보드에는 .user.ini 파일에 대한 접근 가능 여부가 표시됩니다.

NinjaFirewall FULL WAF 환경에서 .user.ini 접근 가능 경고가 표시되는 화면
NinjaFirewall 대시보드에 표시된 PHP INI 관련 보안 경고

이 상태에서는 브라우저에서 .user.ini 파일을 직접 요청할 수 있는 가능성이 존재합니다. 실제 설정값이 외부에 노출되는 경우는 많지 않지만 보안 측면에서는 차단하는 편이 안전합니다.

Apache 방식은 적용되지 않았다

검색해보면 대부분 Apache 환경 기준 해결 방법이 먼저 나옵니다.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule \.ini$ - [F,L]
</IfModule>

Apache 서버에서는 위 규칙만으로 해결되는 경우가 많습니다. 저도 같은 방법을 적용해 보았지만 OpenLiteSpeed에서는 경고가 그대로 유지됐습니다. Nginx용 설정도 확인했지만 사용하는 서버 환경과 맞지 않았습니다.

NinjaFirewall .user.ini 경고 원인을 확인한 과정

문제를 다시 확인해보니 서버 종류가 핵심이었습니다. OpenLiteSpeed는 Apache와 비슷한 구조를 가지고 있지만 모든 규칙이 동일하게 적용되지는 않습니다. 특히 .user.ini 접근 차단은 WebAdmin의 Context 기능을 사용하는 편이 더 확실했습니다.

NinjaFirewall .user.ini 경고가 계속 남아 있다면 서버 종류부터 확인하는 것이 좋습니다.

Virtual Host에서 Context 설정 추가

OpenLiteSpeed WebAdmin에 접속한 뒤 Virtual Hosts 메뉴로 이동했습니다.

OpenLiteSpeed WebAdmin에서 Virtual Hosts 메뉴를 선택한 상태
OpenLiteSpeed Virtual Hosts 목록에서 대상 도메인을 선택하는 화면

대상 도메인을 선택한 후 Context 메뉴로 이동했습니다.

OpenLiteSpeed Context 설정 목록에서 신규 항목을 생성하는 화면
Virtual Host 내부 Context 메뉴에서 새 규칙을 추가하는 화면

우측 상단의 추가 버튼을 눌러 새로운 Context를 생성했습니다.

Static Context 생성

새 Context를 만들 때 Type을 Static으로 선택했습니다.

OpenLiteSpeed Context 추가 과정에서 Static 항목을 선택한 모습
새 Context 생성 시 Static 타입을 선택하는 화면

이후 상세 설정 화면으로 이동했습니다.

.user.ini 접근 차단 규칙 등록

Context 설정에서는 아래 두 항목만 입력했습니다.

  • URI : /.user.ini
  • Accessible : No
URI를 .user.ini로 지정하고 Accessible 값을 No로 설정한 화면
.user.ini 파일 접근 차단 규칙을 등록하는 Context 설정 화면

설정을 저장한 뒤 서버에 적용했습니다.

OpenLiteSpeed 재시작 후 다시 확인

규칙을 저장한 뒤에는 OpenLiteSpeed를 다시 불러와야 합니다.

OpenLiteSpeed WebAdmin에서 Graceful Restart를 실행하는 화면
OpenLiteSpeed 설정 반영을 위한 Graceful Restart 메뉴

저는 Graceful Restart를 사용했습니다. 전체 서버 재부팅 없이도 설정이 즉시 반영되었습니다.

NinjaFirewall .user.ini 경고가 사라진 결과

재시작 후 NinjaFirewall 대시보드를 다시 확인했습니다.

NinjaFirewall 대시보드에서 PHP INI 관련 경고가 제거된 모습
.user.ini 접근 차단 후 경고 메시지가 사라진 상태

이후 NinjaFirewall .user.ini 경고가 더 이상 나타나지 않았습니다. 실제 테스트 과정에서도 .user.ini 직접 접근이 차단된 것을 확인할 수 있었습니다. 사이트 동작에는 영향을 주지 않았고 보안 상태만 개선되었습니다.

적용 후 확인한 변화

이번 NinjaFirewall .user.ini 경고 해결 과정에서 확인한 변화는 다음과 같았습니다.

  • 보안 경고 제거
  • .user.ini 직접 접근 차단
  • NinjaFirewall 상태 정상화
  • 사이트 건강 점검 항목 감소
  • 불필요한 파일 노출 위험 감소

OpenLiteSpeed 환경에서는 Apache 방식보다 Context 설정이 더 확실하게 동작했습니다.

특히 CyberPanel과 OpenLiteSpeed 조합을 사용하는 경우라면 WebAdmin 설정으로 처리하는 편이 훨씬 간단했습니다.

FAQ

NinjaFirewall .user.ini 경고는 무시해도 되나요?

사이트가 즉시 위험해지는 것은 아니지만 설정 파일 접근이 가능하다는 의미이므로 차단하는 편이 좋습니다.

OpenLiteSpeed에서 .htaccess 규칙만으로 해결되지 않나요?

환경에 따라 다릅니다. 경고가 계속 남아 있다면 Context 방식으로 접근 차단하는 것이 더 확실했습니다.

NinjaFirewall .user.ini 경고 해결 후 서버 재부팅이 필요한가요?

대부분은 Graceful Restart만으로 충분합니다. 설정 적용 여부만 다시 확인하면 됩니다.

관련 글 추천

댓글 달기

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

위로 스크롤