Kategori arşivi: Sistem

ubuntu: warning /dev/sda contains gpt signatures indicating that it has a gpt table.. hatası

Raid 1+0 şeklinde hazırlanmış sisteme Ubuntu’nun BioLinux sürümünü kurarken Erase and Install Ubuntu seçeneğini seçtikten sonra /dev/sda contains GPT signatures indicating that it has a GPT table. However, it has a fake msdos partition table as it should. Perhaps it was corrupted? Is this a GPT partition table? uyarısıyla karşılaştım yes ve no şeklinde iki seçenek çıksa da ikisine de tıklamama rağmen kurulum bu ekranda takıldı. Kurulum işleminde değişiklik yapıp tekrar yüklemeye çalıştığımda yine aynı problemle karşılaştım.

Problemin çözümünü ise şu şekilde buldum; ubuntu’yu try modunda açtım. Daha sonra GParted Partition Editor’u açtım. Unallocated alana sağ tıklayıp new dediğimde yine aynı uyarıyla birlikte partition tablosunun olmadığı uyarısını aldım. Device sekmesinden Create Partition Table’ı seçip MSDOS’u seçtim onaylayıp kapattım. Bilgisayarı restart ederek kuruluma yeniden başladım, kurulum yeniden başladığında problem çözülmüştü.

Iredmail spam olarak işaretlenen e-postaları direkt olarak istenmeyen klasörüne gönderme

Iredmail e-posta sistemi olarak birçok konuda yeterli. Fakat ihtiyacımız olan bir konu sistem tarafından spam olarak işaretlenen e-postaların direkt olarak istenmeyen klasörüne yönlendirilmesiydi. Çünkü bu işlem için tüm kullanıcılar ayrı ayrı filtre oluşturmak durumunda kalıyordu. Bunun çözümünü linkte paylaşıyorum. Bununla ilgili problem yaşayan olursa yardımcı olmaya çalışırım. Kolay gelsin.

Testdisk ile silinen partition’dan veri kurtarmak

Bu hafta kötü bir deneyim yaşadım. Bilgisayarıma Ubuntu kurmak isterken yanlışlıkla bilgisayardaki tüm partition’lar silindi. Bunu farkettikten sonra başımdan kaynar sular döküldü tabi. Kurulumu tamamlamadan vazgeçtim, verileri kurtarma umuduyla. Bunun üzerine silinen partition’dan veri kurtarmak için bir araştırma yaptım. Genel olarak gördüğüm testdisk adında bir yazılım öneriliyordu. Bunun üzerine Ubuntu cd’siyle bilgisayarı boot edip Ubuntu’yu try (deneme) modunda çalıştırdım. Ubuntu update manager’da üçüncü parti yazılımlarında yüklenebilmesi için tüm seçenekleri seçip apt-get update komutunu çalıştırdım. Daha sonra apt-get install testdisk ile testdisk programını kurdum. Daha sonra testdisk komutuyla yazılımı çalıştırdım. Sırasıyla;

Create a new log file

Tarama yapmak istediniz diski seçin.

Proceed

Kurtaracağınız işletim sistemi Linux yada Windows ise [Intel] Intel/PC Partition seçeneğini seçiyoruz.

Analyse‘ı seçiyoruz.

Quick Search diyoruz.

İlk tarama bittikten sonra siline partion’lar ekranda görünecek. Hangi partition’dan veri kurtarmayı istiyorsak onu seçiyoruz ve Deeper search’ü seçiyoruz. Buradaki tarama diskinizin boyuna göre uzun sürebilir.

Tarama bittikten sonra ekranda sıralı olarak gelen partitionlardan boyutlarına bakarak hangisinden veri kurtaracaksak onu seçiyoruz. ve P tuşuna basıyoruz. P tuşu içerisindeki dosyaları sıralayacaktır. C tuşuna basıp ile kurtarmak istediğimiz dizini seçiyoruz.

C’ye bastıktan sonra hangi dizine kopyalayacağımızı seçeceğiz. Dosyalarınızı flash yada harici diske kopyalamanızı öneririm. df –h komutunu ayrı bir terminalde çalıştırıp flash yada harici diskinizin konumunu öğrenin ve testdisk’i çalıştırdığınız terminalde bu konuma gelip tekrar C tuşuna basın. Dosyalarınız kurtarılmış olacaktır.

Acı ve fakat güzel bir tecrübe oldu diyebilirim.

SSL 3.0 Poodlebleed bug ve çözümü

SSL 3.0’da yeni bir bug bulundu. Bu bug ile ssl trafiğini izlemek mümkün. Detaylı bilgiyi poodlebleed.com sitesinde bulabilir ve sitenizde açık olmadığını buradan tespit edebilirsiniz. Bu açığı kapatmak için sitenizin SSL 3.0 desteğini kapatmanız yeterli olacaktır. SSL 3.0 desteğini kapatmak her hangi bir probleme yol açmayacaktır. Desteği kapatmak için ssl.conf dosyasında aşağıdaki değişikliği yapmak gerekmektedir.

SSLProtocol all –SSLv2 –SSLv3 satırını

SSLProtocol TLSv1 şeklinde değiştirip apache’yi restart ediniz.

ssl.conf dosyası CentOS için /etc/httpd/conf.d/ssl.conf dizininde, Ubuntu için ise /etc/apache2/mods-enabled/ssl.conf dizininde bulunmaktadır. Böylelikle SSL 2.0 ve 3.0 desteği kapanacak ve TLS desteği hizmet verecektir.

init.d script’i yazmak

Basit anlamda bir init.d script’i aşağıdaki şekilde olmalıdır. Bu örnekte script start, stop ve restart edilebilmektedir. Restart işlemi öncelikle stop sonra da start işleminin çalıştırılması şeklinde tanımlanmıştır. Start işleminde conf.config dosyasından satır satır aldığı parametreleri execute.php scriptine uygulamaktadır. Stop işleminde ise execute.php’yi process’ler içinde arayıp bununla ilgili tüm process’leri öldürmektedir. Script’i yazdıktan sonra chmod ile yöneticisini değiştirmeyi unutmayın.

#!/bin/bash
### BEGIN INIT INFO
# Provides:
#script_name
#Short-Description: Start/Stop script_name
###END INIT INFO
start(){     #script başlayınca yapılacak işlemler burada olacak
echo -n $”Starting $prog: ”
while read line;
do php -f /home/execute.php ip=$line;
done < conf.config
}

stop(){      #scriptdurdurulurken yapılacak işlemler burada olacak

        echo -n $”Stopping $prog: ”
ps aux | grep execute.php | awk ‘{print $2}’ | xargs kill -9
echo “[STOPPED]”;
}
case $1 in
start|stop) $1;;
restart) stop; start;;
*) echo “Run as $0 <start|stop|restart>”; exit 1;;
esac

#!/bin/bash
### BEGIN INIT INFO
# Provides:
#script_name
#Short-Description: Start/Stop script_name
###END INIT INFO
start(){
echo “Starting $prog: ”
while read line;
do
if ps aux | grep execute.php | grep $line ; then
echo $line ” Already running ” >>/var/log/execute.log
else
php -f /home/execute.php ip=$line >> /var/log/execute.log &
echo “Started : $line”;
fi
done < conf.config
}
stop(){
echo -n $”Stopping $prog: ”
ps aux | grep execute.php | awk ‘{print $2}’ | xargs kill -9
echo “execute service [STOPPED]”;
}
case $1 in
start|stop) $1;;
restart) stop; start;;
*) echo “Run as $0 “; exit 1;;
esac

Spamassassin: kural ekleme

Öncelikle /etc/amavisd/amavisd.conf dosyasında $sa_tag_level_deflt  = 2.0; satırını $sa_tag_level_deflt  = -1000; şeklinde değiştirdim.

Sonrasında /etc/mail/spamassassin/local.cf konfigürasyon dosyasının altına aşağıdaki satırları ekledim.

header   ORNEK_KURAL         Subject =~ /^testrules/
score    ORNEK_KURAL         1000
describe ORNEK_KURAL         Test kuralıdır.

Dosyayı kaydedip kapattıktan sonra spamassassin –-lint komutunu çalıştırdım (kural yazımında hata oluğ olmadığını kontrol eder) amavisd servisini restart ettim.

Bu işlemlerden sonra konusu içerinde testrules kelimesi geçen e-postalar spam olarak işaretlenmeye başladı. Bu kurala benzer şekilde başka kurallar da konfigürasyon dosyasına eklenebilir ve gönderenin mail adresi, mail içeriği, mail konu içeriğini içeren farklı kurallar oluşturulabilir. Bu kurallar için yukarıda ifade edilen kodlardan score satırı sabit kalmak şartı ile describe satırına kuralı anlatacak istenilen ifadeler yazılabilir. İlk satır ise kuralı belirteceğinden önem arzeder. Bizim yazdığımız kuralda mailin konusuna göre bir kontrol yapıldığında dolayı satır header ile başlamıştır. Farklı kontroller için farklı komutları internette bulmanız mümkün.

Ayrıca belirli bir mail adresinden gelen  tüm e-postaların spam olarak olarak işaretlenmesi için konfigürasyon dosyasına blacklist_from user@example.com satırını eklemek yeterli olacaktır.

Iredadmin web panel uzun sürede açılma problemi

Problemin kaynağı çok fazla kullanıcının olmasıdır. Dashboard çok yavaş geliyor. Bunu aşmak için açılan ilk sayfanın dashboard değil de farklı bir sayfa olarak ayarlanması gerekiyor. Bunun için /var/www/controllers/ldap/basic.py içinde aşağıdaki şekilde /dashboard yazan yerler domains ya da farklı bir sayfa olarak ayarlanmalıdır.

raise web.seeother(‘/dashboard’)
raise web.seeother(‘/domains’)

Iredmail yeni bir sunucuya taşıma

Bildiri olarak sunulan bu çalışmaya bağlantıdan ulaşabilirsiniz.

You can access this study presented as a conference paper from the link.


Iredmail mail sunucusunu yeni kuracağınız başka bir sunucuya taşımak için öncelikle mevcut sunucudaki sürümün aynını yeni sunucuya kurmamız gerekiyor. Bunun için kullandığımız sürümü öğrenip o sürümü siteden indiriyoruz. Daha sonra mevcut sistemdeki ayarlara göre yeni sunucuya kuruyoruz. Kurulum adımları Iredmail’in sitesinde mevcuttur. Kurulumu tamamladıktan sonra backup almakta yarar var zira bundan sonraki aşamalarda bir sıkıntı çıkacak olursa sunucuya tekrar kurarak zaman kaybetmekten bize kurtaracaktır. Benim kurduğum sürüm eski bir sürüm olduğundan kaynaklı kendi otomatik indireceği bazı dosyaları bulamadı. Ben bunları kendim internetten indirdikten sonra aradığı klasöre kopyalayarak yüklemeyi devam ettirdim. Ayrıca mevcut sunucuda roundcube’ün versiyonun yükselttiğim için taşıma işleminden önce roundcube’ün de versiyonunu yükselttim. Roundcube’ün upgrade işlemi için web sitesinden bilgi alabilirsiniz. Yükseltme esnasında upgrade scripti olan installto.sh’ın bulunduğu klasördeki tüm dosyaların modunu 777 yapmalıyız. Ayrıca sunucuda rsync kurulu olmalıdır. Mevcut sunucudan bize gerekli olan dosya ve bilgiler şunlardır;

  • Kullanıcı hesaplarının bulunduğu dizin
  • Mysql backup
  • Openldap backup
  • DKIM dosyası

Kullanıcı hesaplarının bulunduğu dizin eğer kurulum sırasında bir değişiklik yapılmamışsa /var/vmail dizinidir. Bu sebeple bu dizini yeni sunucuda aynı isimli klasöre kopyalıyoruz. Kopyaladıktan sonra dizinlerin sahibi vmail olarak belirlenmelidir. Taşıma ve sonrası ile ilgili detaylı bilgi için en alttaki linkler kullanılabilir.

İkinci olarak mevcut sunucunun mysql veri tabanlarının backup’ını alıyoruz. Mysql’in tamamının backup’ı alındığı zaman bize amavisd, iredadmin, mysql, policyid ve roundcube olmak üzere 5 adet veri tabanının sql dosyalarını verecektir. Bunlardan mysql dışındaki dördünü yeni sunucudaki mysql’e restore etmeliyiz. Mysql backup’tan sonra dosyaları bz2 olarak vermektedir. Bu sql dosyalarını bzip2 –d dosyaadi.bz2 komutlarıyla çıkarabiliriz.

Üçüncü olarak mevcut sunucudaki Openldap’ın backup’ı alınarak yeni sunucuya restore edilecek.

Son olarak /var/lib/dkim/ klasörü altındaki .pem uzantılı dosyayı yeni sunucuda aynı yere taşıyoruz.

Bu adımlar sırasında hatayla karşılaşılmaması durumunda Iredmail sunucusu başarıyla taşınmuş olup, mevcut sunucudaki kullanıcılar mevcut şifreleriyle yeni sunucuda maillerine ulaşabilirler.

Eski sunucuda kullanılan bir ssl sertifikası varsa yeni sunucuya eklemeyi unutmamak gerekir. Anlatılanlara kaynak olarak ve daha fazla bilgi için aşağıdaki linkler kullanılabilir.

http://www.iredmail.org/wiki/index.php?title=IRedMail/FAQ/Backup.iRedMail.Server

http://www.iredmail.org/wiki/index.php?title=IRedMail/FAQ/Backup

Not: İşlemlerden sonra taşıdığım hesaplar önceki sunucudaki kullanıcı adı ve şifreleriyle kullanılabilir durumdaydı. Fakat mail dosyalarına ulaşılamıyordu. Burada /var/vmail/vmail1…..org‘daki dosyaları /var/vmail/….org klasörüne taşıdığımda sorun çözüldü. Sebebini anlamasam da problem halloldu.

Not: Eski sunucunuzda sonradan tanımladığınız attribute ve object’ler varsa ldap restore yapmadan önce bunları yeni sunucuya taşıyınız. Yoksa hata verecektir.