Cron debug islemi
*/5 * * * * /usr/local/scripts/kapat.bash > /tmp/cronjob.log 2>&1
yukaridaki kisimda kapat.bash ‘te sorun oldugunda /tmp/ altinda cronjob.log dosyasina hatayi yazacaktir.
> /tmp/cronjob.log 2>&1
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
debianda istenilmeyen paketlerin update edilmesini engellemek
apt-get install wajig
wajig hold paket_ismi
apt-get update
apt-get upgrade #hold etmis oldugunuz paket upgrade islemi icinde yer almayacaktir.
http://www.togaware.com/linux/survivor/Wajig_Overview.html
Murat Uğur Eminoğlu
vim ile / karakterini bul degistir
:%s./.murat.
yukaridaki ornektek / karakterini murat ile degistiriyoruz.
vi(m) ile coklu satir silme
1. escape moddayken 100dd yapin bulunmus oldugunuz satirdan itibaren 100 satir silecektir.
2. : moda gecip 5,10d yaparsaniz 5. ile 10. satirlari arasini silersiniz.
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
Mysql Slow Query loglarini acmak
my.cnf dosyasi icine asagidaki satirlari ekleyerek veya # isaretlerini kaldirarak acabilirsiniz.
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 1
/var/log/mysql/ klasoru yoksa mkdir mysql komutuyla klasoru yaratalim ve haklarini chown mysql.adm /var/log/mysql seklinde verelim.
/etc/init.d/mysqld restart
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.