Доброго времени суток!Перечитал кипу документации и форумов, но все также не могу решить проблему, надеюсь что кто-нибуть укажет куда копать.
Дано:
Ubuntu 10.04.4 LTS
Почтовая система IredMail (Postfix+Dovecot+OpenLDAP)На данный момент из Интернета можно подключится к SMTP серверу - авторизироваться и отправлять письма.
Нужно:
Ограничить возможность SMTP авторизации только из определенных диапазонов локальной сети а именно 192.168.1.0/24 10.10.10.0/24На данный момент конфиг Postfix'а main.cf имеет следующий вид:
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
# TLS parameters
smtpd_tls_cert_file = /etc/ssl/certs/iRedMail_CA.pem
smtpd_tls_key_file = /etc/ssl/private/iRedMail.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scachemyhostname = mail.example.com
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
myorigin = mail.example.com
mydestination = $myhostname, localhost, localhost.localdomain, localhost.$myhostname
relayhost =
mynetworks = 127.0.0.1/32, 192.168.1.0/24, 10.10.10.0/24
recipient_delimiter = +
inet_interfaces = all
mydomain = example.com
mailbox_size_limit = 22000000
mail_name = iRedMail
mail_version = 0.6.1
relay_domains = $mydestination, proxy:ldap:/etc/postfix/ldap_relay_domains.cf
inet_protocols = ipv4
mynetworks_style = subnet
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_reject_unlisted_recipient = yes
smtpd_sender_restrictions = permit_mynetworks,permit_sasl_authenticated, reject_sender_login_mismatch
delay_warning_time = 0h
policy_time_limit = 3600
maximal_queue_lifetime = 1d
bounce_queue_lifetime = 1d
proxy_read_maps = $canonical_maps $lmtp_generic_maps $local_recipient_maps $mydestination $mynetworks $recipient_bcc_maps $recipient_canonical_maps $relay_domains $relay_recipient_maps $relocated_maps $sender_bcc_maps $sender_canonical__maps $smtp_generic_maps $smtpd_sender_login_maps $transport_maps $virtual_alias_domains $virtual_alias_maps $virtual_mailbox_domains $virtual_mailbox_maps
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks,permit_sasl_authenticated, check_helo_access pcre:/etc/postfix/helo_access.pcre
queue_run_delay = 300s
minimal_backoff_time = 300s
maximal_backoff_time = 4000s
enable_original_recipient = no
disable_vrfy_command = yes
home_mailbox = Maildir/
allow_min_user = no
virtual_minimum_uid = 1001
virtual_uid_maps = static:1001
virtual_gid_maps = static:1001
virtual_mailbox_base = /var/vmail
transport_maps = proxy:ldap:/etc/postfix/ldap_transport_maps_user.cf, proxy:ldap:/etc/postfix/ldap_transport_maps_domain.cf
virtual_alias_maps = proxy:ldap:/etc/postfix/ldap_virtual_alias_maps.cf, proxy:ldap:/etc/postfix/ldap_virtual_group_maps.cf, proxy:ldap:/etc/postfix/ldap_sender_login_maps.cf, proxy:ldap:/etc/postfix/ldap_catch_all_maps.cf
virtual_mailbox_domains = proxy:ldap:/etc/postfix/ldap_virtual_mailbox_domains.cf
virtual_mailbox_maps = proxy:ldap:/etc/postfix/ldap_virtual_mailbox_maps.cf
sender_bcc_maps = proxy:ldap:/etc/postfix/ldap_sender_bcc_maps_domain.cf, proxy:ldap:/etc/postfix/ldap_sender_bcc_maps_user.cf
recipient_bcc_maps = proxy:ldap:/etc/postfix/ldap_recipient_bcc_maps_domain.cf, proxy:ldap:/etc/postfix/ldap_recipient_bcc_maps_user.cf
smtpd_sender_login_maps = proxy:ldap:/etc/postfix/ldap_sender_login_maps.cf
smtpd_reject_unlisted_sender = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = no
smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unlisted_recipient, check_policy_service inet:127.0.0.1:7777, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, check_policy_service inet:127.0.0.1:10031
smtpd_tls_security_level = may
smtpd_enforce_tls = no
smtpd_tls_loglevel = 0
tls_random_source = dev:/dev/urandom
tls_daemon_random_source = dev:/dev/urandom
mailbox_command = /usr/lib/dovecot/deliver
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_type = dovecot
smtpd_sasl_path = dovecot-auth
content_filter = smtp-amavis:[127.0.0.1]:10024
smtp_pix_workarounds=
message_size_limit = 20971520Буду рад любой помощи! Спасибо
Не совсем понятно что подразумевает фраза:
"Ограничить возможность SMTP авторизации только из определенных диапазонов локальной сети а именно 192.168.1.0/24 10.10.10.0/24"
И как она коррелирует со строчкой:
mynetworks = 127.0.0.1/32, 192.168.1.0/24, 10.10.10.0/24
> Не совсем понятно что подразумевает фраза:
> "Ограничить возможность SMTP авторизации только из определенных диапазонов локальной
> сети а именно 192.168.1.0/24 10.10.10.0/24"
> И как она коррелирует со строчкой:
> mynetworks = 127.0.0.1/32, 192.168.1.0/24, 10.10.10.0/24В mynetworks перечислены две рабочие подсети (локальная и VPN) и локалхост самого сервера.
Мне нужно чтоб только из этих двух подсетей была возможность авторизироватся и отправлять почту. Сейчас же можно подключится из любой точки вне сети и зная логин и пароль использовать сервер для отправки почты.
>[оверквотинг удален]
> tls_daemon_random_source = dev:/dev/urandom
> mailbox_command = /usr/lib/dovecot/deliver
> virtual_transport = dovecot
> dovecot_destination_recipient_limit = 1
> smtpd_sasl_type = dovecot
> smtpd_sasl_path = dovecot-auth
> content_filter = smtp-amavis:[127.0.0.1]:10024
> smtp_pix_workarounds=
> message_size_limit = 20971520
> Буду рад любой помощи! СпасибоЕсли не принципиально, то закройтесь файрволлом на 25 порт и всё.
> Если не принципиально, то закройтесь файрволлом на 25 порт и всё.Так почту получать то нужно
>> Если не принципиально, то закройтесь файрволлом на 25 порт и всё.
> Так почту получать то нужноТак получайте, в чём проблема, это 110-ый порт будет для POP3 например.
>>> Если не принципиально, то закройтесь файрволлом на 25 порт и всё.
>> Так почту получать то нужно
> Так получайте, в чём проблема, это 110-ый порт будет для POP3 например.Возможно Вы меня неправильно поняли (или я Вас), если я закрою в файрволе 25 порт как я буду получать почту от других серверов? Мне нужно всего лишь запретить авторизацию для отправки почты отовсюду кроме двух подсетей и самого сервера.
>>>> Если не принципиально, то закройтесь файрволлом на 25 порт и всё.
>>> Так почту получать то нужно
>> Так получайте, в чём проблема, это 110-ый порт будет для POP3 например.
> Возможно Вы меня неправильно поняли (или я Вас), если я закрою в
> файрволе 25 порт как я буду получать почту от других серверов?
> Мне нужно всего лишь запретить авторизацию для отправки почты отовсюду кроме
> двух подсетей и самого сервера.Да, действительно не правильно. Но кажется нашёл, попробуйте.
smtpd_sasl_exceptions_networks = $mynetworks
> Да, действительно не правильно. Но кажется нашёл, попробуйте.
> smtpd_sasl_exceptions_networks = $mynetworksСейчас попробовать нет возможности, но попробую вечером.
Правда есть некоторые сомнения
Из документации http://www.postfix.org/postconf.5.html#smtpd_sasl_exceptions...smtpd_sasl_exceptions_networks (default: empty)
What remote SMTP clients the Postfix SMTP server will not offer AUTH support to.Some clients (Netscape 4 at least) have a bug that causes them to require a login and password whenever AUTH is offered, whether it's necessary or not. To work around this, specify, for example, $mynetworks to prevent Postfix from offering AUTH to local clients.
Как я понимаю если использовать $mynetworks, Postfix не будет предлагать AUTH для всех подсетей\хостов которые перечислены в mynetworks, и это немножко не то что я ищу. Или возможно я что-то не так понял?
>[оверквотинг удален]
> smtpd_sasl_exceptions_networks (default: empty)
> What remote SMTP clients the Postfix SMTP server will not offer AUTH
> support to.
> Some clients (Netscape 4 at least) have a bug that causes them
> to require a login and password whenever AUTH is offered, whether
> it's necessary or not. To work around this, specify, for example,
> $mynetworks to prevent Postfix from offering AUTH to local clients.
> Как я понимаю если использовать $mynetworks, Postfix не будет предлагать AUTH для
> всех подсетей\хостов которые перечислены в mynetworks, и это немножко не то
> что я ищу. Или возможно я что-то не так понял?Там можно определять отдельно со снаком отрицания = "!", то что я написал, это просто из мана выдернуто было
> Там можно определять отдельно со снаком отрицания = "!", то что я
> написал, это просто из мана выдернуто былоПопробовал(в разных вариациях), но к сожалению этот вариант не работает.
>> Там можно определять отдельно со снаком отрицания = "!", то что я
>> написал, это просто из мана выдернуто было
> Попробовал(в разных вариациях), но к сожалению этот вариант не работает.Ковыряй postfix + dovecot на тему allow_nets
Копать в сторону smtpd_restriction_classeshttp://www.postfix.org/postconf.5.html#smtpd_restriction_cla...
http://www.postfix.org/RESTRICTION_CLASS_README.html> Попробовал(в разных вариациях), но к сожалению этот вариант не работает.\
что именно пробовал и что именно не работает?
smtpd_sasl_exceptions_networks = !192.168.1.0/24 !10.10.10.0/24
всем клиентам, кроме этих двух подсетей AUTH не будет анонсироваться
Правда тут нюанс, если вы используете STARTTLS, то оно все равно будет работать