Postfix kan geen emails verzenden.

Status
Niet open voor verdere reacties.

36gianni36

Gebruiker
Lid geworden
11 apr 2009
Berichten
50
Hoi, Postfix op mijn server kan wel emails ontvangen maar niet versturen.
Een externe telnet op poort 25 vanaf een niet lokale resulteert in een connection timeout. (Na een lange tijd connecten)
En de andere poorten. Werkt de telnet wel maar geeft een 554 5.1.7 relay access denied aan als ik een extern email adres invoer. (Mijn certificaten werken trouwens wel.)

Hier is mijn main.cf
Code:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
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

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/cert/cert.crt
smtpd_tls_key_file=/etc/ssl/cert/cert.key
smtpd_tls_CAfile=/etc/ssl/cert/bundle.crt
smtpd_use_tls=yes
smtpd_tls_auth_only=yes
smtpd_tls_loglevel = 3
smtpd_tls_session_cache_timeout=3600s
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_client_restrictions = permit_mynetworks

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = gianni.ninja
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = gianni.ninja, gianni.gianni.ninja, localhost.gianni.ninja, localhost
relayhost = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all

En mijn master.cf
Code:
#
# Postfix master process configuration file.  For details on the format
# of the file, see the master(5) manual page (command: "man 5 master" or
# on-line: http://www.postfix.org/master.5.html).
#
# Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       -       -       -       smtpd
#smtp      inet  n       -       -       -       1       postscreen
#smtpd     pass  -       -       -       -       -       smtpd
#dnsblog   unix  -       -       -       -       0       dnsblog
#tlsproxy  unix  -       -       -       -       0       tlsproxy
#submission inet n       -       -       -       -       smtpd
#  -o syslog_name=postfix/submission
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#smtps     inet  n       -       -       -       -       smtpd
#  -o syslog_name=postfix/smtps
#  -o smtpd_tls_wrappermode=yes
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#628       inet  n       -       -       -       -       qmqpd
pickup    unix  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
#qmgr     unix  n       -       n       300     1       oqmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       -       -       -       smtp
relay     unix  -       -       -       -       -       smtp
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
retry     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       -       -       -       lmtp
anvil     unix  -       -       -       -       1       anvil
scache    unix  -       -       -       -       1       scache
#
# ====================================================================
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# Many of the following services use the Postfix pipe(8) delivery
# agent.  See the pipe(8) man page for information about ${recipient}
# and other message envelope options.
# ====================================================================
#
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
#
# ====================================================================
#
# Recent Cyrus versions can use the existing "lmtp" master.cf entry.
#
# Specify in cyrus.conf:
#   lmtp    cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
#
# Specify in main.cf one or more of the following:
#  mailbox_transport = lmtp:inet:localhost
#  virtual_transport = lmtp:inet:localhost
#
# ====================================================================
#
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
#
#cyrus     unix  -       n       n       -       -       pipe
#  user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
#
# ====================================================================
# Old example of delivery via Cyrus.
#
#old-cyrus unix  -       n       n       -       -       pipe
#  flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
#
# ====================================================================
#
# See the Postfix UUCP_README file for configuration details.
#
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# Other external delivery methods.
#
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix	-	n	n	-	2	pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}

Enige ideeën?
 
a. Had je dit probleem eerder niet of heb je de server pas net ingericht? Bedenk hierbij dat vanaf een privé abonnement Internetverbinding doorgaans poort 25 uitgaand dicht staat, en je dus een relay-server moet gebruiken, wat altijd een mailserver van je provider is of evt. een externe relayserver (die je dan natuurlijk op een andere poort dan poort 25 moet (kunnen) bereiken).
Je verhaal over geen uitgaande verbinding op poort 25 via telnet hint naar dit probleem. Overigens test ik dergelijke zaken altijd vanaf hetzelfde netwerk als de mailserver (en liefst nog vanaf de mailserver zélf).
b. Je zegt weinig/niets over het maildomein waar het over gaat. Dat maakt het lastig om dingen te bekijken (zoals aanwezigheid SPF-record, reverse DNS etc.), maar dat is nu nog niet relevant omdat je blijkbaar netwerktechnisch nog geen mail kunt afleveren.

Tijs.
 
Laatst bewerkt:
Bedankt voor het antwoord! ^.^

Ik heb postfix al eerder geinstalleerd (Zonder mijn certificaten toe te voegen) en toen kon ik wel emails versturen en ontvangen. Alleen heb ik later Postfix opnieuw geinstalleerd en nu kan ik dus geen mail sturen. Ik host de server niet zelf maar via een externe aanbieder voor servers. Poort 25 werkt op localhost trouwens wel, en hij geeft ook mijn certificaat aan bij de telnet dan.
 
Ik snap nog niet hoe de situatie nu is (je startposting is onduidelijk helaas).
a. Wat moet ik me bij die time-out voorstellen? Naar welke externe mail-server was je toen aan het testen?
b. Heb je een telnet test (poort 25) gedaan naar een externe mailserver vanaf de postfix server?
c. Begrijp ik uit je startposting dat een telnet test (poort 25) naar externe mailservers soms wel en soms niet lukken?
d. Wat bedoel je met die "554 5.1.7 relay access denied aan als ik een extern email adres invoer"? Is dat een telnet test naar een externe mailserver vanaf jouw postfix server? En wat bedoel je hier met "Extern email adres", is dat bij rcpt to: of bij mail from:? En hoort dat externe mail adres wel bij de mailserver die je op dat moment in je telnet sessie bereikt hebt?

Tijs.
 
Ja sorry. Duidelijk zijn is niet echt mijn sterkste punt. Zeker niet bij een onderwerp waar ik geen ervaring mee heb.

Dus om je vragen te beantwoorden:
a) Die Timeout is als ik telnet vanaf mijn computer naar mijn mailserver. (Die in de US staat). Nadat ik het telnet commando invoer blijft hij op "connecting to xxx.xxx.xxx" staan waarna mijn SSH client na een tijdje een time-out geeft.
c) Telnet's vanaf MIJN mailserver naar andere servers werken gewoon.
d) Als ik naar MIJN mail server telnet en daar een mail naar bijv. een Gmail adres probeer te sturen krijg ik bij "rcpt to: address@gmail.com" dus die error. (Dit gebeurt trouwens niet als ik een relay ingesteld heb.)

Ik heb ook geprobeerd een Relay te gebruiken, maar dan zegt postfix bij het versturen van de email wel dat hij in de queue komt maar als ik in de queue kijk is die leeg. Er worden ook geen errors aangegeven en logs worden ook niet geschreven. En als ik dan in het relay dashboard kijk (Ik gebru Mandrill van Mailchimp) staat er dat hij geen enkele mail ontvangen heeft. Dit gebeurt bij alle geteste relays.

Hopelijk was dit ietsje duidelijker.

Bedankt voor het nemen van je tijd!

Gianni
 
Je lijkt 2 problemen te benoemen:
Probleem 1:
a. Telnetten op poort 25 naar je server vanaf een prive abonnement kan tegen die uitgaande poort 25 beperking aanlopen. Check of je provider zo'n beperking heeft, bij het abonnementstype dat jij hebt.
b. Je vraagstelling lijkt fout. Wat je lijkt te bedoelen is dat mail er wel uitkan ("telnet vanaf mijn mailserver naar andere servers werkt gewoon") maar geen mail er in (maar zie a.)

Probleem2:
Ik neem aan dat je bij d. bedoelt dat je met een gewone telnet (of ssh) verbinding inlogt op je server bent (dus niet een poort 25 verbinding), je dan lokaal op je mailserver een telnet sessie opstart naar poort 25 van die zelfde eigen mailserver en dan probeert een mail eruit te krijgen naar een @gmail account maar dan een relay not allowed melding krijgt.
Dat lijkt me gewoon logisch, want doorgaans moet je je eerst authenticeren [zie bijv. deze link (met gebruikersnaam + wachtwoord of andere methode) als een gebruiker van jouw mailsysteem, anders zou iedereen die een SMTP sessie kan opstarten met je server kunnen relayen (met gefakete afzender-adressen en/of zich voordoend als een gebruiker van jouw mailsysteem).

Nu weet ik van de config-bestanden van postfix niet zoveel, dus daar kan ik je niet mee helpen, helaas, maar zie mijn laatste zin: Mogelijk heb je de zaak al goed dichtgezet maar moet je met de authenticatie aan de slag (bijv. gebruikers aanmaken met een wachtwoord en e-mail adres etc.)

Overigens meen ik wel uit je config te lezen dat je vanaf je eigen mailserver mag relayen, maar mogelijk heb je de instelling verkeerd er in gezet:
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
Maak daar eens van
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination
dus voeg comma's toe.
Herstart je postfix en kijk of het dan wél lukt om mail te versturen vanaf de server zelf (via, bijv., een telnet sessie naar poort 25 van de server, ingelogd met telnet of SSH op de mailserver).

Tijs.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan