Отправка писем и сужение сценария

0

Я использую очень старый сервер Ubuntu, который некоторое время назад был почтовым сервером, который был заражен. К сожалению, на этом сервере работает веб-страница. Некоторые сценарии / страницы / вредоносные программы пытаются отправить много спама - я знаю, потому что / var / spool / postfix / maildrop заполняется довольно быстро

Я думал, что изменение php5 / cli / php.ini sendmail_path на что-то недопустимое остановит это. К сожалению, это не так (я перезагрузил Apache). Сервер настолько старый, что даже iotop не работает. (нужно обновить ядро ​​+ пакеты, чего не произойдет).

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

Michal Sapsa
источник

Ответы:

1

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

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

iptables -A OUTPUT --dport 25 -m owner --uid-owner XX -j ACCEPT  # Where XX is the UID of the Email server
iptables -A OUTPUT --dport 25 -j LOG  --log-level 6 --log-prefix "Outgoing SMTP blocked:"
iptables -S OUTPUT --dport 25 -j DROP

Возможно, вы захотите запустить команду netstat от имени root несколько раз, чтобы увидеть, какие программы отправляют сообщения. Я бы использовал команду что-то вроде:

netstat -antp | grep :25

Важно, чтобы ваша рассылка была актуальной. Используя LTS, вы можете обновлять версию каждые 2 года, а нормальный цикл выпуска - каждые 6 месяцев. Пакет как unattended-upgrades можно применять обновления по мере их появления.

BillThor
источник
единственный процесс, который использует: 25 это apache2
Michal Sapsa
Я добавил iptables -A OUTPUT -p tcp --dport 25 -j DROP и цепочка INPUT одинаковые. netstat не чист, но я не могу найти файл, который пытается отправить эти письма. Из -j LOG я вижу, что мой сервер пытается подключиться к другим серверам через порт 25. Я хотел бы получить файл, который делает это
Michal Sapsa
@MichalSapsa apache2 не должен подключаться к: 25, если он не подключается к почтовому релею. Обычно это localhost (127.0.0.1:25), но его можно настроить для другого хоста. Возможно, кто-то поместил скрипт в один из каталогов веб-сервера, который используется для рассылки спама. Если вы можете, выключите веб-сервер, пока не найдете его. Записи в журнале должны указывать, что вы сейчас блокируете спамбот, но его все равно необходимо идентифицировать и удалить.
BillThor
0

Благодаря помощи @BillThor - большое спасибо, и несколько подобных вопросов здесь, в суперпользователе, мне удается это сделать:

1) Отключить ввод и вывод порта 25 (smtp)

iptables -A OUTPUT -p tcp --dport 25 -j DROP
iptables -A OUTPUT -p tcp --dport 25 -j LOG  --log-level 6 --log-prefix "SMTP BLOCK:"
iptables -A INPUT -p tcp --dport 25 -j DROP

2) Отключите любой сервис imap / courier / pop / smtp на сервере (это был старый почтовый сервер, теперь нет смысла его иметь)

3) я скачиваю maldetect который сразу показал мне проблемные файлы, такие как img23141243.php.jpg или img1321312.php.gif

После очистки этой старой учетной записи веб-сервера apache2 не подключается: 25 нигде. Мониторинг этого с помощью регистрации любого исходящего актива на порту 25, и с

netstat -antp | grep :25

4) к сожалению, LMD не нашел все вредоносные программы на сервере, но я использовал HowToForge Статья о том, как перенаправить команду sendmail на внешний скрипт, который будет регистрировать каждую попытку отправки почты, которая регистрирует путь к папке зараженного файла Благодаря этому я нашел sql.php, который был заражен.

Michal Sapsa
источник