워드프레스는 보안에 강한 편이지만 워드프레스, 테마, 플러그인의 업데이트를 소홀히 하거나 admin과 같은 관리자 아이디를 사용하거나, 약한 비밀번호를 설정하는 등 일반적인 보안 관행을 무시할 경우 사이트가 해킹을 당하거나 멀웨어에 감염될 수 있습니다. 워드프레스에서는 Wordfence Security나 iThemes Security와 같은 보안 플러그인을 설치하여 활성화하면 보안이 강화될 수 있습니다.
워드프레스 iThemes Security 보안 플러그인 사이트 차단 설정 방법
iThemes Security는 현재 1백만 개가 넘는 사이트에 설치되어 사용되고 있는 인기 워드프레스 보안 플러그인 중 하나입니다. (Wordfence Security는 400만 개가 넘는 사이트에 설치된 1위 보안 프러그인이고 기능이 많지만, iThemes Security보다 조금 무거운 것 같습니다.)
봇이나 악의적인 사용자가 반복적으로 로그인을 시도할 경우 iThemes Security에서 일정 시간 동안 사이트 접속을 차단하고, 그러한 위반이 반복적으로 발생하면 영구적으로 차단시킬 수 있습니다.
iThemes Security의 인터페이스가 바뀌면서 구글에서 검색되는 기존 글들의 내용이 구 버전인 경우가 많을 것입니다. 여기에서는 새로운 인터페이스에서 iThemes Seucrity 플러그인의 차단(Lockout) 관련 설정을 지정하는 방법에 대하여 간단히 살펴보겠습니다.
Security > Settings > Cofigure > Global Settings에서 몇 가지 차단(Lockout) 관련 설정을 할 수 있습니다. "Lockout"이라는 단어는 "폐쇄", "잠금"으로 흔히 번역되며, 마이크로소프트(MS) 용어집에서도 "잠금"으로 주로 번역되어 있습니다. 사이트에 접속하지 못하는 차단하는 것으로 이해하면 되겠습니다.
위의 같은 화면에서 다음을 참고하여 Lockouts 관련 설정을 지정하시기 바랍니다.
- Minutes to Lockout - 잘못된 로그인 정보 입력 제한 횟수를 초과한 호스트 또는 사용자가 사이트에 접속하지 못하도록 하는 시간. 가령 15로 입력하면 15분 동안 사이트 접속이 차단됩니다.
- Days to Remember Lockouts - iThemes Security에서 차단을 기억하는 일 수.
- Ban Threshold - Ban Repeat Offender(반복된 위반자 금지) 옵션을 활성화하면 일정 위반 횟수에 도달하면 차단된 IP 주소를 "Ban Users"(금지 사용자) 리스트로 이동시켜 영구적으로 차단하게 됩니다. "Threshold" 단어는 흔히 "임계값"으로 번역됩니다.
아래로 스크롤하여 Authorized Hosts 섹션으로 이동합니다.
간혹 관리자가 아이디와 비밀번호를 잘못 입력하여 사이트에서 차단당하는 경우가 있습니다. 그러면 일정 시간(예: 15분) 동안 사이트에 접속하지 못하게 됩니다. 이러한 시도가 일정 횟수에 도달하게 영구적으로 사이트 접근이 차단됩니다.
이를 방지하기 위해 관리자 페이지에 접속하는 컴퓨터의 IP 주소를 등록하면 "내"가 사이트에서 차단당하는 상황이 발생하지 않게 됩니다.
Add my current IP to the authorized hosts list 버튼을 클릭하면 내 인터넷 회선의 IP 주소가 허용 목록에 등록되어 내가 잘못된 로그인 정보 입력으로 인해 차단되는 경우를 방지할 수 있습니다.
Logging에서 로그를 저장할 곳을 지정할 수 있습니다. 기본적으로 데이터베이스만(Database Only) 저장되도록 설정되어 있습니다. DB 크기가 과도하게 증가하는 경우에는 파일에만(File Only) 보관하도록 선택할 수 있습니다.
무차별 대입 공격(Brute Force)을 방지하기 위해 Local Brute Force 기능을 활성화할 수 있습니다. Security > Settings > Configure > Lockouts > Local Brute Force 탭에서 Local Brute Force 설정을 지정할 수 있습니다.
- Automatically ban "admin" user - 이 옵션을 선택하면 사용자 이름을 "admin"으로 입력하여 로그인하는 모든 시도를 즉시 금지하게 됩니다. 관리자 아이디로 admin으로 지정하면 보안상 좋지 않습니다.
- Max Login Attempts Per Host(호스트별 최대 로그인 시도) - 호스트당 최대 로그인 시도. 0을 입력하면 잘못된 로그인 시도를 기록하지만 차단은 하지 않음.
- Max Login Attempts Per User(사용자별 최대 로그인 시도) - 이전에 시스템에서 차단된 적이 있는 사용자 이름으로 된 사용자의 최대 로그인 시도 횟수. 0을 입력하면 사용자별 잘못된 로그인 시도를 기록하지만 차단하지는 않습니다.
- Minutes to Rember Bad Loing (check period) - 잘못된 로그인 시도를 기억하는 시간(분 단위)
Site Lockout Notification 이메일을 너무 많이 전송되는 경우
방문자 수가 많아지면 봇들의 로그인 시도도 증가하게 됩니다. 차단 시 이메일로 알림을 전송하도록 설정하는 경우, Site Locout Notification 이메일을 너무 많이 올 수 있습니다.
위와 같은 Site Lockout Notification 이메일이 너무 많이 와서 불편한 경우 차단 시 알림 이메일 전송 옵션을 비활성화할 수 있습니다.
사이트 차단 알림을 비활성화하려면 Security > Settings > Notifications > Site Lockouts에서 체크박스의 체크를 해제하면 됩니다.
악의적인 사용자가 로그인 시도를 할 수도 있겠지만, 많은 경우 봇에 의한 로그인 시도이므로 너무 많은 알림이 올 경우 이 옵션을 비활성화하는 것을 고려할 수 있습니다. 아니면, 알림을 잘 사용하지 않는 이메일로 전송되도록 설정하는 것도 생각해볼 수 있을 것입니다.
참고
https://avada.tistory.com/2565
https://avada.tistory.com/2633
https://avada.tistory.com/2631