Çarşamba, Aralık 27, 2006

Salı, Kasım 28, 2006

SHELL Programlama

Döngüler
Örnek 1:
rpm -ql snort | while read FILE ; do diger yapılacaklar ; done

Örnek 2:
for i in `rpm -ql snort` ; do diger yapılacaklar ; done

Örnek 3:
x=10
while [ $x -gt 0 ] ; do echo DENEME; echo $x ; x=$(($x-1)) ; done

Örnek 4:
ls -1 | while read DIR; do if [ -d $DIR ]; then du -hs $DIR; fi; done
yada
ls -1 | while read DIR; do [ -d $DIR ] && du -hs $DIR; done

Örnek 5:
for FILE in * ; do if [ `stat $FILE | grep Size | awk '{print $2}'` -eq 0 ]; then ll $FILE; fi; done
yada
ls -1 | while read FILE; do if [ `stat $FILE | grep Size | awk '{print $2}'` -eq 0 ]; then ll $FILE; fi; done


Bilgi Girişi

Örnek 1:
#!/bin/sh
echo -n "1.Giris yapınız->"
read GIRIS
echo $GIRIS

Örnek 2:

read -p "2.Giris yapınız->" GIRIS2
echo $GIRIS2

Faydalı Komutlar
ls -1 | while read MAIL; do grep -ir "ARANAN İFADE" $MAIL && echo $MAIL; done

mail dosyaları içerisinde To: ile başlayan ve BÜYÜK harfle başlayan e-posta adreslerini alır ve alan adına göre sıralar

ls -A1 | while read FILE; do grep -r "^To: [^a-z]" $FILE | sed 's/To: //'; done | sort -t @ -k 2

Hesaplama İşlemi
alias '?=bc -l <<<' ? (546-425)*34
yada
bc -l <<< (546-425)*34 yada echo 6-5 | bc -l Dizin ve Dosyaları Küçük Karaktere Çevirmek

ls -1 | while read F; do awk '{print tolower($F)}'; done
Ad Soyad İfadelerini Ayrıma
sed 's/\(\w*\)\(\W*\)\(\w*\)$/\1;\3/' a.csv > b.csv

Kaynaklar
1.http://tldp.org/LDP/abs/html/

Perşembe, Kasım 16, 2006

VIM Text Editörü

Vim içerisinde yardım almak
:h aranan_kelime+TAB

Vim içerisinde belli bir syntax support vermek
:source $VIMRUNTIME/syntax/perl.vim

Pazar, Kasım 12, 2006

MySQL Veri İşlemleri

Veri Girişi

> INSERT tbl_ismi VALUE('deger1','deger2',...);


Veri Silmek

> DELETE FROM tbl_ismi WHERE kolon_adi1 LIKE '%aranan_kelime%'

MySQL Kullanıcı İşlemleri

Kullanıcı Eklemek

> CREATE USER erolk;

Şifre Atamak

> SET PASSWORD FOR erolk = PASSWORD('şifre');
> SET PASSWORD FOR 'erolk'@'localhost' = PASSWORD('şifre');

Şifre Güncellemek

> UPDATE mysql.user SET Password=PASSWORD('şifre') WHERE User='erolk';

Tabloya Erişim Tanımlama

> GRANT ALL ON db.* TO erolk;


Bilgi için buraya tıklayın.

Salı, Kasım 07, 2006

HP-UX Servis ->Port

Servisleri port numaraları ile eşleştirmek için lsof komutu kullanılabilir.

/usr/local/bin/lsof -i TCP
/usr/local/bin/lsof -i TCP | grep PORT_NO
/usr/local/bin/lsof -i TCP | grep -i listen

Not: lsof komutunu internet sitesinden indirebilirsiniz.

Salı, Ekim 10, 2006

HP-UX vg00 Disk Aynalama (Mirror)

# pvcreate -f /dev/rdsk/c2t1d0 ; fiziksel disk Phisycal Volume olarak tanmlanr.
# pvcreate -B /dev/rdsk/c2t1d0 ; disk bootable olarak tanmlanr.

# mkboot /dev/rdsk/c2t1d0 ; diskin bootable olabilmesi için
# mkboot -a "hpux -l q (;0)/vmunix" /dev/rdsk/c2t1d0

# vgextend -f vg00 /dev/dsk/c2t1d0 ; vg00 V'olume Group 'a yeni tanmlanan PV eklenir.

Eğer yaratlan Logical Volume ler diğer bir diske aynalanacak (mirror) ise aşağıdaki komut satırı kullanlabilir.

# for i in 1 2 3 4 5 6 7 8 ; do lvextend -m 1 /dev/vg00/lvol$i /dev/dsk/c2t1d0 & ; done

Değişiklik yapıldktan sonra kontrol etmek için;

# lvlnboot -v
Boot Definitions for Volume Group /dev/vg00:
Physical Volumes belonging in Root Volume Group:
/dev/dsk/c2t0d0 (0/1/1/0.0.0) -- Boot Disk
/dev/dsk/c2t1d0 (0/1/1/0.1.0) -- Boot Disk
Boot: lvol1 on: /dev/dsk/c2t0d0
/dev/dsk/c2t1d0
Root: lvol3 on: /dev/dsk/c2t0d0
/dev/dsk/c2t1d0
Swap: lvol2 on: /dev/dsk/c2t0d0
/dev/dsk/c2t1d0
Dump: lvol2 on: /dev/dsk/c2t0d0, 0

Qmail Bağlantıları

1. QmailToaster
2. Qmail-Ldap1
3. Qmail-Ldap2
4. Qmail Queue Manager
5. Qmail Wiki
6. Qmail SquirrelOutlook Plugin

Pazartesi, Ekim 09, 2006

nrep ile Paket Filtreleme

# ngrep -wiq 'ARANAN_DIZI' host IP_ADDRES

# ngrep -wiq 'user|pass|password'

# ngrep -wiq 'ARANAN_DIZI' tcp port PORT_NO

iptable LOG'larını Ayırmak

iptable loglarını ayırmak.

Cuma, Eylül 08, 2006

FreeRadius Kurulumu

Kurulum
Radius, merkezi bir yerden cihazları yetkilendirmesine izin veren bir sunucudur. Linux üzerinde koşan ve açık kodlu bir yazılım olarak dağıtılan freeradius bulunmaktadır. Fedora dağıtımı freeradius-x.y.z.rpm paketi olarak bulunmaktadır kurulumu:
# rpm -Uvh freeradius-x.y.z.rpm
yada
# yum install freeradius-x.y.z.rpm

komutları ile gerçekleşir. Kurulum TAR paketinden de yapılabilir.

# tar -xzvf freeradius*.tar.gz
# make
# make install
# make clean

Konfigurasyon
Freeradius ayar dosyaları /etc/raddb dizininde yer almaktadır.

"clients.conf" Dosyasının Ayarlanması
İlk ayarlama clients.conf dosyasında yer almaktadır. Bu dosyada istemci olarak yer alacak makinaların tanımlanması ve kullanacakları şifre sözcükleri belirlenmektedir.

127.0.0.1 {
secret = Deneme123
shortname = local
}
client 10.1.1.1 {
secret = Deneme123
shortname = router
}
client 10.1.2.1 {
secret = Deneme123
shortname = switch
}

"naslist" Dosyasının Ayarlanması
NAS (Network Access Servers) olarak kullanılacak cihazlar tanımlanır. Dosyanın açıklama kısmında örnek NAS cihaz listesi tanımlanmıştır. Bu dosyada yer almayan bir cihaz kullanılırsa other olarak tanımlanabilir.

# NAS Name Short Name Type
#---------------- ---------- ----
localhost local portslave
10.1.1.1 router other
10.1.2.1 switch other

"users" Dosyasının Ayarlanması
Kullanıcı yetkilerinin tanımlandığı yerdir. Burada yapılabilecek ayar aşağıdaki gibidir:

erolk Auth-Type := Local, User-Password == "deneme"

Bu ayarda kullanıcı şifresi users dosyasında açık olarakt tutulmaktadır. Yetkilendirme işleminin daha güvenli gerçekleştirebilmesi için farklı yöntemler kullanılmalıdır. FreeRadius'un desteklediği yöntemler /usr/share/freeradius/dictionary dosyasında tanımlanmıştır.

VALUE Auth-Type Local 0
VALUE Auth-Type System 1
VALUE Auth-Type SecurID 2
VALUE Auth-Type Crypt-Local 3
VALUE Auth-Type Reject 4
VALUE Auth-Type ActivCard 5
VALUE Auth-Type EAP 6
VALUE Auth-Type ARAP 7

Yetkilendirme sistem üzerinden yapılabilmesi için users dosyasında herhangi bir değişiklik yapılmaz. /etc/raddb/radiusd.conf dosyasında aşağıdaki düzenleme yapılır.

cache = yes
passwd = /etc/passwd
shadow = /etc/shadow
group = /etc/group

Ayarların Kontrol Edilmesi
Yükarıdaki temel ayarlar yapıldıktan sonra sunucu çalışıtırılıp test edilir.

# service radiusd start
# radiusd -sfxxyz -l stdout

Sunucuyu DEBUG modta çalıştırmak için;

# radiusd -X

Test

# radtest erolk deneme localhost 1600 testing123
Sending Access-Request of id 107 to 127.0.0.1:1812
User-Name = "erolk"
User-Password = "deneme"
NAS-IP-Address = tacacs
NAS-Port = 1600
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=107, length=20

Cuma, Eylül 01, 2006

Bootable OpenBSD CD Oluşturmak

Öncelikle ftp sitesinden dosyalar indirilir;

# wget -r -np ftp://ftp.openbsd.org/pub/openbsd/3.9/i386

Dosyalar indirildikten sonra aşağıdaki komut ile openbsd39.iso imajı oluşturulur.

# mkisofs -v -r -l -J -V "OpenBSD 3.9" -b cdrom39.fs -c boot.catalog -o openbsd39.iso openbsd39

Cuma, Ağustos 18, 2006

Active Directory Linux Entegrasyonu

AD Ayarlanması
Öncelikle bir Windows 2000/2003 sunucu üzerinde AD kurulması gerekir. AD kurulum aşamaları bağlantıda anlatılmıştır.

Linux Sunucu Ayarlaması

# yum install samba samba-common samba-client pam_smb krb5-libs krb5-workstation pam_krb5 krb5-server ntp

Alan Adı(DNS) Ayarları
/etc/resolv.conf dosyasında
nameserver AD_SUNUCU_IP

/etc/hosts dosyasında
IP_ADRESI LINUX_SUNUCU_ADI
IP_ADRESI AD_SUNUCU_ADI

Saat Ayarlanması
/etc/ntp.conf dosyasında;
server AD_IP_ADRESI

ayarı yapılır.

Kerberos Ayarlanması
[libdefaults]
default_realm = TEST.COM.TR
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes

[realms]

TEST.COM.TR = {
kdc = SUNUCU_ADI.test.com.tr:88
admin_server = SUNUCU_ADI.test.com.tr:749
default_domain = test.com.tr kdc = IP_ADRESI }

[domain_realm]

.kamusm.gov.tr = TEST.COM.TR
kamusm.gov.tr = TEST.COM.TR

Kerberos ayarları yapıldıktan sonra test etmek amacı ile;
# kinit administrator
Password for administrator@TEST.COM.TR

Samba Ayarlanması
[global]
workgroup = ADGROUP
security = ADS
realm = TEST.COM.TR
winbind separator = +
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
auth methods = winbind ...
# the share we will use to test it, make sure path is
# valid and writeable

[testpaylasimi]

comment = Test Share using Active Directory
read only = no
path = /tmp/test
valid users = @"ADGROUP+domain users"

Linux Sunucunun AD'ye Eklemek

# kinit administrator
Password for administrator@TEST.COM.TR
#net ads join
Using short domain name -- ADGROUP
Joined 'LINUX_SUNUCU_ADI' to realm 'TEST.COM.TR'

Winbind Ayarlanması
/etc/nsswitch.conf dosyasında
passwd: winbind files
shadow: winbind files
group: winbind files

# wbinfo -u

# wbinfo -g

# getent passwd
guest:*:10003:10008:Guest:/home/TEST/guest:/bin/bash
administrator:*:10004:10006:Administrator:/home/TEST/administrator:/bin/bash
...

# getent group
Domain Computers:*:10002:
Domain Controllers:*:10003:
Schema Admins:*:10004:yerelyon
Enterprise Admins:*:10005:yerelyon
Domain Admins:*:10006:yerelyon
Domain Users:*:10007:
Domain Guests:*:10008:
Group Policy Creator Owners:*:10009:yerelyon
DnsUpdateProxy:*:10010:
BUILTIN+administrators:*:10000:yerelyon
BUILTIN+users:*:10001:
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
...

Authconfig Fonksiyonu
Authconfig fonksiyonu ile kullanıcı bilgilerin nereden alınacağını ve yetkilendirmenin nereden yapılacağını belirler.

# authconfig-tui
User Information
[ ] Cache Information
[ ] Use Hesiod
[ ] Use LDAP
[ ] Use NIS
[*] Use

Winbind Authentication
[*] Use MD5 Passwords
[*] Use Shadow Passwords
[ ] Use LDAP Authentication
[ ] Use Kerberos
[ ] Use SMB Authentication
[*] Use Winbind Authentication
[ ] Local authorization is sufficient

Test
# kinit AD_KULLANICISI
Password for AD_KULLANICISI@TEST.COM.TR
# smbclient //LINUX_SUNUCU_ADI/testpaylasimi -k
smb: \> quit

yada
# ssh -l AD_KULLANICISI LINUX_SUNUCU_ADI
$

Linux Üzerinde Güvenlik Tanımlama

Domain üzerinde yer alan tüm kullanıcıların linux sunucuya SSH erişimini engellemek istersek /etc/ssh/sshd_config dosyasında

DenyGroups YASAKLI_GRUP1 YASAKLI_GRUP2 ...
DenyUsers YASAKLI_KULLANICI1 YASAKLI_KULLANICI2 ...

tanımlarını yapabiliriz. Aynı şekilde bu kullanıcıların konsol üzerinden erişimini kısıtlamak için /etc/security/access.conf dosyasında;

-:ALL EXCEPT root KULLANICI1 KULLANICI2:tty1

satırı ekleyebiliriz. Ayrıca bu değişikliğin etkin olabilmesi için de, /etc/pam.d/login dosyasına ;

account required pam_access.so

satırı eklenmeli.

Cuma, Ağustos 11, 2006

LVM Komutları

PV Tanımlamak
# pvcreate -v -d /dev/sdb

VG Yaratmak
# vgcreate -v -s 16M vg_ismi /dev/sdb

LV Yaratmak
# lvcreate -v -l 600 -n lvftp01 /dev/vgftp

LV Genişletmek
# lvextend -l +24 /dev/vgftp/lvftp01

Dosya Sistemini Genişletmek
# e2fsck -f /dev/vgftp/lvftp01
# resize2fs -p /dev/vgftp/lvftp01


EXT3 Formatlamak
# mkfs.ext3 /dev/vgftp/lvftp01

LV'yi Mount Etmek
# mount /dev/vgftp/lvftp01 /ftp

Kaynak :
LinuxQuestion.org

ISO imajı Mount Etmek veya Yaratmak

ISO İmajını Mount Etmak
# mount /dosya.iso /mnt/cdrom -t iso9660 -o ro,loop=/dev/loop0

ISO İmajı Yaratmak

# dd if=/dev/cdrom of=/tmp/cdimg1.iso
# mkisofs -l -L -r -o /path/to/filename.iso /path/to/backup

Ftp (pure-ftp) Komutları

Kullanıcı Ekleme
pure-pw useradd kullanıcı_adı -u ftp_kullanıcısı -d /home/ftpusers/kullanıcı_adı
pure-pw mkdb


Kullanıcı Sifre Degistirme
pure-pw passwd kullanıcı_adı
pure-pw mkdb


Kullanıcı Görüntüleme
pure-pw show kullanıcı_adı
pure-pw mkdb


Kullanıcı Silme
pure-pw userdel ftp kullanıcı adı
pure-pw mkdb

Elle home folder degistirmek icin;
/etc/pureftpd.passwd

Çarşamba, Ağustos 09, 2006

BASH Shell' i Düzeltemek

Bazen açtığımız bir dosya terminelin karakter yapısını bozar;
Bunu düzeltebilmek için;

$ reset

komutu ile terminali resetleyebiliriz. bu işe yaramaz ise;

$ stty sane
$ clear


Kaynak : nixCraft

Cuma, Ağustos 04, 2006

Dig Komutu

Bind versiyonunu öğrenmek için;
# dig +short @dns1.itu.edu.tr version.bind. ch txt

Zone transferi;
# dig AXFR itu.edu.tr

Ters kayıt sorgulama;
# dig +short -x 10.1.1.1

Sorguyu izleme [trace]
# dig +trace www.itu.edu.tr

Pazartesi, Temmuz 31, 2006

Juniper JunOS Güncelleme

Öncelikle en güncel JunOS indirilir.

Çalışan JunOS' un yedeği alınır böylece güncelleme aşamasında yaşanacak bir sorun karşısında son çalışır
duruma dönebiliriz. Güncelleme işlemine başlamadan önce ayrıca oluşturulmuş betikler yada kayıt (log) dosyaların da yedeklenmesi iyi olabilir. Bunun için;

Router> request system snapshot

Yedekleme işlemi tamamlandıktan sonra yeni JunOS' un yönlendiriciye aktarılması gerekir. Bunu farklı yöntemlerle yapabilirsiniz.

1. Yönlendiricide ssh servisi çalışıyor ise herhangi bir istemciden sftp ile yönlendiriciye gönderilebilir.
2. Yönlendirici üzerinden file copy komutu ile;

Router > file copy ftp://kullanici_adi:prompt@ftpsunucu.com.tr/jbundle-paket-adi /var/tmp/jbundle-paket-adi
Router > file copy http://kullanici_adi:prompt@ftpsunucu.com.tr/jbundle-paket-adi /var/tmp/jbundle-paket-adi

En son olarak aktarılan JunOS' un kurulur;

Router > request system software add validate reboot /var/tmp/jbundle-paket-adi

yada
Router> request system software add validate reboot ftp://KULLANICI_ADI:prompt@10.1.7.87/jinstall-8.4R1.13-domestic-signed.tgz

NOT:
1. Güncelleme yapılırken minör geçişlerde jbundle paketi major geçişlerde jinstall paketi kullanılır. Bilgi için ilgili dağıtımın "Installation and Upgrades" dökümanını inceleyin.
2. JunOS için iki farklı dağıtım vardır.
Canada ve ABD için kullanılan dağıtım içerisinde fazladan güvenli iletişimi sağlamak amacı ile jcrypto uygulaması yer almaktadır. Bu dağıtıma ulaşabilmek için özel bir sözleşme imzalanmaktadır.

Cuma, Temmuz 28, 2006

Windows'ta Özetleme (Hash) Almak

Bir dosyanın hash'ini almak

c:\> md5sum.exe deneme.txt
eb8c590b7f25ac701604d910daa7ff12 deneme.txt

c:\> sha1sum.exe deneme.txt
e1f4415f974dcd8637b8d197cf73a2d63f23ba6d deneme.txt



Kategori : ipucu_

HP-UX Ağ Dosyalarını Yedekleme

HP-UX işletim sisteminde tüm ağ dosyalarını yedeklemek için bağlantıdaki betik kullanılabilir.

Kullanımı ;
# ./netfiles.sh -s YEDEK_ISMI
# ./netfiles.sh -l
# ./netfiles.sh -l YEDEK_ISMI

Linux'ta Özetleme (Hash) Almak

Bir dizinin özetini (hash) almak
# echo -n deneme | md5sum
# 8f10d078b2799206cfe914b32cc6a5e9 -

# echo -n deneme | sha1sum
# d88ea461adab9a5d6d2d760f82bbd6b1ba81452e -


Bir dosyanın özetini (hash) almak
# md5sum deneme.txt
# eb8c590b7f25ac701604d910daa7ff12 deneme.txt

# sha1sum deneme.txt
# e1f4415f974dcd8637b8d197cf73a2d63f23ba6d deneme.txt
Kategori : ipucu_

TCP Bağlantısı ile Yedekleme

Sunucu (Server) Ayarları

Bu yöntem, istemcinin yedeklenecek dosyaların doğrudan sunucuya yerleştirmesini sağlar. Bu amaçla öncelikle sunucuya bir soket bağlantısı açılır ve bir port üzerinden istekleri dinlemesi sağlanır. Bu örnekte bunun için nc (netcat) komutu kullanacaz.

# nc -l -w 5 7000 > yedek.tar.bz2 &

Yukarıdaki komut bize sunucu üzerinde 7000 portu üzeride bir soket açar. Sunucu bu portu dinler ve gelen bilgileri yedek.tar.gz dosyasına yazar.


İstemci (Client) Ayarları

İstemci yedekleme için tar arşivleme komutunu kullanacak.

# DIZIN="/dizin1/dizin1 /dizin2/dizin2 /dizin3"
# tar jlcvPpf - $DIZIN > /dev/tcp/sunucu_IP_adresi/port_no

tar arşivleme komutunun parametreleri için man tar yada info tar komutlarını kullanarak yardım alınabilir. Yedek alma işlemi dizinlerdeki bilgi miktarı ile orantılı olarak uzun sürecektir. Bu işlem sırasında bir ara verebilir ve bilgilerinizi yedeklemenin tadını çıkarabilirsiniz.

Kategori : ipucu_

Konsolda Türkçe Desteği

Öncelikle i18n dosyasında kullanılacak dil ve system fontları tanımlanması gerekir.

LANG="en_US"
SYSFONT="lat5-16"
SUPPORTED="tr_TR:tr:en_US:en"

Eğer kullanılacak dil de Türkçe olacaksa aşağıdaki gibi olmalı;

LANG="tr_TR"
SYSFONT="lat5-16"
SUPPORTED="tr_TR:tr:en_US:en"

keyboard dosyasının ayarları aşağıdaki gibi olmalı;

KEYBOARDTYPE="pc"
KEYTABLE="trq"

Bu ayarların dışında UTF-8 desteği verilecekse ayarlar aşağıdaki gibi olmalı;

LANG="en_US.UTF-8"
SYSFONT="iso09.16"
SUPPORTED="tr_TR.UTF-8:tr_TR:tr:en_US.UTF-8:en_US:en"

KEYBOARDTYPE="pc"
KEYTABLE="trqu"

lang.sh dosyası değiştirilerek en son satırına /sbin/setsysfont komutu eklenmelidir.

...
/sbin/setsysfont

Ayarlamaların Elle Yapılması

Ayarları elle de yapabilirsiniz, bu amaçla aşağıdaki komutlar çalıştırılabilir.

# loadkeys /lib/kbd/keymaps/i386/qwerty/trq.map.gz
# setfont /lib/kbd/consolefonts/lat5-16.psfu.gz

Burada farklı karakter tipleri de kullanılabilir:

/lib/kbd/consolefonts/lat5-16.psfu.gz
/lib/kbd/consolefonts/lat5-14.psfu.gz
/lib/kbd/consolefonts/lat5-12.psfu.gz
/lib/kbd/consolefonts/iso09.16.gz

Makinayı tekrar başlatmadan dilini değiştirmek için ise;

# export LANGUAGE="tr"
# herhangi bir komut

çıktısının türkçe olacağını göreceksiniz.

Kontroller
Kontroller için aşağıdaki komutları kullanabilirsiniz.

# env
# set
# locale

Kategori : ipucu_

OpenSSL ile Sertifika İşlemleri


3DES şifreli özel anahtar üretmek;
# openssl genrsa -des3 -out ozel_anahtar.key 1024

Anahtardaki şifreyi kaldırmak;
# openssl rsa -in sifreli_dosya.key -out sifresiz_dosya.key
Şifresiz özel anahtar üretmek;
# openssl genrsa -out ozel_anahtar.key 1024
 İmzalama isteği;
# openssl req -new -key ozel_anahtar.key -out istek.csr
Konfigurasyon Dosyasından İmzalama isteği;
# openssl req -new -key ozel_anahtar.key -config konfig_dosyası -out istek.csr


.PEM formatından .DER formatına Dönüşüm
#openssl x509 -in sertifika.pem -outform DER -out sertifika.der

Sertifika ve Anahtardan .PFX elde etkemk;

#openssl pkcs12 -export -out certbackup.pfx -inkey cert.key -in cert.crt
Sertifika üretmek;
# openssl req -new -key ozel_anahtar.key -x509 -days 365 -out sertifika.crt

Var olan bir isteği imzalamak;
# openssl req -in istek.csr -key ozel_anahtar.key -x509 -days 365 -out sertifika.crt
Sertifikanın Özetini (Hash) Hesaplamak;
# openssl req x509 –hash –noout –in cert.pem
Openssl ile ilgili varsayılan ayarlar /etc/pki/tls/openssl.cnf dosyasında yer alır.

İsteğin durumu sorgulamak;
# openssl req -in istek.csr -noout -text
Sertifika durumu sorgulamak;
# openssl x509 -in sertifika.crt -noout -text

Sertifika iptal listesi durumu sorgulamak;
# openssl crl -in liste.crl -noout -text
Kaynaklar :

MySQL Şifre Güncelleme

shell> mysql -u root
mysql> UPDATE mysql.user SET Password = PASSWORD('yeni_şifre')
-> WHERE User = 'kullanıcı_adi';
mysql> FLUSH PRIVILEGES;


Kategori : ipucu_

Perşembe, Temmuz 27, 2006

HP-UX GUI Enable/Disable

vi /etc/rc.config.d/desktop
DESKTOP=CDE # enable
DESKTOP= # disable (boş)

/sbin/init.d/dtlogin.rc stop
/sbin/init.d/dtlogin.rc start

Kategori : ipucu_ hpux_

Qmail E-Posta Sunucusu Taşıma

Taşıma Kontrol Listesi
E-posta sunucusunu taşırken aşağıdaki kontrol listesi takip edilmeli. Eğer sunucu taşınırken servis güncellemeleri yapıldıysa dosyalar taşınmayacak yeni versiyona göre uyarlanacaktır.

WEB Servisi
Web üzerinden servis veren sunucu için httpd servisinin kurulacak. Ssl desteği mevcut ise mod_ssl eklentisi kurulacak. Servis üzerinde ayarlar yapılacak.
  1. /etc/httpd/conf/httpd.conf dosyası taşınacak.
  2. /etc/httpd/conf/conf.d/ssl.conf dosyası taşınacak.
  3. /dosya/yolu/sertifika.crt dosyası taşınacak.
  4. /dosya/yolu/ozel_anahtar.pem dosyası taşınacak.

Yukarıdakiler dışında kullanılan dosyalar varsa onlar da yeni sunucuya taşınacak.


Alan Adı (DNS) Servisi
Alan adı servisi veren sunucu için bind servisi kurulacak.

  1. /var/named/chroot/etc/named.conf dosyası taşınacak.
  2. /var/named/chroot/var/named dizinindeki alan ile ilgili tüm dosyalar taşınacak.

Güvenlik Duvarı (iptables) Servisi
Güvenlik duvarı servisini kullanan sunucu için iptabables kurulacak.
  1. /etc/sysconfig/iptables betiği taşınacak.
STUNNEL Servisi
Güvenli veri iletimi için kullanılan stunnel servisi kurulacak.
  1. /etc/stunnel/stunnel.conf dosyası taşınacak.
  2. /dosya/yolu/sertifika.pem dosyası taşınacak.
  3. /dosya/yolu/ozel_anahtar.pem dosyası taşınacak.

Crontab Servisi
Gün içinde belli periyotlarla yapılan işler için crond servisi kurulacak.
  1. /var/spool/cron/root dosyası taşınacak.
  2. /etc/crontab dosyası taşınacak
  3. /etc/cron.* dosyalarında ayarlanan bilgiler varsa onlar da taşınacak.
Nagios Servisi
Sistemi denetlemek için kullanılan nagios servisi kurulacak.
  1. /dosya/yolu/nrpe.cfg dosyası taşınacak.
  2. /dosya/yolu/plugins/* dosyaları taşınacak.
  3. /etc/services dosyası ayarlanacak.
  4. /etc/xinetd.d/nrpe dosyası taşınacak.
Betikler
Sunucunun kontrolü için hazırlanmış betikler varsa taşınacak.
  1. /dosya/yolu/* betikler taşınacak.
Veriler
Kullanıcıların e-posta,şifre ve kişisel ayarları taşınacak.
  1. /var/lib/mysql/vpopmail dizini taşınacak. Bu dizin tüm kullanıcıların isim ve şifrelerini barındırır.
  2. /var/lib/squirrelmail/prefs dizni taşınacak. Bu dizinde tüm kullanıcıların kişisel tercihleri yer almaktadır.

  3. Tüm bu işlemler tamamlandıktan sonra eski qmail sunucusu durdurulur. Tüm e-posta verisi aktarılır.

  4. /home/vpopmail/domains/alan_adi_dizini taşınacak.
E-posta verisi de aktarıldıktan sonra IP değişikliği yapılır ve sunucu hizmete açılır.

Kontroller
Yeni sunucu hizmete girdikten sonra herşeyin yolunda gittiğini kontrol etmek gerekir.

1. Servisler açıldı mı ?
# service httpd status
# service iptables status
# service stunnel status
# service qmail stat
# netstat -na | grep LISTEN
...

2. Servis kayıtlarında sorun var mı ?
# tail /var/log/stunnel.log
# tail /var/log/messages
# tail /var/log/httpd/sunucu_adi-error
# tail /var/log/qmail/smtp/current
# tail /var/log/qmail/send/current
# tail /var/log/qmail/clamd/current
...

3. Servisler düzgün çalışıyor mu ?
Web tarayıcısından bağlanıp e-posta göndermek
Dışarıdan e-posta göndermek
Alan adı kaydı sorgulamak
Dışarıdan güvenlik duvarının kapattığı portlara bağlanmaya çalışmak.
Stunnel servisinin verdiği güvenli servislere bağlanmak.
Nagios sunucusunun istatistiklerini kontrol etmek.
Sertifikaların kontrolünü yapmak.
Kişisel betiklerin çalıştığını kontrol etmek.

Çarşamba, Temmuz 26, 2006

HP-UX Şifre İşlemleri

Kullanc Reactive etmek
/usr/lbin/modprpw -l -k erolk

Kullanıcı Deactive etmek
/usr/lbin/modprpw -l -m alock=YES erolk

Kategori : ipucu_ hpux_

Qmail E-Posta Sunucusu

Qmail E-Posta Kurulumu

Qmail açık kodlu bir e-posta sunucusudur. Bu sunucunun toaster kurulum paketleri kullanlacaktr. Kurulum için gerekli paketler aşağıdaki gibidir:

autorespond-toaster-*.src.rpm
clamav-toaster-*.src.rpm
control-panel-toaster-*.src.rpm
courier-imap-toaster-*.src.rpm
daemontools-toaster-.src.rpm
ezmlm-toaster-*.src.rpm
isoqlog-toaster-*.src.rpm
maildrop-toaster-*.src.rpm
qmailadmin-toaster-*.src.rpm
qmailmrtg-toaster-*.src.rpm
qmail-toaster-*.src.rpm
simscan-toaster-*.src.rpm
spamassassin-toaster-*.src.rpm
squirrelmail-toaster-*.src.rpm
ucspi-tcp-toaster-*.src.rpm
vpopmail-toaster-*.src.rpm
vqadmin-toaster-*.src.rpm
zlib-*.src.rpm
ripmime-*.tar.gz
pcre-*.tar.gz

Ön Gereksinimler

Bu dosyaların en güncel versiyonlarını www.gmailtoaster.com adresinden elde edebilirsiniz. Qmail e-posta sunucusunu kurabilmek için bazı� gereksinimlere ihtiyaç vardır. Bunlar:

MySQL Sunucusu
Alan Ad Sunucusu (DNS)
Httpd Web Sunucusu

Kuruluma başlamadan önce aşağıdaki komutları kullanarak alan ad sunucusunun düzgün çalışıp çalışmadığını kontrol edebilirsiniz:

# host -t a mail.testsm.gov.tr
# host -t mx testsm.gov.tr
# host 10.1.9.250


Yine MySQL sunucusu çalışıyor ve root için şifrelerin ayarlanmış olması gerekir:

# service mysqld start
# mysqladmin -u root -h mail password 'deneme'
# mysqladmin -u root -h localhost password 'deneme'
# mysqladmin -u root -p reload
# mysqladmin -u root -p refresh

Kuruluma başlamadan önce kaynak paketlerinin kurulumunun nasıl yapılacağını görelim. Kaynak paketlerinden uygun dağıtıma göre derlenmesi gerekir.

# rpmbuild --rebuild --with fdr40 paket.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/paket.rpm

1. Daemontools Paketi

Bu paket, oluşturulan bir dizin yapısı içerisinde, tüm dosyaların çalıştırlabilmesine olanak veren bir pakettir. Bu paket sayesinde e-posta sunucusu ile beraber çalışması gereken pop3, imap gibi servisleri organize bir şekilde çalıştırabilecez.
Paketin Kurulması

1.1 Daemontools paketinin kurulması;

# rpmbuild --rebuild --with fdr40 daemontools-toaster-*.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/daemontools-toaster-*.i386.rpm


1.2 Uygulamann Ayarlanması

/var/qmail/supervise dizinine yerleştirilen qmail ile ilgili servisler, svscan ile taranarak çalıştırılır.

# ls /var/qmail/supervise
clamd imap4 imap4-ssl pop3-ssl send smtp spamd

1.3 Güncelleme
Paket derlenir ve güncellenir.

# rpmbuild --rebuild --with DISTRO daemontools-toaster-*.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/daemontools-toaster-*.i386.rpm

2. Ucspi-tcp Paketi
Bu paket komut satırından sunucu - istemci TCP bağlantısını simule etmek için kullanılır. Tcpserver komutu yardımı ile oluşturulan sunucu gelen isteklere cevap verir. Qmail yapısı içerisinde relay tanımını oluturmak için kullanlacaktır.

2.1 Paketin Kurulması

# rpmbuild --rebuild --with fdr40 ucspi-tcp-toaster-*.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/ucspi-tcp-toaster-*.i386.rpm


2.2 Uygulamanın Ayarlanması
Ucspi-tcp paketi ile ilgili ayarlamalar /etc/tcprules.d/tcp.smtp dosyasında yapılmaktadır. Bu dosyada temel olarak relay tanımı yapılmakta. Bu dosyadaki tanımlarla ayrıca birçok kontrol tanımı da yapılabilmektedir. Aşağıda örnek bir tcp.smtp dosyası görülmektedir:

127.:allow,RELAYCLIENT=””
192.168.1.1:allow,RELAYCLIENT=""
172.16.1.:allow,RELAYCLIENT=""
:allow

tcp.smtp dosyasında gerekli değişiklikler yapıldıktan sonra, aşağıdaki komutu çalıştırarak uygun veritabanı formatına dönüştürülmesi gerekir:

# tcprules /etc/tcprules.d/tcp.smtp.cdb /etc/tcprules.d/tcp.smtp.tmp < /etc/tcprules.d/tcp.smtp yada # service qmail cdb

2.3 Güncelleme
Paket derlenir ve güncellenir.

# rpmbuild --rebuild --with DISTRO ucspi-tcp-toaster-*.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/ucspi-tcp-toaster-*.i386.rpm


3. Vpopmail-toaster Paketi

Vpopmail paketi kullanıcı işlemleri için gerekli komut dosyalarının yer aldığı pakettir. Veri tabanı ile bağantıyı kurar ve buraya gerekli kullanıcı tanımlarını yapar. Yetkilendirme de yine bu paket içindeki uygulamalar ile gerçekleştirilmektedir. Paketin Kurulması Burada dikkat edilmesi gereken nokta, varsaylan değerler ile paket derlenip kurulursa veri taban üzerinde kullanıcı şifreleri açık olarak görülebilmektedir. Bunu engellemek için öncelikle kaynak paket açılacak ve SPEC dosyasnda bununla ilgili değşiklikler yapılacaktır.

# rpm -ivh vpopmail-toaster-*.src.rpm
# vi /usr/src/redhat/SPEC/vpopmail-toaster.spec
vpopmail 5.4.10
Current settings
---------------------------------------
vpopmail directory = /home/vpopmail
uid = 89
gid = 89
roaming users = OFF --disable-roaming-users (default)
password learning = OFF --disable-learn-passwords (default)
md5 passwords = ON --enable-md5-passwords (default)
file locking = ON --enable-file-locking (default)
vdelivermail fsync = OFF --disable-file-sync (default)
make seekable = ON --enable-make-seekable (default)
clear passwd = OFF--disable-clear-passwd (erol)
user dir hashing = OFF --disable-users-big-dir
address extensions = ON --enable-qmail-ext
ip alias = OFF --disable-ip-alias-domains (default)
domain quotas = ON --enable-domainquotas
auth module = mysql --enable-auth-module=mysql
mysql replication = OFF --disable-mysql-replication (default)
sql logging = OFF --disable-sql-logging (default)
mysql limits = OFF --disable-mysql-limits (default)
MySQL valias = ON --enable-valias
auth inc = -I/usr/include/mysql
auth lib = -L/usr/lib/mysql -lmysqlclient -lz -lm
system passwords = OFF --disable-passwd (default)
pop syslog = log success and errors including passwords--enable-logging=v
auth logging = ON --enable-auth-logging (default)
one domain per SQL table = --disable-many-domains


Dosyada değiştirilecek diğer bir satır da aşağıdaki gibidir;

./configure --prefix=%{vdir} \
--enable-vpopuser=vpopmail \
--enable-vpopgroup=vchkpw \
--enable-libdir=%{mylibdir} \
--disable-roaming-users \
--enable-tcprules-prog=/usr/bin/tcprules \
--enable-tcpserver-file=/etc/tcprules.d/tcp.smtp \
--enable-make-seekable \
--disable-clear-passwd \
--disable-users-big-dir \
--enable-qmail-ext \
--disable-ip-alias-domains \
--enable-domainquotas \
--enable-auth-module=mysql \
--disable-passwd \
--enable-logging=v \
--enable-log-name=vpopmail \
--disable-mysql-limits \
--enable-valias \
--disable-many-domains


Gerekli değişiklikler yaplıdıktan sonra aşağıdaki komut işletilerek değiştirilmiş spec dosyası yardımı ile yeni RPM paketi derlenir.

# rpmbuild -ba --with DISTRO /usr/src/redhat/SPECS/vpopmail-toaster.spec
# rpm -Uvh /usr/src/redhat/RPMS/i386/vpopmail-toaster-*.i386.rpm

3.1 Uygulamanın Ayarlanması
Kurulum tamamlandıktan sonra, yapılması gereken bir dizi işlem için bizi uyarır:
Buna göre önce vpopmail isminde bir veritabanı oluşturulur. Daha sonra da /home/vpopmail/etc/vpopmail.mysql dosyasında iletişim için kullanılacak şifre ayarlanır. En son olarak da vpopmail kullanıcısına vpopmail veritabanında her türlü hak verilir. ;

Create a database named "vpopmail":
mysqladmin create vpopmail -u root -p
mysqladmin -u root -p reload
mysqladmin -u root -p refresh ;

Set password for vpopmail the same as in /home/vpopmail/etc/vpopmail.mysql: ;
Make the password anything you want. Edit vpopmail.mysql to match . . .

echo "GRANT ALL PRIVILEGES ON vpopmail.* TO vpopmail@localhost IDENTIFIED \
BY 'SsEeCcRrEeTt'" | mysql -u root -p
mysqladmin -u root -p reload
mysqladmin -u root -p refresh

3.2 Güncelleme
SPEC dosyası düzenlenir. RPM paketi oluşturularak güncelleme yapılır.

4. Libdomainkeys Paketi
Çöp postaları (SPAM) engellemek amacıyla PKI yapısını kullanan bir uygulamadır. Bilgi için; Libdomain Keys veya Libdomain Keys Project

4.1 Güncelleme

Paket derlenir ve kurulur.

5. Qmail-Toaster Paketi
Qmail e-posta sunucusunun temel paketidir. Bu paket açık kaynak kodludur. Ancak kodların değiştirilmesi ve derlenmiş kodların dağıtımı yasaktır. Dolayısı ile temel qmail kaynak kodu üzerine yamalar oluşturularak geliştirilmiştir. Bu e-posta sisteminin çalışması için gerekli temel pakettir. Bu paket ile beraber bir MTA gelir. Ancak Fedora dağıtımlarında (FC5 ten önce) varsaylan MTA sendmail’dir. FC5 dağıtımında varsayılan MTA POSTFIX tir. Bunun için çakışma olmaması için öncelikle bu MTA ların kaldırılması gerekir.

# rpm -e sendmail --nodeps
# rpm -e postfix --nodeps

5.1 Paketin Kurulması

# rpmbuild --rebuild --with fdr40 qmail-toaster-*.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/qmail-toaster-*.i386.rpm

5.2 Pakete Yama Yapılması
Kaynak paket içerisinde bu paketi oluturan kişilerin koyduğu bir yama (patch) vardır. Buradaki yamalara ekleme yapmak için kaynak koda inmek ve gerekli değişiklikleri yapmak gerekir. Aaşağıda gönderici alan adının varlığını kontrol (mfcheck) eden yamanın uygulanması anlatılmıştır. Mfcheck Yaması Bu yamayı uygulamak için aşağıdaki adımları izlenmiştir:

1. Kaynak kod açılır;
# rpm -ivh qmail-toaster-*.src.rpm

2. Kaynak kodun bulunduğu dizine giderek işleme başlanır;
# cd /usr/src/redhat/SOURCE/

3. Burada sıkıştırılmış durumdaki qmail-1.03.tar.bz2 ve qmailtoaster.patch.bz2 açılır;

# bunzip2 qmail-1.03.tar.bz2
# bunzip2 qmailtoaster.patch.bz2

4. qmail-1.03.tar paketi açılır.
# tar -xvf qmail-1.03.tar

5. Daha önceden elde edilen yama qmail-1.03-mfcheck.4jk.patch ve qmailtoaster.patch qmail-1.03 dizinine kopyalanır.

6. Qmailtoaster yaması uygulanır;


# patch <>


7. Eğer mfcheck yaması drek uygulanırsa hata alınacaktır. Bunun sebebi yamanın değişiklik yapılmamış qmail dosyalarına uygulanacak şekilde tasarlanmış olmasıdır. Bu problemi gidermek için yamanın ya içerisinde değişiklik yapılır yada yama içerisindeki kod elle gerekli dosyalara uygulanır.


8. Yama içerisinde farklı alanlar vardır. Herbir alanın başında hangi dosyaya yamanın uygulanacağı belirtilir. Yama içerisinde (-) eksi ile başlayan satırlar çıkarılır. (+) artı ile başlayan satırlar eklenir. Önünde hiçbir işaret bulunmayan satırlar ise orjinal dosya içerisinde aranması gereken satırlardır.Yama içerisindeki kodu incelersek;


diff -ruN qmail-1.03-orig/Makefile qmail-1.03/Makefile

--- qmail-1.03-orig/'''Makefile''' Mon Jun 15 12:53:16 1998 # dizinde hangi dosyada değişiklik yapılacağı belirtilir.

+++ qmail-1.03/Makefile Fri May 28 11:20:51 2004

@@ -1536,13 +1536,13 @@

timeoutwrite.o ip.o ipme.o ipalloc.o control.o constmap.o received.o \ # Bu üç satırdan sonra aşağıdaki değişiklik yapılır.

date822fmt.o now.o qmail.o cdb.a fd.a wait.a datetime.a getln.a \ #

open.a sig.a case.a env.a stralloc.a alloc.a substdio.a error.a str.a \ #

-fs.a auto_qmail.o socket.lib # Bu satır çıkarılır

+fs.a auto_qmail.o socket.lib dns.o dns.lib # Yerine bu satır eklenir.

./load qmail-smtpd rcpthosts.o commands.o timeoutread.o \ #

timeoutwrite.o ip.o ipme.o ipalloc.o control.o constmap.o \ # Değişikliğin yapıldığı yerden sonra

received.o date822fmt.o now.o qmail.o cdb.a fd.a wait.a \ # aşağıdaki satırlar görünür.

datetime.a getln.a open.a sig.a case.a env.a stralloc.a \ #

alloc.a substdio.a error.a str.a fs.a auto_qmail.o `cat \ #

- socket.lib`

+ socket.lib` dns.o `cat dns.lib`

qmail-smtpd.0: \

qmail-smtpd.8


9. Bu yama satırları gerekli dosyalar eklendikten sonra qmail-1.03 dizini tarlanır ve bzip2 ile sıkıştırılır.


10. '''/usr/src/redhat/SPEC/qmail-toaster.spec''' dosyasında yapılan değişikliklere uyarlama yapılır. Yamayı elle geçtiğimiz için yamanın uygulanması için girilmiş satırlar çıkarılır.


11. SPEC dosyasında değişiklik yapıldıktan sonra derlenir ve RPM paketi elde edilir.


# rpmbuild --ba --with DISTRO qmail-toaster.spec

12. qmai servisi stop edilir ve yeni paket güncellenir.


# service qmail stop

# rpm -Uvh qmail-toaster*.rpm --replacefiles --replacepkgs


5.3 Güncelleme

Paket derlenir ve güncellenir. Ancak dikkat edilmesi gereken nokta, derlemeden sonra /var/qmail/control/servercert.pem dosyası tekrar oluşturulur. Mevcut dosya ile gerekir ise değiştirilmelidir.

6. Courier-imap Paketinin Kurulması


IMAP, secure IMAP ve secure POP3 servisinin verilebilmesi için gerekli pakettir.


# rpmbuild --rebuild --with DISTRO courier-imap-toaster-*.src.rpm (bu işlem biraz uzun sürebilir)

# rpm -Uvh /usr/src/redhat/RPMS/i386/courier-imap-toaster-*.i386.rpm


6.1 Güncelleme
Paket derlenir ve güncellenir.


7. Courier-Authlib Paketinin Kurulması



8. Autorespond Paketinin Kurulması


# rpmbuild --rebuild --with DISTRO autorespond-toaster-*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/autorespond-toaster-*.rpm


8.1 Güncelleme

Paket derlenir ve güncellenir.


Bu paket de kurulduktan sonra e-posta sunucusunun çalışması için gereken temel paketler kurulmuş olur. Bundan sonra kurulacak paketler sunucunun daha güzel yönetilebilmesi için gereken paketlerdir.


9. Control-panel Paketinin Kurulması
# rpmbuild --rebuild --with DISTRO control-panel-toaster-*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/noarch/control-panel-toaster-*.noarch.rpm


9.1 Güncelleme

Paket derlenir ve güncellenir. Ancak /etc/httpd/conf/toaster.conf dosyasında değişiklik yapıldıysa orjinali ile eskisi yer değiştirmelidir.


10. Ezmlm Paketinin Kurulması

E-posta listelerinin yönetilmesi için kullanılan pakettir.


# rpmbuild --rebuild --with DISTRO ezmlm-toaster-*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/ezmlm*


10.1 Güncelleme

Paket derlenir ve güncellenir.


11. Qmailadmin Paketinin Kurulması

Bu paket postmaster ve kullanıcıların kendi hesaplarını yönetebilmesi için gerekli bir pakettir.


11.1 Paketin Kurulması

# rpmbuild --rebuild --with DISTRO qmailadmin-toaster-*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/qmailadmin-toaster-*.rpm


11.2 Güncelleme

Paket derlenir ve güncellenir.


12. Qmailmrtg Paketinin Kurulması

Qmailmrtg paketi gelen giden mailler ile ilgili grafiksel bilgilerin oluşturulabileceği bir pakettir.


12.1 Paketin Kurulması

# rpmbuild --rebuild --with fdr40 qmailmrtg-toaster-4.2-1.2.6.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/qmailmrtg-toaster-4.2-1.2.6.i386.rpm


12.2 Güncelleme

Paket derlenir ve güncellenir.


13. Isoglog Paketi

Mailler hakkında istatiksel bilgilerin elde edilebileceği bir pakettir.


13.1 Paketin Kurulması

# rpmbuild --rebuild --with fdr40 isoqlog-toaster-2.1-1.2.7.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/isoqlog-toaster-2.1-1.2.7.i386.rpm


13.2 Güncelleme

Paket derlenir ve güncellenir.


14. Squirrelmail Paketi

Bu paket mail sunucusuna web üzerinden erişip işlem yapmamızı sağlayan uygulamaların olduğu bir pakettir.


14.1 Paketinin Kurulması

# rpmbuild --rebuild --with fdr40 squirrelmail-toaster-1.4.5-1.2.11.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/noarch/squirrelmail-toaster-1.4.5-1.2.11.noarch.rpm


14.2 Ayarların Yapılması

Squirrelmail paketi ile ilgili ayarların yapılabilmesi için aşağıdaki betik kullanılır:


# perl /usr/share/squirrelmail/config/conf.pl

Main Menu --

1. Organization Preferences

2. Server Settings

3. Folder Defaults

4. General Options

5. Themes

6. Address Books

7. Message of the Day (MOTD)

8. Plugins

9. Database

10. Languages

D. Set pre-defined settings for specific IMAP servers

C Turn color off

S Save data

Q Quit

Command >>


Buradan ilgili seçenekler seçerek ayarlamalar yapılır. Squirrelmail versiyon bilgilerini gizlemek için:


# vi /usr/share/squirrelmail/functions/strings.php

'''version = '1.4.5-1.2.13';'''


14.3 Squirrelmail Paketinin Güncellenmesi
Güncelleme iki şekilde yapılabilir.

1. Toaster paketlerinden.
2. Sitesinden paketin indirilerek derlenmesi.

14.1.1 Toaster Paketinden Güncelleme

Toaster paketlerinden güncelleme yapmak çok kolaydır. Toaster dağıtımını gerçekleştiren grup squirrelmail için hazırladığı paketi alır ve aşağıdaki komutu çalıştırarak uygularsınız.

# rpm -Uvh squirrelmail-toaster*.rpm

Ancak toaster paketleri genelde birlikte çıkar ve arada çıkan güvenlik güncellemeleri gecikebilir. Bu sorunu çözebilmek için ikinci yöntem kullanılır.

14.1.2 Squirrelmail Kaynak Paket Derleme

Bu yöntem için öncelikle www.squirrelmail.org web sayfasını ziyaret ederek en son stable versiyonu indirilir. Ayrıca toaster paketlerinden squirrelmail-toaster*-src.rpm paketi indirlir. Burada amaç squirrelmail-toaster peketinin SPEC dosyasını kullanarak yeni versiyon ile derleme yapabilmek. Bunu gerçekleştirebilmek için aşağıdaki adımları izleriz.

# rpm -ivh squirrelmail-toaster*-src.rpm
# vi /usr/src/redhat/SPECS/squirrelmail-toaster*.spec

SPEC dosyasında aşağıdaki parametreler değiştirilir.

%define pversion 1.4.6 [yeni versiyon]
%define bversion 1.3 [minor versiyon, bu numara toaster paketleri için gerekli, deðerleri çok önemli deðil.]
%define rpmrelease 00 [rpm paketinin versiyonu, bu numara toaster paketleri için gerekli, deðerleri çok önemli deðil.]
...

Dikkat edilecek diğer bir satır ise;

Patch0: squirrelmail-toaster-*.patch.bz2

Bu satırda squirrelmail paketine uygulanacak yama belirtilir. Büyük bir olasılıkla bir problem olmayabilir, ancak akılda tutulması ve problem durumunda kontrol edilmesi gerekebilir. SPEC dosyasında gerekli değişiklikleri yaptıktan sonra;

# rpmbuild --ba --with fdr40 /usr/src/redhat/SPECS/squirrelmail-toaster.spec

komutu ile RPM paketi elde edilir. Yeni paketin kurulması da bir önceki yöntemde olduðu gibi, aşağıdaki gibi gerçekleştirilir.

# rpm -Uvh /usr/src/redhat/RPMS/noarch/squirrelmail-toaster[yeni_versiyon].rpm

NOT : Squirrelmail kurulurken varsayılan dosyaları kurar. Dolayısı ile daha önce yapılmış olan değişiklikler kaybolur. Bu işleme başlamadan önce değişiklik yapılmış olan dosyalar yedeklenmeli ve güncelleme yapıldıktan sonra yerine konulmalıdır.

15. Spamassassin Paketi

Adından da anlaşılabileceği gibi çöp posta (SPAM) belirlemek amacı ile kullanılan pakettir.

15.1 Paketin Kurulması

# rpmbuild --rebuild --with DISTRO spamassassin-toaster-*.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/spamassassin-toaster-*.i386.rpm

15.2 Güncelleme
Paket derlenir ve güncellenir.

16. Clamav Paketi
E-posta yolu ile gelebilecek virüslü postaları taramak ve engellemek amacı ile kullanılan bir antivirüs yazlım paketidir.

16.1 Paketin Kurulması

# rpmbuild --rebuild --with DISTRO clamav-toaster-*.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/clamav-toaster-*.i386.rpm

16.2 Uygulamanın Ayarlanması
Clamav anti virus uygulaması ile ilgili ayarlar /etc/clamd.conf dosyasında yer almaktadır. Burada aşağıdaki gibi değişiklikler yapılabilir.

LogFile /var/log/clamav/clamd.log ; kayıtların tutulacağı dosya belirlenir.

16.3 Güncelleme
Paket derlenir ve güncellenir. Dikkat edilmesi gereken nokta, güncelleme sonrasında /etc/clamav/clamav.conf dosya güncellenir. Yapılmış olan ayarlar kaybolur.

17. Ripmime Paketi

Bu paket simscan uygulamasının e-postayı göndermeden önce içeriğini kontrol edebilmesi için gerekli olan pakettir. Bu paket toaster dağıtımının bir parçası değildir ve şu bağlantıdan indirilebilir; RIPMIME

17.1 Paketin Kurulması

# tar -xzvf ripmime-1.4.0.5.tar.gz
# cd ripmime-1.4.0.5
# make
# make install

yada
# rpmbuild --rebuild --with DISTRO ripmime-toaster-*.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/ripmime-toaster-*.i386.rpm

17.2 Güncelleme
Paket derlenir ve güncellenir.

18. Simscan Paketi
Simscan sunucuya gönderilen yada sunucudan gidecek olan belli özellikteki dosyaların bloklanması ve antivirüs sunucusuna gönderilemesini sağlayan bir pakettir.

18.1 Paketin Kurulması

Paketi kurmadan önce SPEC dosyasında gerekli değişikliklerin yapılması gerekir. Simscan paketinin kurulabilmesi için zlib ve pcre paketlerinin de kurulu olması gerekir.

# rpm -ivh simscan-toaster-*.src.rpm
# vi /usr/src/redhat/SPEC/simscan-toaster.spec

SPEC dosyasındaki varsayılan ayarlar aşağıdaki gibidir:

Current settings
---------------------------------------
user = clamav
qmail directory = /var/qmail
work directory = /var/qmail/simscan
control directory = /var/qmail/control
qmail queue program = /var/qmail/bin/qmail-queue
clamdscan program = /usr/bin/clamdscan
clamav scan = ON
trophie scanning = OFF
attachement scan = ON
ripmime program = /usr/local/bin/ripmime
custom smtp reject = ON
drop message = OFF
regex scanner = ON
quarantine processing = OFF
domain based checking = OFF
add received header = ON
spam scanning = ON
spamc program = /usr/bin/spamc
spamc arguments =
spamc user = OFF
spam passthru = ON
...

%configure \
--enable-user=clamav \
--enable-attach \
--enable-ripmime=/usr/bin/ripmime \
--enable-per-domain \
--enable-spam \
--enable-spam-hits=20 \
--enable-received \
--enable-clamavdb-path=/usr/share/clamav \
--enable-custom-smtp-reject \
--enable-regex

# rpmbuild --ba --with DISTRO /usr/src/redhat/SPEC/simscan-toaster.spec
# rpm -Uvh /usr/src/redhat/RPMS/i386/simscan-toaster-1.1-1.2.4.i386.rpm

Uygulamanın Ayarlanması

Bu dosyada gelen e-postanın hangi kontrollerden geçeceği tanımlanır. Bu ilem farklı farkl alanlar için farklı tanımlar yapılabilir.

:clam=yes,spam=yes,spam_passthru=yes ; tüm alanlar için geçerli bir tanım. Antivirüs ve spam taramalarından geçer.
test.org.tr:clam=yes,spam=no ; sadece test alanı kullanılır.

E-Posta Sunucusunun Ayarlanması

Kurulum işlemleri tamamlandıktan sonra sunucu çalıştırılarak devreye alınır.

# service qmail start

test.org.tr Alanının Oluşturulması

E-posta sunucusu aynı anda birden çok alana (domain) hizmet vermek üzere tasarlanmıştır. Burada test.org.tr alanı eklenece ve kullanıcılar burada yaratılarak testler yapılacaktır.

# /hove/vpopmail/bin/./vadddomain test.org.tr

Alan oluşturulduktan sonra postmaster kullancısı oluşturulur ve şifresini ayarlamak için sizden giriş yapmanızı bekler. Bu kullanıcı alan üzerinde yönetici haklarına sahiptir. Alan tanımlandıktan sonra bunu MySQL veri tabanı üzerinden de kontrol edilebilir.

# mysql -u root -p
mysql> use vpopmail;
mysql> select * from test_org_tr;

Kullanıcıların Oluşturulması

# /home/vpopmail/bin/./vadduser user1@test.org.tr
# /home/vpopmail/bin/./vadduser user2@test.org.tr

Varsayılan Alan Tanımlanması

# touch /home/vpopmail/etc/defaultdomain # echo test.org.tr > /home/vpopmail/etc/defaultdomain

Bu tanımlama yapıldıktan sonra kullanıcılar, kullanıcı adı bilgisi alanına, alan adının eklenmesine gerek kalmaz. Bunun dışında web sayfası üzerinden giriş yapılırken de kullanıcı adının sonuna varsayılan alan adının eklenmesine gerek kalmaz.

# /home/vpopmail/bin/./vadduser user3

Varsayılan Kullanıcı ve Alan Kotalarının Belirlenmesi

Kota tanımları /home/vpopmail/etc/vlimits.default dosyasında yapılmaktadır.

Alan kota değerleri

quota 1000 ; 1000 MByte sınırı
maxmsgcount 100000 ; 100000 mesaj sınırı

Kullanıcı kota deðerleri

default_quota 41943040 ; 40 MByte sınırı
default_maxmsgcount 4000 ; 4000 mesaj sınırı

Kullanıcı oluşturulduktan sonra kota deðerlerinin değiştirilmesi için;

# /home/vpopmail/bin/./vuserinfo user1
gecos: user1
limits: No user limits set.
dir: /home/vpopmail/domains/testsm.gov.tr/user1
quota: 41943040S,4000C ; bu satır ile tanımlanır

# /home/vpopmail/bin/./vmoduser -q 100000000,5000C user1@test.org.tr

# /home/vpopmail/bin/./vuserinfo user1
gecos: user1
limits: No user limits set.
dir: /home/vpopmail/domains/testsm.gov.tr/erolk
quota: 50000000S,5000C ; yeni değerler

Alan oluşturulduktan sonra kota değerlerinin değiştirilmesi için;

# /home/vpopmail/bin/./vmoddomlimits -S test.org.tr
Domain: testsm.gov.tr
Domain Quota: 1000 MB ; alan kotası
Default User Quota: 41943040 bytes
Max Domain Messages: 100000 ; alan mesaj kotası
Default Max Messages per User: 4000

# /home/vpopmail/bin/./vmoddomlimits -Q 2000 -M 200000

# /home/vpopmail/bin/./vmoddomlimits -S testsm.gov.tr
Domain: testsm.gov.tr
Domain Quota: 2000 MB ; yeni alan kotası
Default User Quota: 41943040 bytes
Max Domain Messages: 200000 ; yeni alan mesaj kotası
Default Max Messages per User: 4000

IMAP4-SSL, POP3-SSL ve Secure SMTP Sertifikaları

Qmail sunucusu ile gelen SSL destekli servisler için uygun sertifikaların üretilmesi gerekir. Bu amaçla courier paketi ile beraber bu sertifikaları üretecek betikler gelmektedir.

/usr/sbin/mkimapdcert
/usr/sbin/mkpop3dcert

Courier paketi kurulurken otomatik olarak sertifikalar /usr/share/courier/ dizininde üretilir (imapd.pem ve pop3d.pem). Ancak bu sertifikadaki değerler varsayılan olduğu için sunucuya uygun olarak değiştirilmesi gerekir. Bu amaçla pop3 ve imap servislerinin ayar dosyalarında değişiklik yapılması gerekir. Değişiklikler /etc/courier/ dizinindeki dosyalarda yapılır.

/etc/courier/imapd.cnf
/etc/courier/pop3d.cnf

# vi /etc/courier/imapd.cnf

RANDFILE = /usr/share/courier/imapd.rand
[ req ]
default_bits = 1024|2048|4096
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no
[ req_dn ]
C=TR
ST=KOCAELI
L=GEBZE
O=E-Posta Sunucusu
OU=IMAP Sunucusu
CN=mail.test.org.tr
emailAddress=postmaster@test.org.tr
[ cert_type ]
nsCertType = server

Gerekli değişiklik yapıldıktan sonra komut çalıştırılır ve sunucu için uygun sertifika üretilir. Ancak bu sertifikalar kendi kendine imzalıdır. (Herhangi bir yetkili kurum tarafından imzalanmadığı için.)

Ayrıca hem imapd4-ssl hem pop3d-ssl servisleri aksi söylenmediği sürece /var/qmail/control/servercert.pem sertifikasını kullanırlar. Bununla ilgili ayarlar /etc/courier/imap4-ssl ve /etc/courier/pop3d-ssl dosyalarında yer alır.
PHP Ayarlarının Yapılması

E-posta sunucusunun web üzerinden düzgün çalışabilmesi için bazı php parametrelerinin değiştirilmesi gerekir. Bunlar web üzerinden upload yapılacak dosya boyutu, bunun için ayrılacak bellek miktarı gibi parametrelerdir. İlgili ayralar aşağıdaki gibi yapılabilir.

# vi /etc/php.ini

post_max_size 10M
upload_max 10M
memory_limit 20M

Değişikliklerin kontrol edilmesi için aşağıdaki komut kullanılabilir.

# echo "" | php | grep post_max_size
# echo "" | php | grep upload_max
# echo "" | php | grep memory_limit

Genel Ayarlar

Qmail için yapılan ayarlamalar /var/qmail/control dizini altındaki dosyalarda yapılmaktadır.

badmimetypes


Gönderilen e-postalar mime formatına dönüştürülerek gönderilir. Mime formatına dönüştürülen e-postaların içeriğini kontrol edebilmek için bu dosya /var/qmail/control/badmimetypes kullanılır. Dosyanın içeriği aşağıdaki gibi olabilir;

TVqQAAMAA
TVpQAAIAA
TVpAALQAc
TVpyAXkAX
TVrmAU4AA
TVrhARwAk
TVoFAQUAA
TVoAAAQAA
TVoIARMAA
TVouARsAA
TVrQAT8AA
TVrvAEQAe
...

Burada yer alan ifadeler mime formatında yer alan dosya tipini belirler. Magic number olarak da bilinen bu tanım, filtreleme işlemi için kullanılır. Bu dosyada herhangi bir değişiklik yapıldıktan sonra aşağıdaki komutun çalıştırılması gerekir.

# /var/qmail/bin/qmail-badmimetypes
# service qmail stop
# service qmail start

smtpgreeting

E-posta sunucusuna bağlandığınızda sizi karşılayacak mesajdır. Varsayılan olarak çıkan mesajda Qmail hakkında bilgiler vermektedir. Bu güvenlik olarak problem teşkil ettiği için, değiştirilmesi önerilir.

# echo "E-POSTA SUNUCUSUNA HOSGELDINIZ..." > /var/qmail/control/smtpgreeting

databytes

E-posta sunucusu üzerinden aktarılabilecek en fazla veri miktarı.

# echo 5000000 > /var/qmail/control/databytes

queuelifetime

E-post kuyrukta 24 saat (86400 sn) bekler.

# echo 86400 > /var/qmail/control/queuelifetime

ssattach

Bu dosyada tanımlanan uzantılar e-posta sunucusundan geçemez. .EXE, .COM, .BAT vb tehlikeli uzantılara sahip olan dosyalar bloklanır. ssattach dosyasının içeriği aşağıdaki gibi olabilir.

.exe
.com
.bat
.hta
.vbs
.lnk
.pif
.scr

Vekil (Relay) Tanımlarının Yapılması

Sunucuya kimin bağlanıp, hangi kontrollerden geçerek e-posta gönderebileceğini /etc/tcprules.d/tcp.smtp dosyasında belirtilir.

127.:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/simscan"
:allow,BADMIMETYPE="",BADLOADERTYPE="M",CHKUSER_RCPTLIMIT="15",CHKUSER_WRONGRCPTLIMIT="3",QMAILQUEUE="/var/qmail/bin/simscan"

Varsayılan bu değerlerde localhost üzerinden yapılan bağlantılar için yetkilendirme gerekmeden e-posta gönderilebilir. Bunun dışındaki diğer bağlantılar için tüm virus,spam ve eklenti taramaları, asılsız e-posta kontrolleri ve yetkilendirme yapılır. Burada IP bazında ve alan bazında vekil tanımları yapılabilir. Gerekli tanımlar yapıldıktan sonra:

service qmail stop
service qmail cdb
service qmail start

komutları işletilerek değişikliklerin etkili olması sağlanır.

Sunucunun Test Edilmesi


echo "deneme" > deneme.txt
env QMAILQUEUE=/var/qmail/bin/simscan SIMSCAN_DEBUG=2 /var/qmail/bin/qmail-inject user1@test.org.tr < deneme.txt

Kayıtların incelenmesi ;

# cat /var/log/qmail/smtp/current | tai64nlocal | more
# cat /var/log/qmail/send/current | tai64nlocal | more