WEB/WORDPRESS

.htaccess를 활용하여 wp-login.php 접근 제한하기

OnB 2022. 3. 11. 14:00

.htaccess를 활용하여 지정 IP에 한해서만 wp-admin, wp-login.php 접속 허용하기

 

워드프레스로 사이트를 구축하면 기본적으로 'http://도메인/wp-admin' 혹은 'http://도메인/wp-login.php'를 URL에 입력하여 관리자 로그인 페이지로 접속할 수 있습니다. 덕분에 인터넷이 되는 곳이라면 관리자가 언제 어디서든 관리자 페이지에 접속하여 사이트를 관리할 수 있습니다. 하지만 이것은 악의적인 유저가 언제 어디서든 사이트 관리자 페이지에 접근을 시도할 수 있다는 뜻과 같습니다. 때문에 운영의 불편함을 감수하더라도 보안을 위해 wp-admin 디렉터리와 wp-login.php 파일에 대한 접근을 제한해주는 것이 좋습니다.

 

WordPress의 보안을 강화하는 방법에는 여러 가지가 있지만, 이번에는 '.htaccess를 활용하여 지정한 IP에 한해서만 관리자 페이지에 접속할 수 있는 방법'을 소개해드립니다.

 

관리자 PC의 IP 혹은 IP 대역 확인하기

관리자 페이지에 접속할 PC의 공인 IP 주소를 확인해주세요. 공인 IP 주소는 네이버 IP 주소에서 확인이 가능합니다. 만약 특정 PC가 아닌 대역에 접근을 허용하고 싶다면 프리픽스(Prefix)도 확인해야 합니다. 프리픽스는 서브넷 마스크를 간단하게 표기한 것으로, 다음의 표를 참고해서 확인해주시기 바랍니다.

 

Prefix Subnetmask Prefix Subnetmask Prefix Subnetmask Prefix Subnetmask
/32 255.255.255.255 /24 255.255.255.0 /16 255.255.0.0 /8 255.0.0.0
/31 255.255.255.254 /23 255.255.254.0 /15 255.254.0.0 /7 254.0.0.0
/30 255.255.255.252 /22 255.255.252.0 /14 255.252.0.0 /6 252.0.0.0
/29 255.255.255.248 /21 255.255.248.0 /13 255.248.0.0 /5 248.0.0.0
/28 255.255.255.240 /20 255.255.240.0 /12 255.248.0.0 /4 240.0.0.0
/27 255.255.255.224 /19 255.255.224.0 /11 255.224.0.0 /3 224.0.0.0
/26 255.255.255.192 /18 255.255.192.0 /10 255.192.0.0 /2 192.0.0.0
/25 255.255.255.128 /17 255.255.128.0 /9 255.128.0.0 /1 128.0.0.0

 

wp-admin, wp-login.php 파일 위치(경로) 확인하기

.htaccess에 접근 제한 코드를 추가하기 전에 파일들의 경로를 확인해야 합니다. SSH와 FTP 등을 이용하여 파일의 절대 경로를 확인해주세요. SSH로 파일의 경로를 확인하는 경우 다음 명령어를 참고해주세요.

 

#find / -name 'wp-admin'

#find / -name 'wp-login.php'

 

.htaccess 파일 편집하기

.htaccess 파일 하단에 다음 코드를 입력해주시기 바랍니다.

#wp-admin 디렉터리에 대한 접근을 제한합니다.
<Directory wp-admin경로>
    #Set up rule order
    Order Deny,Allow
    
    #Default deny/allow
    Deny from all
    Allow from IP주소
</Directory>

#wp-login.php 파일에 대한 접근을 제한합니다.
<Directory wp-login.php경로>
    <Files wp-login.php>
        #Set up rule order
        Order Deny,Allow
        
        #Default deny/allow
        Deny from all
        Allow from IP주소
    </Files>
</Directory>

위에서 확인한 IP주소와 파일 경로를 코드에 대입해줍니다.

 

wp-admin 경로: wp-admin 디렉터리의 절대 경로를 입력해주세요. (예: /home/sitename/www/wp-admin)

wp-login.php 경로: wp-login.php 파일이 위치한 디렉터리의 절대 경로를 입력해주세요. 단, 끝은 항상 슬래쉬(/)로 끝나야 합니다. (예: /home/sitename/www/)

IP 주소: 접근을 허용할 IP 주소 혹은 IP 대역을 입력해주세요. 띄어쓰기를 활용하여 여러 대역 혹은 IP를 추가할 수 있습니다. (예: 192.11.111.0/24 192.12.121.0/24 192.13.131.13)

 

명령어 설명

Order Deny,Allow: Allow 값을 먼저 확인한 다음 Deny의 설정된 값을 확인합니다.

Deny from all: 지정한 디렉터리 혹은 파일에 대한 모든 접근을 차단합니다.

Allow from IP주소: 설정한 IP주소에 한해서 지정한 디렉터리 혹은 파일에 대한 접근을 허용합니다.

<Files wp-login.php>: 특정 파일(wp-login.php)에 대한 설정을 정의합니다.