Sinan Uzunoglu Kişisel Blog sayfası
Linux
Sunucu SSH portunu değiştirmek
15 Haz
komutumuz:
pico -w /etc/ssh/sshd_config
girdikten sonra sunu buluyoruz
#Port 22 Basindaki # isaretini kaldiriyoruz ve istedigimiz herhangi baska bir portu yaziyoruz.Büyük portlar kullanmaya dikkat edin ve eger firewall kurulu ise o porta izin vermeyi unutmayin.
ctrl+x ile kaydedip cikiyoruz
ve ssh a restart atiyoruz.
/etc/rc.d/init.d/sshd restart
Mysql – Backup to FTP (PHP Script)
8 May
Bir mysql sunucusundan mysqldump ile backup alıp ftp üzerinden uzaktaki bir sunucuya gönderen güzel bir php script.
İçeriği aşağıdaki gibi olan bu scripti kendi sisteminize göre düzenledikten sonra cron job olarak tanımlayabilirsiniz. Böylece periyodik olarak alınan backupları istediğiniz bir lokasyonda muhafaza edebilirsiniz.
Gerekenler
PHP
Bir FTP Hesabı
ve son olarak MYSQL 
Uygulanışı
1 - Aşağıdaki script içeriğini serverınızda oluşturacağınız backuptoftp.php isimli bir dosyaya kopyalayın.
<?
function publish_ftp($destination_file,$source_file){
//echo $this->ftphost;
$conn_id = ftp_connect("ftp.sunucusunun.ipsi",21);
// login with username and password
$login_result = ftp_login($conn_id, "ftp_kullanici_adi", "ftp_sifre");
// check connection
if ((!$conn_id) || (!$login_result)) {
$errmsg .= "FTP connection has failed!";
//$errmsg .= "Attempted to connect to $ftp_server for user $ftp_user_name";
die;
} else {
//echo "Connected to $ftp_server, for user $ftp_user_name";
}
// upload the file
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
//$upload = 1;
// check upload status
if (!$upload) {
$errmsg .="FTP upload has failed!";
} else {
$sucmsg .="Uploaded $source_file to $ftp_server as $destination_file";
// copy($source_file,$destination_file_copy);
}
// close the FTP stream
ftp_quit($conn_id);
if ($sucmsg) {
return true;
}
//echo $errmsg;
}
exec("/usr/local/bin/mysqldump -u username -ppassword db_ismi > \
/backup/dizini/db_ismi.sql");
exec("gzip -f /backup/dizini/dbname.sql");
publish_ftp("/db_ismi.sql.gz","/backup/dizini/db_ismi.sql.gz");
//birinci dosya hedef, ikincisi kaynak
?>
2 - Kırmızı ile belirtilmiş olan ftp, path, backup’ı alınacak db ismi, kullanıcı adı ve sifre gibi bilgileri düzenleyin.
3 – Scripti çalıştırıp test edin.
/usr/local/bin/php /php/dosyanızın/bulundugu/dizini/backuptoftp.php
Not: Ben bu scripti FreeBSD üzerinde çalıştırıyorum ve php “/usr/local/bin” pathi altında duruyor. Php’nin yerini saptamak için “whereis php” komutunu çalıştırabilirsiniz. Aynı şey script içindeki mysqldump için de geçerli.
4 – Sorunsuz bir şekilde çalıştığına emin olduktan sonra cron job olarak sisteme ekleyin.
45 06 * * * /usr/local/bin/php /php/dosyanızın/bulundugu/dizini/backuptoftp.php (Hergün 06:45′te çalışır.)
Hepsi bu.
DNSMap Kullanımı – DNS Network Mapper
8 May
DNSMap bir alan adına ait alt alan adlarını tespit etmek için kullanılan küçük bir araçtır. Temel olarak kendi içerisinde (built-in) gelen kelime listesini ya da sizin belirttiğiniz bir kelime listesini kullanarak hedef alan adı için alt alan adı taraması yapmaktadır.
Penetrasyon testlerinin bilgi toplama aşamasında kullanılan DNSMap C ile yazılmış küçük bir programcıktır. Kullanışlı bir araç olduğundan dolayı yazının devamında dnsmap ile DNS enumeration işlemlerinin nasıl yapılabileceği anlatılmaktadır.
Son sürümü 3.0 olan dns map http://code.google.com/p/dnsmap/downloads/list adresinden indirilebilmektedir. (Dnsmap, Backtrack 4 içerisinde de bulunmaktadır.)
Kurulum
Kurulum adımları aşağıdaki gibidir.
Önce download edip paketi açın.
# wget http://dnsmap.googlecode.com/files/dnsmap-0.30.tar.gz # tar xvfz dnsmap-0.30.tar.gz # cd dnsmap-0.30
Kaynak kod dizinine girdikten sonra derleme işlemini yapın.
# make ya da # gcc -Wall dnsmap.c -o dnsmap
Son olarak dnsmap ismi ile derlenmiş olan binary dosyasını /usr/local/bin dizinine kopyalayın.
# cp ./dnsmap /usr/local/bin/dnsmap
Ayrıca, birden fazla alan adına ait alt alan adlarını bulk olarak aynı anda taramak istemeniz durumunda kaynak kod dizininde bulunan dnsmap-bulk.sh scriptini de kullanabilirsiniz; bunun için ilgili dosyayı gene /usr/local/bin dizinine kopyalayıp çalışma izni verin.
# cp ./dnsmap-bulk.sh /usr/local/bin/ # chmod ugo+x /usr/local/bin/dnsmap-bulk.sh
Kurulum işlemi bu kadar.
Kullanım
dnsmap komutunu çalıştırırsanız kullanım şekilleri listelenir:
dnsmap 0.30 - DNS Network Mapper by pagvac (gnucitizen.org) usage: dnsmap <target-domain> [options] options: -w <wordlist-file> -r <regular-results-file> -c <csv-results-file> -d <delay-millisecs> -i <ips-to-ignore> (useful if you're obtaining false positives) e.g.: dnsmap target-domain.foo dnsmap target-domain.foo -w yourwordlist.txt -r /tmp/domainbf_results.txt dnsmap target-fomain.foo -r /tmp/ -d 3000 dnsmap target-fomain.foo -r ./domainbf_results.txt
Kullanım Örnekleri
Built-in Kelime Listesi ile Alan Adı Tarama:
# dnsmap hedefalanadi.foo
WordList belirterek alan adı tarama
# dnsmap hedefalanadı.foo -w wordlist.txt
Tarama sonuçlarını kaydetme.
# dnsmap hedefalanadı.foo -r /tmp/
Ayrıca, DNS sunucusunu yormamak ve bandwidth’inizi şişirmemek için -d parametresi ile dns sorgularına delay koyabilirsiniz. Örnek olarak iki dns sorgusu arasında yarım saniye beklenmesi için komut şu şekilde olmalıdır.
# dnsmap hedefalanadı.foo -d 500
Daha fazla bilgi için http://code.google.com/p/dnsmap/ adresinden yararlanabilirsiniz.
OpenVZ vs XEN
13 Eyl
Merhaba,
Sunucusunda sanallaştırma yazılımı olarak HyperVM kullanmak isteyen arkadaşlar OpenVZ mi yoksa Xen mi seçeyim? Sorusuna düşmemeleri elde değil.
Bu yazımızda çok basit olarak OpenVZ ve Xen in mantığını açıklayacağım.
Böylece kendinize uygun olan bölümleme şeklini seçer ve çalıştırırsınız.
Xen:

HyperVM, Xen altyapısı ile kurulduğunda, diğer vpslerden bağımsız olarak çalışan bir sistem yaratılır (bağımsız demek iki farklı vps sahibinin birbirinin dosya ve ayarlarını görmesi değildir. Bu cümlede geçen bağımsız kelimesi, sistem kaynaklarını kullanım manasında şey edilmiştir.) Bu demektir ki: 1024MB ram ile vps yi yaratırsanız, 1024 RAM kayıp olarak görebilirsiniz. Her atadığınız kaynak, bir diğer vps tarafından kullanılamaz, Havuz yapılamaz! Böylece adamın garanti 1024Ram ı olur.
OpenVZ:

HyperVM, OpenVZ altyapısı ile kurulduğunda, diğer vpsler birçok şeyi ortak kullanırlar. CPU Ram vs. havuz yapılabilir. Bir sunucuda 2048MB ram var ise, 1024 Ram e sahip 4 sunucuda açılabilir.. 5 tane de. Ancak kalite ne olur bilemem. Xen de bu yapılamaz.
Ayrıca,
Açtığınız bir 512MB lık vps de, Ana ram 256 Aşılabilir � brustable ram- 512 olarak tanımlanırsa, yine bir tür havuz yapmış da olabilirsiniz.
Bunun haricinde önemli de bir not geçeyim;
Eğer Xen ile kurulum yaparsanız, Tüm işletim sistemini çalıştırabilirsiniz. HyperVM i xen ile kurarken işletim sistemi CentOS olmak zorundadır. Xen kurduysanız, CentOs üzerinde hem CentOS vpsler hemde Windows Vps ler çalıştırabilirsiniz. OpenVZ de bunu yapamazsınız.
Ayrıca bir not geçeyim.
Bu üründe lisans olayı da vardır. 5 VPSe kadar ücretsiz. Sonraki her vps 0.50$ olarak üçretlendirilir.
Vmware VDS Linux saat ayarı
11 Haz
Linux saat ayarlamasını yapmak için çok basit şekilde aşağıdaki işlemleri yapabilirsiniz. Sunucu sistemlerinde ve özellikle VPS linux sunucularda saat kaymaları yaşanabilmektedir.
1: localtime dosyamızı yedekleyelim.
mv /etc/localtime /etc/localtime.backup
2: Kendimize uygun olan zaman ayarını localtime ile linkleyelim.
ln -s /usr/share/zoneinfo/Europe/Istanbul /etc/localtime
3: rdate ile saati çekelim.
rdate -s time.cc.columbia.edu
4: /etc/sysconfig/clock dosyasını bir metin editörü ile açarak ( vi, nano, pico gibi ) aşağıdaki gibi düzenleyelim.
ZONE=”Europe/Istanbul”
UTC=false
ARC=false
5:
/sbin/hwclock –systohc
6: Crond içerisine rdate ile sürekli olarak saati güncellemesi için komut ekleyelim.
nano /etc/crontab
ve içerisine bu komutu en alt satıra girerek kaydedip çıkalım
*/1 * * * * root rdate -s time.cc.columbia.edu
7: date komutu ile saatimizi kontrol edelim. İşlem bu kadar.
8: Eğer saat doğru değilse en son bu işlemi yapın
export TZ=EET
Evet Artık saat ayarımız doğru bir şekilde çalışıyor ve türkiye saati ile doğru bir şekilde çalışıyor…
Mysql Destekli Pure-FTPD Kurulumu
29 Oca
| Bilindiği gibi Pure-FTPD olukça güvenli bir yapı sağlayan güzel bir FTP sunucusudur. Pure-FTPD ile sistem kullanıcılarından farklı olarak sanal kullanıcılar oluşturabilir ve oluşturduğunuz bu sanal kullanıcıları mysql üzerinde tutabilirsiniz. |
Pure-FTPD’nin sunduğu bu güzel özellik sayesinde, ftp kullanıcılarınıza ait hesapları, gerçek sistem kullanıcılarınızdan ayırmış oluyorsunuz. Her ne kadar bu özellik belli başlı diğer FTP sunucularında da bulunuyor olsa da, Pure-FTPD’nin default olarak gelen daha bir çok güzel özelliği bulunuyor. Bu nedenle Pure-FTPD kullanmanızı öneririm.
Bu makalede FreeBSD 7.0 üzerine mysql destekli pure-ftpd kurulumu ile ilgili notları bulabilirsiniz.
Kurulumu yapabilmek için öncelikli olarak MySQL Server kurulu olmalı. Eğer kurulu değilse önce bu işi halledin. FreeBSD’de kurulumları genel olarak port ağacından yapıyorum.
Not: Eğer ports ağacı sisteminizde kurulu değilse portsnap ile yükleyebilirsiniz.
Port ağacından aşağıdaki gibi MySQL kurulumu yapın.
Not: Sisteminizde hali hazırda kurulu ise bu adımı atlayın.
# cd /usr/ports/databases/mysql50-server/ # make install clean
Herhangi ek bir özellik şeçmenize gerek yok.
MySQL server ilk kurulduğunda root şifreleri boş olarak gelir. Bu nedenle bir root şifresi tanımlamak gerekiyor. Aşağıdaki adımları uygulayarak bu işlemi yapın.
# mysql -u root mysql> use mysql; mysql> update user set password=PASSWORD("Root_Sifresi") where User='root'; mysql> flush privileges; mysql> quit;
Mysql server hazır ise, Pure-FTPD kurulumuna geçebiliriz. Bu iş için de port ağacından yararlanıyoruz. Aşağıdaki adımlarla kurulumu yapın.
Not: make install dediğiniz zaman gelen options ekranından MySQL’i seçin.
# cd /usr/ports/ftp/pure-ftpd/ # make install clean
Pureftpd pearl’e ihtiyaç duyduğu için sisteminizde yüklü olmaması halinde bu paket de kurulacaktır. Bu nedenle kurulumun tamamlanması biraz zaman alabilir.
pure-ftpd’nin örnek konfigürasyon dosyaları ön tanımlı olarak /usr/local/etc dizini altında ve start stop scripti /usr/local/etc/rc.d altında pure-ftpd ismi ile durmaktadır. Biz pure-ftpd’yi mysql destekli kullanacağımızdan dolayı /usr/local/etc dizini altında ki iki dosyadan yararlanacağız. Ancak şimdilik mysql tarafındaki ayarları yapacağız.
Önce, mysql’de pureftpd için oluşturulacak database’e erişim için kullanılacak bir hesap açıyoruz.
Mysql’e bağlanın:
# mysql -u root -p
Enter password:
mysql>
Şimdi de aşağıdaki insert satırını kullanarak -kırmızı ile işaretli kullanıcı ve şifre alanlarını düzenlemeyi unutmayın- kullanıcıyı oluşturun ve Flush Privileges yapın.
mysql> INSERT INTO mysql.user (Host, User, Password, Select_priv, Insert_priv,
Update_priv,Delete_priv, Create_priv, Drop_priv,Reload_priv, Shutdown_priv,
Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv)
VALUES('localhost','kullaniciadi',PASSWORD('sifre'),'Y','Y','Y','Y','N','N','N',
'N','N','N','N','N','N','N');
mysql> FLUSH PRIVILEGES;
Şimdi de database’i oluşturuyoruz:
Not: Örnek komutta db’yi pureftpd ismi ile açıyoruz. Siz farklı bir isim verebilirsiniz.
mysql> CREATE DATABASE pureftpd;
Ardından tabloyu create edin:
mysql> USE pureftpd;
mysql> CREATE TABLE `users` (
`User` varchar(16) NOT NULL default '',
`Password` varchar(32) binary NOT NULL default '',
`Uid` int(11) NOT NULL default '14',
`Gid` int(11) NOT NULL default '5',
`Dir` varchar(128) NOT NULL default '',
`QuotaFiles` int(10) NOT NULL default '500',
`QuotaSize` int(10) NOT NULL default '30',
`ULBandwidth` int(10) NOT NULL default '80',
`DLBandwidth` int(10) NOT NULL default '80',
`Ipaddress` varchar(15) NOT NULL default '*',
`Comment` tinytext,
`Status` enum('0','1') NOT NULL default '1',
`ULRatio` smallint(5) NOT NULL default '1',
`DLRatio` smallint(5) NOT NULL default '1',
PRIMARY KEY (`User`),
UNIQUE KEY `User` (`User`)
) TYPE=MyISAM;
Gördüğünüz gibi, pureftpd’nin kullanıcılara uygulayacağı bandwidth, quota vs. gibi ayarlar da mysql tablosunda tutuluyor. Kullanıcı eklerken bu sınırlamalara değineceğim. Database ve tablo oluşturulduğuna göre pure-ftpd konfigürasyonunu tamamlayabiliriz.
Aşağıdaki şekilde örnek dosyaların birer kopyasını alarak ana conf dosyalarını oluşturun.
# cd /usr/local/etc
# cp pureftpd-mysql.conf.sample pureftpd-mysql.conf
# cp pure-ftpd.conf.sample pure-ftpd.conf
Bu dosyaları editlemeden önce, pure-ftpd’nin açılışlarda otomatik olarak başlaması için /etc/rc.conf dosyasına aşağıdaki komutla pure-ftpd enable satırını girin. Ancak pureftpd’yi henüz başlatmayacağız.
# echo pureftpd_enable='"YES"' >> /etc/rc.conf
Şimdi, pureftpd’nin ftp kullanıcıları için kullanacağı sistem hesabını ve grubunu ekleyelim.
pw groupadd ftpgroups pw useradd ftpusers -g ftpgroups -d /nonexistent -s /usr/sbin/nologin
Gördüğünüz gibi sisteme login yetkisi olmayan bir kullanıcı ve bir grup ekledik. Pureftpd bu kullanıcının yetkilerini, sanal ftp kullanıcıları için kullanacak. Yani tek bir sistem hesabı ile birden çok sanal kullanıcı oluşturabileceğiz. Biraz sonra sanal bir kullanıcı açarken bu sistem hesabının UID ve GID değerlerini pureftpd’ye bildireceğiz.
Şimdi de pureftpd conf dosyalarındaki işlemleri yapalım.
Önce pureftpd-mysql.conf dosyasındaki yapılandırma işlemlerini halledelim.
Aşağıdaki gibi ilgili dizine gidin ve biraz önce örnek dosyadan kopyalayarak oluşturduğumuz dosyanın içeriğini boşaltın. (Satırların açıklamalar için sample.cfg dosyasını kullanabileceğimiz için bunun bir sakıncası yok.)
# cd /usr/local/etc/ # > pureftpd-mysql.conf
Elimizdeki boş cfg. dosyası editleyerek içerisine aşağıdaki satırları paste edin ve kaydedin.
Not: Kırmızı ile işaretli bölümleri kendi belirlediğiniz db adı, kullanıcı ve şifre ile değiştirmeyi unutmayın.
MYSQLServer 127.0.0.1 MYSQLSocket /tmp/mysql.sock MYSQLUser kullaniciadi MYSQLPassword sifre MYSQLDatabase pureftpd MYSQLCrypt md5 MYSQLGetPW SELECT Password FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R") MYSQLGetUID SELECT Uid FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R") MYSQLGetGID SELECT Gid FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R") MYSQLGetDir SELECT Dir FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R") MySQLGetQTAFS SELECT QuotaFiles FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R") MySQLGetQTASZ SELECT QuotaSize FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R") MySQLGetRatioUL SELECT ULRatio FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R") MySQLGetRatioDL SELECT DLRatio FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
Görüldüğü gibi pureftpd bu dosyadaki select sorgularından yararlanarak kullanıcılara ait tüm bilgileri çekiyor.
Şimdi de ana conf dosyası olan pure-ftpd.conf dosyasındaki ayarları yapalım.
Tekrardan dosyanın içeriğini boşaltacağız.
# cd /usr/local/etc/ # > pure-ftpd.conf
Ve boş olan bu dosyayı editleyerek aşağıdaki satırları ekleyin ve kaydedin.
ChrootEveryone yes BrokenClientsCompatibility no MaxClientsNumber 50 Daemonize yes MaxClientsPerIP 8 VerboseLog no DisplayDotFiles yes AnonymousOnly no NoAnonymous yes SyslogFacility ftp DontResolve yes MaxIdleTime 15 MySQLConfigFile /usr/local/etc/pureftpd-mysql.conf LimitRecursion 2000 8 AnonymousCanCreateDirs no MaxLoad 4 AntiWarez yes Umask 027:027 MinUID 100 AllowUserFXP no AllowAnonymousFXP no ProhibitDotFilesWrite no ProhibitDotFilesRead no AutoRename no AnonymousCantUpload yes NoChmod yes CreateHomeDir yes MaxDiskUsage 99 CustomerProof yes
Bu satırların açıklamalarına aynı dizindeki pure-ftpd.conf.sample dosyasından bakabilirsiniz, ancak önemli olan bir ikisi ile ilgili açıklamaları vermek istiyorum.
ChrootEveryone Burada yes diyoruz ve kullanıcıları home dizinlerine hapsediyoruz. Bildiğiniz gibi tüm sanal kullanıcılar için bir adet gerçek sistem hesabı kullanılıyor. Bu nedenle kullanıcıları chroot yapmazsanız, herkes herkesin dizinlerini okuyabilir ve yazabilir.
AnonymousOnly Buraya no diyoruz ve sunucunun anonim bir ftp sunucusu olmadığını belirtiyoruz.
NoAnonymous Anonim isteklere izin vermiyoruz. Kimlik doğrulaması şart.
MySQLConfigFile Mysql’e bağlanmak ve select ile bilgi çekmek için kullanılan conf dosyasının yeri.
Umask Upload edilen dosya ya da dizinler için verilecek umask değeri. Bizim örneğimizde umask değeri 027:027 veriliyor. Yani 777 – 027 = 750. Owner’a full yetki, gruba okuma ve listing. Bu konuyla ilgili küçük bir örnek vermek gerekirse. FTP sunucunuzun bir web sunucusu ile birlikte çalıştığını ve webmaster’ın ftp üzerinden dosyalara erişmesi gerektiğini düşünelim. Bu dizin için owner’i ftp kullanıcıları için açtığınız sistem hesabı ve grup olarak da apache’nin grubunu belirlerseniz ilgili ftp kullanıcısı bu dizine yazıp çizebilirken apache sadece okuyabilir ve list çekebilir.
NoChmod No diyerek kullanıcılara permission değiştirme yetkisi vermiyoruz.
CreateHomeDir Bu bölümde yes derseniz, sistemde home dizini bulunmayan bir kullanıcı login olduğu zaman mysql’den çekilen path’e göre ilgili dizin oluşturulur. No demeniz durumunda açtığınız ftp hesaplarının home dizinlerinin sistemde bulunması gerekir.
Önemlilerinden bir kaç özellik bu şekildeydi. Ancak sample dosyasını okumanızı ve diğer özellikler hakkında bilgi almanızı öneririm.
Konfigürasyon işleri de bittiğine göre pureftpd’yi start edebiliriz.
# /usr/local/etc/rc.d/pure-ftpd start
Son olarak da test edebilmek için bir kullanıcı açalım ve bu kullanıcı ile bir bağlantı denemesi yapalım. Kullanıcıları pureftpd database’indeki users isimli tabloya ekleyerek açıyoruz.
Komut satırından bir kullanıcı ekleyelim.
Önce mysql’e bağlanıyoruz:
# mysql -u root -p
Enter password:
mysql> use pureftpd;
Sonra da aşağıdaki gibi bir insert satırını kırmızı alanları kendimize göre düzenledikten sonra giriyoruz.
INSERT INTO pureftpd.users VALUES ('deneme',MD5('sifre'),1007, 1007, '/kullanici/icin/home/dizini', 0, 0, 0, 0, '*', 'Deneme Kullanicisi', '1', 0, 0);
Not: Kullanici adi ve sifre’den sonra gelen 1007 ibareleri sistemde actigimiz ftpusers/ftpgroups kullanici ve gruplarının UID/GID değerleridir. Dolayısı ile siz buraya kendi sisteminizdeki UID ve GID değerlerini girmelisiniz. Ilgili UID ve GID bilgilerine ulaşmak için aşağıdaki komutları kullanabilirsiniz.
UID için komut ve çıktısı:
# more /etc/paswd |grep ftpusers ftpusers:*:1007:1007:User &:/nonexistent:/usr/sbin/nologin
GID için komut ve çıktısı:
# more /etc/group |grep ftpgroups ftpgroups:*:1007:
UID ve GID değerlerini bildirmezseniz permisson sorunları yaşamanız muhtemeldir. Bu UID ve GID pureftpd tarafından kullanıcı dizinlerinde kullanılmaktadır.
Bunun dışında, yukarıdaki mysql insert cümlesi ile herhangi bir sınırlama getirilmemiş bir kullanıcı açtık; ancak bantgenişliği kullanımı ya da quota ile ilgili sınırlamalar getirmek istiyorsanız. users isimli tablonun yapısını inceleyebilirsiniz.
Ben kullanıcıyı direk mysql komut satırından açtım ancak siz bu iş için webmin ya da sqlyoq gibi bir management yazılımı kullanabilirsiniz.
Ayrıca pureftpd kullanıcılarını yönetmek üzere yazılmış User Manager for Pureftpd isimli bir php uygulaması da bulunuyor. Bunu da kullanmak isteyebilirsiniz. İlgili konu ile alakalı döküman hemen aşağıdaki kaynaklar bölümünde verilmiştir.
Hepsi bu kadar.
Kendi kullanıcınızı açtıysanız, test edebilirsiniz. Herhangi bir sorun ile karşılaşmadıysanız başarılı bir ftp bağlantısı kurmanız gerekir.
Kaynaklar:
http://www.pureftpd.org/project/pure-ftpd
http://machiel.generaal.net/index.php?subject=pureftpd&language=eng
QmailToaster Kurulumu
29 Oca
| Qmail, oldukça kararlı çalışmasından ve modüler yapısı sayesinde sunduğu esneklik sebebiyle çok uzun zamandan beri kullandığım ve önerdiğim bir MTA’dır. Fakat, Qmail’e eklenti olarak geliştirilmiş bir sürü modül bulunduğundan dolayı, tam teşekküllü bir mail sunucusu kurmak istediğinizde bahsi geçen bu modülleri de bilmeniz ve ihtiyacınıza göre kurulumlarını yapmanız gerekiyor. Bu nedenle normal şartlarda kaynak koddan derlenerek kurulan qmail ve ilgili modüller için az da olsa öncesinden bir tecrübe edinmiş olmanız gerekiyor. |
Belki henüz qmail ile ilgili olarak bu tarz tecrübeleri edinmemiş fakat gerekli olan tüm modüllerle birlikte bir qmail sunucusu kurmak ve de bunu bir sürü derleme işlemi ile uğraşmadan hızlıca yapabilmek istiyorsunuzdur, işte qmail toaster tam bu noktada yardımımıza koşuyor.
Aslında, bu zamana kadar hiç qmail toaster kurmamıştım, ancak uzun zamandır duyduğum bir şey olduğundan dolayı bir qmail sunucusuna ilk ihtiyacım olduğu an bir qmail toaster kurulumu yaptım. İşte bu yazıda, CentOS 5.2 üzerinde yapılan bir qmail toaster kurulumuna ait notları bulabilirsiniz.
Qmail Toaster, derleme işleri ile uğraşmaya gerek kalmaksızın tam teşekküllü bir qmail e-posta sunucusu kurabilmeyi amaçlayan bir oluşum. Gerçekten de gerekli tüm paketlerin indirilmesi, indirilen kaynak kodlarını rpm’e dönüştürülmesi ve sisteme kurulmasını sağlayan scriptler vasıtası ile qmail kurulumunu ciddi anlamda kolaylaştırıyor. Hal böyle olunca sunucunun yönetimi ve update vs. gibi işlemleri de epey kolaylaşıyor.
Bu dökümanda, kurulum ve konfigurasyon ile ilgili ayarların neler olduğunu bulabilirsiniz. Anlatılacak işlemlere ait index aşağıdaki gibidir.
Gereksinimler bölümünde geçmeden önce, qmail toster ile sisteme yüklenecek olan önemli rpm paketlerine ve ne iş yaptıklarına bir bakmak iyi olur;
| qmail | Qmail’in ana paketi. |
| ucspi-tcp | UNIX Client-Server program arayüzü. |
| daemontools | Servis yönetim araçları. Loglamalar ve servis kontrolu için kullanılır. |
| vpopmail | Birden fazla domain için sanal domain desteği sağlar. |
| vqadmin | Web tabanlı vpopmail yönetim konsolu. |
| qmailadmin | Web tabanlı domain yönetim konsolu. (Tek bir domainin yönetimi) |
| spamassassin | Perl tabanlı Spam Filtresi |
| clamav | Anti Virüs yazılımı |
| simscan | Clamav, Spamassasin ile birlikte çalışabilen içerik filtreleyici. |
| maildrop | Maillerin içeriğini tarayarak içerik filtrelemesi yapar. |
| qmailmrtg | E-Posta trafiğinin grafiksel verilerini sunar. |
| isoqlog | E-posta trafiğinin istatistiksel verilerini sunar. |
| ezmlm | Mail list yöneticisi |
| courier-imap | Imap Sunucusu |
| courier-authlib | Couriter otorizasyon kütüphanesi. |
| autorespond | Otomatik cevaplama fasilitesi. (Out of office) |
| squirrelmail | Php tabanlı Webmail uygulaması |
| control-panel-toaster | Qmail Toaster yönetim paketi. |
Sisteme nelerin yükleneceğine göz attıktan sonra, kurulum adımlarına başlayabiliriz.
Qmail Toster’ı yükleyebilmek için öncesinde gerekli paketlerin sisteminizde kurulu olduğuna emin olmanız ve eksik olan paketleri sisteminize kurmanız gerekiyor. Gereksinim bölümünde nelerin kurulu olması gerektiği ve kurulumları anlatılmaktadır.
GEREKSİNİMLER
Eğer yeni bir CentOS kurulumu yaparak işe başlayacaksanız, kurulum adımlarından biri olan yazılım paketlerinin seçilmesi kısmında aşağıdaki grupları seçin. Eğer hali hazırda bir CentOS üzerinde qmail kurulumu yapacaksanız yüklü paketlerin kontrolu ve eksiklerin yum ile kurulumlarını anlatan bir sonraki başlığa geçebilirsiniz.
Yeni CentOS kurulumunda
Software Packages adımında aşağıdaki paket gruplarını seçin.
"Server Configuration Tools" "Web Server"(Optional Packages kısmından "php-mysql" paketini de seçin.) "DNS Name Server"(Networkünüzde bir dns server bulunuyorsa kurmanıza gerek yok.) "FTP Server" "MySQL Database" (Optional Packages kısmından "mysql-bench" paketini de seçin.) "Development Tools" (Optional Packages kısmından "expect" paketini de seçin.) "Administration Tools" "System Tools" (Optional Packages butonuna tıklayıp "mrtg" paketini de seçin.) |
CentOS daha önceden kurulmuş ise
Daha önceden kurmuş olduğunuz bir CentOS üzerinde yukarıda bahsi geçen paketlerin kurulu olup olmadığını kontrol edin:
[root@cntvm ~]# yum grouplist |
Yukarıdaki komutun çıktısında Installed Groups bölümünde gerekli olan grupların kurulu olduğuna emin olun. Bendeki çıktı aşağıdaki gibi.
Not1: Benim zaten bir DNS sunucum olduğundan dolayı DNS Server grubunu bu makine üzerine kurmadım. Dolayısı ile listede DNS Server grubu görünmüyor.
Not2: Gerekli grupların dışında görünen diper gruplar ise default kurulumda gelmektedir.
Installed Groups: MySQL Database System Tools Legacy Network Server Dialup Networking Support FTP Server Network Servers Legacy Software Development Legacy Software Support Web Server Windows File Server Mail Server Server Configuration Tools Administration Tools |
Paket gruplarından eksik olanlar varsa aşağıdaki örnek komutta görüldüğü gibi kurun.
yum -y groupinstall "MySQL Database" |
Eksik grupları kurduktan sonra, gruba dahil olan ama grubun kurulumu sırasında opsiyonel olduklarından dolayı default olarak kurulmayan diğer paketleri kurun.
[root@cntvm ~]# yum install php-mysql mysql-bench expect mrtg |
Paket kurulumları bittikten sonraki adım, CentOS’un Security Level ve SELinux özelliklerini devre dışı bırakmaktır. Bunun için sisteme setup komutunu verin ve açılan ekranda Firewall Configuration‘ı seçin. Bu kısımda, Security Level ve SELinux’u disabled konumunu getirin.
Gereksinimler ile ilgili bölüm bu kadar.
HAZIRLIK
Şimdiki aşama, paketlerin download edilmesi ve sistemin kuruluma hazır hale getirilmesi için gerekli scriptlerin çalıştırılmasından ibaret.
Sisteme root olarak bağlanın ve paketlerin download edileceği dizini oluşturun.
[root@cntvm ~]# mkdir -p /usr/src/qtms-install |
Şimdi bu dizine geçelim ve ilgili scriptleri download edip kurmaya başlayalım.
[root@cntvm ~]# cd /usr/src/qtms-install |
cnt50-deps.sh
İlk olarak cnt50-deps.sh isimli scriptin çalıştırılması gerekiyor.
Bu script öncelikli olarak sistem kurulumunda default olarak yüklenen sendmail’i uninstall ediyor. Daha sonrasında ise kurulum için gerekli diğer paketlerin kurulumunu yapıyor.
Aşağıdaki gibi download edebilir ve çalıştırabilirsiniz.
Not: Kurulumu yaptığım CentOS 32bit olarak çalıştığı için ilgili scriptler 32bit CentOS için yazılmışlardır. Eğer siz 64bit kullanıyorsanız, ilgili dosyaların 64bit versiyonlarını http://www.qmailtoaster.org/centos/cnt5064/ adresinden indirmeniz gerekiyor.
[root@cntvm]# wget http://www.qmailtoaster.com/centos/cnt50/cnt50-deps.sh
[root@cntvm]# sh cnt50-deps.sh
|
cnt50-perl.sh
İkinci olarak cnt50-perl.sh isimli scripti indirip çalıştırmak gerekiyor. Spamassassin için gerekli olan perl modüllerinin sisteme yüklenmesini sağlıyor. Aşağıdaki şekilde download edip çalıştırabilirsiniz.
Not: Scripti çalıştırdığınız zaman manuel kurulum yapıp yapmak istemediğinizi soran bir promt ile karşılaşacaksınız. Buna NO diyin. Ayrıca, sistem kurulum ile ilgili olarak bir kaç soru daha soracak, kısaca enter’a basarak, default kurulumu seçin.
[root@cntvm]# wget http://www.qmailtoaster.com/centos/cnt50/cnt50-perl.sh
[root@cntvm]# sh cnt50-perl.sh
|
cnt50-svcs.sh & firewall.sh
Şimdiki aşama, iki farklı script indirip çalıştırarak hazırlığı tamamlamaktan ibaret. Ancak iki scriptte de gerekli değişiklikleri yapmak gerekiyor. Önce download edin.
[root@cntvm]# wget http://www.qmailtoaster.com/centos/cnt50/cnt50-svcs.sh [root@cntvm]# wget http://www.qmailtoaster.com/centos/cnt50/firewall.sh |
İlk script olan cnt50-svcs.sh, temel olarak gereksiz servisleri durdurup gereklileri start ediyor, inittab ve php.ini dosyasını düzenliyor, mysql’in root şifresini set ediyor, (ki ilk kurulumda root şifresi boş olarak gelir) sonrasında qmail’in sanal domain uygulamasını gerçekleştiren vpopmail add-on’u için vpopmail isimli bir database oluşturup gerekli düzenlemeleri yapıyor; firewall.sh ise iptables’a gerekli kuralları giriyor.
Dosyaları download ettiğinize göre editlemeye başlayabilirsiniz.
Öncelikle, cnt50-svcs.sh dosyasını açın burada yapılması gereken iki değişiklik bulunuyor.
Birincisi dosyanın # Set mysql password kısmında bulunan, Mysql Serverın root passwordunun belirleneceği alanı düzenlemek.
Dosya içerisinde aşağıdaki bölümü bulun ve MYSQL_ROOT_PASSWORD ibaresini silerek yerine mysql’iniz için belirleyeceğiniz root şifresini girin.
MYSQLPW=YOUR_MYSQL_ROOT_PASSWORD
İkinici aşama ise, vpopmail için oluşturulacak database’e erişecek olan kullanıcıya ait passwordu belirlemek.
Dosya içerisinde aşağıdaki satırı bulun.
echo “GRANT ALL PRIVILEGES ON vpopmail.* TO vpopmail@localhost IDENTIFIED BY ‘SsEeCcRrEeTt’” | mysql -uroot -p$MYSQLPW
Normalde, bir sonraki adım olan firewall kurallarında mysql’e dışarıdan erişim kapatılacak ancak siz gene de vpopmail db’sine erişecek kullanıcıya ait şifreyi öntanımlı olarak bırakmak istemeyebilirsiniz. Bu nedenle yukarıdaki satırda geçen SsEeCcRrEeTt ibaresini belirlediğiniz şifre ile değiştirin.
Not: Eğer, default passwordu değiştirirseniz, kurulum bittikten sonra, /home/vpopmail/etc/ altında bulunan vpopmail.mysql isimli dosyaya da belirlediğiniz passwordü girmeniz gerekir. Aksi taktirde vpopmail database’e login olamaz.
cnt50-svcs.sh dosyasındaki düzenlemeler bundan ibaret.
Şimdi firewall.sh dosyasını editleyip #Set your IP addres bölümünü bulun ve YOUR_IP_ADDRESS kısmına kendi ip adresinizi yazın. Burda, firewall kurallarının sisteme uygulanması ile ilgili olarak dikkat edilmesi gereken bir konu var. Eğer bulunduğunuz ip networkü 192.168.0.0 ya da 10.0.0.0 gibi iç networkler için ayrılmış olan ip networklerinden biriyse firewall.sh scriptinin çalıştırılmasından sonra sunucu ile bağlantınız kesilebilir. Bu nedenle, firewall.sh dosyasının içerisindeki “## Drop outside packets with local addresses – anti-spoofing measure” satırının altında bulunan kurallardan, kendi ip networkünüzü işaret eden satırı silmeniz gerekiyor.
Örnek olması açısından 192.168.0.0/16 networkü için ilgili satır şu şekilde:
iptables -A INPUT -s 192.168.0.0/16 -i ! lo -j DROP
Not: Halihazırda bir firewall’unuz varsa, o durumda Qmail Sunucusunun üzerinde iptables çalıştırmanıza gerek olmayabilir. Bu durumda cnt50-svcs.sh dosyasının son satırındaki sh firewall.sh satırını silere firewall kurallarının sisteme eklenmesini engelleyebilirsiniz.
cnt50-svcs.sh scritpini aşağıdaki gibi çalıştırdığınız zaman bahsettiğim işlemler gerçekleşecektir. Bu script son işlem adımı olarak firewall ile ilgili scripti de çalıştırdığı için sizin ayrıca firewall.sh dosyasını çalıştırmanıza gerek yoktur.
[root@cntvm]# sh cnt50-svcs.sh |
Tüm scriptleri download edip çalıştırdıktan sonra sistemde yüklü tüm paketleri update edin.
[root@cntvm]# yum -y update |
Update işlemi bittikten sonra sistemi restart etmek gerekiyor.
[root@cntvm]# reboot |
Sistem yeniden başlatıldıktan sonra qmail toaster’in kurulumuna geçebilirsiniz.
KURULUM
Kurulum işlemi de yine scriptler vasıtası ile gerekli paketlerin download edilmesi ve rpm’e dönüştürülerek sisteme kurulmasından ibarettir.
Hazırlık sırasında oluşturduğumuz kurulum dizinine geçin ve gerekli olan paketleri indirecek olan current-download-script.sh dosyasını download ederek çalıştırın.
[root@cntvm ~]# cd /usr/src/qtms-install/ [root@cntvm]# wget http://www.qmailtoaster.com/info/current-download-script.sh [root@cntvm]# sh current-download-script.sh |
Yukarıdaki işlem adımlarını yaptığınız zaman gerekli olan tüm paketler sisteminize download edilmiş olacaktır. Şimdi kuruluma geçebiliriz.
Sistem indirilen paketlereden rpm dosyaları oluşturarak yükleyecek olan scriptin adı, cnt50-install.script.sh dır. Bu scripti indirin.
[root@cntvm]# wget http://www.qmailtoaster.com/centos/cnt50/cnt50-install-script.sh |
Daha sonra çalıştırın. Scripti çalıştırdığınızda adım adım kurulacak paketler görüntülenecek ve sistem sizen onay isteyecektir. Enter’a basıp ilerleyin. Bu şekilde default yanıt olan evet’i seçmiş olursunuz. Bunun dışında eğer kurulacağı söylenen paketi yüklemek istemiyorsanız s tuşuna basarak skip edebilir ve ilgili paketi atlayarak kuruluma devam edebilirsiniz. No demeniz durumunda ise kurulum sonlandırılacaktır.
[root@cntvm]# sh cnt50-install-script.sh |
Yukarıdaki komutu vererek işlem adımlarını gerçekleştirdiğiniz zaman qmail toaster ile ilgili tüm rpm paketleri sisteminize yüklenmiş olacaktır.Bu şekilde kurulumu gerçekleştirmiş olacaksınız.
Bilgi olması açısından bu scriptin ne yaptığına biraz değinmek istiyorum. Script aslen, bir önceki script vasıtası ile download edilmiş olan source rpm paketlerini sisteme yüklüyor ve bu kaynak kodları kullanarak her bir qmail bileşeni için rpm paketleri üretip sistem yüklüyor. Bu şekilde qmail sunucunuz tamamen rpm tabanlı bir kuruluma sahip oluyor. Kurulumların rpm olmasından dolayı, update, uninstall vs. gibi işlemler de çok basitleşmiş oluyor. Herhangi bir bileşene ait update paketi çıktığı zaman yapmanız gereken tek şey ilgili paketi download ederek rpm -Uvh paket-adı komutu ile update etmek oluyor. Bu anlamda oldukça zaman kazandırıcı bir durum.
Neyse, kurulumlar bittikten sonra yapılandırma ve yönetimsel konular bölümüne geçelim.
KURULUMUN TAMAMLANMASI
Kurulumların ardından sistemin restart edilmesinden sonra otomatik olarak çalıştırılması gereken servislerin durumunu kontrol edelim.
Sisteme setup komutunu vererek Text Mode Setup Utility aracını çalıştırın. Açılan grafiksel ekran da işletim sistemi ile ilgili temel işlemlerin yapılabildiği bu grafiksel ekrandan System services bölümüne geçin ve aşağıdaki servislerin seçili olduğuna emin olun.
acpid anacron atd autofs cpuspeed crond freshclam haldaemon httpd iptables kudzu messagebus mysqld network ntpd qmail smartd sshd syslog xinet irqbalance (eğer dual işlemciniz varsa) xfs (eğer x windows kullanıyorsanız) |
Not: xinetd sisteminizde yüklü olmayabilir. Xinet, courier tarafından gereksinim duyulan bir servis olduğundan dolayı ayrıca yüklemenizi tavsiye ederim. yum -y install xinetd komutu ile kurabilirsiniz.
Açılışta başlatılması gereken servislerin kontrolünü yaptıktan sonra, herşeyin yolunda gittiğinden emin olmak için sisteminizi bir kez daha restart edin.
[root@cntvm]# reboot |
Sistem açıldıktan sonra qmail servislerinin durumunu kontrol edelim. Normal şartlarda sorunsuz bir kurulumun ve restart’ın ardından qmailctl stat komutunu verdiğiniz zaman aşağıdakine benzer bir çıktı almanız gerekir.
[root@cntvm ~]# qmailctl stat authlib: up (pid 1945) 124 seconds clamd: up (pid 1926) 125 seconds imap4: up (pid 1941) 125 seconds imap4-ssl: up (pid 1938) 125 seconds pop3: up (pid 1939) 125 seconds pop3-ssl: up (pid 1942) 124 seconds send: up (pid 1937) 125 seconds smtp: up (pid 1940) 125 seconds spamd: up (pid 1920) 125 seconds submission: up (pid 1943) 124 seconds authlib/log: up (pid 1925) 125 seconds clamd/log: up (pid 1923) 125 seconds imap4/log: up (pid 1919) 125 seconds imap4-ssl/log: up (pid 1917) 125 seconds pop3/log: up (pid 1924) 125 seconds pop3-ssl/log: up (pid 1916) 125 seconds send/log: up (pid 1915) 125 seconds smtp/log: up (pid 1918) 125 seconds spamd/log: up (pid 1921) 125 seconds submission/log: up (pid 1922) 125 seconds |
Görüldüğü üzere qmail’e ait tüm servisler (up) görünüyor.
Şimdi sisteme yeni bir domain ve kullanıcı ekleyelim. Aşağıdaki adımları uygulayarak bu işlemi gerçekleştirebilirsiniz.
[root@cntvm ~]# cd ~vpopmail/bin/ [root@cntvm bin]# ./vadddomain domain-ismi.com sifre [root@cntvm bin]# ./vadduser user@domain-ismi.com sifre |
Qmail Toaster’in sunucu yönetimi ile ilgili güzel bir web tabanlı paneli bulunuyor. Bu panele erişebilmek için öncelikle php ayarlarında bir defaya mahsus küçük bir değişiklik yapmak gerekiyor. Sonra bu ayarı geri alacağız.
/etc dizini altındaki php.ini dosyasını editleyin ve register_globals değerini On yapın ve service httpd restart komutu ile apache’yi restart edin. (Bu ayar default olarak Off durumdadır.) Daha sonra bir web browser kullanarak aşağıdaki şekilde panele erişim sağlayabilirsiniz.
http://server-ip-adresi/admin-toaster/ Kullanıcı: admin Şifre: toaster |
Yönetim konsoluna bağlandıktan sonra şifrenizi değiştirin.
Bu konsolda kısaca, domain ve kullanıcı yönetimi için kullanılan vqadmin ve (tek bir domain için yönetim sağlayan) qmailadmin, log analizi yaparak e-posta trafiğinin istatistiğini tutan isoqlog ve gene log analizi yaparak e-posta trafiğini grafiksel olarak gösteren qmailmrtg sayfalarını görüntüleyebilirsiniz.
Not: Eğer isoqlog sayfasına girdiğiniz zaman hata alıyorsanız aşağıdaki komutu çalıştırarak tekrar giriş yapmanız gerekir.
[root@cntvm bin]# sh /usr/share/toaster/isoqlog/bin/cron.sh |
Bu komut /etc/isoqlog dizini altında bulunan isoqlog.domains dosyasına sisteme eklenmiş olan domainlerin adının eklenmesini sağlar ve ilgili domainler için isoqlog’un analiz yaparak aktivitenin raporlanacağı html sayfalarını oluşturur. Isoqlog’a ilk erişmeye çalıştığınız zaman almanızın muhtemel olduğu hata da bu html dosyalarının oluşturulmamış olmasından kaynaklanır.
Yeni bir domain açtığınız zaman, bu domain isminin ilgili dosyaya eklenmesi ve html dosyalarının periyodik olarak oluşturulması için aşağıdaki cron satırını sisteme ekleyebilirsiniz.
59 * * * * /usr/share/toaster/isoqlog/bin/cron.sh |
Böylece saat başı script çalıştırılacak ve domain update işlemi yapılacaktır.
Yönetim konsoluna göz attıktan ve isoqlog ile ilgili ayarları yaptıktan sonra, son olarak php.ini içerisinde On durumuna getirdiğimiz register_globals değerini Off duruma getirin ve service httpd restart komutu ile apacheyi yeniden başlatın.
Kurulum ve yapılandırma ile ilgili adımlar bu kadar.
YAPILANDIRMA
Artık, qmail ve bileşenleri ile ilgili temel ayar dosyalarına göz atabiliriz.
Qmail, bir çok yapılandırma dosyası ile gelir ve bu ayarlara ait hemen her yapılandırma dosyası /var/qmail/control dizininde bulunur. Asağıdaki tabloda Qmail’in ve qmail toaster ile kurulan bileşenlere ait yapılandırma dosyaları görülmektedir. Bu dosyaların detayları aşağıda ayrıca verilmiştir.
| badloadertypes | İstenmeyen loader type’ların burada belirlenir. |
| badmailfrom | İstenmeyen gönderici adreslerininbu dosyada belirlenir. |
| badmailto | İstenmeyen alıcı adresleri tanımlanır. |
| badmimetypes | İstenmeyen MIME Type’lar belirlenir. |
| blacklists | RBL kontrolunun yapılacağı BlackList adresleri burada tanımlanır. |
| clientcert.pem | servercert.pem dosyasına linklidir. (bkz: servercert.pem) |
| servercert.pem | TLS bağlantıları için sertifika ve private key’in bulunduğu dosya. |
| concurrencyincoming | Eş zamanlı gelen smtp bağlantı sayısının belirlendiği dosya. |
| concurrencyremote | Eş zamanlı gönderilebilecek posta adedinin belirlendiği dosya. |
| databytes | Bir e-postanın olabileceği maksimum boyut değeri. |
| defaultdelivery | Mailbox yapısının belirlendiği dosya. |
| defaultdomain | Sunucunun ön tanımlı alan adının belirlendiği dosya. |
| defaulthost | Ön tanımlı sunucu host adı. |
| dh1024.pem | TLS bağlantıları için 1024 bit’lik key |
| dh512.pem | TSL için 512 bit’lik key. |
| domainkeys/ | Domain anahtarlarının konumlandığı dizin. (Domainkey’e değinmeyeceğim.) |
| locals | Sunucuya ait local host isimlerinin tanımlandığı dosya. |
| logcount | Multilog için log rotate değeri. |
| logsize | Current isimli log dosyasının ulaşabileceği maksimum değer. |
| me | Sunucunun tam etki alan adı (FQDN) |
| queuelifetime | Maillerin kuyrukra bekleme süresi. |
| rcpthosts | Sunucunun kabul edeceği maillere ait domainlerin listelendiği dosya. |
| rsa512.pem | TLS bağlantısı için 512 bit RSA key |
| simcontrol | ClamAv, Spamassasin ve Attachment block için simscan conf dosyası. |
| simcontrol.cdb | Simscan db’si. |
| simversions.cdb | Simscan versiyon db’si |
| smtpgreeting | Sunucunun smtp bağlantıları için selamlama mesajı |
| smtproutes | Maillerin başka posta sunucusuna yönlendirilmesi için kullanılan dosya. |
| spfbehavior | Spf check level’ının belirtildiği dosya. |
| tlsclientciphers | OpenSSL client cipher stringleri |
| tlsserverciphers | OpenSSL server cipher stringleri |
| virtualdomains | Sisteme eklenen sanal domainler. |
Sunucunun özelleştirilmesi ile ilgili yapılabilecek bu control dosyalarını detayları şöyledir.
badloadertypes
Engellenmesi istenen base64 encoded Loader tipleri bu dosya içerisinde belirtebilirsiniz. Böylece, qmail-smtpd gelen maillerde istenmeyen bir loader type belirlemesi durumunda ilgili postayı reject edecektir. Ayrıca, dizinde badloadertypes.cdb isimli bir database dosyası bulunur. badloadretypes dosyasında belirtilmiş satırların bu db dosyasına işlenmiş olması gerekiyor. Dosyaya herhangi bir loader type ismi girdiğiniz zamam qmailctl cdb komutu ile bu işlemi gerçekleştirmeniz gerekir.
badmailfrom
İsminden de anlaşılacağı üzere, sunucunuza e-posta göndermesine isim vermediğiniz domainleri ya da e-posta adreslerini bu dosyaya ekleyebilirsiniz. Bu dosyaya ekli satırlar qmail-smtpd tarafından kontrol edilir ve uyan bir mail varsa reject edilir. Örneğin dosyaya @domain.com yazdığınız da, domain.com uzantılı e-mail adreslerinden sunucunuza mail atılamaz. domain adları ya da e-posta adresleri satır satır yazılmalıdır.
badmailto
Format ve çalışma mantığı bakımından badmailfrom ile aynıdır. Ancak alıcı e-posta ya da domainlerine yasaklama yapmak için kullanılır.
badmimetypes
e-posta’ların mime type’larına göre filtrelenebilmesini sağlar. İstenmeyen mime type’lar bu dosya da belirlenerek, içeriğinde bu mime tiplerinin bulunduğu maillerin qmail-smtpd tarafından reject edilmesi sağlanır. Bu şekilde attachment filtrelemesi de yapabilirsiniz. Aynı dizinde, bu dosyanın bilgilerinin tutulduğu badmimetypes.cdb isimli bir db dosyası bulunur. Dosya içerisinde yapılan ekleme çıkarmalardan sonra gene qmailctl cdb komutu ile değişikliklerin db’ye işlenmesi sağlanmalıdır.
blacklists
Smtp bağlantılarının kurulduğu ip’lerin taranacağı black listleri bu dosyada belirleyebilirsiniz. Ön tanımlı olarak dosyanın içeriği şu şekildedir; -r zen.spamhaus.org ve zen.spamhaus.org black list’i kullanılmaktadır; Birden fazla black list adresi girmek için ard arda -r blacklist1-domain -r blacklist2-domain şeklinde bir giriş yapılabilir. Dosyanın tek bir satırdan ibaret olması gerekmektedir. Doğru bir örnek aşağıdaki gibidir.
-r zen.spamhaus.org -r list.dsbl.org -r combined.njabl.org
Belli ip adreslerinden yapılan bağlantılar için RBL check işlemi yapmak istememniz durumunda, /etc/tcprules.d/tcp.smtp dosyasını editleyerek aşağıdakine benzer bir satır girebilirsiniz.
192.168.1.:allow,RELAYCLIENT="",DKSIGN="/var/qmail/control/domainkeys/%/private",RBLSMTPD=""
Yukardaki satır 192.168.1.0/24 ip networkünden kurulacak smtp bağlantıları için rblcheck işleminin yapılmamasını söylemektedir.
tcp.smtp dosyanızı editledikten sonra, değişikliklerin aktif olması için qmailctl cdb komutunu çalıştırmanız ve /etc/tcprules.d/ dizini altında bulunan tcp.smtp.cdb isimli db dosyasının güncellenmesini sağlamanız gerekmektedir.
clientcert.pem
Bu dosya, TLS bağlantılarında kullanılan SSL sertifikasını içermektedir ve aslında servercert.pem isimli dosyayı gösteren sembolik bir linktir. Kurulum sırasında otomatik olarak oluşturulmuştur.
servercert.pem
Encrypted TLS bağlantılarında client’a gönderilen SSL certifikasını içermektedir. İçerisinde hem sertifika hem de private key bulunur. Eğer bu dosya sunucuda bulunmazsa, TLS özelliği devre dışı bırakılır. Herhangi bir SSL sertifikası almanız durumunda, ilgili sertifikayı bu dosyaya ekleyebilirsiniz.
concurrencyincoming
Eş zamanlı olarak gelen maksimım smtp bağlantı adedinin belirlendiği dosyadır. Ön tanımlı olarak 100′dür. Yani sunucunuz aynı anda 100 adet smtp bağlantısına izin verir.
concurrencyremote
Eş zamanlı olarak giden maksimum smtp bağlantıları da bu dosya içerisinde belirlenmektedir. Qmail Toaster kurulumunda ön tanımlı değer 60′dır. Ancak paketin derlenmesi sırasında bu sayının maksimum 509 adede kadar çıkarılması için gerekli patch uygulanmıştır.
databytes
Bir e-postanın en fazla ne kadar büyük olabileceği bu dosyada tanımlanır. Ön tanımlı olarak 20Mbyte’tır.
defaultdelivery
Sunucunun mailbox tipini belirlemek üzere kullanılır. Genel geçer formak uzun zamandır maildir yapısı olduğundan dolayı qmail toaster da bu yapıyı kullanmaktadır. Kullanıcıların posta kutuları /home/vpopmail/domains///Maildir/ şeklinde tutulur. Kullanıcıya gelen mailler bu dizin altındaki new klasörüne konulur.
dh1024.pem
TLS bağlantıları için 1024 bitlik DH parametresi sunar.
dh512.pem
512′lik DH parametreleri
logcount
Qmail log dosyalarının maksimum kaç adet olabileceğinin belirlendiği dosyadır. Multilog bu değerden hareketle eski log dosyalarını siler. Qmail toaster bu değeri 100 olarak set etmektedir.
logsize
Bu dosyada ise log dosyalarının büyüklüklerinin maksimum değerleri belirlenmektedir. Ön tanımlı olarak yaklaşık 1Mb olarak set edilir.
queuelifetime
Qmail’in, gönderimi başarısız olan mailleri tekrar göndermeyi ne kadar süreyle deneyeceğini bu dosya içerisinden belirtebilirsiniz. Normalde bu değer 604800 saniye (bir hafta) olarak girilmiştir. Qmail Toaster bu değeri 86400 saniye (1 gün) olarak set ediyor. Eğer sunucunuz bir e-posta iletimi için uzaktaki ilgili smtp sunucusuna bağlanamazsa, maili bu değer süresince kuyruğunda tutar ve gönderimi periyodik aralıklarla tekrarlar. Süre sonunda mail gönderilememişse mailin göndericisine hata döndürerek durumu iletir.
rcpthosts
Bu dosya, sisteme eklenmiş olan tüm domainlerin bilgisini tutmaktadır. Sisteme herhangi bir domain eklendiğinde, domain ismi otomatik olarak bu dosyaya da eklenmektedir. Böylece qmail bu dosya içerisindeki domainlere gelen e-postaları kabul eder. Eğer dosyada adı geçmeyen bir domain’e ait bir adrese mail atılırsa qmail-smtpd ilgili maili reject eder. Sisteminizde açılmamış bir domaini bu dosyaya ekler ve bir mail atarsanız, qmail bu dosyadan hareketle gelen maili kabul edecek ancak üzerinde bu domaine ait herhangi bir kayıt bulunmadığından dolayı (domainin ilk MX kaydına bakarak) maili ana mail sunucuya iletecektir. Eğer ana mail sunucuya erişelemiyorsa queuelifetime süresince, 5′er dakikalik aralıklarla maili tekrar göndermeyi deneyecektir. Başarısız olursa maili gönderene bir hata mesaji yollayarak durumu bildirecektir.
rsa512.pem
TLS bağlantılar için kurulum sırasında oluşturulan 512 bit’lik bir RSA key.
simscan (simcontrol, simcontrol.cdb, simversion.cdv)
Simscan, vpopmail’i de geliştiren Inter7′nin yazdığı bir mail tarayıcı programıdır. Sunucuya bir mail geldiği zaman qmail-smtpd tarafından çalıştırılan simscan gelen dosyayı geçici bir alanda (qmail toaster ile kurulan paketlerden biri olan) ripemime isimli yazılımı kullanarak başlık, veri bölümü ve dosya eki olarak parçalara ayırarak içerik kontrolü yapar. Eğer mailin içerisinde engellenmesi belirtilen bir eklenti dosyası varsa oluşturduğu geçici dosyayı siler ve qmail-smtpd’ye maili reject edilmesini söyler. Ayrıca clamav süreci simscan’ın bir parçası olarak çalışmaktadır. Dolayısı ile simscan dizinindaki dosyalar clamav tarafından taranır ve sonuç bilgisi simscan tarafından alınır eğer mail virüs içeriyorsa qmail-smtpd’ye mailin reddedilmesini söyler. Bunun dışında, qmail toaster kurulumunda simscan spamassassin ile de birlikte çalışacak şekilde derlenmiştir. Bu nedenle gelen maillerin spamassassin tarafından yapılan analiz sonuçlarını da alarak spam olarak işaretlenmiş maillerin reddeilmesini sağlar.
Simscan ile ilgili tüm ayarlar simcontrol dosyası üzerinde yapılmaktadır. Dosyayı editlediğiniz zaman içeriğinin aşağıdaki gibi olduğunu görürsünüz.
:clam=yes,spam=yes,spam_hits=12,attach=.mp3:.src:.bat:.pif
Öntanımlı olarak oluşturulan bu dosya içeriğinde, maillerin clam ve spamassassin ile taranması, spam score’u 12 ve üstünde olan maillerin reddedilmesi belirtilmektedir. Ayrıca, engellenecek attachmentlar da burada belirtilmektedir.
Bu dosya içerisinde simscan’in farklı domain ya da kullanıcılar için nasıl davranacağını ayrı ayrı belirtebilirsiniz. Aşağıdaki örnek daha iyi kavramak için epey güzel.
postmaster@example.com:clam=yes,spam=no,attach=.txt:.com example.com:clam=no,spam=yes,attach=.mp3 :clam=yes,spam=yes,spam_hits=5
Yukarıdaki satırların mealleri şöyle;
postmaster@example.com adresine atılacak mailler için virüs taraması yapılsım, spam kontrolu yapılmasın. Ayrıca, txt ve .com uzantılı dosyaların gönderimi yasaklansın.
example.com domaini altında bulunan kullanıcılar için (postmaster hariç) virüs kontrolü yapılmasın, spam kontrolü yapılsun, .mp3 uzantılı dosyalar kabul edilmesin.
Yukarıdaki iki satırda belirtilen user ve kullanıcıya atılmamış olan diğer tüm e-mailler için virus ve spam kontrolü yapılsın, spam score’u 5 olan mailler silinsin. attachment kontrolü yapılmasın.
simcontrol dosyasını özelleştirmek için yukarıdaki örnek takip edilebilir.
Simscan’in control dosyasından hariç olarak aynı dizinde, simcontrol.cdb ve simversion.cdb isimli iki dosya daha bulunmaktadır. Bunlardan birincisi kuralları ikincisi de simscan, clamav ve spamassassin’in versiyon bilgilerini tutan cdb dosyalarıdır. Kuralları ya da spamassassin ve ya clamav’ı update ederseniz gene qmailctl cdb komutunu çalıştırarak değişikliklerin db dosyalarına kaydedilmesini sağlamanız gerekir.
smtpgreeting
Bu dosyada, sunucuta smtp bağlantısı sağlandığı zaman gönderilen karşılama mesajı bulunmaktadır. Farklı bir karşılama mesajı döndürmek istiyorsanız içeriğini değiştirebilirsiniz.
smtproutes
smtp routes dosyası gelen e-postaların farklı mail sunuculara yönlendirilmesini sağlayan bir dosyadır. Örneğin, bir domaininize gelen mailer için qmail toaster’i sadece spam ve virus taramasından geçirilmek üzere kullanmak isteyebilirsiniz. Bu durumda, smtproutes dosyasına domain_adı:ip_adresi şeklinde bir satır girebilirsiniz. Gelen mailler tarandıktan sonra ilgili ip adresine yönlendirilirler. (domaini rcpthosts dosyasına yazmanız da gerekir.) Bunun dışında birden fazla MX kaydı olan domainlere gidecek maillerin hangi sunucuya gideceğini de aynı şekilde ayarlayabilirsiniz.
Ayrıca, qmail-remote-auth patch’i toaster kurulumunda yüklenmiş olduğundan dolayı yönlendireceğiniz mailler için aşağıdaki gibi bir satır ile auth işlemi de yapabilirsiniz:
domain.com:yönlenecek_ip_adresi kullanıcıadı şifre
virtualdomains
Bu dosyaya eklemeler vpopmail tarafından otomatik olarak yapılır ve qmail-send’in bu domainleri gelen maillere local domain olarak davranması sağlanır. (Konu biraz havada kaldı ama bu dosyayı editlemenize pek gerek yok.)
Qmail’in toaster ile birlikte kurulan önemli yapılandırma dosyaları bunlardan ibaret. Sunucunuzda özelleştirme yapmak istemeniz durumunda işinize yarayacak dosyalar hemen hemen bunlardır.
Yapılandırma ile ilgili olarak detaylı bilgiye http://wiki.qmailtoaster.com/index.php/Configuration adresinden ulaşabilirsiniz.
Son olarak, qmail toaster için güzel bir eklenti olan qmailtoaster-plus isimli paketten bahsetmek istiyorum.
Bu paket, görsel bir menü sunarak, qmail-toaster’in yönetimini epey kolaylaştıran özellikler sunuyor ve ayrıca alternatif webmail arayüzü, filtreleme yazılımı vs. gibi ek paketleri kolayca sisteme entegre edebilmenizi sağlıyor.
Mesela, içerisinde qtp-newmodel denilen bir update scripti bulunuyor ki bu çok işinize yarayacaktır. Bu aracı komut satırında qtp-newmodel diyerek çalıştırdığınız zaman sistemde kurulu paketlerin güncel versiyonlarını kontrol ediyor ve yeni versiyonlar olması durumunda update işlemi yapıyor. Özellikle clamav sürekli engine güncellemesi yaptığı için çok qtp-newmodel epey işinize yarayacaktır.
qtp’yi kurmak için aşağıdaki adımları takip edebilirsiniz.
Öncelikle, qtp’nin rpm’lerine ulaşabileceğiniz yum deposunu kurun.
[root@cntvm updates]# rpm -Uvh http://qtp.qmailtoaster.com/trac/downloads/1 |
Daha sonra bu depoda bulunan qtp’yi yükleyin.
[root@cntvm updates]# yum install qmailtoaster-plus |
Kurulum tamamlandıktan sonra qtp-menu komutu ile işlem menüsünü çalıştırabilirsiniz. qtp-menu kullanılarak sisteme spamdyke gibi gelişmiş ek spam filteleri kolayca eklenebiliyor. Bu nedenle kesinlikle tavsiye ettiğim güzel bir uygulamadır.
Detaylı bilgi için http://qtp.qmailtoaster.com/trac adresine bakabilirsiniz.
Kurulum ve yapılandırma ile ilgili hemen herşey bu kadar. Siz de bir kurulum yaparak biraz mıncıklayabilir ve detaylara inebilirsiniz. Gerçekten toaster ile herşey epey kolaylaşıyor.
CentOS harici bir dağıtım kullanıyorsanız http://wiki.qmailtoaster.com/index.php adresinde bir çok dağıtıma ait kurulum dökümanı bulunuyor. Bakmanızı tavsite ederim.
Centos/Linux üzerine VMware Server 2.0 Kurulumu
29 Oca
| Bilindiği gibi virtualization (sanallaştırma) teknolojisi, sistemciler için harika çözümler sunan devrim niteliğinde bir konu. Tek bir donanım üzerinde birden fazla işletim sistemi çalıştırmaya yarayan sanallaştırma teknolojisi donanım, elektrik ve lokasyon gibi konularda ciddi oranlarda tasarruf etmek için birebir.Ben de, test ortamı ve performans kaygısı olmayan tüm sunucu uygulamaları için sanallaştırma teknolojisi kullanmaktayım. İşte bu yazıda da, VMware’in ücretsiz olan VMware Server sürümünün CentOS üzerine nasıl kurulduğuyla ilgili notları paylaşacağım. |
VMware Server 2.0 bir iki ay önce piyasaya çıkmış olmasından dolayı daha yeni sayılır ve her nekadar VMware’in ücretli olan appliance ve OS sürümlerinde bulunan bazı yönetimsel kolaylık sağlayan özelliklerinden muaf olsa da bahsettiğim tarzdaki kullanımlar için son derece yeterli ve üstelik süper kolay bir kuruluma sahip.
İşte nasıl kurulduğu;
GEREKSİNİMLER
WMware Server’i kurmak için bir bilgisayara sadece temel bileşenleri içeren bir CentOS 5.2 kurdum. Yani herhangi extra paket kurmadım; eğer siz de işe yeni bir CentOS kurarak başlayacaksanız aynı yöntemi takip etmenizi öneririm. Zira, aslında gerek olmayan paketleri sisteme kurarak kaynakları boşuna tüketmek pek doğru bir yol değil. Başlangıç için sadece Base paket grubunu seçmeniz yeterlidir.
Not: VMware 1.x versiyonunun aksine, sanallaştırma ortamı ile ilgili işler web tabanlı olarak gerçekleştirildiğinden dolayı sistemde X’in kurulu olması gerekmektedir.
Bunun dışında herzamanki gibi SELinux’u devreden çıkardım.
Şimdi elinizde, bomboş bir CentOS olduğunu varsayarak kurulum gereksinimlerine geçelim.
CentOS üzerine VMware Server’ı RPM olarak da, sıkıştırılmış tar.gz dosyasını indirip içerisinden çıkan perl kurulum scriptini çalıştırarak da kurmak mümkün. Ben tar.gz üzerinden kurulum yaptım. Dolayısı ile yazı, bu yöntemle yapılan kurulumu anlatıyor.
Kurulumu yapabilmek için sistemde kurulum sırasında derleme işlemleri için gcc’nin, kernel-devel ile kernel-headers gibi paketlerin ve de xinetd’nin kurulu olması gerekiyor.
Önce bunları kuralım;
# yum -y install gcc kernel-devel kernel-headers xinetd |
Yum ile yapılan bu kurulum, gerekli paketlerin tüm bağımlı paketler ile birlikte sisteminize yüklenmesini sağlayacaktır.
Artık kuruluma geçebiliriz.
KURULUM
Biraz önce de bahsettiğim gibi kurulumu RPM üzerinde ya da kurulum scripti üzerinden yapabiliyoruz. Biz script üzerinden yapacağımıza göre öncelikle tar.gz uzantılı VMWare Server 2.0 paketini download edelim.
http://www.vmware.com/freedownload/login.php?product=server20 adresinden kayıt olun.
İlgili adreste biraz teferruatlı bir kayıt formu bulunuyor. Kayıt formunu doldurduktan sonra belirtmiş olduğunuz e-mail adresine bir aktivasyon maili gönderiyorlar. Linki takip ettiğiniz zaman download sayfasına ve serial key’inize ulaşıyorsunuz. İlgili key’i bir kenara not edin. Kurulum sırasında lazım olacak.
539MB’lik tar.gz dosyasını sisteminize indirdikten sonra sıkıştırılmış paketi açın.
Paketin, /usr/local/src dizinine download edildiğini varsayıyorum.
# cd /usr/local/src # tar xvfz VMware-server-2.0.0-122956.i386.tar.gz |
Şimdi kurulum scriptini çalıştırabiliriz.
# cd vmware-server-distrib/ # ./vmware-install.pl |
Kurulum scripti çalıştırıldığı zaman, binary dosyalarının, scriptlerin, daemon dosyalarının, kütüphane dosyalarının, man ve dökümantasyon dosyalarının nereye kurulmasını istediğinizi belirtmeniz istenen sorular gelecektir. Sorulara Enter’a basarak default cevapları vermeniz yeterli olacaktır.
Herşey sorunsuz gittiyse; http://host-ip-adresi:8222 adresinden vmware server management konsoluna erişebilirsiniz.
Kurulum bu kadar. Bundan sonra sanal makinelerinizi oluşturup ister cd üzerinden ister iso dosyaları üzerinden işletim sistemlerinizi kurabilir, sanallaştırma teknolojisinin nimetlerinden yararlanabilirsiniz.
Centos 5.2 üzerine Red5 Flash Server Kurulumu
29 Oca
| Red5, java ile yazılmış olan açık kodlu bir Flash Serverdır. Red5′ın kullanım alanları arasında, Audio/Video Streaming, Recording Client Streams, Live Stream Publishing gibi konular bulunuyor. Yani red5 ile Mp3 yada FLV formatındaki medya dosyalarının yayınını yapabiliyorsunuz ya da karşıdaki bir bilgisayarın kamerasından alınan görüntüyü sunucunuza FLV formatında kaydedebiliyorsunuz ve ya iki bilgisayar arasında Video Chat uygulaması gerçekleştirebiliyorsunuz. |
Bu yazıda, Red5′ın Centos 5.2 üzerine nasıl kurulabileceği ile ilgili notlar bulabilirsiniz.
Öncelikle, Red5 kurabilmek için sisteminizde öncesinden kurulu olması gereken bazı yazılımlar var:
subversion
java jdk
ant 1.7
Eğer, java jdk kurulu değilse, red5 kurulumu için yaptığım Java 1.6 JDK kurulumuna ait notları içeren şu dökümandan yararlanabilirsiniz: http://blog.cagriersen.net/2008/10/centos-uzerine-sun-java-kurulumu-jdk/ Subversion isimli paket red5′ın trunk versiyonunu çekmek için gereklidir. Bu yazıyı yazarken latest stable version’unda bulunan bir bugdan dolayı derleme işlemi gerçekleştirilemiyordu. Ama trunk version’da sorun yok.
Gerekli paketlerin kurulumu:
Subversion
Subversion’ın sisteminizde kurulu olup olmadığına yum kullanarak bakabilirsiniz.
# yum list |grep subversion |grep installed |
Eğer herhangi bir sonuç dönmezse aşağıdaki şekilde kurulum yapabilirsiniz. Eğer kurulu ise bu adımı geçebilirsiniz.
# yum install subversion |
Sun Java JDK
Subversion sisteme yüklendi ise bundan sonraki aşama Java JDK kurulumunu yapmaktır. CentOS ile birlikte gelen java sürümü JDK içermediği ve aynı durum SUN’dan indirebileceğiniz Java kurulum paketleri için de geçerli olduğundan dolayı custon bir Java kurulumu yapmanız gerekmektedir. Ben de red5 kurulumu yaparken JDK sorunu ile karşılaştım ve bu nedenle custom java kurulumu yaptım. Ayrıca, konu ile ilgili bir kurulum dökümanı da hazırladım. Dökümana http://blog.cagriersen.net/2008/10/centos-uzerine-sun-java-kurulumu-jdk/ sayfasından erişebilirsiniz. Yönergeleri takip edip Java kurulumunu yaptıktan sonra buraya geri dönüp red5 kurulumuna devam edebilirsiniz.
Ant 1.7
Aşağıdaki adımları izleyerek Ant 1.7.1 kurulumunu kolayca yapabilirsiniz.
/usr/local/src dizinine geçip paketi download edin.
# cd /usr/local/src # wget http://godel.cs.bilgi.edu.tr/apache/ant/binaries/apache-ant-1.7.1-bin.tar.gz |
Sıkıştırılmış dosyayı açın ve adı apache-ant-1.7.1 olarak gelen dizini yeniden isimlendirip /usr/local/ altına taşıyın. (ant’ın /usr/local dizininde bulunması şart değildir. İsterseniz farklı bir dizine de taşıyabilirsiniz.
# tar zxf apache-ant-1.7.1-bin.tar.gz # mv apache-ant-1.7.1 /usr/local/ant |
Sisteme, ant dizininin nerede durduğunu söyleyelim ve ant’ınhome dizininde bulunan ant binarysine /usr/bin/ altından erişilebilmesi için bir link oluşturalim.
# export ANT_HOME=/usr/local/ant # ln -s /usr/local/ant/bin/ant /usr/bin/ant |
Ant kurulumu bu kadar.
Red5 Kurulumu
Simdi gene /usr/local/src dizinine geçin ve red5′ı aşağıdaki komut ile sisteminize download edin.
# cd /usr/local/src # svn co http://red5.googlecode.com/svn/java/server/trunk red5 |
Not: Yukarıdaki komut red5′ın trunk versiyonunu download etmektedir. Normal şartlarda red5′ın sitesinde ki download sayfasından güncel sürümün tar ball’unu indirmeniz mümkün. Ancak ilgili sayfadaki son sürüm derleme aşamasında sorun çıkarıyor. Bu nedenle svn’den trunk versiyonu kurdum; sorun çıkarmadı.
Kodu download ettiyseniz derleme aşamasına geçebilirsiniz. Ama öncesinde sisteme Java’nın home dizinine ait yolu göstermeniz gerekiyor. (Ant’ın dizinini yukarıda göstermiştik). Java kurulumunu verdiğim adresten yaptıysanız Java Home dizini aşağıda belirtildiği gibi olacaktır. Ancak Java’yı kurarken başka bir path belirtmiş olabilirsiniz. bu durumda kendi path’i kendinizinki ile değiştirmeyi unutmayın.
# export JAVA_HOME=/usr/lib/jvm/java-1.6.0/ |
Java yolunu da export ettikten sonra aşağıdaki adımları takip ederek red5 kurulumunu yapabilirsiniz.
/usr/local/src dizininde bulunan red5 dizinini /usr/local dizini altına taşıyın.
# mv red5 /usr/local/ |
/usr/local/red5 dizinine geçip aşağıdaki komutları sırası ile vererek derleyin.
# cd /usr/local/red5 # /usr/local/ant/bin/ant prepare # /usr/local/ant/bin/ant dist |
Derleme işlemi sorunsuz olarak bittiyse, red5 server çalıştırılmaya hazır demekdir. dist dizinine geçip red5′ı çalıştırın.
# cd dist # sh red5.sh |
Herşey yolunda gittiyse, şu anda red5′ın çalışıyor olması gerekir. Kontrol etmek için aşağıdaki adımları uygulayabilirsiniz.
red5 http server 5080. ve rtmp servisi de 1935. portları dinler. ps ile ilgili portların dinlenip dinlenmediğini kontrol edebilirsiniz.
# netstat -an |grep 5080 tcp 0 0 :::5080 :::* LISTEN |
ve 1935
# netstat -an |grep 1935 tcp 0 0 :::1935 :::* LISTEN |
Eğer yukarıdaki komutların çıktılarında görüldüğü gibi bir çıktı alırsanız serverınız çalışıyor demektir.
İkinci olarak, red5 serverınızı yönetim panelini çağırarak test edebilirsiniz.
http://Server-IPsi:5080/
Eğer sayfa geliyorsa çalışıyor demektir. Ayrıca, gelen bu sayfada red5 demolarını yükleyebilir ya da görüntüleyebilirsiniz.
Son olarak, red5′i bir shell script dosyasını çağırmak sureti ile çalıştırdığımız için console’da ya da ssh ile yapılan bağlantılarda, command prompt geri gelmeyecektir. Bu nedenle red5”ı sisteme servis olarak eklemek gerekmektedir. Bu şekilde red5 sistemin açılışı sırasında da otomatik olarak çalışacaktır.
Red5′ın sisteme non root bir kullanıcı ile çalışrılacak şekilde servis olarak eklenmesi
Red5′in açılışta otomatik olarak çalıştırılması için http://weblogs.amtex.nl/index.php?blog=2&title=red5_start_stop_init_script_on_centos_re&more=1&c=1&tb=1&pb=1 yayınlanan bir init script’i var. Bu scripti kullanarak sistemi services red5 start / stop komutu ile yönetmek mümkün. Ancak, red5′ın root kullanıcısı ile çalıştırılması pek tavsiye edilmeyen bir şey ve bu scriptin orjinalinde yer alan “root ile çalıştırmama” kısımları işlev görmedi. Ben de scripti alıp üzerinde küçük değişiklikler yaptım. Ayrıca, scripti sistem servisi olarak eklemek için gerekli olan chkconfig satırları da yoktu; onları da ekledim. Böylece red5 açılışta da otomatik olarak non root bir kullanıcı ile çalıştırılmaya başladı. Script içeriğini ve yapılması gerekenler şöyle:
Aşağıdaki satırları copy paste usulü ile /etc/init.d dizini altında açacağınız red5 isimli bir dosyaya aktarın ve Red5 dizini, Java dizini ve Java version’u ile ilgili satırları kendinize göre düzenleyin. (Bu dökümandan yararlanarak kurulum yaptıysanız scriptteki dizin pathleri doğrudur.)
#!/bin/bash
#
# chkconfig: 2345 85 15
# description: Startup script for Red5 flash streaming server
#
# processname: red5
# pidfile: /var/run/red5.pid
# config: /etc/red5.conf
# Source function library.
. /etc/rc.d/init.d/functions
RED5_HOME=/usr/local/red5/
JAVA_HOME=/usr/lib/jvm/java-1.6.0/
JAVA_VERSION=1.6
JAVACMD=/usr/lib/jvm/java-1.6.0/bin/java
OPTIONS="-cp ${RED5_HOME}red5.jar:${RED5_HOME}conf:$CLASSPATH org.red5.server.Standalone"
DESCR="Red5 flash streaming server"
PID_FILE=/var/run/red5.pid
PID=`ps ax |grep java|grep red5|awk '{print $1;}'`
RETVAL=0
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
# Read config file if it is present.
if [ -r /etc/red5.conf ]
then
. /etc/red5.conf
fi
start() {
echo -n $"Starting $DESCR: "
RETVAL=$?
[ $RETVAL = 0 ] && touch /var/lock/subsys/red5 && echo $!>$PID_FILE && echo_success
echo -n "Starting Red5 Service"
echo -n " "
cd /usr/local/red5/dist
#./red5.sh &
su -p -s /bin/sh red5 -c ./red5.sh &
sleep 2
return $RETVAL
}
stop() {
echo -n $"Stopping $DESCR: "
#killproc $PID_FILE
[[ $PID != "" ]] && success && kill $PID || failure
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/red5 $PID_FILE
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 3
start
;;
*)
echo $"Usage: $DESCR {start|stop|restart"
exit 1
esac
exit $RETVAL
|
Script içerisinde non-root user olarak kullanılan red5 isimli bir kullanıcıya ihtiyacımız var. Aşağıdaki komutla açalım. (Herhangi birinin sisteme o user ile bağlanamaması için nologin parametresi ile açın.)
# useradd -s /sbin/nologin red5 |
red5 scriptine ilgili yetkileri verin ayrıca, red5 dizininin sahibini red5 kullanıcısı yapın.
# chmod 700 red5 # chown -fR red5 /usr/local/red5 |
Şimdi, red5′ı servis olarak ve level 2, 3, 4 ve 5′de otomatik start edilmesi için sisteme ekleyin.
# chkconfig --add red5 # chkconfig --level 2345 red5 on |
Herşey yolunda gittiyse, chkconfig –list |grep red5 dediğiniz zaman aşağıdaki gibi bir çıktı almanız gerekir.
# chkconfig --list |grep red5 red5 0:off 1:off 2:on 3:on 4:on 5:on 6:off |
Artık, red5 her sistem açılışında otomatik olarak başlatılacak. Eğer “red5 service start” komutunu verirseniz de servis start edilir. Burada dikkat edilmesi gereken bir nokta, servisin başlatılması sırasında, debug bilgileri ekrana basıldığından dolayo promptun düşmemesidir. Tekrar komut satırına düşmek için ctrl + c yapabilirsiniz. Servis arka planda çalışmaya devam edecektir.
Son olarak Sisteminizi restart edin ve red5′ın çalışıp çalışmadığını kontrol edin. Nonroot olarak çalışan red5 prosesini reboot sonrası ps aux |grep red5 komutu ile görüntülerseniz aşağıdaki gibi bir sonuç almanız gerekir.
root 2783 0.0 0.4 5899 0119 pts S 00:52 0:00 su -p -s /bin/sh red5 -c ./red5.sh red5 2785 1.0 7.0 20929 43540 ? Esl 00:52 0:08 /usr/bin/java -Dpythonvs......... |
Yukardaki ps çıktısının ilk satırında, ./red5.sh shell scriptinin root tarafından red5 isimli non-root kullanıcısına düşüldükten sonra çalıştırıldığı; ikinci satırda ise red5 isimli kullanıcının asıl process’i çalıştırdığını görebilirsiniz.
Hepsi bu kadar.
Kaynak: http://osflash.org/red5
SSH portunu değiştirme
15 Ara
Sunucunuzda ssh bağlantı portunu değiştirmek için ssh servisinin ana ayar dosyasında değişiklik yapmanız gerekmekte.
nano /etc/ssh/sshd_config
ile dosyayı düzenlemek üzere açın.
Port 22
yazan kısımda (varsa başından # işaretini kaldırın) 22 olan varsayılan portu istediğiniz port ile değiştirin. Bu port için güvenlik duvarınızda ilgili ayarı yapmayı unutmayın. Son olarak ayarların etkin olması için
/etc/init.d/sshd restart
çalıştırın.