More

    워드프레스 WordPress 보안 플러그인 Wordfence .user.ini 접근 경고 해결하기 Nginx 환경

    워드 프레스 블로그를 운영 하면서 보안을 위해서 사용하는 플러그인이 하나 있습니다. 바로 Wordfence 라는 플러그인인데요. 보안과 관련된 플러그인인데요. 워드프레스를 시작하면서 초반부터 설치를 해서 사용하고 있었습니다. 플러그인 기록을 살펴보면 문제가 될만한 IP들을 차단해주는것 같아서 만족하며 사용을 했었습니다. 하지만 항상 “Publicly accessible config, backup, or log file found: .user.ini” 이라는 문구가 적힌 접근 경고 알람이 떴었습니다. Critical한 문제라고 적혀있어서 빨리 수정하고 싶은마음이었는데요.

    워드프레스 WordPress 보안 플러그인 Wordfence .user.ini 접근 경고

    초반에 검색 등을 통해서 수정을 시도해보았는데 해결이 되지 않았고, 한동안 무시하고 지내습니다. 그동한 이와 관련된 문제가 되지는 않았기 때문에 불편함 없이 그냥 사용을 해왔는데요. 최근들어 다시 수정을 해보고자 마음을 먹었고, 방법을 찾아서 공유를 하고자 합니다.

    이런 문제가 발생 하는 이유

    이 문제는 보통 아래와 같은 원인으로 발생한다고 합니다. 사실 보안에 대해서 모르기 때문에 최소한으로 이런 서비스에서 안내해주는 이슈들은 수정을 하는것이 맞는것 같습니다.

    1. 서버 보안 설정이 기본값 그대로인 경우
    nginx나 Apache의 기본 설정에서는 .user.ini.env, .git 등의 민감 파일을 차단하지 않는 경우가 있습니다.

    2. 웹 루트 경로에 민감 파일이 그대로 위치한 경우
    워드프레스 설치 시 자동으로 .user.ini가 생성되는 경우도 있는데, 이때 접근 제한이 걸려 있지 않으면 외부에서도 접근 가능합니다.

    3. Nginx 환경에서 .htaccess 파일이 작동하지 않는 경우
    Apache에서는 .htaccess로 간단히 접근을 막을 수 있지만, Nginx는 수동으로 설정을 추가해야 합니다.

    해결 방법 – Nginx 설정 변경하기

    저의 경우는 워드프레스 운영을 AWS의 Lightsail 이라는 저렴한 서버 서비스를 통해서 이용하고 있습니다. Nginx 의 경우 설정 값에 보안, 성능, 로깅과 같은 세부 정책을 처리하는 설정 값을 가지고 있습니다. 따라서 설정 값에 “.user.ini”의 접근을 차단할 설정을 넣어 줄수 있습니다. 아래 방법을 통해서 Nginx의 설정을 수정해주세요.

    1. 설정 파일 다운로드하기
    nginx의 설정 파일을 다운로드 하기 위해서는 SSH 클라이언트를 통해서 수정을 하는 방법과 파일 서비스를 통해서 직접 설정 파일을 다운 받아 수정하는 방법이 있습니다. SSH 클라이언트 이용시 텍스트 편집이 편하지는 않아서 저는 직접 파일을 다운받아 수정하는 방법을 선택하였습니다.

    1) 먼저, FileZilla로 서버에 접속합니다.
    2) /etc/nginx/sites-available/ 디렉터로로 이동합니다.
    3) default 이름의 설정 파일을 로컬에 다운로드 합니다.

    2. 설정 파일 편집하기(Location 블록 추가하기)
    다운 로드 받은 설정 파일을 메모장 등으로 열어서 아래 내용을 Server 블록 내부에 추가해줍니다.

     	location ~ /\. {
    		deny all;
    		access_log off;
    		log_not_found off;
    	}

    참고로 서버 블록은 아래와 같은 형태 입니다. 아래를 보시면 저의 경우 이미 location 블록이 추가 되어 있는것이 보이실텐데요. 기존에 있던 블럭은 그대로 두고 location 블럭을 추가할수 있기 때문에 뒤에 붙쳐 넣기 하시면 되겠습니다.

    3. 수정 파일 업로드
    FileZilla로 수정된 default 파일을 다시 /etc/nginx/sites-available/에 업로드합니다.

    4. Nginx 재시작
    설정을 반영하기 위해 Nginx를 재시작합니다. 아래의 명령어를 SSH 클라이언트에 접속하여서 입력하는 완료 입니다.

     	sudo systemctl reload nginx

    5. 수정 여부 확인하기
    다시 브라우저에서 https://사용자 주소/.user.ini로 접속해 보면 수정여부를 확인할수 있습니다.
    이제는 404 Not Found 또는 403 Forbidden 응답이 표시되어야 합니다.
    저도 아래와 같이 수정이 된것을 확인하였습니다. 수정전에는 해당 주소 접속시 user.ini 파일이 바로 다운로드 되었었어요.

    지금까지 Nginx 환경 워드프레스 WordPress 보안 플러그인 Wordfence에서 발생하는 .user.ini 접근 경고 해결 방법을 소개 드렸습니다. 막상 수정하고 나니 간단한 부분이었는데, 오래동안 접근 경고를 그대로 두었던것이 아쉬울 정도 였어요.

    Latest