LINUX.ORG.RU

Postfix сильно спамит.

 , ,


0

4

Добрый день!

Сервер на Debian GNU/Linux 5.0.6 (lenny) был взломан и теперь Postfix занимается рассылкой спама в огромных количествах.

За 12 часов логи вырастают до 400 Мб:

63C821A70C5 665 Thu May 16 00:57:06 maryellen_knight@mydomain.ru (delivery temporarily suspended: host mta5.am0.yahoodns.net[98.136.216.25] refused to talk to me: 421 4.7.0 [TS01] Messages from myIP temporarily deferred due to user complaints - 4.16.55.1; see http://postmaster.yahoo.com/421-ts01.html) exctme@yahoo.com

6F870BDD96 683 Thu May 16 04:58:11 priscilla_stein@mydomain.ru (host mailstore1.secureserver.net[72.167.238.29] refused to talk to me: 554 p3plibsmtp01-05.prod.phx3.secureserver.net bizsmtp Connection refused. IB111) network@mediterraneobrickell.com

6C377147A2A 650 Wed May 15 22:23:26 jacqueline_holder@mydomain.ru (delivery temporarily suspended: connect to hotmail.co[65.55.39.12]:25: Connection timed out) gareth_edwards147@hotmail.co

68CD1BF53D 639 Thu May 16 06:47:15 irma_nunez@mydomain.ru (delivery temporarily suspended: host mta6.am0.yahoodns.net[98.136.217.203] refused to talk to me: 421 4.7.0 [TS01] Messages from myIP temporarily deferred due to user complaints - 4.16.55.1; see http://postmaster.yahoo.com/421-ts01.html) damilarerapheal@yahoo.com

в очереди на отправку 52314 писем.

Clamav и rkhunter ничего не нашли.

На данный момент Postfix остановлен, но очередь писем все равно растет.

Как отследить кто/что генерирует и рассылает спам и как это остановить?


На данный момент Postfix остановлен, но очередь писем все равно растет

м?! это как?

aol ★★★★★
()
Ответ на: комментарий от aol

#postfix stop

#postqueue -p (количество запросов постоянно растет)

P.S. если что-то не совсем правильно объясняю, не судите, в линуксе можно сказать новичок.

yumix
() автор топика
Ответ на: комментарий от aol

м?! это как?

через /usr/bin/sendmail, по идее он просто создают файло в maildrop дириктории

@yumix

ищи запущенные левые процессы, например /usr/local/bin/httpd скорее всего бот

посмотри что в /tmp и /var/tmp и обрати внимание на файло начинающееся с точек и на юзера которому принадлежит это файло

если есть хостинг на этом же серваке проверь все сайты, ищи недавно измененные или созданные файлы

обязательно проверь задачи крона в /var/spool/cron/crontabs

Skolotovich ★★★
()

полагаю, традиционные пыховые скрипты и sendmail. Если да - внеси mail в disabled_functions в php.ini

leave ★★★★★
()
Ответ на: комментарий от leave

Ololo, leave такой leave

Мой скрипт /home/user/nginx

Wow! меня поломали через nginx. nginx решето!

P.S. давай не будем путать продукт sendmail с оставленным для совместимости названием файла, который к sendmail не имеет никакого отношения.

anonymous
()
Ответ на: комментарий от Skolotovich

/tmp и /var/tmp пустые

cat /var/spool/cron/crontabs/root
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.Q44dE1/crontab installed on Sun Oct 28 19:40:07 2012)
# (Cron version — $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
3 3 * * * /etc/webmin/virtual-server/sendratings.pl 1,6,11,16,21,26,31,36,41,46,51,56 * * * * /etc/webmin/virtual-server/collectinfo.pl
5 20 * * * /etc/webmin/virtual-server/scriptlatest.pl 0,5,10,15,20,25,30,35,40,45,50,55 * * * * /etc/webmin/status/monitor.pl

cat /var/spool/cron/crontabs/websites
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (cron.d installed on Mon Jul 16 21:28:38 2012)
# (Cron version — $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
* * * * * /home/websites/sitename.ru/www/.stdrout/y2kupdate >/dev/null 2>&1

хостинг есть, все проверю

yumix
() автор топика
Ответ на: комментарий от Skolotovich

нет, не выяснили, это виртуальный сервер, почтой на нем не пользовались, обнаружили только когда хостеры пообещали забанить.

еще вопрос, что означают записи в

#cat /var/log/auth.log |grep May\ 15

May 15 23:53:50 myhost sshd[2592]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=mail.tmt-pcb.com.cn user=root
May 15 23:53:52 myhost sshd[2592]: Failed password for root from 61.160.76.123 port 34785 ssh2
May 15 23:54:01 myhost CRON[2710]: pam_unix(cron:session): session opened for user root by (uid=0)
May 15 23:54:01 myhost CRON[2713]: pam_unix(cron:session): session opened for user websites by (uid=0)
May 15 23:54:01 myhost CRON[2713]: pam_unix(cron:session): session closed for user websites
May 15 23:54:01 myhost CRON[2710]: pam_unix(cron:session): session closed for user root
May 15 23:55:01 myhost CRON[3431]: pam_unix(cron:session): session opened for user www-data by (uid=0)
May 15 23:55:01 myhost CRON[3433]: pam_unix(cron:session): session opened for user root by (uid=0)
May 15 23:55:01 myhost CRON[3435]: pam_unix(cron:session): session opened for user root by (uid=0)
May 15 23:55:01 myhost CRON[3439]: pam_unix(cron:session): session opened for user websites by (uid=0)
May 15 23:55:01 myhost CRON[3439]: pam_unix(cron:session): session closed for user websites
May 15 23:55:01 myhost CRON[3433]: pam_unix(cron:session): session closed for user root
May 15 23:55:01 myhost CRON[3431]: pam_unix(cron:session): session closed for user www-data
May 15 23:55:02 myhost su[3472]: Successful su for postgres by root
May 15 23:55:02 myhost su[3472]: + ??? root:postgres
May 15 23:55:02 myhost su[3472]: pam_unix(su:session): session opened for user postgres by (uid=0)
May 15 23:55:02 myhost su[3472]: pam_unix(su:session): session closed for user postgres
May 15 23:55:02 myhost CRON[3435]: pam_unix(cron:session): session closed for user root
May 15 23:56:01 myhost CRON[4096]: pam_unix(cron:session): session opened for user root by (uid=0)
May 15 23:56:01 myhost CRON[4099]: pam_unix(cron:session): session opened for user root by (uid=0)
May 15 23:56:01 myhost CRON[4101]: pam_unix(cron:session): session opened for user websites by (uid=0)
May 15 23:56:01 myhost CRON[4101]: pam_unix(cron:session): session closed for user websites
May 15 23:56:01 myhost CRON[4096]: pam_unix(cron:session): session closed for user root
May 15 23:56:11 myhost CRON[4099]: pam_unix(cron:session): session closed for user root
May 15 23:56:54 myhost sshd[4491]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=58.241.25.82 user=root
May 15 23:56:56 myhost sshd[4491]: Failed password for root from 58.241.25.82 port 51975 ssh2
May 15 23:57:01 myhost CRON[4564]: pam_unix(cron:session): session opened for user root by (uid=0)
May 15 23:57:01 myhost CRON[4568]: pam_unix(cron:session): session opened for user websites by (uid=0)
May 15 23:57:01 myhost CRON[4568]: pam_unix(cron:session): session closed for user websites
May 15 23:57:01 myhost CRON[4564]: pam_unix(cron:session): session closed for user root
May 15 23:58:01 myhost CRON[4949]: pam_unix(cron:session): session opened for user root by (uid=0)
May 15 23:58:01 myhost CRON[4953]: pam_unix(cron:session): session opened for user websites by (uid=0)
May 15 23:58:01 myhost CRON[4953]: pam_unix(cron:session): session closed for user websites
May 15 23:58:01 myhost CRON[4949]: pam_unix(cron:session): session closed for user root
May 15 23:59:01 myhost CRON[5303]: pam_unix(cron:session): session opened for user root by (uid=0)
May 15 23:59:01 myhost CRON[5307]: pam_unix(cron:session): session opened for user websites by (uid=0)
May 15 23:59:01 myhost CRON[5307]: pam_unix(cron:session): session closed for user websites
May 15 23:59:01 myhost CRON[5303]: pam_unix(cron:session): session closed for user root

Спасибо!

yumix
() автор топика
Ответ на: комментарий от anonymous

давай ты перестаешь шланговать и вспомнишь, что пыховый mail() дергает /usr/sbin/sendmail. При этом совершенно неважно, «настоящий» этот сендмейл или compatibility заглушка от любого другого mta.

leave ★★★★★
()
Ответ на: комментарий от yumix

3 3 * * * /etc/webmin/virtual-server/sendratings.pl 1,6,11,16,21,26,31,36,41,46,51,56 * * * * /etc/webmin/virtual-server/collectinfo.pl 5 20 * * * /etc/webmin/virtual-server/scriptlatest.pl 0,5,10,15,20,25,30,35,40,45,50,55 * * * * /etc/webmin/status/monitor.pl

я надеюсь вебмин попой в мир не весит?

* * * * * /home/websites/sitename.ru/www/.stdrout/y2kupdate >/dev/null 2>&1

вот собстно и твой спамерp
сделай бэкап sitename.ru, останови вебсервер, убери кронтаб, снеси .stdrout (именно в такой последовательности)

есть еще шанс что бот висит демоном от пользователя веб сервера, в этом случае оно тебе вернет все назад, поэтому переде вырезанием бота _обязательно_ убедись что нет левых процессов

и ищи дырки в сайте
если движок сайта самописный - бери какой нить аргумент потяжелее и иди к этим горе-программерам, пусть закрывают дырки, если сторонний то срочно обновлять до последней версии

ну и собстно если не найдешь через какую дырку залили, готовся к тому что проломят опять, притом очень быстро

Skolotovich ★★★
()
Ответ на: комментарий от yumix

это просто отработка крона, так и должно быть

только убедись что это

May 15 23:55:02 myhost su[3472]: Successful su for postgres by root
May 15 23:55:02 myhost su[3472]: + ??? root:postgres

ктото из ваших делал

Skolotovich ★★★
()
Последнее исправление: Skolotovich (всего исправлений: 1)
Ответ на: комментарий от anonymous

«Оставленный для совместимости файл» как раз и делает то, что описал Skolotovich, так что твоя истерика не уместна

shell-script ★★★★★
()
Ответ на: комментарий от Skolotovich

May 15 23:55:02 myhost su[3472]: Successful su for postgres by root
May 15 23:55:02 myhost su[3472]: + ??? root:postgres

Что значит это сообщение?

Наши сказали, что PostgreSQL не используют вообще. Службу остановил.

yumix
() автор топика
Ответ на: комментарий от yumix

Что значит это сообщение?

это означает что ктото сделал su postgres из под рута

наврятли это действия бота, они щас рута редко ищут

Skolotovich ★★★
()
Ответ на: комментарий от Skolotovich

Виновника нашли:
myhost:~# ps -e -f |grep www-data
www-data 2626 2618 0 May15 ? 00:00:01 /usr/sbin/apache2 -k start
www-data 29892 2618 0 12:12 ? 00:00:01 /usr/sbin/apache2 -k start
www-data 29894 2618 0 12:12 ? 00:00:03 /usr/sbin/apache2 -k start
www-data 31066 2618 0 12:20 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 31150 2618 0 12:21 ? 00:00:01 /usr/sbin/apache2 -k start
www-data 31215 2618 0 12:22 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 31224 2618 0 12:22 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 31225 2618 0 12:22 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 31229 2618 0 12:22 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 31941 2618 0 12:25 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 32307 2618 0 12:27 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 32312 2618 0 12:27 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 32324 2618 0 12:27 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 32561 29892 0 12:29 ? 00:00:00 /usr/sbin/sendmail -t -i -fchandra_gilliam@mydomain.ru
www-data 32562 32561 0 12:29 ? 00:00:00 /usr/sbin/postdrop -r
root 32564 27472 0 12:29 pts/1 00:00:00 grep www-data
myhost:~#

Как узнать что (файл/процесс/пр.) запускает sendmail?

Как узнать что и зачем запускает столько апача?

Еще обнаружили:

sendmail 27640 www-data 187u REG 3,3 0 437021 /tmp/.xcache.0.0.846930886.lock (deleted)
myhost:~# lsof -c sendmail

www-data 31781 31780 0 12:25 ? 00:00:00 /bin/sh -c test -x /usr/bin/php && /usr/bin/php -q /usr/share/horde3/scripts/alarms.php > /dev/null 2>&1
www-data 31782 31781 0 12:25 ? 00:00:00 /usr/bin/php -q /usr/share/horde3/scripts/alarms.php

Ни кто уже не помнит кто/когда/зачем сделал пользователя www-data, как узнать когда/кем он был создан?

Как его удалить полностью со всеми его файлами/процессами?

Спасибо!

yumix
() автор топика
Ответ на: комментарий от yumix

Ни кто уже не помнит кто/когда/зачем сделал пользователя www-data, как узнать когда/кем он был создан?

Он создается автоматически, при установке апача. Самой ОС.
Лучше в /etc/passwd убери ему шелл с баша на /bin/false.

tazhate ★★★★★
()
Ответ на: комментарий от Skolotovich

Все сделал как написано.

После перезапуска апача mailq продолжает заполняться письмами.

Убрали несколько левых скриптов с сайта поток писем уменьшился.

yumix
() автор топика
Ответ на: комментарий от yumix

Убрали несколько левых скриптов с сайта поток писем уменьшился.

походу оно в надцати местах на сайте прописалось, есть возможность сайт из бэкапа востановить?

и проверь что запись в кронтабе не появилась

Skolotovich ★★★
()

Посмотри заголовки спамового письма, там должен быть id юзера процесса, который отправил письмо

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

Посмотри заголовки спамового письма, там должен быть id юзера процесса, который отправил письмо

кто отправляет и так понятно, ты лучше помоги товарищу из сайта эту хню вырезать, бо я в пыхыпы теряюсь

Skolotovich ★★★
()
Ответ на: комментарий от yumix

Как узнать что и зачем запускает столько апача?

pstree. Остановить апач, проверить что поток писем прекратился. Затем смотреть конфиги апача.

Если письма продолжают создаваться, искать другой процесс и место, откуда он запустился (опять проверить крон, ~/.bashrc и т. д.).

Kiborg ★★★
()
Ответ на: комментарий от Kiborg

Столько апачей создает рутовый процесс апача, запущенный при старте системы из /etc/init.d. Он слушает 80й порт и при входящем подключении форкается. Можно netstat -lenp посмотреть еще, чтобы понять откуда подключение пришло.

Kiborg ★★★
()

А бэкапа у тебя, конечно, нет?

CYB3R ★★★★★
()
Ответ на: комментарий от yumix

завтыкал ответить

Как узнать что (файл/процесс/пр.) запускает sendmail?

либо из короновго скрипта или из пыхыпы, и може и то и другое

Как узнать что и зачем запускает столько апача?

это нормальное поведение, большенство моделей (mpm) апача основываются на префорке

Skolotovich ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.