아파치 워드프레스 관리자 IP 접속 제한

주로 보안 제약이 강한 대기업 블로그에서 주로 요구하는 사항인데, 관리자나 로그인 페이지의 접근을 IP 대역으로 막는다.

주의할 점은 관리자 페이지를 막아도 admin-ajax.php, admin-post.php 의 접근은 열어 두어야 한다는 거다. 그것까지 다 막으면 워드프레스의 일반적인 폼 제출과 AJAX 요청까지 다 틀어막혀 사이트 동작이 되지 않을 수 있다.

아래 코드를 참고하여 아파치 설정에 추가한다. LocationMatch 지시자는 .htaccess 에 넣을 수 없다는 것에 유의한다. 그리고 .htacess 파일에 넣지 못하고 일반 설정 파일에 삽입하니, 수정 후 서버 재시작을 꼭 해주는 것을 잊지 말자.

<LocationMatch "wp-admin/(?!admin-ajax|admin-post).*\.php$|wp-signup\.php$|wp-login\.php$">
Require all denied
Require ip 127.0.0.1
</LocationMatch>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet