2012-05-20 11 views
12

Sto fissando il mio server (con iptables) in modo che solo le porte http e ssh siano aperte e che vada bene, anche se uso il comando mail (server: CentOS 6.2) in alcune applicazioni e non lo attraversa ora grazie a iptables che blocca tutto.Come consentire la posta tramite iptables?

Quali porte posso consentire l'accesso?

utilizzo Mail: echo "{{message}}" | mail -s "{{subject}}" [email protected]

Ho provato la porta posta standard 25, ma non ho avuto successo con questo. Ecco la configurazione attuale:

iptables --flush 

iptables -P INPUT DROP 
iptables -P OUTPUT DROP 

# incoming ssh 
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT 

# outgoing ssh 
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT 

#HTTP 
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT 

# mail (does not work) 
iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -o eth0 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT 

(EDIT) RISPOSTA: L'iptables regola di lavoro:

iptables -A OUTPUT -o eth0 -p tcp --sport 25 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -o eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A INPUT -i eth0 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT 

risposta

11

I comandi OUTPUT di consultare anche --dport, non --sport. Dovrai anche consentire i pacchetti in uscita NEW per avviare la connessione al server SMTP.

In generale, comunque, dal momento che OUTPUT controlli solo i pacchetti che il proprio sistema genera, è possibile impostare la politica di OUTPUT-ACCEPT a meno che non è necessario per evitare che il generazione di pacchetti in uscita.


più due commenti:

1. Jay D's suggerimento per "permettere tutto e quindi avviare bloccando il traffico specifico" è insicura. Mai configurare iptables in questo modo perché è necessario conoscere in anticipo quali porte potrebbero essere utilizzate da un utente malintenzionato e bloccarle tutte individualmente. Sempre usa una lista bianca invece di una lista nera se puoi.

2. Un suggerimento dalle trincee: quando si è il debug iptables, è spesso utile -I nsert e -A registro ppend messaggi all'inizio e alla fine di ogni catena, quindi azzerare i contatori, ed eseguire un esperimento . (Nel tuo caso, invia il comando mail.) Quindi controlla i contatori e i log per capire come i pacchetti sono migrati attraverso le catene e dove potrebbero essere stati rilasciati.

+0

AH Sì, grazie. Penso che permetterò anche tutto l'OUTPUT. – Andrew

+0

Ci sono due modi per farlo: 1. Mentre si sta facendo bloccare tutto e quindi iniziare a perforare buchi per traffico di protocollo specifico. 2. Permetti tutto E poi inizia a bloccare il traffico specifico. Credo fermamente 1. È una strategia migliore. –

+3

@JayD: Perdona la franchezza, ma # 1 non è semplicemente "una strategia migliore" della # 2; # 2 è insicuro fino al punto di negligenza. Non raccomandare questo metodo per qualcosa di diverso da un esercizio di apprendimento. –

Problemi correlati