워드프레스는 보안이 강하지만 1) 워드프레스 코어, 테마, 플러그인을 최신 버전으로 업데이트하지 않거나 2) 오랫동안 업데이트가 안 되고 방치되고 있는 플러그인을 사용하거나 3) 쉽게 짐직할 수 있는 비밀번호를 사용하는 경우 사이트가 해킹당하거나 멀웨어에 감염될 수 있습니다. 멀웨어에 감염되면 치료하기가 쉽지 않고, 치료를 확실히 하지 않으면 재발할 수 있으므로 1) 프로그램을 항상 최신 버전으로 유지하고 2) 정기적으로 백업하여 PC나 클라우드에 저장하고 3) 짐작하기 어려운 강한 비밀번호를 사용하고 4) 보안 플러그인(옵션)을 설치하면 안전하게 사이트를 운영할 수 있을 것입니다.
최근 워드프레스 사이트가 멀웨어에 감염되어 사이트의 거의 모든 폴더에 .htaccess 파일이 생성되어 있는 경우를 접하게 되었습니다. 이런 경우 멀웨어를 치료하고 .htaccess 파일을 모두 삭제해야 문제가 해결될 것 같습니다.
모든 .htaccess 파일을 삭제하는 방법(멀웨어 치료)
멀웨어에 감염되면 이상한 이름의 php 파일이 생성되는 경우가 많습니다. 그리고 위의 그림과 같이 .htaccess 파일이 생성되거나 변조되는 경우도 있습니다.
.htaccess 파일이 이미지 업로드 폴더를 비롯한 사실상 거의 모든 디렉터리에 생성되어 있었습니다. 해당 .htaccess 파일을 열어보니 다음과 같은 코드가 추가되어 있었습니다.
아마도 about.php, radio.php, index.php, content.php, lock360.php 파일을 외부에서 실행할 수 있도록 코드가 추가된 것 같습니다.
모든 .htaccess 파일을 삭제하려면 일일이 해당 폴더를 방문하여 삭제해야 하는데, 폴더가 너무 많기 때문에 사실상 수동으로 삭제하는 것은 불가능에 가까운 것 같습니다.
이 경우 SSH에 접속이 가능하면 코드 라인 하나로 모든 .htaccess 파일을 삭제할 수 있습니다.
find /PATH/ -name ".htaccess" -delete
위의 명령에 대하여 챗GPT에 물어보니 해당 디렉터리와 모든 하위 디렉터리에 있는 .htaccess 파일을 삭제한다고 하네요.
Yes, the find command you provided will search for all .htaccess files in the directory /PATH/ and any subdirectories below it, and delete them.
Here's how the command works:
* find is a command that searches for files and directories based on certain criteria.
* /PATH/ is the directory to start the search from. This can be replaced with the path to the directory you want to search.
* -name ".htaccess" specifies the name of the file to search for. This will match any files named .htaccess.
* -delete instructs find to delete any files that match the search criteria.
Keep in mind that this command will permanently delete any .htaccess files it finds. Make sure you have a backup of any important files before running this command.
위의 명령을 실행하면 돌이킬 수 없으므로, 진행하기 전에 백업을 실시하시기 바랍니다. 또한, 이 명령어 실행으로 인한 결과에 대해 확신을 가지지 않는 경우에는 실행하지 마시기 바랍니다.
모든 .htaccess 파일을 확인하려면 사이트의 루트 디렉터리로 이동한 다음, 다음 명령을 실행할 수 있습니다.
find . -type f -name ".htaccess"
모든 .htaccess 파일 목록을 텍스트 파일로 저장하려면 다음 명령을 실행할 수 있습니다.
find . -type f -name ".htaccess" > PATH/htaccess_list.txt
마치며
이상으로 리눅스 SSH에서 간단한 명령으로 모든 .htaccess 파일을 제거하는 방법에 대하여 살펴보았습니다. SSH 접속 권한이 없는 경우 웹호스팅 업체 담당자에게 연락하여 모든 .htaccess 파일을 삭제해 줄 수 있는지 문의해 볼 수 있을 것입니다.
워드프레스 문제로 어려움을 겪거나 멀웨어에 감염된 경우 여기에서 서비스(유료)를 의뢰하실 수 있습니다. 저렴한 비용에 문제를 해결해드릴 수 있습니다.
참고
https://avada.tistory.com/2929
https://avada.tistory.com/2897
https://avada.tistory.com/2923