2012-05-20 22 views
12

Bazı uygulamalarda mail komutunu (sunucu: CentOS 6.2) kullanmamıza rağmen, sunucumu (iptables ile) yalnızca http ve ssh bağlantı noktalarının açık olmasını sağlıyorum ve bu sayede şu andan emin değilim. iptables her şeyi engelliyor.İptables'lerden postaya nasıl izin verilir?

Hangi portlara erişmesine izin veriyorum?

Posta Kullanımı: echo "{{message}}" | mail -s "{{subject}}" [email protected]

Ben standart posta portu 25 denedim, ama bunu hiçbir başarıya sahiptir.

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 

(DÜZENLEME) YANIT: çalışma iptables kural:

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 

cevap

11

OUTPUT komutları da --dport değil --sport başvurmalıdır İşte mevcut ayarlarıdır. SMTP sunucusuna bağlantıyı başlatmak için NEW giden paketlere de izin vermek istersiniz. giden paket nesil önlemek gerekmedikçe Genelde

Ancak OUTPUT kontroller kendi sistem oluşturur sadece bu paketleri beri sen ACCEPT için OUTPUT politikasını ayarlayabilirsiniz.


İki daha fazla yorum:

1. Jay D'nin önerisi "her şeyi izin ve sonra belirli trafiği engelliyor başlamak" için güvensiz. Hiçbir zamaniptables'u bu şekilde yapılandırın çünkü bir saldırganın bunları tek tek kullanabileceği ve engelleyebileceği önceden bilmeniz gerekir. Her zaman Mümkünse kara liste yerine beyaz listeyi kullanın.

2. siperlerinden bir ipucu: iptables ayıklama yaparken, her zincirin başında ve sonunda -I nsert ve -A ppend günlük mesajlarına genellikle yararlı olur, o zaman sayaçları temizleyin ve bir deneme gerçekleştirelim . (Sizin durumunuzda, mail komutunu verin.) Ardından paketlerin (ler) zincirler arasında nasıl geçiş yaptığını ve nerede bırakılmış olabileceğini anlamak için sayaçları ve günlükleri kontrol edin.

+0

AH Evet, teşekkürler. Bence tüm OUTPUT'a da izin vereceğim. – Andrew

+0

Bunu yapmanın iki yolu vardır: 1. Her şeyi bloke ederken ve belirli protokol trafiği için delik açmaya başlayın. 2. Her şeye izin verin ve sonra özel trafiği engellemeye başlayın. Kesinlikle inanıyorum 1. Daha iyi bir strateji var. –

+3

@JayD: Küntlüğü bağışlayın, ancak # 1 sadece # 2'den "daha iyi bir strateji" değil; # 2 ihmal noktasında güvensizdir. Bu yöntemi, bir öğrenme alıştırması dışındaki herhangi bir şey için tavsiye etmeyin. –

İlgili konular