Помогите придумать правило iptables

123
bugsmoran
На сайте с 18.02.2010
Offline
223
#11

Мой пардон, iptables уже это умеет.

Вот наверно единственная конструкция, которая может помочь:

-m string --string "235 Authentication succeeded" --algo kmp

Как этим воспользоваться.

Вот пример письма, которое не использует аутентификацию:

root@example:~# swaks --server example.com --to hidden.address@gmail.com
=== Trying example.com:25...
=== Connected to example.com.
<- 220 example.com ESMTP Exim 4.80 Sun, 23 Sep 2012 10:55:49 +0000
-> EHLO example.com
<- 250-example.com Hello example.com [178.163.169.128]
<- 250-SIZE 52428800
<- 250-8BITMIME
<- 250-PIPELINING
<- 250-AUTH PLAIN LOGIN
<- 250-STARTTLS
<- 250 HELP
-> MAIL FROM:<root@example.com>
<- 250 OK
-> RCPT TO:<hidden.address@gmail.com>
<** 550 relay not permitted
-> QUIT
<- 221 example.com closing connection
=== Connection closed with remote host.

А вот пример письма, которое использует:

root@example:~# swaks --server example.com --to hidden.address@gmail.com --auth-user michael --auth-password СложНыйП123ароль
=== Trying example.com:25...
=== Connected to example.com.
<- 220 example.com ESMTP Exim 4.80 Sun, 23 Sep 2012 10:56:05 +0000
-> EHLO example.com
<- 250-example.com Hello example.com [178.163.169.128]
<- 250-SIZE 52428800
<- 250-8BITMIME
<- 250-PIPELINING
<- 250-AUTH PLAIN LOGIN
<- 250-STARTTLS
<- 250 HELP
-> AUTH LOGIN
<- 334 VXNlcm5hbWU6
-> dmFsZXJpYQ==
<- 334 UGFzc3dvcmQ6
-> dmFsZXJpYQ==
<- 235 Authentication succeeded
-> MAIL FROM:<root@example.com>
<- 250 OK
-> RCPT TO:<hidden.address@gmail.com>
<- 250 Accepted
-> DATA
<- 354 Enter message, ending with "." on a line by itself
-> Date: Sun, 23 Sep 2012 10:56:05 +0000
-> To: hidden.address@gmail.com
-> From: root@example.com
-> Subject: test Sun, 23 Sep 2012 10:56:05 +0000
-> X-Mailer: swaks v20120320.0 jetmore.org/john/code/swaks/
->
-> This is a test mailing
->
-> .
<- 250 OK id=1TFjr3-0001au-Uw
-> QUIT
<- 221 example.com closing connection
=== Connection closed with remote host.

А это значит, что в диалогах честно отправленных письмах присутствует строчка "235 Authentication succeeded". Соответственно заставьте Ваш iptables искать эту строчку через такую конструкцию:

-m string --string "235 Authentication succeeded" --algo kmp

и тогда делать такому письму -J ACCEPT

и наоборот делать -j DROP письмам с текстом "550 relay not permitted"

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

А когда Вы водрузите этого мастадонта, то пользователи начнут над Вами смеяться, передавая в поле DATA текст "235 Authentication succeeded" )))

Ну и вариант, когда принимающий сервер будет сразу MTA тоже Ваша смерть. А будет именно так.

D
На сайте с 05.06.2007
Offline
155
#12

Andreyka мы вообще не о том, и не поймёте, вы видимо не разрешаете запуск демонов, а соответственно левых MTA серверов, и наконец соответственно у вас небыло таких случаев никогда. И если что, спаму у меня нет, вопрос в другом.

bugsmoran, да я именно об этом, -m string, странно что вы об этом не знали, много где используется. Вот только сработает ли ваш пример? указанная вами строка это ответ маил сервера, нам это мало что даст, фильтр по исходящему соединению, и поэтому нужно смотреть на

AUTH LOGIN

или модуль string всё фильтрирует что происходит между клиентами в оба направления?

php от разных пользователей.

Ну и вариант, когда принимающий сервер будет сразу MTA тоже Ваша смерть. А будет именно так.

Дак именно это и нужно, для php он должен быть только

Сервер1 PHP => Сервер2 MSA ->Сервер2 MTA.

КОРОЧЕ, наверное надо забить и пусть юзают локальный MTA, крыша едет уже)

Написал не мало шедевров ;)
bugsmoran
На сайте с 18.02.2010
Offline
223
#13
Dimanych:

bugsmoran, да я именно об этом, -m string, странно что вы об этом не знали, много где используется.

Да, действительно странно, что я не знал о том, о чем знал. Я не не знал, а не сразу вспомнил. Мне несколько надоело случать фразы в стиле "95% я уже знал" и "странно, что Вы не знали". После того, как я Вам все это рассказал. Не знаете как раз Вы, иначе бы уже упомянули.

Наш диалог выглядит так: я говорю Вам как устроено, а Вы лезете в интернет дочитывать. После этого публикуете мне пост, про Ваши глобальные знания и мои незнания. Вы так самоутверждаетесь?

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

Я Вам не помогаю решить задачу, а объясняю, что решить ее физически невозможно, потому что она алогична.

D
На сайте с 05.06.2007
Offline
155
#14

Всё, спасибо, понял.

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

А вы не разу не гуглили пока отвечали? Всегда бывают сомнения особенно если они появляются от других. Если что, у меня тоже были поводы не писать про string, чтобы не исключать другие возможные варианты решения задачи. А вы же сразу написали что таких возможностей в iptables нет, ещё непонятно кто больше гуглит из нас.

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

PS> я не согласен что проблема алогична, просто решение её очень сложное или практически невозможное.

Andreyka
На сайте с 19.02.2005
Offline
822
#15

Да, верно

Я левых mta не поднимал и никому не советую. Тем не менее любой mta можно обвязать по аналогичному принципу, что и в примере.

Не стоит плодить сущности без необходимости
D
На сайте с 05.06.2007
Offline
155
#16
Andreyka:
Да, верно
Я левых mta не поднимал и никому не советую. Тем не менее любой mta можно обвязать по аналогичному принципу, что и в примере.

Речь не о Вас, а о пользователях, например через SSH доступ он запускает спамерский MTA. Также и вири всякие могут сделать тоже самое. Отклонились от темы, да впринцепи и так всё понятно.

M
На сайте с 16.09.2009
Offline
278
#17
Dimanych:
Думаю кто боролся с исходящим спамом поймёт меня)

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

Нужна скриптам авторизация - авторизуйте их на своем exim. А дальше используйте то, что у вас на 5+ работает.

Dimanych:
Речь не о Вас, а о пользователях, например через SSH доступ он запускает спамерский MTA.

Задача администратора как раз и состоит в том, чтобы такое добро не работало. Настроить так, чтобы... А вы сисадминов уволили, по ходу :)

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
D
На сайте с 05.06.2007
Offline
155
#18

myhand, Хорошо, если это тупость, скажите как авторизовать пользователей на своём exim для отправки писем например через smtp.google.com или smtp.mail.ru?

Это разве возможно? (для чего это нужно я уже писал)

Такое добро и не работает у нас, вы о чём? Или вы тоже практикуете полную блокировку шелов для клиентов?

Нашим сисадминам ничего практически делать не приходится... увы, так всё настроено.

M
На сайте с 16.09.2009
Offline
278
#19
Dimanych:
myhand, Хорошо, если это тупость, скажите как авторизовать пользователей на своём exim для отправки писем например через smtp.google.com или smtp.mail.ru?

А зачем вам это делать?

Dimanych:
Это разве возможно? (для чего это нужно я уже писал)

Выдайте клиентам все что нужно для авторизации на *вашем* smtp-сервере. smtp.google.com что, для них медом намазан? 🍿

Dimanych:
Такое добро и не работает у нас, вы о чём?

Ну вот и здорово. Вот и не ломайте.

D
На сайте с 05.06.2007
Offline
155
#20

Тьфу ты, чтож такое сегодня)

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

ладно, нет так нет, опять время на форуме провёл целый день и всё в пустую ))

123

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