Postfix et relay access denied ..

Postfix et relay access denied .. - Logiciels - Linux et OS Alternatifs

Marsh Posté le 06-05-2005 à 09:38:56    

Bonjour,
 
 
Je rencontre un problème pour envoyer des mail depuis l'exterieur avec le serveur de mail Postfix que j'essaye de mettre en place.
 
Le message "relay interdit" apparait ...
 
Depuis le serveur de mail c'est OK en envoi et reception.
 
Depuis le réseau local c'est OK en POP mais pas en SMTP. Si je met le paramètre mynetworks_style = subnet alors là ca fonctionne aussi en SMTP.
 
Enfin, depuis l'exterieur, c'est OK en POP mais pas en SMTP.
 
Comment pourrais faire pour pouvoir envoyer et recevoir des courriers depuis n'importe où avec ce serveur de mail.
J'ai regardé la config d'un autre serveur de mail qui fonctionne bien mais le paramètre mynetworks_style n'est pas sur subnet ou class !
 
Pour des raisons de sécurité, cela m'embète de le passer à une de ces valeurs.
 
Auriez vous une idée de ce problème ?
 
Merci.

Reply

Marsh Posté le 06-05-2005 à 09:38:56   

Reply

Marsh Posté le 06-05-2005 à 10:11:16    

c'est normal, par defaut, postfix interdit l'open relay pour toutes les connexions SMTP venant de l'exterieur. Si tu as une IP fixe, tu peux la declarer dans my_networks , sinon il faut utiliser soit pop-before-smtp, soit faire du SASL
 
edit: aurtograf


Message édité par syl94 le 06-05-2005 à 10:11:53
Reply

Marsh Posté le 06-05-2005 à 10:46:36    

Très intérressant.
 
Peux tu m'expliquer pourquoi le fait de mettre du SASL permettra l'envoi depuis l'exterieur ?
Ceci explique pourquoi cela fonctionne sur mon autre config qui elle a du SASL (c'est pas moi qui l'ai mise en palce aussi)...
 
 
Et le paramètre pop_before_smtp ? il sert comme authentification via la connexion POP ?
 
Sinon, l'histoire de l'IP fixe ce n'est pas possible car je souhaiterai que certaines personnes y accèdent. Ce n'est pas un serveur perso, c'est pour des clients ...
 
Merci
 

Reply

Marsh Posté le 06-05-2005 à 11:17:42    

le SASL permet d'utiliser le serveur SMTP via le login/pass du compte Email. Par exemple sous Firebird ou Evolution, il est possible de déclarer que ton serveur SMTP requiere une authentification SASL, il faut alors spécifier le login/pass du compte.
 
Le principe du pop-before-smtp est different et porte assez bien son nom :) tu pop ton compte sur le serveur, ca inscript ton IP dans un base de donnée (format berkeley) et tu peux ensuite utiliser le serveur SMTP. Le serveur SMTP autorisera le relai uniquement si l'authentification POP a reussie. Il est possible de configurer le temps de rétention de l'ip dans la base de donnée, qui est par defaut de 30 minutes je crois

Reply

Marsh Posté le 06-05-2005 à 15:22:59    

Merci bien pour ces précisions.
Je vais essayer d'implementer le SASL.

Reply

Marsh Posté le 21-05-2005 à 22:44:43    

salut,
 
j'aavais cette erreur quand j'essayais d'envoyer mes mails depuis un autre ordinateur, apres avoir suivi le conseil d'implémenter sasl (c'etais deja installé vu que j'utilise cyrus comme serveur imap) mais je ne vois pas de resultats, probablement que je n'ai pas implémenté le sasl comme il faut dans postfix :??: , voila mon main.cf de postfix :  

Citation :


myhostname = symbol
mydomain = symbol.mondomaine.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = all
relayhost =
mynetworks = 127.0.0.1/8, 192.168.1.20/20
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
mailbox_transport = cyrus
smptd_sasl_auth_enable = yes
smptd_sasl_security_options = noanonymous
smptd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
smptd_recipient_restrictions =  permit_sasl_authenticated


 
Vous voyez où ça coince ?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 22-05-2005 à 16:57:02    

up


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 22-05-2005 à 17:00:45    

drapal ;)

Reply

Marsh Posté le 22-05-2005 à 17:04:10    

je pense plutot a une limitation sur le serveur mail POP/SMTP a partir du quel tu veux relayer ton postfix.
l option doit et devrait etre desactive sauf eventuellement pour quelques IP que tu parametres. sinon n'importe qui peut envoyer des mails depuis le serveur.  
Regarde plutot si tu peux la configuration non pas de postfix mais de l autre serveur principal. si c est un serveur qui ne t appartient pas tu ne pourras jamais relayer depuis tout internet et HEUREUSEMENT !!


---------------
"Douter de tout ou tout croire, ce sont les deux solutions également commodes qui l'une et l'autre nous dispensent de reflechir." Henri Poincaré.
Reply

Marsh Posté le 22-05-2005 à 17:13:16    

Attends, je crois que j'ai pas compris (ou alors je me suis mal exprimé). Mon but est d'implenter sur un poste un serveur IMAP + SMTP, les 2 utilisant le sasl pour s'identifier. Quand tu parle de "serveur mail a partir du quel tu veux relayer ton postfix" tu parles de quoi? Parceque mon serveur doit etre totalement indépendant de tout autre service (il ne doit ni s'appuyer sur celui du FAI, ni sur aucun autre)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 22-05-2005 à 17:13:16   

Reply

Marsh Posté le 22-05-2005 à 17:43:47    

<blabla inutile>imap n'utilise pas de SASL, mais uniquement postfix. Imap est un service, comme pop. Si t'envoi un mail via imap, tu dois obligatoirement specifier un serveur smtp..</blabla inutile>
 
Pour le SASL, tu as quoi dans les logs de Postfix ? Est ce que le demon sasl démarre bien ?
 
Si y'a pas d'erreur particuliere dans les logs, est ce que lorsque tu fais un telnet localhost 25, tu as bien 250-STARTTLS qui apparait ?
 
en gros, on a besoin de plus d'infos pour t'aider :)

Reply

Marsh Posté le 22-05-2005 à 17:59:32    

C'est quoi exactement sasl ?
 
Il y'a un pauet supplémentaire à ajouter ??

Reply

Marsh Posté le 22-05-2005 à 18:01:32    

<blabla inutile> QUand je parlais de IMAP je voulais dire serveur utilisant imap, qui dans mon cas est cyrus </blabla>
 
D'accord, je m'en doute bien :). Le serveur est down en ce moment (aucune idée du pourquoi), j'ai mailer le propriétaire pour qu'il le reup, je vous tiens informer des que j'ai du nouveau.
 
Merci beaucoup pour votre aide


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 25-05-2005 à 17:31:26    

:hello:
 
J'ai ajouté les quelques lignes mais ca ne change rien, le serveur fait toujours un access denied.
 
Il y'a quelquechose d'autre à faire :??:

Reply

Marsh Posté le 25-05-2005 à 19:25:03    

Donc, voila les nouvelles :
 
#/etc/init.d/postfix restart
Stopping mail transport agent: Postfix.
Starting mail transport agent: Postfix.
# /etc/init.d/saslauthd restart
Stopping SASL Authentication Daemon: saslauthd.
Starting SASL Authentication Daemon: saslauthd.
 
Et dans les logs :
 
May 25 19:14:14 localhost postfix/postfix-script: stopping the Postfix mail system
May 25 19:14:14 localhost postfix/master[2379]: terminating on signal 15
May 25 19:14:16 localhost postfix/postfix-script: starting the Postfix mail system
May 25 19:14:16 localhost postfix/master[2693]: daemon started -- version 2.1.5
May 25 19:14:16 localhost postfix/qmgr[2696]: 6C16D275: from=<monutilisateur@mondomaine.com>, size=275, nrcpt=1 (queue active)
May 25 19:14:36 localhost postfix/smtp[2698]: 6C16D275: to=<monutilisateur@localhost>, relay=none, delay=349731, status=deferred (Host or domain name not found. Name service error for name=localhost type=MX: Host not found, try again)
 
Donc pas de traces du SASL .... Y a-t-il une configuration que j'ai loupée?. J'avais lu que si on compilait postfix il fallait inclure dans les sources SASL, moi j'ai recuperer postfix par apt-get, est-ce que tout est deja compilé au mieux?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 25-05-2005 à 19:35:54    

# apt-get install postfix-tls ?
 
http://postfix.state-of-mind.de/pa [...] /smtpauth/


Message édité par syl94 le 25-05-2005 à 19:45:47
Reply

Marsh Posté le 25-05-2005 à 19:43:28    

Toujours pareil malheureusement :(
 
Parcontre quand j'ai installé le package, il m'a sorti un :
 
May 25 19:32:07 localhost postfix/postfix-script: fatal: the Postfix mail system is already running
 
Et si je fais un dpkg-reconfigure apres avoir stoppé postfix
 
May 25 19:32:07 localhost postfix/postfix-script: fatal: the Postfix mail system is not running
 
Il le veut comment le serveur? A moitié lancé ?  :lol:


Message édité par esox_ch le 25-05-2005 à 19:44:22

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 25-05-2005 à 19:46:40    

:D  
 
j'ai edité mon message précédent avec un lien. Tu utilise quelle version de postfix ? la 2 ?

Reply

Marsh Posté le 25-05-2005 à 20:12:59    

Donc j'ai du nouveau :D .  
 
Dans le main.cf vous pouvez remarquer que ma dyslexie m'a jouer un tour et que j'ai ecrit smpt a la place de smtp ... Ce qui facilitait pas le tout ...
 
Donc maintenant avec les nouvelles correction, quand je redemarre le serveur je me bouffe un :
 
May 25 20:03:27 localhost postfix/master[3888]: daemon started -- version 2.1.5
May 25 20:03:43 localhost postfix/smtpd[3894]: fatal: parameter "smtpd_recipient_restrictions": specify at least one working instance of: check_relay_domains, reject_unauth_destination, reject, defer or defer_if_permit
May 25 20:03:44 localhost postfix/master[3888]: warning: process /usr/lib/postfix/smtpd pid 3894 exit status 1
May 25 20:03:44 localhost postfix/master[3888]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling


Message édité par esox_ch le 25-05-2005 à 20:15:09

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 25-05-2005 à 20:40:42    

J'ai installé sasl, postfix-tls
 
 
Voici ma conf :
 
http://www.le-vert.net/divers/postfix_sasl/
 
 
(evidemment rien ne marche ;)

Reply

Marsh Posté le 25-05-2005 à 20:50:24    

t'as essayé de passer reject_unauth_destination à smtpd_recipient_restrictions dans le main.cf ?

Reply

Marsh Posté le 25-05-2005 à 21:04:35    

Bah il rejete deja, donc je doute qe ca améliore la chose :(

Reply

Marsh Posté le 25-05-2005 à 21:39:00    

Ca avance toujours plus. Maintenant le probleme ce situe au niveau d'un :
warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: No such file or directory
 
Sur google j'ai trouvé des articles qui disent que sur certains client de messagerie (comme le thunderbird que j'utilise) ça peut arriver mais qu'il suffi de faire un chmod 0777 sur le fichier pour que ça marche... bein je l'ai fait et le probleme reste entier..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 25-05-2005 à 21:47:01    

essaye de supprimer le fichier /etc/sasldb2 puis fais un touch /etc/sasldb2 . Des fois que ..


Message édité par syl94 le 25-05-2005 à 21:47:09
Reply

Marsh Posté le 25-05-2005 à 21:50:03    

Toujours pareil, en tout cas merci beaucoup pour ton aide. Je vais chercher sur google et voir si je trouve des réponses :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 25-05-2005 à 22:07:50    

si tu trouve, poste le ici, ca peut etre bon a savoir :D

Reply

Marsh Posté le 25-05-2005 à 22:59:54    

Beaucoup de pages parlent du smtpd.conf qui serait fondamental ... Moi j'ai pas ce fichier... est-ce que ça peut etre le probleme?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 25-05-2005 à 23:11:18    

oui, je crois qu'il defini le type d'authentification qui va etre utilisé (pam,...)

Reply

Marsh Posté le 25-05-2005 à 23:17:31    

Oui mais comment ça se fait qu'il ait pas été généré? J'peux l'ecrire moi meme?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 25-05-2005 à 23:32:44    

oui!
 
pwcheck_method: saslauthd
ou
pwcheck_method:  sasldb
 
un thread pas mal de la liste DUF : http://lists.debian.org/debian-use [...] 01374.html


Message édité par syl94 le 25-05-2005 à 23:36:41
Reply

Marsh Posté le 26-05-2005 à 00:20:27    

J'avais aussi trouvé ca .... Ca ne marche toujours pas :(


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 26-05-2005 à 20:46:31    

personne sait ou ça peut coincer? Je trouve rien de concluant ..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 26-05-2005 à 21:43:32    

je test sur mon serveur et je te dis ..

Reply

Marsh Posté le 26-05-2005 à 22:04:04    

bon bah, ca marche  :D  
 
ma conf :
 
- debian stable
- postfix 2.1.5 (installé depuis les packages de backports.org)
- packages installés : libsasl7 libsasl-digestmd5-des libsasl-modules-plain sasl-bin postfix-tls libpam-mysql
 
Je m'authentifie via une base MySQL.
 
dans le main.cf, j'ai ajouté :
 

Code :
  1. smtpd_sasl_auth_enable = yes
  2. broken_sasl_auth_clients = yes
  3. smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject
  4. smtpd_sasl_local_domain = $myhostname


 
J'ai créé le fichier /etc/pam.d/smtp, avec a l'interieur :
 

Code :
  1. auth required pam_mysql.so user=username passwd=password db=mabase table=matable usercolumn=username passwdcolumn=password crypt=0


 
un coup de postfix reload
 
Si j'essaie via un client mail comme Thunderbird, avec l'option `TLS if available' de cochée, j'ajoute mon login, et au moment de l'envoi d'un mail vers une adresse qui n'est pas gérée par mon serveur, il me demande mon mot de passe et dans mes logs, le message est bien parti
 
En essayant d'envoyer un mail via le serveur sans authentification (via un telnet sur le port 25), j'ai un relay access denied (ouf! :))
 
Les liens que j'ai utilisé :
 
- http://small.dropbear.id.au/myscri [...] mysql.html
- http://www.postfix.org/docs.html
 
A mon avis, tu n'es plus tres loin de reussir a le faire fonctionner. Tu utilise quel mode d'authentification pour les comptes mail ?
 
PS: et verifie que postfix n'est pas chrooté (fichier master.cf)


Message édité par syl94 le 26-05-2005 à 22:17:15
Reply

Marsh Posté le 27-05-2005 à 14:50:22    

Donc,
 
Perso j'ai suivi a la lettre le site : http://christian.caleca.free.fr
 
J'ai changé les settings dans le master.cf pour enlever la cage chroot,  et comme conseillé dans le site j'utilise la sasldb ... J'ai tester mes utilisateurs avec leur outil d'administration (testsasl qqch je crois) et tout est dans l'ordre .. Je continue a chercher


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 27-05-2005 à 22:20:07    

Donc , il y a du nouveau .
 
J'ai creer le smtpd.conf dans le /usr/lib/sasl/ contenant  
le pwcheck_method:saslauthd, mais rien. En creant un lien dans le /var/spool/postfix/etc pour saslbd ça me sort :
 
May 27 18:32:46 localhost postfix/smtpd[6702]: warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: Too many levels of symbolic links
May 27 18:32:46 localhost postfix/smtpd[6702]: warning: SASL authentication failure: no secret in database
 
Je continue mes recherches sur le net ... Ce qui est bizard c'est que pourant il n'y a pas de chroot cage autour de postfix ..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 27-05-2005 à 22:28:35    

oui, donc justement si il n'y a pas de chroot dans postfix, tu n'as pas besoin de creer un lien dans /var/spool/postfix/etc car le chroot permet justement à postfix d'aller chercher les fichiers ailleur que dans /var/spool/postfix/*
 
je vais tester l'authentification par sasldb, en esperant reproduire la meme erreur que toi :) Sinon si tu as plusieurs comptes Email à gérer, je te conseille d'utiliser une base MySQL, c'est vraiment simple à mettre en place.

Reply

Marsh Posté le 27-05-2005 à 22:50:46    

alors, en testant via l'authentification pam (via un fichier /etc/sasldb, ca marche aussi.
 
Ce que j'ai fais :
 
- # touch /etc/sasldb
- # vi /etc/pam.d/smtp avec a l'interieur

Code :
  1. auth required pam_permit.so


- # vi /etc/init.d/postfix = vers la ligne 44, ajouter etc/sasldb dans le bloc

Code :
  1. FILES="etc/localtime etc/services etc/resolv.conf etc/hosts \
  2.                 etc/nsswitch.conf etc/sasldb"


- # saslpasswd -c <compte_systeme>
il me demande mon mot de passe systeme (+confirmation)
- config de mon client mail en specifiant l'authentification smtp (+ support TLS) et ajout de mon compte_systeme
- j'envoi un mail vers une adresse qui n'est pas hébergée sur mon serveur :
 

Code :
  1. May 27 22:42:35 psyops postfix/smtpd[30131]: 2DE831680F7: client=xxx.xxx.xxx-84.rev.gaoland.net[84.xxx.xxx.xxx], sasl_method=PLAIN, sasl_username=compte_systeme
  2. May 27 22:42:35 psyops postfix/cleanup[30137]: 2DE831680F7: message-id=<4297860C.5010203@mon_domaine.fr>
  3. May 27 22:42:35 psyops postfix/qmgr[30109]: 2DE831680F7: from=<sylvain@mon_adresse.fr>, size=563, nrcpt=1 (queue active)
  4. May 27 22:42:35 psyops postfix/smtpd[30131]: disconnect from xxx.xxx.xxx-84.rev.gaoland.net[84.xxx.xxx.xxx]
  5. May 27 22:42:35 psyops postfix/smtpd[30142]: connect from localhost[127.0.0.1]
  6. May 27 22:42:35 psyops postfix/smtpd[30142]: 9C17C1680F8: client=localhost[127.0.0.1]
  7. May 27 22:42:35 psyops postfix/cleanup[30137]: 9C17C1680F8: message-id=<4297860C.5010203@mon_adresse.fr>
  8. May 27 22:42:35 psyops postfix/qmgr[30109]: 9C17C1680F8: from=<sylvain@mon_adresse.fr>, size=980, nrcpt=1 (queue active)
  9. May 27 22:42:35 psyops postfix/smtpd[30142]: disconnect from localhost[127.0.0.1]
  10. May 27 22:42:35 psyops postfix/lmtp[30139]: 2DE831680F7: to=<sylvain@autre_adresse.fr>, relay=127.0.0.1[127.0.0.1], delay=0, status=sent (250 2.6.0 Ok, id=28175-01                        , from MTA: 250 Ok: queued as 9C17C1680F8)
  11. May 27 22:42:35 psyops postfix/qmgr[30109]: 2DE831680F7: removed
  12. May 27 22:42:35 psyops postfix/smtp[30144]: 9C17C1680F8: to=<sylvain@autre_adresse.fr>, relay=mx1.domain.tld[xxx.xxx.xxx.xxx], delay=0, status=sent (250 Ok: queued                         as E7D2459205)
  13. May 27 22:42:35 psyops postfix/qmgr[30109]: 9C17C1680F8: removed


Message édité par syl94 le 27-05-2005 à 22:54:06
Reply

Marsh Posté le 30-05-2005 à 18:11:48    

Salut, je viens de faire les modif que tu as nommées .
 
L'identification se passe tres bien.. enfin :D :D :D
 
Parcontre quand j'essaie d'envoyer des mails je me tape un :
 
May 30 17:58:34 localhost postfix/smtpd[7949]: connect from 80.x.x.x.hispeed.ch[80.x.x.x]
May 30 17:58:35 localhost postfix/smtpd[7949]: 0598B5F1: client=80-x-x-x.hispeed.ch[80.x.x.x], sasl_method=CRAM-MD5, sasl_username=monuser@serveur
May 30 17:58:35 localhost postfix/cleanup[7951]: 0598B5F1: message-id=<429B39ED.1080108@hotmail.com>
May 30 17:58:35 localhost postfix/qmgr[7911]: 0598B5F1: from=<esox_ch@hotmail.com>, size=569, nrcpt=1 (queue active)
May 30 17:58:35 localhost postfix/smtpd[7949]: disconnect from 80-x-x-x.hispeed.ch[80.x.x.x]
May 30 17:59:56 localhost postfix/smtp[7952]: 0598B5F1: to=<esox_ch@hotmail.com>, relay=mx1.hotmail.com[64.4.50.99], delay=82, status=sent (250  <429B39ED.1080108@hotmail.com> Queued mail for delivery)
May 30 17:59:56 localhost postfix/qmgr[7911]: 0598B5F1: removed
 
Et rien n'est recu. Alors que si j'envoie par la commande mail tout simplement ça passe avec :
 
May 30 17:55:23 localhost postfix/pickup[7910]: 709405FD: uid=0 from=<root>
May 30 17:55:23 localhost postfix/cleanup[7947]: 709405FD: message-id=<20050530155523.709405FD@serveur>
May 30 17:55:23 localhost postfix/qmgr[7911]: 709405FD: from=<root@serveur>, size=280, nrcpt=1 (queue active)
May 30 17:56:44 localhost postfix/smtp[7948]: 709405FD: to=<esox_ch@hotmail.com>, relay=mx1.hotmail.com[65.54.166.99], delay=81, status=sent (250  <20050530155523.709405FD@serveur> Queued mail for delivery)
May 30 17:56:44 localhost postfix/qmgr[7911]: 709405FD: removed
 
 
On est presque au bout  :bounce:


Message édité par esox_ch le 30-05-2005 à 18:13:11

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 30-05-2005 à 18:22:53    

bizarre, parce que la ligne suivante indique que le mail est bien parti et est dans la queue sur les serveurs d'Hotmail :
 
May 30 17:59:56 localhost postfix/smtp[7952]: 0598B5F1: to=<esox_ch@hotmail.com>, relay=mx1.hotmail.com[64.4.50.99], delay=82, status=sent (250  <429B39ED.1080108@hotmail.com> Queued mail for delivery)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed