Postfix, TLS dla wybranych klientów

Konfiguracja serwerów, usług, itp.
canli
Posty: 4
Rejestracja: 28 czerwca 2012, 10:56

Postfix, TLS dla wybranych klientów

Post autor: canli »

Witam.
Jstem nowy więc proszę wybaczyć jeśli moje pytanie jest banalne. Udało mi się uruchomić sprawnie działający serwer postfiksa.

Używam opcji:

Kod: Zaznacz cały

smtpd_tls_auth_only     = yes
smtp_tls_note_starttls_offer = yes
Aby wymusić autoryzację tylko przez szyfrowane połączenie, jednak pojawił się klient, który korzysta z programu, który nie obsługuje w ogóle szyfrowanego połączenia jako, że to wyjątkowy klient (za szerokie plecy) nie mogę go olać, więc muszę coś wymyślić.

Mogę oczywiście wyłączyć te opcje i będzie dobrze. Ale nie wiem dlaczego mam wewnętrzne opory. Więc, zastanawiam się, czy jest jakaś opcja pozwalająca zmusić wszystkich klientów do autoryzacji po szyfrowanym połączeniu (nie wpuszczam jeśli tego nie zrobią), a tego wybranego wrzucam na jakąś białą listę.

Niestety nie umiem sobie poradzić z wymyśleniem jak to zrobić (pytanie czy w ogóle się da)?

Z góry dziękuję.

Dodane:
Przyszło mi na myśl takie rozwiązanie, że np. na porcie 465 wpuszczam wszystkich i wymagam autoryzacji przez szyfrowane połączenie, a na porcie 25 wpuszczam tylko tego pacjenta i tam pozwalam autoryzować się przez połączenie nieszyfrowane. Niestety nie bardzo wiem jak to zrealizować?
Awatar użytkownika
markossx
Beginner
Posty: 489
Rejestracja: 26 maja 2007, 16:01
Lokalizacja: Polska

Post autor: markossx »

Klient ma IP publiczne czy prywatne, statyczne czy dynamiczne?
canli
Posty: 4
Rejestracja: 28 czerwca 2012, 10:56

Post autor: canli »

Publiczne, statyczne dlatego myślę o autoryzacji na podstawie adresu IP.

W tej chwili wyłączyłem wymuszanie autoryzacji przez szyfrowane połączenie ale ogólnie nie jestem zadowolony z takiego rozwiązania bo wolałbym zmuszać ludzi do używania szyfrowanego połączenia.

A tylko tego jednego, z wiadomych względów, traktować inaczej.
Awatar użytkownika
markossx
Beginner
Posty: 489
Rejestracja: 26 maja 2007, 16:01
Lokalizacja: Polska

Post autor: markossx »

To jak ma publiczne i statyczne to dodaj IP klienta do main.cf w wierszu mynetworks, powinno pomóc.
canli
Posty: 4
Rejestracja: 28 czerwca 2012, 10:56

Post autor: canli »

Właśnie nie pomaga bo klient i tak dostaje komunikat, że autoryzacja musi być przez szyfrowane połączenie.

Dopiero jak wyłączę ten wymóg jest poprawnie, a jak już napisałem wyżej nie chcę go wyłączać.
Awatar użytkownika
markossx
Beginner
Posty: 489
Rejestracja: 26 maja 2007, 16:01
Lokalizacja: Polska

Post autor: markossx »

Pokaż zawartość main.cf...
canli
Posty: 4
Rejestracja: 28 czerwca 2012, 10:56

Post autor: canli »

Kod: Zaznacz cały

strict_mailbox_ownership = no


smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no


# appending .domain is the MUA's job.
append_dot_mydomain = no


# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h


# TLS parameters
smtpd_tls_cert_file=/etc/postfix/ssl/mail_signed_cert.pem
smtpd_tls_key_file=/etc/postfix/ssl/mailkey.pem
smtpd_tls_CAfile=/etc/postfix/ssl/cacert.pem
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache




myhostname = mail.xxx
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.1/32 188.xx


address_verify_poll_count = 3
address_verify_poll_delay = 3s


content_filter = amavis:[127.0.0.1]:10024




smtpd_helo_required = yes
smtpd_require_helo = yes




default_destination_recipient_limit = 50


recipient_delimiter = +
inet_interfaces = all


home_mailbox = Maildir/




smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous




broken_sasl_auth_clients = yes
smtpd_sasl_local_domain = $mydomain


smtpd_sasl_security_options = noanonymous




# uzywamy autoryzacji tylko i wycznie po szyfrowanym poczeniu  I TO WLASNIE WYLACZYLEM
#smtpd_tls_auth_only     = yes
#smtp_tls_note_starttls_offer = yes


strict_rfc821_envelopes = yes
unknown_address_reject_code = 550




smtpd_client_connection_count_limit = 10
smtpd_client_connection_rate_limit = 20
anvil_rate_time_unit = 60s
smtpd_client_recipient_rate_limit = 50
smtpd_client_message_rate_limit = 50
smtpd_hard_error_limit = 2
smtpd_soft_error_limit = 2
smtpd_error_sleep_time = 30




message_size_limit = 50000000
mailbox_size_limit = 1000000000


smtpd_recipient_limit = 50


disable_vrfy_command = yes




address_verify_map = btree:/var/spool/postfix/verified_senders


smtpd_recipient_restrictions =
    check_sender_access hash:/etc/postfix/sender_access,
    permit_mynetworks,
    permit_sasl_authenticated,
    check_client_access hash:/etc/postfix/whitelist,
    check_helo_access pcre:/etc/postfix/helo_checks,
    check_helo_access pcre:/etc/postfix/helo_checks.pcre,
    reject_unauth_pipelining,
    reject_unknown_helo_hostname,
    reject_non_fqdn_sender,
    reject_non_fqdn_recipient,
    reject_unknown_sender_domain,
    reject_unknown_recipient_domain,
    reject_invalid_hostname,
    reject_unverified_recipient,
    reject_unauth_destination,
    check_sender_mx_access cidr:/etc/postfix/bogus_mx,
    check_policy_service inet:127.0.0.1:60000,
    reject_rbl_client sbl-xbl.spamhaus.org,
    reject_rhsbl_sender rhsbl.sorbs.net,
    permit




smtpd_client_restrictions =
    reject_unauth_pipelining,
    permit_sasl_authenticated,
    permit






smtpd_helo_restrictions =
    reject_unauth_pipelining,
    permit




smtpd_sender_restrictions =
    check_sender_access hash:/etc/postfix/rejected_permanently,
    reject_unauth_pipelining,
    permit_sasl_authenticated,
    reject_sender_login_mismatch,
    reject_non_fqdn_sender,
    reject_unknown_sender_domain,
    permit




unverified_sender_reject_code = 550
local_recipient_maps = $alias_maps $virtual_alias_maps


virtual_alias_maps = pgsql:/etc/postfix/pgsql_virtual_alias_maps.cf
virtual_mailbox_domains = pgsql:/etc/postfix/pgsql_virtual_domains_maps.cf
virtual_mailbox_maps = pgsql:/etc/postfix/pgsql_virtual_mailbox_maps.cf
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = pgsql:/etc/postfix/pgsql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = "The user you are trying to reach is over quota."
virtual_overquota_bounce = yes
virtual_alias_domains = $virtual_alias_maps
virtual_uid_maps = static:106
virtual_gid_maps = static:106
virtual_mailbox_base = /
virtual_mailbox_limit = 1000000000
transport_maps = pgsql:/etc/postfix/pgsql_transport.cf
Dodane:
I jak po analizie mojego pliku konfiguracyjnego?

Może ktoś mi chociaż powie, że mój problem jest nierozwiązywalny, chociaż w to raczej wątpię. Może coś jeszcze wyjaśnić, podesłać?


Nikt nic takiego nigdy nie robił?
Pacek
Beginner
Posty: 315
Rejestracja: 18 sierpnia 2009, 15:17
Lokalizacja: Gdynia

Post autor: Pacek »

Według mnie nie ma szansy to działać, ponieważ opcja:

Kod: Zaznacz cały

smtpd_tls_auth_only     = yes
powoduje, że nie ma możliwości dokonania uwierzytelniania przez nieszyfrowane połączenie.

Uważam, że to akurat dobre, bo coby się stało gdyby Panu z "dużymi plecami" ktoś podsłuchał login i hasło i nagle zaczął czytać jego maile z kochanką? W związku z czym, jako rozwiązanie zastępcze proponuję zastosować tunelowanie poprzez aplikację stunnel. Sam wykorzystywałem go dla aplikacji, które mają korzystać z poczty (w moim przypadku gmail), ale nie obsługują szyfrowania. Myślę, że to rozwiązanie jest najprostsze w implementacji i zapewni mimo wszystko połączenie szyfrowane. Jeżeli będziesz chciał to zastosować to daj znać. Nie będę się teraz rozpisywał, ponieważ od Twojego postu minął jakiś czas a szkoda, żeby krew poszła w piach.
ODPOWIEDZ