Press enter to see results or esc to cancel.

Postfix’te kuyruğa müdahale etmek

Postfix’te kuyruğa müdahale etmek

Bilindiği gibi postfix mail kuyruğundan mesaj silmek için ilk önce mesajın id numarası bulunur (postqueue -p) ardından da postsuper -d id_number (postsuper -d 6889D8780FB) diyerekten kuyruktaki mesaj silinir. Zahmetli olduğu gibi uzun bir yoldur.

Peki çok yoğun çalışan bir mail sunucunuz var ve devamlı kuyrukta inboxı olmayan epostalarda kuyruk lifetime süresince bekliyor veya yanlış yazılmış adresler.. Bu durumda tek tek id bulup silmek biraz zahmetli.

Şimdi aşağıdaki perl script ile bu işlemleri daha kolay bir hale getiriyoruz, mesela kuyrukta bekleyen “mailbox unavailable” mesajları dönmüş maillerin hepsini sileceksiniz işte bu script sayesinde kolay bir şekilde yapabiliyorsunuz.

#!/usr/bin/perl
$REGEXP = shift || die “no email-adress given (regexp-style, e.g. bl.*\@yahoo.com)!”;
@data = qx;
for (@data) {
if (/^(\w+)(\*|\!)?\s/) {
$queue_id = $1;
}
if($queue_id) {
if (/$REGEXP/i) {
$Q{$queue_id} = 1;
$queue_id = “”;
}
}
}
open(POSTSUPER,”|postsuper -d -”) || die “couldn’t open postsuper” ;
foreach (keys %Q) {
print POSTSUPER “$_\n”;
};
close(POSTSUPER);

Yukarıdaki kod parçacıklarını bir editör aracılığıyla kuyruk-sil adıyla kaydedelim ve chmox +x kuyruk-sil olarak çalıştırma hakkı verelim.

Kullanım şekli;

. herhangi bir alan adından gelen mesajları silmek

/home/murat/kuyrul-sil “murat.ws”

. herhangi bir eposta adresinden gelen mesajları silmek

/home/murat/kuyruk-sil “test@murat.ws

. içeriğe göre kuyruktaki mesajları silmek (örneğin içinde no mailbox,said: 550,This account has been disabled or discontinued kelimeleri geçen kuyruk mesajları )

kendi kullandığım kelimeler

/home/murat/kuyruksil “mailbox unavailable”
/home/murat/kuyruksil ” said: 550″
/home/murat/kuyruksil “This account has been disabled or discontinued”
/home/murat/kuyruksil “exceeded”
/home/murat/kuyruksil “no mailbox”
/home/murat/kuyruksil “501 Invalid Address”

Murat Uğur Eminoğlu

Google Talk (Gtalk) Engelleme (Juniper SSG ve Linux)

Merhaba,
Bu yazıda google talk (GTALK) Juniper SSG-140 firewall ve iptables üstünde nasıl engellenir ve belirli kullanıcılara nasıl açarız onu anlatacağım. Umarım yararlı bir kaynak olur.

İlk olarak google talk 5222. port üstünden çalışır eğer bu porttan çıkış sağlayamazsa 443. üstünden gider. Yani port kapatmayla tam olarak engelleme sağlanmıyor. Onun için 5222. portu kapatmış varsayıp 443. port üstünden işlem yapacağımızı unutmayınız.
Nasıl bir yol izledim?
Bir linux gateway kurup test makinamı bu gw üstünden çıkardım ve tcpdump ile trafiği sniff ettim. Asağıda bulunan adreslerden ilkinin trafiğini drop ettim, bu ilk denemeydi uzun süre auth olamadı fakat daha sonra ikinci adres üstünden auth oldu. (sadece biraz geç auth oldu) Aynı işlemi 3. adres için yaptım fakat yine aynısı oldu.
mg-in-f125.google.com
yo-in-f125.google.com
tx-in-f125.google.com

Bu işlemi belki 10’larca kez tekrarlayacaktım, onun için tekrardan trafigi sniff ettim ve talk.google.com ve talkx.l.google.com adreslerini yakaladım. Bu iki adresi engellediğim zaman gtalk’in auth olmadığını gördüm. (Yapilan işlemleri ve surecleri anlattim ki bu tip durumlarda nasıl süreç izleyeceğinizi bilin. :))

İlk olarak Juniper SSG-140 üstünde bu engelleyi nasıl yapabiliriz?
telnet juniper_ip dedikten sonra kullanıcı adımızla ve şifremizle login olalım.
1. İlk olarak Untrust adres olarak talk.google.com ve talkx.l.google.com adreslerini GTALK-DENY-1 ve GTALK-DENY-2 olarak ekleyelim.
set address “Untrust” “GTALK-DENY-1” talk.google.com “GTALK ENGELLEME”
set address “Untrust” “GTALK-DENY-2” talkx.l.google.com “GTALK ENGELLEME”

2. GTALK-DENY-GROUPS grubunu ekleyip GTALK-DENY-1 ve GTALK-DENY-2 adreslerini uye yapalim. (kolaylık sağlaması açısından her zaman grub kullanmak tercihimdir)
set group address “Untrust” “GTALK-DENY-GROUPS” comment “GTALK ENGELLEME”
set group address “Untrust” “GTALK-DENY-GROUPS” add “GTALK-DENY-1”
set group address “Untrust” “GTALK-DENY-GROUPS” add “GTALK-DENY-2”

2. İzinli listesinin kullanım kolaylığı için bir adet grup ekleyip bu gruba kullanıcıları dahil edeceğiz.
set group address “Trust” “GTALK_USERS”
Şimdi kullanıcıları ekleyelim
set address “Trust” “MURAT” 172.16.254.2 255.255.255.255
set address “Trust” “UGUR” 172.16.254.3 255.255.255.255

3. Kullanıcıları GTALK_USERS grubuna dahil edelim
set group address “Trust” “GTALK_USERS” add “MURAT”
set group address “Trust” “GTALK_USERS” add “UGUR”

NOT : 5222 portunu kapattığımızı varsayıp 443. port üstünden işlem yaptığımızı unutmayın.

4. Şimdi işin karışık kısmı olan policy ekleme sürecine geldik,

Mantık, GTALK ‘a girecekleri policy sırasının en üstüne gir, yasaklı olanları bir alt satırına gir ve yasaklılarin 443. port üstünden SSL ‘li siteleri bağlanması için 443. port izni ver.

GTALK_ALLOW isminde Trust bölgeden Untrust bölgeye GTALK_USERS ‘larinin 443. Port (HTTPS) isteklerine nereye giderse gitsin loglayıp izin ver. Bu sayede herhangi bir engellemeye takılmayacaktır.

set policy id 1 name “GTALK_ALLOW” from “Trust” to “Untrust” “GTALK_USERS” “Any” “HTTPS” permit log

5. 172.16.254.0/24 networku için GTALK-DENY-GROUPS grubu içinde bulunan adresleri engelle denmistir. (talk.google.com ve talk.l.google.com adreslerine erişim kapatılmıştır.)

set policy id 2 from “Trust” to “Untrust” “172.16.254.0/24” “GTALK-DENY-GROUPS” “ANY” deny log

6. Son olarak 443. portun (HTTPS) diğer sitelere açılması için aşağıdaki policy’i yazdık.

set policy id 63 from “Trust” to “Untrust” “MMO_LOCAL” “Any” “HTTPS” permit log count

Juniper üstündeki yapılandırma burada sona erdi. Şimdi linux üstünde nasıl yapılıyormuş ona bakalım.

Linux Gateway üstünde nasıl engelleriz ?

1. iptables ile 172.16.254.0 networkunun talk.google.com ‘a giden tcp 443 portunu engelle

iptables -A FORWARD -s 172.16.254.0/24 -d talk.google.com -p tcp –dport 443 -j DROP

2. iptables ile 172.16.254.0 networkunun talkx.l.google.com ‘a giden tcp 443 portunu engelle

iptables -A FORWARD -s 172.16.254.0/24 -d talkx.l.google.com -p tcp –dport 443 -j DROP

Bu iki kuraldan sonra google talk ile giriş yapılamıyacaktır.

NOT : Birçok kişinin arkanızdan söveceğini unutmayınız 🙂

Murat Uğur Eminoğlu

inbox’ta bulunan geri donus maillerini silmek

find . -type f -print0 | xargs -0 grep “Undelivered Mail Returned to Sender” | awk ‘{print $1}’ | sed ‘s/\(.*\)………/\1/’ | sed ‘s/^..//’ | xargs rm

aslinda cok genel bir bash komutlar toplulugu oldu, kendinize gore duzenlemenizde fayda var. Simdi bu komutlarin sirasiyla ne yaptigini soyliyeyim.

Bir klasor altinda 10 000 adet mail oldugu icin grep komutunu tek basina kullanamadim, cunku arg list too long hatasi aliyordum onun icin find ile dosyalari bulup xarg ‘a gonderdim onun sayesinde grep ile Undelivered Mail Returned to Sender ifadesi gecen dosyalari buldum, awk ile ilk satirini aldim yani dosya ismini, sed ile son hanesine bulunan 9 adet gereksiz karakteri sildim, tekrar sed ile basindaki iki adet gereksiz karakteri sildim ve sadece dosya ismini elde ettim arkasindan xargs ‘a gonderip rm ile sildim 🙂 biraz uzun bir yol olmustur belki ama idare edin artik 🙂

sevgiyle, Murat Uğur Eminoğlu

Fedora 11 Nvidia (GeForce FX 5200)

Merhabalar, fedora 11 kurulumu bitirdim GeForce FX 5200 nvidia chipsetli olan ekran kartimi tanitmaya basardim biraz sorunlar aksilikler ve ogrendikerim oldu, bunlari simdi blog sayfamda paylasiyorum.

root olarak rpm fusion depolarini fedora 11 ‘e ekleyelim.

rpm -ihv http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm

rpm -ihv http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

GeForce FX 5200 ekran karti icin kesinlikle kmod-nvidia-173xx paketini kullanmamiz lazim digerleri zaten fx 5200 ‘e gore uyumlu degil.

paketleri yukleyelim; (x86_64 kullaniyorum siz kendi mimarinize gore yukleyiniz)

yum -y install kmod-nvidia-173xx-2.6.29.6-217.2.3.fc11.x86_64-173.14.18-2.fc11.12.x86_64 xorg-x11-drv-nvidia-173xx-173.14.18-5.fc11.x86_64 xorg-x11-drv-nvidia-173xx-libs-173.14.18-5.fc11.x86_64 kmod-nvidia-173xx-173.14.18-2.fc11.12.x86_64

yukleme islemleri bittikten sonra halen xorg hata veriyorsa bunun tek sorumlusu akk surucusu olan nouveau’dir. Bu surucu nvidia surucusunun yuklenmesinide engel oluyor. Bunun icin vim /etc/modprobe.d/blacklist.conf dosyasina herhangi bir satari blacklist nouveau satirini eklemeniz sorunu cozecektir.

Murat Ugur Eminoglu

request has invalid signature: TSIG transfer: tsig verify failure (BADTIME)

Bind master/slave sunucu kurulumu yaptiniz tum ayarlar tamam. fakat request has invalid signature: TSIG transfer: tsig verify failure (BADTIME) seklinde hata mesajlari aliyorsunuz ve master / slave birbiri ile senkron olmuyor. Yapacaginiz tek sey apt-get install ntpdate ve ntpdate -u 10.1.1.55 (10.1.1.55 benim ntp sunucumdur sizde ntp.org adresinden bir server secebilirsiniz.)

Genelde yukaridaki hata zamansal sorunlardan dolayi ortaya cikmaktadir, timezone, saat ayarlarini kontrol etmekte fayda vardir.