스패머가 우리서버를 이용해 메일을 보냅니다

innu의 이미지

레드햇 리눅스 2.4.30
apache 1.3.33
php 4.3.11
sendmail 8.11.0-8

다음에서 스팸메일 관련 전화가 왔는데 발송지가 저희 서버라고 하네요. 물론 저희는 보낸적이 없구요.

메일로그를 보니 nobody 계정으로 보내던데 아마도 php 스크립트상의 취약점을 이용, 대량 메일을 발송하나 봅니다.

일단, 메일큐 디렉토리를 삭제해서 스팸메일 발송은 막았지만 궁금해서 질문드립니다.

보통 이런류의 공격은 메일발송 스크립트를 이용해서 보내는데 그 원리가 어떻게 되나요?
그러니까 우리서버에 특정한 바이너리나 스크립트를 설치하고 메일을 보내는 건가요? 아님 원격에서 툴따위로 스캐닝해서 어떻게 어떻게 하는걸까요?

어떻게 공격하는지 알아야 막을텐데 원인을 모르니깐 답답합니다.
그리고 referer 체크따위의 스크립트 수정말고 미연에 방지하는 방법은 없을까요?

이를테면 sendmail 버전 얼마이상, qmail 써라 등등...

:? :? :?

LispM의 이미지

Relay 설정 잘못 된 것 같군요. 개인적인 의견은 sendmail 보다는 postfix나 qmail이 (비교적) 이해하기 쉽고 세팅도 간단하다고 생각합니다. 참고로 postfix는 'The book of postfix'라는 책을 참고하면서 하루정도 시간 보내시면 제대로 설정할 수 있으리라고 봅니다. 스패머 한테 한번 걸리면 디스크 넘쳐나는 것은 순식간입니다.

만일 php 취약점 같은 것으로 서버가 침입당했다면 (최악의 경우)밀고 다시 서버 튼튼하게 만들어야 하므로 더 골치아픈 문제가 되겠네요.

http://lisp.or.kr http://lisp.kldp.org - 한국 리습 사용자 모임

kslee80의 이미지

nobody 를 통해서 보냈다면 거의 99% 정도는 php 라고 보면 됩니다;
php 라고 가정한다면 그 이후부터가 노가다인데...
해당 메일이 발송된 시간대에 아파치 access_log 파일을 뒤지는 수 밖에 없습니다.

그리고 이건 제가 당한 건데;;;
제가 관리하던 서버에서 대량의 스팸 발송이 확인돼서..
메일 로그를 보고 해당 시간대에 아파치 로그를 확인해 본 결과..
계정을 가지고 있는 사용자중에 한명이 테스트용으로 메일 발송 스크립트를
짜서 자기 계정에 넣어놓고 그걸 그대로 방치해 뒀었는데,
그걸 이용해서 발송했더군요...-_-;;;
(스패머가 그 스크립트를 찾은게 더 신기하더군요...-_-;;)

이런 경우가 아니라면
결국 메일 발송 스크립트를 서버 어딘가에 넣어 놨다는 건데...
nobody 기 때문에 /tmp 와 /var/tmp 를 확인해 보시기를....
일반 유저 홈 계정에 nobody 가 파일 write 를 할 수 있는 디렉토리가 있다면
그 디렉토리들도 다 확인해 보셔야 할 겁니다.

P.S.)
이래서 사용 유저수가 많을수록 보안에 취약해진다는 말이 있는듯 싶더군요..

gasiri의 이미지

음 제가 사용했던 방법인데요...
relay 파일에서 relay 에 대한 제한을 걸어놓아도 되는데...
/etc/hosts 하고 /etc/allow.deny 등 접속제한에 관련된 파일들이 있습니다.
이곳에 메일을 보내고자 하는 시스템의 IP 를 설정해 놓고 쓰시면
스펨 경유지로 사용되지는 않을 겁니다.

완전하지는 않지만 이렇게 해서 사용하니까.
저희 메일서버가 스펨 경유지로 사용된 적은 없었습니다.
물론 아시겠지만. 여기에서 가서 테스트 함 해보세요..
http://www.certcc.or.kr/secureyourserver/spam_relay.html

gogoonee의 이미지

sendmail 에서 nobody 유저는 메일 못 보내게끔 하면 제일 간단해 보이네요.
아래 url 을 참조하세요.
sendmail 이란 명령어를 일종의 wrap 해서 log를 남기는데 조금 만 변경하면 nobody 유저는 메일 안가게끔 할 수 있겠습니다.

http://www.webhostgear.com/232_print.html

파도의 이미지

경찰에 신고해 보는 건 어떨지요?

--------Signature--------
시스니쳐 생각 중..

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.