One Hat Cyber Team
Your IP :
3.133.128.168
Server IP :
103.133.214.160
Server :
Linux venus.ewebguru.net 4.18.0-553.30.1.el8_10.x86_64 #1 SMP Tue Nov 26 02:30:26 EST 2024 x86_64
Server Software :
Apache/2
PHP Version :
8.1.30
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
doc
/
dovecot
/
wiki
/
View File Name :
HowTo.ImapcProxy.txt
Dovecot imapc proxy =================== Using Dovecot as a secure IMAP Proxy in front of Exchange, using Exchange Authentication and IMAPC. This requires Dovecot 2.1.rc1 or newer. Many thanks to Timo on the Dovecot mailing list for all his help! This " <HowTo.txt>" is based on already having Dovecot already compiled and installed. 1. Create an unprivileged, non-system account user and group for the proxy, with a home directory. This needs to have a writable home directory, but no other privileges. ---%<--------------------------------------------------------------------- [root@localhost]# useradd imapproxy ---%<--------------------------------------------------------------------- 2. Verify that the user can not login: ---%<--------------------------------------------------------------------- [root@localhost]# grep imapproxy /etc/shadow ---%<--------------------------------------------------------------------- You should see something like: ---%<--------------------------------------------------------------------- imapproxy:!!:nnnn:0:nn:n::: ---%<--------------------------------------------------------------------- The important part is the "!!". This indicates that the account is locked. If you don't see this, lockout the account (check man passwd) 3. Create '/etc/dovecot/dovecot.conf' or ('/usr/local/etc/dovecot/dovecot.conf') as appropriate: ---%<--------------------------------------------------------------------- ## Dovecot configuration file mail_uid = imapproxy mail_gid = imapproxy protocols = imap listen = *, :: mail_location = imapc:~/imapc # Change the line below to reflect the IP address of your Exchange Server. imapc_host = 10.1.2.3 imapc_port = 143 passdb { driver = imap # Change the line below to reflect the IP address of your Exchange Server. args = host=10.1.2.3 default_fields = userdb_imapc_user=%u userdb_imapc_password=%w } userdb { driver = prefetch } # /home/imapproxy is the home directory for the imapproxy user, and # %u is a subdir that will be automatically created for each IMAP user when they connect mail_home = /home/imapproxy/%u auth_mechanisms = plain login # This is the auth service used by Postfix to do dovecot auth. service auth { unix_listener auth-userdb { } inet_listener { port = 12345 } } ## ## SSL settings ## # These will need to ba adjusted to point to *your* certificates, not mine 8-) # The ssl_ca line refers to the intermediate certificate bundle which may or may not be required by your SSL provider ssl_cert = </etc/pki/tls/certs/machine.example.org.crt ssl_key = </etc/pki/tls/private/machine.example.org.key ssl_ca = </etc/pki/tls/certs/gd_bundle.crt ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL ---%<--------------------------------------------------------------------- Start dovecot and test it with openssl as: ---%<------------------------------------------------------------------------- openssl s_client -connect machine.example.org:143 -starttls imap ---%<------------------------------------------------------------------------- You should see a whole bunch of SSL information, and the last line should say: ---%<------------------------------------------------------------------------- . OK Pre-login capabilities listed, post-login capabilities have more. ---%<------------------------------------------------------------------------- Next, type: ---%<------------------------------------------------------------------------- 01 LOGIN username badpassword ---%<------------------------------------------------------------------------- You should then see: ---%<------------------------------------------------------------------------- 01 NO [AUTHENTICATIONFAILED] Authentication failed ---%<------------------------------------------------------------------------- And should see a list similar to this: ---%<------------------------------------------------------------------------- * CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS FUZZY 02 OK Logged in ---%<------------------------------------------------------------------------- If you get this far, the proxy is working and is authenticating against your exchange server. Postfix Configuration --------------------- My configuration is for a closed server that will never allow inbound SMTP from unauthenticated clients, and authenticates inbound SMTP TLS connections against the above Dovecot auth service, which in turn authenticates against Exchange, which authenticates against Active Directory. This means that disabling an account in Active Directory, also disables inbound and outbound mail access. If this is what you want, add the following to you /etc/postfix/main.cf file.: ---%<------------------------------------------------------------------------- smtpd_sasl_type = dovecot smtpd_sasl_path = inet:127.0.0.1:12345 smtpd_sasl_auth_enable = yes smtpd_client_restrictions = permit_sasl_authenticated, reject ## Don't relay for anybody from or to anywhere, unless they authenticated smtpd_recipient_restrictions = permit_sasl_authenticated reject broken_sasl_auth_clients = yes # Talk to outlook <= 2003 and O Express <=6 smtpd_tls_security_level = encrypt smtpd_tls_received_header = yes smtpd_tls_cert_file = /etc/pki/tls/certs/machine.example.org.crt smtpd_tls_key_file = /etc/pki/tls/private/machine.example.org.key smtpd_tls_CAfile = /etc/pki/tls/certs/gd_bundle.crt # If your Certification Authority requires intermediate certificates, the bundle goes here. tls_random_source = dev:/dev/urandom smtpd_tls_auth_only = yes # only allow auth if it's encrypted ---%<------------------------------------------------------------------------- (This file was created from the wiki on 2019-06-19 12:42)