2016-03-20 10 views
1

Arka plan: 30+ etki alanına sahip bir Plesk CentOS 6.7 sunucusu çalıştırıyorum. Belirli bir TLD'den büyük miktarda spam alıyorum (bu durumda .top). Ben SpamAssassin koşuyorum ve RBL listesini (xbl.spamhaus.org) kullanarak yaşıyorum. SpamAssassin bu iletilerin çoğunu spam olarak işaretliyor, ancak sunucumun Google'ın posta sunucuları tarafından sınırlı bir ücret aldığını (kullanıcının e-posta adreslerinin bir kısmı Gmail'e yönlendirilmekte olduğundan) yeterince alınıyor. Bu etki alanından ZERO yasal e-postası alıyorum ve bellek kullanımı son birkaç yüzde arttı, bu yüzden Postfix'e ulaşmadan önce bu mesajları engelleyerek bazı yükleri kurtarmaya ve sunucu saygınlığı geliştirmeye çalışıyorum.Belirli bir üst düzey etki alanından gelen postaları filtrelemek için fail2ban ifadesi

Bu TLD'den gelen bağlantılarla eşleşecek olan fail2ban için bir filtre yazmak ve karşılık gelen IP adreslerini yasaklamak istiyorum. İşte

örnek günlük girişleri şunlardır:

Mar 20 03:12:43 mydomain postfix/smtpd[6557]: connect from whatevermonkey.top[66.199.245.168] 
Mar 20 05:07:38 mydomain postfix/smtpd[13299]: connect from someonecat.top[216.169.126.67] 

Yani herkes '.top' TLD dahil olan 'dan bağlanmak' Ben bütün eşleşir fail2ban için fiş olabilecek bir REGEX ile yardımcı olabilir?

Bu çalışma postfix-sasl filtresine göre çalışıyorum (aşağıda), ancak regex chi yeterince güçlü değil ... İşte başarısız giriş denemeleriyle eşleşen postfix-sasl için çalışma filtrem :

failregex = ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: SASL ((?i)LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [ A-Za-z0-9+/:]*={0,2})?\s*$ 

Yine, ben sadece 'somespammyserver.top' büyük takdir Herhangi bir yardım öncesinde IP adreslerini eşleştirmek istiyoruz. Böyle

cevap

1

şey yardımcı olabilir:

connect from [\w.]+\.top\[([.\d]+)\] 
# look for connect from literally 
# followed by \w = a-z0-9_ and . greedily 
# followed by .top[ 
# capture everything that is a digit or a dot into the first group 
# (hence the()) 
# followed immediately by a closing bracket ] 

a demo on regex101.com bakınız.

+0

Cevabınız için teşekkürler. Bunu 'grep' ile günlüklerimde çalıştırıyorum (sonuç yok) ama 'grep -P' mükemmel çalışıyor. Fail2ban'ın nasıl eşleştiğinden emin değilim (PCRE uyumlu olsun ya da olmasın?) Bu regex ile bir filtre oluşturdum ve hatayı alıyorum: [regex] içinde "No 'ana bilgisayar" grubu. Bu yüzden fail2ban'ın basit normal ifadelerden başka bazı ek gereksinimleri olduğunu düşünüyorum. Yani yapacak daha fazla araştırmam var. Tekrar teşekkürler! – cmpreshn

+0

@cmpreshn: ['connect. +? \. Top \ [([. \ D] +) \]' (https://regex101.com/r/yI2vC2/2) adresinden de yararlanabilirsiniz. – Jan

İlgili konular