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

656
Michal Sapsa

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

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

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

0

2 ответа на вопрос

1
BillThor

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

Следующие правила 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может применять обновления по мере их появления.

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

Благодаря помощи @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, который был заражен.

Похожие вопросы