Всем привет!
Обращаюсь к этому ресурсу, потому что совсем не осталось времени на решение задачи, завтра надо сдавать проект, а сделать никак не получается.
Есть сервер, нужно его настроить, чтобы он работал в следующих режимах:
1.Принимает почту для пользователей домена из внешки от анонимных пользователей
2.Отправляет почту во внешку только от пользователей домена
Думаю, идея понятна, нельзя, чтобы сервер стал жертвой спамеров.
Вот мой конфиг:
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
readme_directory = no# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scachealias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost
relay_domains = $mydestination
mynetworks = 0.0.0.0/0
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
message_size_limit = 15000000
recipient_delimiter = +
inet_interfaces = allvirtual_mailbox_domains = /etc/postfix/vhosts
virtual_mailbox_base = /var/mail/virtual
virtual_mailbox_maps = hash:/etc/postfix/vmaps
virtual_uid_maps = hash:/etc/postfix/vuidmaps
virtual_gid_maps = hash:/etc/postfix/vuidmaps
virtual_alias_maps = pcre:/etc/postfix/virtualНа текущий момент сервер позволяет отправлять через себя почту куда угодно. Где подкрутить гаечку?
Заранее спасибо!
>[оверквотинг удален]
> inet_interfaces = all
> virtual_mailbox_domains = /etc/postfix/vhosts
> virtual_mailbox_base = /var/mail/virtual
> virtual_mailbox_maps = hash:/etc/postfix/vmaps
> virtual_uid_maps = hash:/etc/postfix/vuidmaps
> virtual_gid_maps = hash:/etc/postfix/vuidmaps
> virtual_alias_maps = pcre:/etc/postfix/virtual
> На текущий момент сервер позволяет отправлять через себя почту куда угодно. Где
> подкрутить гаечку?
> Заранее спасибо!А о smtpd_client_restrictions, smtpd_helo_restrictions, smtpd_sender_restrictions, smtpd_recipient_restrictions вы чтонить слышали\читали?
Go to http://www.postfix.org/documentation.html :-)
>[оверквотинг удален]
> inet_interfaces = all
> virtual_mailbox_domains = /etc/postfix/vhosts
> virtual_mailbox_base = /var/mail/virtual
> virtual_mailbox_maps = hash:/etc/postfix/vmaps
> virtual_uid_maps = hash:/etc/postfix/vuidmaps
> virtual_gid_maps = hash:/etc/postfix/vuidmaps
> virtual_alias_maps = pcre:/etc/postfix/virtual
> На текущий момент сервер позволяет отправлять через себя почту куда угодно. Где
> подкрутить гаечку?
> Заранее спасибо!sender_restrictions
recipient_restricions
client_restrictionsспи спокойно - до завтра все равно не управишся - придется доки читать
У тебя openrelay. Надо бы поправить, а то информация об этом очень быстро распространяется по спамерам. Буквально за сутки писем придет столько, что винт может не справляться даже с записью в лог))
Спасибо всем за подсказки, сделал задуманное при помощи permissions и mynetworks
> Спасибо всем за подсказки, сделал задуманное при помощи permissions и mynetworksлажа. все адреса легко подделываются. лучше изучите то, о чем Вам выше написали.
>> Спасибо всем за подсказки, сделал задуманное при помощи permissions и mynetworks
> лажа. все адреса легко подделываются. лучше изучите то, о чем Вам выше
> написали.я ошибся, опечатался, сделано при помощи restrictions
> mynetworks = 0.0.0.0/0Вот это мне понравилось, сообщите свой ip-aдрес .
>> mynetworks = 0.0.0.0/0
> Вот это мне понравилось, сообщите свой ip-aдрес .не скажу) так сделал - потому что почто почему не релеилась с общеизвестных почтовых серверов, писал relay access denied (571), вот и сделал, но потом нашел ноги, оказалось, что подобное сообщение отдавалось когда письма приходили на *.mydomain.ru, стал копать в сторону virtual_mailbox_domains /etc/postfix/vhosts, в файле /etc/postfix/vhosts:
mydomain.ru
.mydomain.ru
постфикс судя по всему не понимал .mydomain.ru и пропускал эту записьсделал через virtual_mailbox_domains pcre:/etc/postfix/vhosts:
/^(.*\.)|()mydomain\.ru$/сейчас все замечательно работает, правда периодически в логах проскакивает сообщение warning: /etc/postfix/vhosts, line 1: no replacement text: using empty string, что вобщем то логично
может кто знает, как правильно задать подобное правило постфиксу?
да, вы кстати как в воду глядели, за два дня в логи стало валиться столько сообщений(!!!), что свои логи отлавливаешь еле-еле! гребаные спамеры :)))))
>>> mynetworks = 0.0.0.0/0Вы ему поставили в свои (разрешенные по умолчанию сети) ВСЕ возможные адреса. 127.0.0.1/32 - без вариантов.
ADD
хотя не помню точно - м/б такое значени как раз и указывает, что доверенных сетей нет - но от греха подальше. там же еще параметр конфигурации есть - кому доверять типа: сети/хосту/...>> Вот это мне понравилось, сообщите свой ip-aдрес .
а какой смысл скрывать IP сервака, который публично выставлен в интернет? Думаете спаммеры его не найдут что ли )?
Так я его хоть протестировать снаружи смогу, указать Вам на очевидные промахи его работы (если они есть). А иначе дергайте логи, учитесь на собственных ошибках итд.
>[оверквотинг удален]
> постфикс судя по всему не понимал .mydomain.ru и пропускал эту запись
> сделал через virtual_mailbox_domains pcre:/etc/postfix/vhosts:
> /^(.*\.)|()mydomain\.ru$//^((.*\.)|())mydomain\.ru$/ ?
или что_то.mydomain.ru или mydomain.ru/^((.+\.)|())mydomain\.ru$/ ?
что_то не должно быть пустым. как позволяет это * (по классике - это 0 или больше повторений символа. как там postfix это проглатывает - не помню, но идея думаю ясна)судя по приведнному выражению у вас нет доменов 4-го уровня. так не парьте мозги - уберите это pcre и поставьте соотвествующие значение Вашего домена в основном файле конфигурации postfix. более того - если почитаете документацию, то найдете параметр, разрешающий принимать почту от всех поддоменов для Вашего сервера.
> сейчас все замечательно работает, правда периодически в логах проскакивает сообщение warning:
> /etc/postfix/vhosts, line 1: no replacement text: using empty string, что вобщем
> то логично
> может кто знает, как правильно задать подобное правило постфиксу?
> да, вы кстати как в воду глядели, за два дня в логи
> стало валиться столько сообщений(!!!), что свои логи отлавливаешь еле-еле! гребаные спамеры
> :)))))
> mynetworks = 0.0.0.0/0оригинально :)
>> mynetworks = 0.0.0.0/0
> оригинально :)я уже понял, когда спамеры начали стучаться 8)