워드프레스 xmlrpc.php 해커 공격을 차단하는 방법 – 서버관리

By | 개발 | No Comments

워드프레스 xmlpc.php Post를 이용한 공격

워드프레스에서 원격 프로그램에서 글을 작성해서 올릴 수 있게 하는 xmlpc.php가 있다. 그런데 이 기능을 이용해서 지속적으로 공격을 시도하는 해커들이 있었다.

이 공격을 당했을 때 직접적으로 눈에 보이는 상황은 top 명령어를 이용해서 봤을 때 httpd 프로세스가 급격히 늘어나면서 CPU 점유율을 잠식하는 것이었다. 그리고 CPU 점유율이 100%에서 떨어지지 않고 계속 유지되면서 사이트 접속은 느려지거나 접속이 되지 않는 현상이 발생했다.

처음에는 아파치 설정에서 문제가 발생했거나 접속자 수가 갑자기 늘어나면서 접속에 문제가 생겼는지 확인했다. 하지만 정상적으로 보였고 이 때문에 다른 원인을 찾아야만 했다. 그래서 로그를 눈여겨보다가 /var/log/httpd/access_log에서 다음과 같은 알 수 없는 시도가 계속 발생하는 것을 확인할 수 있었다. 처음에는 Googlebot이 사이트 정보를 수집하는 것으로 착각했으나 자세히 보면 POST로 /xmlrpc.php에 무엇인가를 계속 보내고 있는 시도이다.

5.135.68.51 - - [13/May/2015:12:14:59 -0400] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"

185.61.138.72 - - [13/May/2015:12:14:59 -0400] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"

185.11.147.17 - - [13/May/2015:12:14:59 -0400] "POST /xmlrpc.php HTTP/1.0" 404 168 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"

185.11.147.17 - - [13/May/2015:12:14:59 -0400] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"

185.62.188.76 - - [13/May/2015:12:15:01 -0400] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"

185.62.188.76 - - [13/May/2015:12:15:01 -0400] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"

185.62.188.76 - - [13/May/2015:12:15:01 -0400] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"

185.61.138.72 - - [13/May/2015:12:15:01 -0400] "POST /xmlrpc.php HTTP/1.0" 404 168 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"

5.135.68.51 - - [13/May/2015:12:15:02 -0400] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"

5.135.68.51 - - [13/May/2015:12:15:02 -0400] "POST /xmlrpc.php HTTP/1.0" 404 168 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)”

iptables를 이용해서 해당 IP를 차단

해결책은 해당 공격을 시도하는 IP들은 서버 방화벽에 등록해서 차단하는 것이다.

grep xmlrpc access_log | cut -d’ ‘ -f1 | sort | uniq -c | sort -rn | head

명령을 이용해서 관련 IP들을 모두 걸러서 볼 수 있다.

사용 중인 워드프레스 플러그인이 xmlrpc.php 관련된 것을 이용 중이라면 해당 IP까지 차단하면 플러그인에 문제가 생길 수 있으니 해당 IP들은 걸러내고 해커공격으로 의심되는 것들만을 뽑아낸다.

위 명령어에서 뒷 부분에 -n{숫자}를 추가하면 해당 수만큼 출력을 줄일 수 있다.

grep xmlrpc access_log | cut -d’ ‘ -f1 | sort | uniq -c | sort -rn | head -n8

이렇게 걸러진 출력을 다음과 같이 for문을 이용해서 iptables에 등록해준다.

for ip in $(grep xmlrpc access_log|cut -d’ ‘ -f1|sort | uniq -c |sort -rn | head -n8| awk ‘{print $2}’); do iptables -A INPUT -s $ip -j DROP; done

증상 및 후기

특정 프로세스 점유율이 갑자기 올라가는 현상도 아니었고 httpd 프로세스가 여러 개 급격히 늘어나면서 각각 CPU 점유율 및 메모리를 나눠먹으면서 시스템을 포화상태로 만드는 증상이었다.

후기라면 로그를 정기적으로 확인하는 습관을 가질 필요가 있다는 것이다. 그리고 당연한 것처럼 보이는 로그도 유심히 분석해볼 필요가 있다.

출처 – Block hacker attacks on WordPress’ xmlrpc.php

그런트 사용법 , Sass를 CSS로 컴파일시 한글처리하기

By | 미분류 | No Comments

그런트를 이용해서 Sass를 CSS로 컴파일 자동화시 가장 유명한 플러그인은 grunt-contrib-sass입니다.
그런데 이 플러그인을 이용하면 CSS 내부에 한글이 입력됐을 경우 오류를 일으킵니다. 그래서 대안으로 사용할 수 있는 플러그인은 grunt-sass를 사용하면 됩니다.

Target 설정

sass: {
        dist: {
            files: {
                'css/style.css':'style.scss'
            }
        }
    }

플러그인 불러오기

grunt.loadNpmTasks('grunt-sass');

플러그인 실행하기

grunt.registerTask('default',['sass']);

본고딕 웹폰트를 적용했습니다.

By | 미분류 | No Comments

폰트는 가장 중요한 디자인 요소입니다. 하지만, 웹에서 디자인의 표현이 어려운 까닭은 웹은 폰트의 표현에 제약이 있기 때문입니다.

기존에 컴퓨터에 저장되어 있는 폰트를 사용할 수 있는 것이 아니라 웹폰트라는 형태로 변형시켜서 사용해야 합니다.

그래도 좋은 폰트는 가독성을 향상시키고 사람들의 마음을 끄는 까닭에 웹폰트를 이리저리 찾아보곤 합니다. 하지만 웹용 한글 폰트 다양성이 떨어지는 까닭에 고르기가 쉽지 않은데요.

예를 들면, 글자 굵기를 다양화해서 디자인하는 것이 최근 추세인데 그 추세를 반영할만한 한글 웹폰트를 찾기 힘들죠.

게다가 유료는 감당이 안 되서 무료를 찾곤 하는데 무료용 폰트를 구하기는 하늘에 별을 따는 것만큼 힘듭니다.

마지막으로 웹사이트의 속도에도 문제를 미치기 때문에 웹폰트의 용량 문제는 예민합니다.

그런 와중에 어도비와 구글이 내놓은 본고딕은 무료 폰트이면서 굵기도 다양합니다. 그렇기 때문에 이 폰트가 웹용으로 나오면 좋겠다는 생각을 하고 있었는데요.

본고딕 구글 지원

최근에 이 폰트가 웹폰트로 제작되어 구글에서 서비스하기 시작했습니다. 구글에서 서비스하기 때문에 갑자기 웹폰트의 서비스가 중단될 염려를 안 해도 되겠죠? 그래도 꺼리다가 한 번 시험 적용해봤습니다.

시험 적용된 사이트에 방문하셔서 본고딕 웹폰트의 매력을 느껴보세요.

진행 중인 일에 대한 흔적을 남겨라.

By | 미분류 | No Comments

진행 중인 일에 대한 흔적을 남겨라.

사람의 기억력은 한계가 있다. 그렇기 때문에 우리는 메모를 한다. 메모는 당신이 잊어버리길 두려워하는 것들에 대한 걱정을 떨쳐버리게 해주기 때문이다.

우리가 하는 일에는 종류에 따라 많은 시간이 소요되는 일들이 있다. 하루에 끝내기 어려운 이들이 있고 한 달에 끝내기 어려운 일도 있으며 심지어 몇 년동안 부단히 해야만 하는 일들이 있다. 그렇기 때문에 이런 일들을 지속적으로 꾸준하게 밀고나가기 위해서는 해당 일의 진행이 매끄럽게 흐르도록 해야 한다.

심리학에는 점화 효과(Prming Effect)이라는 것이 있다. 점화 효과는 제공된 어떤 정보, 충격, 자극, 것들에 의해서 추후 그 사람의 행동에 영향을 미치는 것이다. 예를 들면 뉴스에서 2016년부터 교통법규가 개정되어 운전 중에 스마트폰을 사용하면 벌금이 20만원으로 인상된다는 소식을 접했다고 가정해보자.

이 소식을 받은 사람은 블루투스 이어폰 혹은 자동차에 블루투스가 자체 내장되어 있는 차에 대한 관심을 가지고 찾아보기 시작한다. 이것이 바로 점화효과다.

이런 점화효과를 우리는 일하는데 도입할 수 있다. 우리가 어떤 일을 하다가 중간에 그 일을 마쳐야 하는 상황이라면 그 일을 다음에 할 때 무엇을 준비해야 해당 일의 효율을 높일 수 있을지, 그 일을 하기 위해 처리되어야 할 주변환경 및 조건 등에 대해 메모로 정리해보라.

대부분 할 일 관리앱들은 일마다 메모할 수 있는 공간을 제공하곤 한다. 이것을 활용하면 더욱 좋고 시간을 기록해서 해당 일을 지속적으로 추적하면 더더욱 좋다. 장기로 진행 되는 일에 날짜와 시각을 기록하고 그 때 그 때 그 일에 대한 흔적을 남겨라.

나중에 그 일을 하기 위해 돌아왔을 때 그렇게 남겨진 흔적은 당신이 그 일에 바로 뛰어들 수 있게끔 해준다. 이런 습관이 중요한 이유는 대부분 사람들이 어려운, 복잡한, 창조적인 일을 꺼려하기 때문이다. 하지만 이런 제반 정보가 준비되어 있다면 두려움은 줄어들 것이다.

일 하는 도중 생각을 정리하는 방법으로 집중력을 높이기

By | 생산성 | No Comments

일 하는 도중 생각을 정리하는 방법으로 집중력을 높이기

우리는 일 하는 도중 모든 신경을 100% 집중하기 쉽지 않다. 우리 사람의 뇌는 한 가지에만 집중하지 않기 때문이다.

일을 하는 도중에도 온갖 생각이 머리 속을 맴돈다.

현재 하고 있는 일 외에도 별도의 다른 할 일이 생각난다.

또한 말 그대로 잡생각들이 머리 속에 가득찰 때도 있다.

그런데 머리 속에 딴 생각이 있으면 현재 하는 일에 집중하기가 당연히 어렵다.

예를 들면, 일을 하는 도중에 “자동차 세차”라는 일거리가 떠올랐다고 가정해보자.

집중력은 분산된다. 왜냐면 이 일을 하면서도 “자동차 세차”라는 일을 잊어버릴까 두렵기 때문이다.

그렇다면 이를 효율적으로 관리하고 집중력이 흐트러지 않게 하려면 어떻게 해야 할까?

일을 하면서도 메모하는 습관을 가지면 된다.

나는 일을 할 때 종이와 펜을 이용하곤 한다.

컴퓨터 앞에서 일을 하기 때문에 종이와 펜은 때때로 좀 더 직관적이고 현재 컴퓨터 환경을 최대한 바꾸지 않은 채 생각을 관리할 수 있다.

그리고 종이에는 3개의 열을 나누어 다음과 같이 적는다.

  • 지금 하는 일: 현재 하고 있는 일과 관련되서 기억해야 할 중요한 내용이나 이어서 해야 하는 일에 대한 내용을 적는다.
  • 나중으로 미룰 일: 현재 하고 있는 일과 관련성이 떨어지는 다른 일거리에 대해 적는다.
  • 일과 관련이 없는 생각들: 말그대로 잡생각을 적는 것이다. 우리가 흔히 하는 낙서를 생각하면 쉽다.

위와 같이 분류하고 일을 시작하면서 각각 관련된 일에 대한 항목을 정리하면서 현재 하고 있는 일에 집중해보라.

다른 기억해야 할 일이나 생각들에 대한 미련을 떨치고 현재 하는 일에 좀 더 효율적으로 집중할 수 있다.

GTD 개념을 단순히 해야 할 일 관리에 적용할 수도 있지만 현재 하고 있는 일에 적용할 수 있다.