Quali sono alcuni metodi sicuri per inviare email dal tuo server?

3

Questo titolo di domanda potrebbe sembrare un po 'vago, e mi scuso per questo. Permettetemi di iniziare affermando che sono uno psicologo dell'ingegneria, non un esperto di sicurezza informatica o guru informatico. Per fortuna, il mio datore di lavoro (molto, molto grande) mi ha messo in una piccola squadra dove lavoro su un server mission critical che può (idealmente) non fallire mai e deve avere la massima sicurezza. Faccio web design, analisi dell'accessibilità, roba di esperienza utente - tutto front-end. Senza pensarci seriamente e senza alcun riguardo per le mie competenze o il mio background, qualcuno in cima alla catena mi ha incaricato inconsapevolmente di assicurarsi che l'intero sistema sia sicuro, dato che a un certo punto il nostro sito Web è stato elencato su senderbase.org con una scarsa reputazione Valutazione.

Uno dei miei colleghi sembra pensare che Sendmail di unix sia la radice del problema. Concordato, abbiamo bloccato tutto il traffico sulla porta 25 e interrotto l'esecuzione di sendmail. Ma a causa di ciò, i miei moduli di contatto che usano php mail () non funzionano (richiede sendmail). Mi è stato detto che "non c'è modo di usare SMTP su un server e avere un server sicuro". Ma sono meno sicuro di questo.

Su un sistema pulito e non infetto con la sicurezza ideale , sendmail potrebbe essere preso di mira dall'esterno e utilizzato per inviare email di spam? In altre parole, ci sono modi sicuri per inviare email al server? O dovrò convertire tutti i miei moduli di contatto in "mailto:" link, ecc?

Per essere chiari: la posizione della posta è verso un'e-mail di supporto che usiamo. È hardcoded; tutte le e-mail vengono inviate a questo indirizzo e-mail e l'utente non può cambiarlo (a meno che non ci siano tecniche di hacking di cui non sono a conoscenza, che è davvero la mia domanda). Gli unici campi che l'utente può digitare sono Oggetto, Messaggio e Da.

Ovviamente deve esserci una soluzione alcuni perché vedo i moduli di contatto email sempre su enormi e potenti siti web. Se fosse una debolezza della sicurezza, penseresti a google, yahoo, facebook, cnn, orari e tutti quegli altri siti popolari avrebbero smesso di usarlo molto tempo fa, giusto?

    
posta stoicfury 23.08.2011 - 00:33
fonte

2 risposte

6

C'è una differenza tra un server di posta che invia e-mail e un server di posta che riceve e-mail dall'esterno. Nel tuo caso non hai bisogno di ricevere email dall'esterno, quindi il server di posta non ha bisogno di ascoltare sulla porta 25 .

È vero che sendmail ha una lunga storia di problemi di sicurezza e un linguaggio di configurazione estremamente complesso (c'è persino un linguaggio macro per semplificare la configurazione).

sendmail non è più utilizzato nella distribuzione Linux corrente ma c'è un certo numero di drop in replacements come qmail, exim o postfix che forniranno un'interfaccia compatibile e un link simbolico chiamato / usr / bin / inviare una mail. Se viene utilizzato quel collegamento simbolico, analizzeranno i parametri della riga di comando comuni allo stesso modo come ha fatto il sendmail originale.

Su Windows devi modificare la sezione [mail function] di php.ini per puntare a un server di posta esterno. Poiché si inviano e-mail a un dominio di destinazione fisso, può essere il server di scambio di posta che è responsabile di ricevere e-mail per quel dominio. Usa host -t mx example.com per imparare il nome.

    
risposta data 23.08.2011 - 08:07
fonte
5

Se si consente al proprio server di posta di inviare posta per conto di un utente su Internet, quindi prepararsi a subire abusi. Questo scenario è stato deprecato per qualche tempo.

Se si esegue un server di posta accessibile da Internet, è necessaria una forma di autenticazione appropriata. Per molti, questo è troppo complesso, quindi riscrivete la vostra applicazione per utilizzare i collegamenti mailto: per forzare il client di posta dell'utente a inviare l'e-mail o un modulo di posta che impone il server e-mail ai destinatari.

In sostanza, dovresti prendere la decisione che se si trova su Internet non dovrebbe essere considerato attendibile.

Può essere d'aiuto se hai spiegato il tipo di email che stai tentando di inviare. E 'solo una email per una casella di posta di supporto? Se è così, programmalo. Se esiste un intervallo di caselle di posta, di nuovo: è necessario specificarle nelle caselle a discesa e convalidare server.

Se stai tentando di agire come un relay di posta aperta, probabilmente vorrai ripensare a quella decisione man mano che otterrai una lista nera abbastanza rapidamente.

    
risposta data 23.08.2011 - 00:57
fonte

Leggi altre domande sui tag