시놀로지 나스 서버 워드프레스 CPU 99% 점유율 해킹일까?

시놀로지 나스 서버에서 CPU의 과도한 점유율 증상은 워드프레스 플러그인이나 과도한 로봇의 접근이나 해킹 시도 등에도 발생할 수 있는데요. 워드프레스 CPU 99% 증상이 있는 경우에는 원인을 꼭 찾아보셔야 합니다.

시놀로지 나스 서버 워드프레스 접속 지연 현상

시놀로지 나스는 파일 공유, 미디어 서버, 웹 서버 등 사용자의 필요에 따라 다양한 사용이 가능한 제품인데요.

그 중 웹 서버 기능을 활용하며 그누보드, 워드프레스와 같은 웹사이트를 쉽게 구축 할 수 있습니다.

보통 홈페이지라고 표현하는 웹사이트를 만들기 위해서는 인터넷 서버 공간이 필요한데요.
이러한 서버 공간을 제공하는 서비스를 호스팅이라고 부릅니다.

호스팅 서비스는 일반적으로 1개월 단위로 일정 금액을 지불하면 이용할 수 있는데요.
시놀로지 나스를 서버로 이용하는 경우에는 별도의 호스팅 비용 지불 없이 내 서버를 이용해서 웹사이트를 운영할 수 있습니다.

문제는 유지 보수 측면에서 나스로 직접 서버를 만들어서 사용할 경우 이슈가 발생한 경우 대처하기 어렵다는 점 인데요.
이런 문제 때문에 대부분 호스팅 업체를 이용합니다.

어느 정도 서버에 대한 이해가 있다면 충분히 직접 운영을 해보는 것도 추천 드리는데요.
그동안 문제 없이 잘 사용하던 워드프레스 접속이 갑자기 말도 안되게 느려지는 현상이 저에게 발생했습니다.

시놀로지-DSM


나스를 사용하고 있는 환경에 대해서 먼저 설명을 드려야 어느 정도 비교가 될 수 있을 것 같습니다.

DS218+ 모델을 램을 업그레이드해서 10GB로 사용하고 있으며 DSM은 최신 버전을 설치하여 운영하고 있습니다.
인터넷 환경은 LG U+ 기가 슬림 상품을 이용하고 있으며 U+ 공유기가 아닌 아이피타임 공유기를 물려서 사용하고 있습니다.

서버 운영을 위해 기존에 나스용 하드디스크를 사용하다가 삼성 870 EVO 2TB SSD 2개를 SHR 레이드로 구성했습니다.

워드프레스 CPU 점유율 누가 잡아먹고 있나?

CPU 점유율이 99%를 계속 유지할 때 이미지를 저장하지 못해서 사용자가 몰리는 시점에 발생되는 상태를 먼저 보여드릴게요.

워드프레스-리소스-모니터-CPU


리소스 모니터에서 작업 관리자로 들어가면 백그라운드 시스템의 점유율을 세부적으로 확인할 수 있는데요.
DSM 내부 서비스 항목에 php80-fpm 항목이 무려 CPU의 56%를 점유하고 있습니다.

문제가 발생한 99% CPU 점유율을 찍을 때는 해당 항목이 계속해서 높게 유지되었는데 해결을 하고 난 이후에는 일시적으로 높아지지만 해결 이후에는 10~30% 상태로 안정적으로 유지되고 있습니다.

어쨌든 문제는 php에서 뭔가 과부하가 걸리고 있는 상태로 볼 수 있는데요.

문제가 될 수 있다고 생각하는 부분을 제거해나가기 시작했습니다.

참고로 php-fpm은 php를 실행하기 위한 프로세스 관리자로 웹 서버와 php간 통신을 효율적으로 처리하는 역할을 하는데요.
php8.0 버전을 쓰면 php80-fpm으로 나오고 php 7.4 버전을 쓰면 php74-fpm 이런 형식으로 보이게 됩니다.

과도한 워드프레스 CPU 점유율 문제 해결

워드프레스를 사용하면서 가장 골치 아픈 부분을 하나 고른다고 하면 통계 플러그인이 마땅치 않다는 점 인데요.
그래도 그나마 기능적으로 유용하다고 생각하는 WP-Statistics 플러그인을 설치해서 1년 넘게 사용하고 있었습니다.

기능적인 문제로 구버전을 썼는데 플러그인 연결 서버가 너무 느려서 간혹 통계 서버가 연결이 안되는 경우도 있었는데요.
결국 구버전을 지우고 가장 최근 버전을 설치해서 사용하고 있었습니다.

그렇지만 최근 버전을 사용해도 연결 서버와 문제가 있는지 통계를 불러올 때 속도가 매우 느린 문제가 있었는데요.
과도한 CPU 점유율과 어느 정도 연관이 있지 않을까 유추할 수 있었습니다.

DSM-리소스-모니터


결과적으로 WP-Statistics 삭제 후 CPU 점유율이 계속 99% 유지하던 현상은 잡혔는데요.

어떤 플러그인을 쓰던지 해당 플러그인이 연결되는 서버에 연결 문제가 발생하면 결과적으로 서버에도 부담을 주는 게 아닌가 하는 생각을 해봅니다.

추가적으로 XML-RPC 비활성화 작업도 진행했는데 외부 프로그램이 워드프레스 사이트에 접근할 수 있게 도와주는 기능이지만 보안 취약점을 만들 수 있어 보안을 강화하기 위해서 필수적으로 비활성화 해주시는 게 좋습니다.

해외 사이트에서 찾아보면 시놀로지 나스가 아니더라도 php-fpm CPU 점유율이 높아지는 현상으로 해결하지 못한 사례가 많다고 하는데요.

일단 문제가 될 수 있는 부분은 최대한 제거하면서 해결해 나가는 게 가장 좋은 방법이 아닐까 생각을 해봅니다.

안전한 워드프레스 플러그인 및 세팅

워드프레스 보안을 위해 필수적으로 사용해야 하는 플러그인 몇 가지 알려드릴게요.


1. WPS Hide Login

WPS-Hide-Login


로그인 페이지 URL을 별도로 설정해서 사용할 수 있게 해주는 플러그인 입니다.

워드프레스 관리자 페이지 로그인 주소가 도메인/wp-admin으로 되어 있는데요.
wp-admin이라는 주소 이름을 임의로 변경할 수 있게 해주는 플러그인 입니다.

스크린샷에 보이는 네모칸 부분에 원하는 주소를 입력하여 저장해주시면 됩니다.


2. Limit Login Attempts

Limit-Login-Attempts


관리자 페이지 해킹 시도를 막아주는 플러그인 입니다.

1번에 소개한 WPS Hide Login 세팅하기 전에는 로그인 시도가 엄청나게 많았는데 쓰고 나면 확실히 줄어듭니다.

한 가지 무서운 점은 관리자 로그인 아이디를 어떻게 알았는지 admin이 아닌 사용하고 있는 아이디로 로그인 시도가 빈번하게 있습니다.

주기적으로 강력한 패스워드 변경을 해주시는 게 좋을 것 같습니다.


3. Disable XML-RPC

Disable-XML-RPC


앞서 설명 드린 XML-RPC 비활성화 플러그인으로 설치 후에 활성화만 해주시면 완료됩니다.