Провайдер заблокировал отправку по smtp по жалобе.

A
На сайте с 04.01.2009
Offline
162
81

Итак неожиданно получил письмо от провайдера VPS ну и провайдер отрубил отправку писем скриптами.

Здравствуйте.

На вашу VPS  поступила жалоба, текст жалобы ниже, были вынуждены заблокировать smtp порты на вашем заказе.

Ссылка: https://check.spamhaus.org/results/?query=*****

Текст жалобы:

"Why was this IP listed?
**.**.**.*** has been classified as part of a proxy network. There is a type of malware using this IP that installs a proxy that can be used for nearly anything, including sending spam or stealing customer data. This should be of more concern than a Spamhaus listing, which is a symptom and not the problem.

The proxy is installed on a device - usually an Android mobile, firestick, smart doorbell, etc, but also iPads, and Windows computers - that is using your IP to send spam DIRECTLY to the internet via port 25: This is very often the result of third party "free" apps like VPNs, channel unlockers, streaming, etc being installed on someone's personal device, usually a phone.

Technical information:
Recent connections:

(IP, UTC timestamp, HELO value)

**.**.**.*** 2025-11-30 13:55:00 ****.com

Items of note:

This issue is very likely to be caused by a personal device, such as a mobile phone, with residential proxy malware or a spambot installed on it. It is EXTREMELY rare for this to be the SMTP server at fault.
This is a simple explanation of how it can work.
Any devices with "free" VPNs, TV streaming, channel unlocking, or 3rd-party apps installed are the first things to check.

What should be done about it?
DYNAMIC IPs/MOBILE USERS

If you are NOT running a local mail server on this IP, please do the following:

Go to What Is My IP? and find out what your public IP is.
Call your ISP - the company that is providing your internet access via the IP you just looked up.
Find out from your ISP if the IP is dedicated or dynamic.
If it is dynamic, is it CG/NAT?
What are your outbound mail settings? Have your ISP verify your mail settings are correct:
SMTP server name
Outgoing SMTP port
Are you using SMTP authentication - yes/no?
Once you have this information, open a ticket.
Please provide your verified mail settings in this ticket. Our ability to help you depends on this information!

STATIC IP/LOCAL MAIL SERVER(S)

Do you have one or more local SMTP servers? The problem is NOT your mail server. It is never the mail server. It is always someone's mobile device (phone, laptop, tablet), or more rarely a computer, somewhere on the LAN. There can be more than one!

These are the recent HELOs we have seen. If they match your mail server's rDNS, do not dismiss this, and read on.

(IP, UTC timestamp, HELO value)

**.**.**.*** 2025-11-30 13:55:00 ****.com

What to do:

Make sure port 25 access is limited to mail server access only / end-users should be using SMTP authentication on port 587 or 465
Guest networks need to be limited too!
Remote sending of email to servers via the Internet will still work if web-based, or configured properly to use port 587 using SMTP-AUTH.
Do you have clients or end users NAT'd to the same IP as your mailserver? If so, this is very likely to be the source of the problem.
Set up logging at the exit point and let it run for a few days to find anomalous port 25 traffic - these proxies do not necessarily fire every day."

Уже все перерыл и не могу найти в логах mail.log и mainlog ничего похожего на отправку спама с сервера(может не там искал?), более того на сервере не создано не одного почтового ящика(все ящики типа site@site.ru были созданы на Яндекс, ранее услуга Почта для домена), а почтовый домен в обще в зоне ru, а не com как в жалобе, что в жалобе это в зоне com это название сервера.  Письма с сайтов отправлялись скриптами через php mail() то есть простые уведомления о регистрации и тд.. 
Едиственное есть мысль, что на сервере был настрое прокси 3proxy (http и socks) возможно подобрали пароль и тупо через прокси со своих почтовых адресов рассылали спам?  в в логе такие строчки

1764879966.306 PROXY.9999 00004 - 172.236.228.202:50866 0.0.0.0:0 0 0 0 GET_http://**.***.**.***:9999/_HTTP/1.1
1764880010.453 PROXY.9999 00004 - 141.95.206.110:47567 0.0.0.0:0 0 0 0 GET_http://**.***.**.***:9999/_HTTP/1.1
1764880036.078 SOCKS.8088 00401 - 172.236.228.111:12520 0.0.0.0:0 0 0 0 UNKNOWN_0.0.0.0:0
1764880036.419 SOCKS.8088 00401 - 172.236.228.111:12530 0.0.0.0:0 0 0 0 UNKNOWN_0.0.0.0:0
1764882164.752 ADMIN.2525 00000 - 172.104.11.34:44040 0.0.0.0:0 0 0 0 
1764885908.727 PROXY.9999 00004 - 147.182.247.10:41496 0.0.0.0:0 0 0 0 GET_http://**.***.**.***/_HTTP/1.1
1764885909.825 PROXY.9999 00004 - 147.182.247.10:41506 0.0.0.0:0 0 0 0 GET_http://**.***.**.***:9999/favicon.ico_HTTP/1.1
1764885991.337 SOCKS.8088 00401 - 185.38.149.140:58292 0.0.0.0:0 0 0 0 UNKNOWN_0.0.0.0:0
1764890103.152 PROXY.9998 00511 - 147.182.202.179:56244 :::0 0 0 0 sysinfo
1764890104.538 PROXY.9998 00100 - 147.182.202.179:56274 0.0.0.0:0 0 0 0 GET_/_HTTP/1.1
1764890105.692 PROXY.9998 00100 - 147.182.202.179:56278 0.0.0.0:0 0 0 0 GET_/favicon.ico_HTTP/1.1
1764897257.373 PROXY.9999 00004 - 20.65.154.237:33494 0.0.0.0:0 0 0 0 GET_http://**.***.**.***:9999/_HTTP/1.1
1764897267.696 PROXY.9999 00512 - 20.65.154.237:33506 0.0.0.0:0 0 0 0 MGLNDD_**.***.**.***_9999_

Вот и вопрос, что это действительно 3proxy выиноват? но зачем тогда провайдер заблокировал отправку писем с VPS или нужно искать что действительно как то рассылают спам через mail() но где искать логи таких рассылок?

N2
На сайте с 25.04.2024
Offline
40
#1

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

A
На сайте с 04.01.2009
Offline
162
#2
Nil2024 #:

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

естественно,  там описано, что типа с вашего IP идет рассылка спама и вероятнее всего ваше устройство к которому привязан IP заражено и тд, в данном случае это IP сервера и соответственно с его IP и идет рассылка спама это и подразумевается под устройством.  Можно было бы предположить, если бы у меня был почтовый ящик который создан на сервере и через мой ПК каким то вирусом отправляли спам через этот почтовый ящик, но у меня нет почтовых ящиков созданых на сервере, все ящики домена созданы и расположены на "Яндекс почта для домена", соответственно если какой то из этих email взломан то отправляли ли бы через сервера яндекса и то все эти email давно уже работают только на прием почты(яндекс ограничил). Вот по этому я думаю, что может угнали 3proxy и через него рассылали спам соответственно с IP сервера получается
N2
На сайте с 25.04.2024
Offline
40
#3

Спросил у qwen

может пригодится:

Если:


✅ **Почтовый сервер (MTA) не установлен вообще** (`postfix`, `exim`, `sendmail` отсутствуют),  

✅ **Логи (`/var/log/syslog`, `auth.log`, `kern.log`, `journalctl -u ...`) не показывают активности на порту 25**,  

✅ `ss -tulnp | grep ':25'` — пусто,  

✅ `lsof -i :25`, `netstat -tulpan | grep :25` — тоже ничего,  

✅ а IP всё равно в чёрном списке как *open proxy / spam relay*…


…то это **не ошибка**, а признак **неочевидного, скрытого исходящего SMTP-трафика**, который **не проходит через локальный MTA**, а генерируется напрямую — «в обход».


---


### 🔍 Почему так бывает? (Типичные сценарии для «чистого» сервера)


#### 1. **Веб-приложение отправляет почту через `socket`, а не через `sendmail`**

- PHP, Python, Node.js и другие языки могут открывать **TCP-соединение напрямую к внешним SMTP-серверам** (gmail.com:587, mail.ru:465, даже `127.0.0.1:25` — если в скрипте жёстко прописано).

- Примеры:

  ```php

  // PHP: чистый socket-отправщик (без логирования MTA!)

  $sock = fsockopen('mx1.example.com', 25); // ← порт 25 напрямую!

  fwrite($sock, "HELO victim-server.com\r\n");

  fwrite($sock, "MAIL FROM:<spam@victim.com>\r\n");

  ```

  → Такой код **не оставляет следов в `/var/log/mail.log`**, потому что MTA не участвует.


#### 2. **Уязвимость в веб-приложении → RCE → спам-бот**

- Например: LFI/RFI → `php://input` → `eval($_POST['cmd'])` → загрузка `spammer.php`.

- Или: уязвимость в загрузчике изображений → загрузка `.php` под видом `.jpg` → запуск через `curl` извне.

- Бот работает **в памяти** или во временных файлах (`/tmp`, `/dev/shm`), удаляет следы после отправки.


#### 3. **Злоумышленник использует ваш сервер как SOCKS/HTTP-прокси**

- Пример: запущен `3proxy`, `microsocks`, `gost`, `squid` (даже в single-thread режиме), и он **перенаправляет SMTP-трафик**.

- Или: веб-шелл с функцией `proxy()` — принимает соединение и проксирует его наружу.

- Такой прокси **не логирует по умолчанию** — особенно если запущен в `screen`/`tmux` или как `systemd --user`-юнит.


#### 4. **Контейнер / chroot / jail "на стороне"**

- Docker-контейнер с `--network=host` может слушать порт 25 незаметно для `lsof` на хосте (если не использовать `nsenter`).

- LXC/LXD, systemd-nspawn, `firejail` — тоже могут «скрывать» соединения.

- Проверьте:

  ```bash

  docker ps -a

  lxc list

  systemd-cgls  # смотрим дерево контрольных групп

  ```


#### 5. **SMTP через IPv6**

- Многие администраторы забывают проверять IPv6.

- Выполните:

  ```bash

  ss -tuln | grep ':25'

  ss -tuln -6 | grep ':25'   # ← IPv6!

  ip6tables -L -n -v

  ```


---


### 🛠️ Как **доказать/опровергнуть** наличие скрытого SMTP?


#### ▶ 1. **Поймать "в моменте"**

Запустите мониторинг **всех исходящих SMTP-соединений в реальном времени**, даже если локально порт 25 не слушается:


```bash

sudo tcpdump -i any -nn -w /tmp/smtp.pcap port 25 or port 465 or port 587 &

# или (более читаемо):

sudo tshark -i any -f "tcp port 25 or tcp port 465 or tcp port 587" \

  -Y "smtp or tls" -T fields -e frame.time -e ip.src -e ip.dst -e tcp.dstport -e smtp.req.command

```


Оставьте на 10–30 минут. Если сервер "звонит" — вы увидите:

```

Nov 30, 2025 13:55:00.123456 → **.**.**.*** → 94.100.180.25:25 → EHLO ****.com

```


#### ▶ 2. **Логировать ВСЕ исходящие соединения на 25/465/587**

Через `iptables` + `ulogd` или просто:

```bash

sudo iptables -I OUTPUT -p tcp --dport 25 -j LOG --log-prefix "[SMTP-OUT] "

sudo iptables -I OUTPUT -p tcp --dport 465 -j LOG --log-prefix "[SMTPS-OUT] "

sudo iptables -I OUTPUT -p tcp --dport 587 -j LOG --log-prefix "[SUBMISSION-OUT] "

```

→ Проверяйте `dmesg -T | grep SMTP-OUT` или `/var/log/kern.log`.


#### ▶ 3. **Проверить процессы, использующие сокеты (даже без привязки к порту)**

```bash

# Все процессы, открывшие сокеты (даже временные)

sudo lsof -iTCP -sTCP:ESTABLISHED | grep -E ':(25|465|587)'

sudo ss -tupen  # покажет UID, PID, inode сокета

```


#### ▶ 4. **Проверить /tmp и /dev/shm на наличие подозрительного кода**

```bash

find /tmp /dev/shm -type f \( -name "*.php" -o -name "*.pl" -o -name "*.py" -o -name "*.sh" \) -exec ls -la {} \;

grep -r "fsockopen\|stream_socket_client\|socket_create\|HELO\|EHLO" /tmp /dev/shm 2>/dev/null

```


Особенно ищите:

- `base64_decode(` + `eval(`;

- `gzinflate(` + `base64_decode(`;

- строки вроде `"25"`, `"mail from:"`, `"rcpt to:"`.


---


### 🧩 Ваш кейс — высокая вероятность: **веб-приложение + уязвимость загрузки**

Учитывая, что вы:

- разрабатываете сайт с загрузкой изображений (batch processing, thumbnails, WebP),

- есть `/admin` с multi-upload и AJAX,

- используете PHP (для QR-кодов, BBCode и т.д.),


…самая частая дыра — **некорректная валидация расширений при загрузке**.


Например:

- `image.jpg.php` → если сервер проверяет только `exif_imagetype()`, но не расширение в URL;

- `.htaccess` позволяет исполнять PHP в `/uploads`;

- или — через **файл с EXIF-комментарием**, содержащим PHP-код (если используется `exif_read_data` без экранирования).


→ Злоумышленник загружает «фото», а на самом деле — шелл-скрипт, который раз в сутки отправляет 100 писем через `fsockopen` — и чистит следы.


---


### ✅ Что делать — пошагово (для "чистого" сервера)


| Шаг | Действие |

|-----|----------|

| 1️⃣ | Заблокируйте исходящий порт 25 **на уровне ядра**: `iptables -A OUTPUT -p tcp --dport 25 -j DROP` |

| 2️⃣ | Запустите `tcpdump`/`tshark` на 10–60 мин — подтвердите/опровергните трафик |

| 3️⃣ | Проверьте `/tmp`, `/dev/shm`, `/var/tmp`, `/run/user/*` — временные файлы |

| 4️⃣ | Протестируйте веб-часть: загрузите файл с именем `test.jpg.php`, откройте его в браузере — исполняется ли как PHP? |

| 5️⃣ | Проверьте права на `/uploads`: должны быть `755` на папки, `644` на файлы; **никаких `777`** |

| 6️⃣ | Убедитесь, что в `nginx`/`apache` для `/uploads` запрещено выполнение скриптов:  

```nginx

location ~* ^/uploads/.*\.(php|pl|py|cgi|sh)$ {

    deny all;

}

``` |

| 7️⃣ | Включите `auditd` на критические файлы:  

```bash

sudo auditctl -w /var/www/ -p wa -k web_files

sudo ausearch -k web_files --start today

``` |


---


### 💡 Профилактика "на будущее"

- Используйте **отдельный пользователь** для веб-приложения (не `www-data`! например, `appuser`), без shell (`/usr/sbin/nologin`).

- Ограничьте его возможности через `systemd`:

  ```ini

  # /etc/systemd/system/app.service

  [Service]

  User=appuser

  NoNewPrivileges=yes

  RestrictSUIDSGID=yes

  PrivateTmp=yes

  ProtectSystem=strict

  ProtectHome=yes

  RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX

  IPAddressDeny=any

  IPAddressAllow=91.108.56.0/22    # Telegram API (если нужно)

  IPAddressAllow=149.154.160.0/20  # Telegram API

  # ... и т.д.

  ```

- Отключите `allow_url_fopen`, `allow_url_include` в `php.ini`.

- Для отправки уведомлений — используйте API (SendGrid, Mailgun), **не raw SMTP**.


---


Если после всех проверок трафик не найден — возможно, **ваш IP был скомпрометирован ранее**, и блокировка ещё не снята, или это **ошибка репутационной системы** (редко, но бывает при CGNAT у провайдера).


Но учитывая дату в логе — `2025-11-30` (это **в будущем**, относительно сегодня, 6 декабря 2025), — стоит также проверить:

- **корректность системного времени** (`timedatectl`),  

- не подменён ли `TZ` в скриптах,  

- не фейковое ли это уведомление (фишинг под "security alert").



Теперь пойду его успокою, что дело не в моем сервере, а то переживает.

Rustam .0.
На сайте с 09.07.2025
Online
9
#4

Они прямым текстом пишут: проблема НЕ в вашем почтовом сервере. Это никогда не почтовый сервер.

Не там ищете, ваш mail.log чист, потому что спам шел не через ваш почтовик, а напрямую с вашего IP адреса на 25-й порт почтовых серверов по всему миру

LEOnidUKG
На сайте с 25.11.2006
Online
1773
#5

Эм... так если у вас нет почты на сервере, вам и 25 порт то не нужен. Если вся почта на Яндексе. 

Какая у вас панель управления сервером? Удалите вообще почтовый сервер у себя.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий