워드프레스를 사용하게 되면 /wp-admin
주소로 관리자 대시보드에 접근할 수 있게 됩니다.
그러나 이러한 공개적 주소를 사용하여 외부 공격자가 wp-admin
주소에 무단으로 접속하여 무차별 대입 공격(임의 패스워드 입력을 시도함으로서 관리자 권한을 취득하려는 공격) 시도를 할 수 있습니다.
따라서 관리자 페이지를 특정한 네트워크에서 접속할 수 있게 하거나 페이지 주소 자체를 변경하여 외부에서의 접근이 쉽지 않도록 예방해야 합니다.
이 포스트에서는 워드프레스 관리자 페이지를 차단하는 여러가지 방법에 대해 기술하였습니다.
워드프레스 플러그인을 사용하면 wp-admin
접속을 직접적으로 하지 못하도록 방지할 수 있습니다.
대표적으로 Hide My WP 플러그인이 있습니다. wp-admin
디렉토리와 wp-login.php
파일에 대한 접근 경로를 변경할 수 있는 이점이 있습니다.
HTTPD(Apache 2)를 사용하여 웹 서비스를 구동 중인 경우 .htaccess
파일을 수정하여 쉽게 액세스 설정을 변경할 수 있습니다.
.htaccess
파일은 HTTPD 루트 디렉토리(최상단)에 위치해야 하며 워드프레스 파일 중 wp-config.php
또는 wp-login.php
파일이 존재하는 위치에 파일을 생성해주시면 됩니다.
(동일한 .htaccess
파일에 하단의 내용을 모두 추가할 것입니다.)
먼저 .htaccess
파일을 직접적으로 접근하지 못하도록 방지하는 내용입니다.
<FilesMatch "(\.htaccess)"> Order deny,allow Deny from all </FilesMatch>
다음으로 데이터베이스 접속 정보 등이 포함되어 있는 wp-config.php
파일에 대해 접근하지 못하도록 방지하는 내용입니다.
<files wp-config.php> order allow,deny deny from all </files>
이제 wp-login.php
파일에 대해 특정 IP에서만 접근할 수 있도록 지정합니다. Allow from [IP Address]
와 같은 형식으로 지정 가능합니다.
<Files wp-login.php> Order Deny,Allow Deny from all Allow from 192.168.###.### </Files>
모든 과정이 완료되었다면 HTTPD 서비스를 재기동합니다. 다음 명령어를 입력합니다.
# RedHat 계열 / CentOS [root@localhost ~]# service httpd restart # Debian 계열 / Ubuntu [root@localhost ~]# service apache2 restart
이번에는 Nginx를 사용 중인 웹 서버에서 설정할 수 있는 방법입니다.
Server
블록 안쪽에 location
블록을 새로 추가합니다. 해당 블록에는 wp-admin
디렉토리와 wp-login.php
페이지가 주소에 포함되어 있을 경우 특정 IP 주소에 대해서만 접근할 수 있도록 구성되어 있습니다.
http { ... (생략) server { ... (생략) location ~ ^/((wp-admin/)$|(wp-login\.php)) { try_files $uri $uri/ /index.php?$args; index index.html index.htm index.php; allow 192.168.1.###; allow 192.168.2.###; deny all; } ... (생략) } }
allow [IP Address]
형식과 같이 입력하여 접속을 허용할 호스트 주소를 입력해주시면 됩니다. 이후 이 호스트 주소가 아닌 경우 모두 접근을 거부할 수 있도록 합니다.
모든 과정이 완료되었다면 Nginx 서비스를 재기동합니다. 다음 명령어로 설정을 다시 로드할 수 있습니다.
[root@localhost ~]# service nginx reload
INSTALL_FAILED_INSUFFICIENT_STORAGE 문제 안드로이드 스튜디오에서 에뮬레이터를 실행하고 개발중인 애플리케이션을 실행하려 하면 로그 창에 아래와 같이 표시되면서…
리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…
JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…
NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…
언제부턴가 윈도우 11을 처음 설치할 때 마이크로소프트(Microsoft) 계정 로그인을 강제로 요구하게 되었습니다. 물론 마이크로소프트 계정이…