Отклонить все почтовые пакеты на всех портах (исходящих) в Ubuntu
У меня просто была проблема с нашим провайдером; наше интернет-соединение было заблокировано, потому что было много почты, отправляемой с нашего ip. Проблема в том, что мы все используем gmail и что никакая почта не отправляется через SMTP-сервер ISP, насколько нам известно (ISP блокирует весь трафик на порт 25, если он не находится на их сервере).
Я заранее заблокировал порт 25, поэтому никакая исходящая почта на этот почтовый сервер не может покинуть нашу сеть. Но это не отвергает отправку почты в порты на других серверах.
Что я хотел бы сделать, это выяснить, что отправляет эти письма в нашей сети. Существует ли программа, которая может идентифицировать почтовые пакеты и отклонять их с помощью Ubuntu? Кстати, наш маршрутизатор Ubuntu не запускает SMTP-сервер.
4 ответа
tcpdump - это полезный инструмент для выгрузки пакетов из сети либо в файл, либо на экран, он обычно доступен в репозиториях для дистрибутивных пакетов и очень хорошо документирован и протестирован для подобных ситуаций.
Вы можете установить tcpdump на маршрутизатор Ubuntu ( apt-get install tcpdump
) и настройте его так, чтобы он отслеживал трафик smtp;
# tcpdump -s0 -w/tmp/smtp_dump port 25
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
Вы можете просмотреть файл, для которого хосты отправляют SMTP-трафик из другого сеанса SSH;
# tcpdump -qr /tmp/smtp_dump
reading from file /tmp/smtp_dump, link-type EN10MB (Ethernet)
13:27:54.291884 IP g0801.hpl.com.33942 > pz-in-f27.1e100.net.smtp: tcp 0
13:27:54.315294 IP pz-in-f27.1e100.net.smtp > g0801.hpl.com.33942: tcp 0
13:27:54.315323 IP g0801.hpl.com.33942 > pz-in-f27.1e100.net.smtp: tcp 0
13:27:54.339110 IP pz-in-f27.1e100.net.smtp > g0801.hpl.com.33942: tcp 45
...
вы можете получить более сложный вывод, если вы установите wireshark на свой локальный компьютер и загрузите файлы дампа или используете tshark в командной строке ssh.
предупреждение: tcpdump быстро заполнит ваш диск, если у вас много SMTP-трафика, поэтому просмотрите выходной файл ls -lh /tmp/smtp_dump
и остановите команду с помощью ctrl-c, когда у вас будет несколько МБ данных для просмотра.
Параметры интерфейса для tcpdump ( -i eth0
): если ваш маршрутизатор использует интерфейс, отличный от eth0, то вам, возможно, придется выбрать его с помощью -i
вариант, например tcpdump -i bond0 -s0 -w/tmp/smtp_dump port 25
Возможно, вы захотите заблокировать все ваши пакеты smtp, это может быть очень хлопотно, к счастью, есть l7-фильтр. Он может блокировать множество различных протоколов, вам просто нужно установить его на шлюз / брандмауэр.
Почту также можно отправлять через порты 465 и 587. (465 был отозван, но все еще может использоваться.). В сочетании со злоупотреблением прокси-сервером, почта может даже отправляться через порт 80 или 443 или 3128 (для squid) или многие другие.
У вашей сети есть единственная точка выхода в интернет? У вас есть брандмауэр в этот момент?
Если нет, то вы захотите этого. Если у вас есть несколько точек выхода, у вас должны быть брандмауэры на каждой. (Возможно, та же физическая коробка.)
Настройте брандмауэры так, чтобы они по умолчанию отбрасывали все и пропускали только нужный вам трафик.
Если вы не знаете, какой у вас обычный трафик, вы можете добавить строку регистрации в конец правил брандмауэра, чтобы все, что еще не было сопоставлено, регистрировалось.
Даже если вам удастся заблокировать трафик с помощью брандмауэра, вы все равно захотите отследить и прекратить отправку почты. Если вы не знаете, какой процесс его отправляет, почтой может быть взломанная система, открытый прокси-сервер или веб-форма, которой злоупотребляет какой-то спамер. Я не хотел бы один из тех в моей сети.
Лучшее решение, вероятно, состоит в том, чтобы настроить почтовые клиенты для использования порта отправки (587) или порта SSMTP (465) при отправке исходящей почты, а затем заблокировать весь исходящий трафик на порт 25. Большинство почтовых провайдеров должны разрешать доступ на эти порты для отправки. исходящая корреспонденция.