<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Linux Nasıl</title>
    <link>http://LINUX-NASIL.COM/ln/</link>
    <description>Linux yardımcı belgeleri</description>
    <!-- optional tags -->
    <language>en-us</language>           <!-- valid langugae goes here -->
    <generator>Nucleus CMS v3.21</generator>
    <copyright>�</copyright>             <!-- Copyright notice -->
    <category>Weblog</category>
    <docs>http://backend.userland.com/rss</docs>
    <image>
      <url>http://LINUX-NASIL.COM/ln//nucleus/nucleus2.gif</url>
      <title>Linux Nasıl</title>
      <link>http://LINUX-NASIL.COM/ln/</link>
    </image>
    <item>
 <title><![CDATA[Linux işletim sisteminde kullanıcı ve parola işlemleri]]></title>
 <link>http://LINUX-NASIL.COM/ln/index.php?itemid=17</link>
<description><![CDATA[Bu belgede Linux işletim sisteminde çeşitli kullanıcı ve parola işlemleri anlatılmaktadır.<br><br />
<b>Kullanıcı hesabının durdurulması ve tekrar açılması</b><br />
Kullanıcı hesabını geçici süreyle bloke etmek için aşağıdaki komut girilir.<br />
<div class="komut-grikutu"># passwd -l {kullaniciismi} </div><br />
Bloke edilmiş bir hesabı tekrar etkinleştirmek için aşağıdaki komut girilir.<br />
<div class="komut-grikutu"># passwd -u {kullaniciismi} </div><br />
<br />
<b>Kullanıcı hesabı parola durum bilgisinin öğrenilmesi</b><br />
Kullanıcı hesabı parola durum bilgisini öğrenmek için aşağıdaki komut girilir.<br />
<div class="komut-grikutu"># passwd -S {kullaniciismi}<br>kullaniciismi P 01/02/1970 0 99999 7 -1</div><br />
-S : Hesap durum bilgisini gösterir. Durum bilgisi toplam yedi alandan oluşmaktadır. İkinci alan parola durum bilgisini gösterir:<br />
    * L : Kullanıcı hesabı bloke edilmiş ise (L)<br />
    * NP : Kullanıcı hesabı bir parolaya sahip değil ise (NP)<br />
    * P: Kullanıcı hesabı uygun bir parolaya sahip ise (P)<br />
<br />
<br />
<b>Yeni kullanıcıya verilen geçici parolanın ilk girişte değiştirilmeye zorlanması:</b><br />
Yeni açtığımız bir kullanıcının sisteme ilk giriş yaptığında parolasını değiştirmesini istiyorsak aşağıdaki komut ile gerekli ayarı yapabiliriz.<br />
<div class="komut-grikutu"># chage -d 0 {kullaniciismi} </div><br />
-d 0 : Parolanın son değiştirildiği gün için 1 Ocak 1970 tarihinden bu yana geçen gün sayısı verilir. Tarih YYYY-MM-DD formatında da girilebilir. Bu değer sıfır (0) verilirse kullanıcı ilk giriş yaptığında sistem parolasını değiştirmesini isteyecektir.<br />
<br />
<br />
<b>Kullanıcı parolası geçerlilik tarihi</b><br />
Parola geçerlilik bilgileri chage komutu ile yönetilebilmektedir. Bir kullanıcıya ait parola geçerlilik bilgilerini görmek için aşağıdaki komut verilir.<br />
<div class="komut-grikutu"># chage -l {kullaniciismi}<br />
Last password change                                : Feb 22, 2010<br />
Password expires                                        : never<br />
Password inactive                                       : never<br />
Account expires                                          : never<br />
Minimum number of days between password change          : 0<br />
Maximum number of days between password change          : 99999<br />
Number of days of warning before password expires       : 7<br />
 </div><br />
Parola geçerlilik bilgilerini değiştirmek için aşağıdaki komut girilir.<br />
<div class="komut-grikutu"># chage {kullaniciismi} </div><br />
Eğer kullanıcı parolasının süre kısıtlamasız kullanılmasını istiyorsak aşağıdaki komutu girebilir.<br />
<div class="komut-grikutu"># chage -I -1 -m 0 -M 99999 -E -1 {kullaniciismi} </div><br />
Ayrıca /etc/login.defs dosyasında ilgili parametreleri düzenleyerek öntanımlı olarak bir geçerlilik süresi tanımlayabilirsiniz.<br />
<br />
PASS_MAX_DAYS : Parolanın kullanılabileceği maksimum gün sayısı Eğer parola belirtilen bu değerden daha eski ise kullanıcı parolasını değiştirilmesi için sistem tarafından zorlanacaktır.<br />
PASS_MIN_DAYS : Parola değiştirme işlemleri arasında izin verilen minimum gün sayısı. Eğer belirtilen değerden daha önce bir parola değiştirme işlemi yapılmak istenirse bu sistem tarafından otomatik red edilecektir.<br />
PASS_WARN_AGE : Parola geçerlilik süresi bitmeden kaç gün önce uyarı verileceği. Sıfır (0) veriirse sistem son gün uyarı verecektir. Eğer bir değer tanımlanmazsa veya eksi bir değer girilirse sistem herhangi bir uyarı vermeyecektir.<br />
<br />
/etc/login.defs dosyası bir metin düzenleyici ile açılır ve gerekli değişiklikler yapıldıktan sonra kaydedilip çıkılır.<br />
<div class="komut-grikutu">#  vi /etc/login.defs </div><br />
Örnek değerler::<br />
<div class="komut-grikutu">PASS_MAX_DAYS 20<br />
PASS_MIN_DAYS 1<br />
PASS_WARN_AGE 7 </div><br />
<br />
<b>Referanslar:</b><br />
[1] http://www.cyberciti.biz/faq/rhel-debian-force-users-to-change-passwords<br />
[2] http://www.cyberciti.biz/faq/linux-locking-an-account/<br />
[3] http://www.cyberciti.biz/tips/search-for-all-account-without-password-and-lock-them.html<br />
[4] http://www.cyberciti.biz/tips/setting-off-password-aging-expiration.html<br />
[5] http://www.cyberciti.biz/tips/linux-set-default-password-expiry-for-all-new-users.html<br />
[6] http://www.cyberciti.biz/tips/linux-security.html<br />
]]></description>
 <category>Genel</category>
<comments>http://LINUX-NASIL.COM/ln/index.php?itemid=17</comments>
 <pubDate>Mon, 08 Feb 2010 02:03:55 -0800</pubDate>
</item><item>
 <title><![CDATA[Linux işletim sisteminde MAC adresini değiştirme]]></title>
 <link>http://LINUX-NASIL.COM/ln/index.php?itemid=16</link>
<description><![CDATA[Bu belgede Linux işletim sisteminde MAC (Media Access Control address) adresinin değiştirilmesi anlatılmaktadır.<br>Örnek olarak <i>eth0</i> ethernet kartınızın MAC adresini<i> ab:cd:ef:11:22:33</i> olarak değiştirmek için aşağıdaki komut verilir.<br />
<div class="komut-grikutu"># ifconfig eth0 down<br />
# ifconfig eth0 hw ether ab:cd:ef:11:22:33<br />
# ifconfig eth0 up</div>]]></description>
 <category>Genel</category>
<comments>http://LINUX-NASIL.COM/ln/index.php?itemid=16</comments>
 <pubDate>Wed, 15 Jul 2009 10:34:15 -0700</pubDate>
</item><item>
 <title><![CDATA[Centos 5.x üzerine ntop kurulumu]]></title>
 <link>http://LINUX-NASIL.COM/ln/index.php?itemid=13</link>
<description><![CDATA[Bu belgede Centos dağıtımı 5.x sürümüne ntop ağ izleme yazılımının kurulumu anlatılmaktadır.<br><b>ntop kurulumu</b><br />
RPMFORGE rpm paket deposundan ntop ve bağımlıları rrdtool, perl-rrdtool, graphviz paketleri sırasıyla kurulur.<br />
<div class="komut-grikutu"># wget http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/ntop-3.3.8-1.el5.rf.i386.rpm<br />
# wget http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rrdtool-1.2.28-1.el5.rf.i386.rpm<br />
# wget http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/perl-rrdtool-1.2.28-1.el5.rf.i386.rpm<br />
# wget http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/graphviz-2.8-1.el5.rf.i386.rpm<br />
# rpm -ivh perl-rrdtool-1.2.28-1.el5.rf.i386.rpm<br />
# rpm -ivh rrdtool-1.2.28-1.el5.rf.i386.rpm<br />
# rpm -ivh ntop-3.3.8-1.el5.rf.i386.rpm<br />
# rpm -ivh graphviz-2.8-1.el5.rf.i386.rpm</div><br />
<b>ntop yapılandırması</b><br />
ntop yazılımı (admin) yönetici hesabına şifre verilir. <br />
<div class="komut-grikutu"># ntop --user ntop --set-admin-password</div><br />
<b>ntop servisinin başlatılması</b><br />
ntop servisi başlatılmak istendiğinde aşağıdaki hata mesajı alınmaktadır.<br />
<div class="komut-grikutu">Starting ntop:    Processing file /etc/ntop.conf for parameters...<br />
Wed Dec  3 11:18:22 2008  NOTE: Interface merge enabled by default<br />
Wed Dec  3 11:18:22 2008  Initializing gdbm databases<br />
FATAL ERROR: Unrecognized/unprocessed ntop options...<br />
                                           ,     --user ntop, ,   --db-file-path /var/ntop, ,     ,     ,       --use-syslog, ,     ,       ,     ,         ,     ,      <br />
<br />
run ntop --help for usage information<br />
<br />
    Common problems:<br />
        -B "filter expressions" (quotes are required)<br />
        --use-syslog=facilty (the = is required)<br />
<br />
                                                           [FAILED]<br />
</div><br />
Bu hatayı mesajını aşabilmek için /etc/init.d/ntop dosyasında "daemon $prog -d -L @/etc/ntop.conf" satırı "daemon $prog @/etc/ntop.conf -d -L" olarak düzeltilmelidir.<br />
<div class="komut-grikutu">nano -w /etc/init.d/ntop</div><div class="komut-beyazkutu">daemon $prog @/etc/ntop.conf -d -L</div><br />
ntop servisi artık başlatılabilir.<br />
<div class="komut-grikutu">service ntop start</div><br />
<b>ntop web arayüzüne erişim</b><br />
Internet tarayıcınızın adres alanına "http:/localhost:3000" adresini girerek ntop yazılımının web arayüzüne erişebilirsiniz. admin kullanıcısı ve belirlediğiniz şifreyi kullanarak ntop yazılımını kullanabilirsiniz.<br />
<br />
<br />
<b>Referanslar</b><br />
[1] ntop: http://www.ntop.org ]]></description>
 <category>Linux - CentOS</category>
<comments>http://LINUX-NASIL.COM/ln/index.php?itemid=13</comments>
 <pubDate>Wed, 03 Dec 2008 11:14:05 -0800</pubDate>
</item><item>
 <title><![CDATA[Centos 5.x üzerinde grafik arayüzüne uzaktan erişim]]></title>
 <link>http://LINUX-NASIL.COM/ln/index.php?itemid=12</link>
<description><![CDATA[Bu belgede Centos dağıtımı 5.x sürümünde Linux grafik arayüzüne uzaktan erişim için GDM ve XDMCP yapılandırması anlatılmaktadır.<br><b>GDM yapılandırması</b><br />
GDM yapılandırmasını grafiksel olarak yapabilmek için gdmsetup yazılımı çalıştırılır.<br />
<div class="komut-grikutu"># gdmsetup</div><br />
Açılan "Login Window Preferences" penceresinde "Remote" sekmesine geçilip "Style" seçeneği "Same as Local" olarak belirlenir. Pencere "Close" düğmesine basılıp kapatılarak yapılandırma tamamlanır.<br />
<br />
Yapılandırmanın aktifleşebilmesi için "gdm-safe-restart" komutu verilerek gdm tekrar başlatılmalıdır.<br />
<div class="komut-grikutu"># gdm-safe-restart</div>]]></description>
 <category>Linux - CentOS</category>
<comments>http://LINUX-NASIL.COM/ln/index.php?itemid=12</comments>
 <pubDate>Tue, 02 Dec 2008 22:30:53 -0800</pubDate>
</item><item>
 <title><![CDATA[Ubuntu 8.10 üzerine ntop kurulumu]]></title>
 <link>http://LINUX-NASIL.COM/ln/index.php?itemid=11</link>
<description><![CDATA[Bu belgede Ubuntu dağıtımı 8.10 sürümüne ntop ağ izleme yazılımının kurulumu anlatılmaktadır. <br><b>ntop kurulumu</b><br />
Ubuntu paket deposundan ntop paketi kurulur.<br />
<div class="komut-grikutu"># sudo apt-get install ntop</div><br />
<b>ntop yapılandırması</b><br />
ntop yazılımı çalıştırıldığında sizden (admin) yönetici hesabına ait şifreyi belirlemenizi isteyecektir. <br />
<div class="komut-grikutu">sudo ntop</div> ntop yazılımı (admin) yönetici hesabına yeniden bir şifre vermek için aşağıdaki komut kullanılabilir.<br />
<div class="komut-grikutu">sudo ntop --set-admin-password</div><br />
<b>ntop servisinin başlatılması</b><br />
<div class="komut-grikutu">sudo /etc/init.d/ntop start</div><br />
<b>ntop web arayüzüne erişim</b><br />
Internet tarayıcınızın adres alanına "http:/localhost:3000" adresini girerek ntop yazılımının web arayüzüne erişebilirsiniz. admin kullanıcısı ve belirlediğiniz şifreyi kullanarak ntop yazılımını kullanabilirsiniz.<br />
<br />
<br />
<b>Referanslar</b><br />
[1] ntop: http://www.ntop.org ]]></description>
 <category>Linux - Ubuntu</category>
<comments>http://LINUX-NASIL.COM/ln/index.php?itemid=11</comments>
 <pubDate>Tue, 02 Dec 2008 22:07:10 -0800</pubDate>
</item><item>
 <title><![CDATA[Centos 5.2 üzerine rdiff-backup kurulumu]]></title>
 <link>http://LINUX-NASIL.COM/ln/index.php?itemid=10</link>
<description><![CDATA[Bu belgede Centos dağıtımı 5.2 sürümüne rdiff-backup yedekleme yazılımı ve rdiffWeb web arayüzü kurulumu anlatılmaktadır. <br><b>Rdiff-backup kurulumu</b><br />
Rdiff-backup rpm paketi RPMFORGE web sitesinden indirilip kurulur.<br />
<div class="komut-grikutu"># wget http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rdiff-backup-1.2.2-1.el5.rf.i386.rpm<br />
# rpm -ivh rdiff-backup-1.2.2-1.el5.rf.i386.rpm</div><br />
<br />
<b>RdiffWeb kurulumu</b><br />
rdiff-backup web arayüzü kurulumu için kaynak rpm paketi kullanılarak yeni paket oluşturulup kurulur.<br />
<div class="komut-grikutu"># wget http://www.rdiffweb.org/releases/rdiffWeb-0.6.3-1.src.rpm<br />
# rpmbuild --rebuild rdiffWeb-0.6.3-1.src.rpm<br />
# rpm -ivh /usr/src/redhat/RPMS/noarch/rdiffWeb-0.6.3-1.noarch.rpm</div><br />
<br />
rdiffWeb yazılımı python-sqlite2 ve CherryPy yazılımlarına gereksinim duymaktadır.<br />
<br />
<b>Python-sqlite2 kurulumu</b><br />
python-sqlite2 paketinin kurulumu için aşağıdaki komutlar uygulanır.<br />
<div class="komut-grikutu"># http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/python-sqlite2-2.3.3-1.el5.rf.i386.rpm<br />
# rpm -ivh python-sqlite2-2.3.3-1.el5.rf.i386.rpm</div><br />
<br />
<b>CherryPy kurulumu</b><br />
CherryPy programın kurulumu için aşağıdaki komutlar uygulanır.<br />
<div class="komut-grikutu"># wget http://download.cherrypy.org/cherrypy/3.1.1/CherryPy-3.1.1.tar.gz<br />
# tar zxvf CherryPy-3.1.1.tar.gz<br />
# cd CherryPy-3.1.1<br />
# python setup.py install</div><br />
<br />
<b>RdiffWeb yapılandırması</b><br />
<div class="komut-grikutu"># rdiff-web-config<br />
# service rdiff-web start<br />
# chkconfig rdiff-web on</div><br />
<br />
<div class="komut-grikutu"></div><br />
<br />
<br />
<br />
<b>Referanslar:</b><br />
[1] rdiff-backup: http://www.nongnu.org/rdiff-backup<br />
[2] rdiffWeb: http://www.rdiffweb.org<br />
[3] CherryPy: http://www.cherrypy.org]]></description>
 <category>Linux - CentOS</category>
<comments>http://LINUX-NASIL.COM/ln/index.php?itemid=10</comments>
 <pubDate>Mon, 01 Dec 2008 13:52:17 -0800</pubDate>
</item><item>
 <title><![CDATA[C'nin Zaman Fonksiyonu "time" Üzerine Kısa Bir Yazı]]></title>
 <link>http://LINUX-NASIL.COM/ln/index.php?itemid=9</link>
<description><![CDATA[Bu yazıda İngilizceden Türkçeye çevrilmemiş ya da çevrilememiş olan kelimeler çift tırnak içinde kullanılmıştır. Örnek koddaki (kullanılan yapının elemanlarının tek tek açıklanması gibi) her ayrıntı anlatılmamıştır. Okuyan kişilerin temel C programlama dili  bilgisine sahip oldukları varsayılmıştır. <br />
C ya da C++ ile kod yazarken ne zaman Standart C fonksiyonlarından “time” kullansam aynı şey geliyor aklıma : Tasarımı çok basit ama bir o kadar da kullanışlı! Neden böyle düşündüğümü kısaca açıklamaya çalışacağım.<br />
<br />
Bilindiği üzere time fonksiyonunun klasik kullanımı aşağıdaki gibidir.<br />
<div class="komut-grikutu">time_t t = time(NULL);</div><br />
Bu şekilde “Epoch” olarak geçen 1 Ocak 1970 tarihi ve 00:00:00 saatinden, çağırmayı yaptığımız ana kadar geçen zamanı saniye olarak elde ederiz. Bu fonksiyonu ilk gördüğümde aklıma gelen ilk soru  “Neden saniye?” şeklinde olmuştu. Aşağıda örnek kod ile durum ayrıntılandırılmıştır ancak burada kısa ve öz cevabı vermek gerekirse, geri dönüş değerinin saniye olması gerçekten büyük bir işlem kolaylığı sağlıyor!<br />
<br />
Varsayalım ki yazdığınız kodda bir tarih bilgisi tutmanız ve bu tarih bilgisine de saniye, dakika, saat, gün, ay ve yıl ekleyip çıkartmanız gerekli. Genelde akla gelen ilk şeyler, tarih bilgisi nasıl tutulmalıdır, artık yıl hesabı, ekleme çıkarma gibi işlemlerde dikkat edilmesi gereken 28, 29, 30, 31 günlük aylar, gerektiği noktada yıl atlatmalar gibi bir çok istisnai duruma ilişkin sorulardır. Ama gerçekten bunlar üzerinde bu kadar düşünmeye gerek var mı? <br />
<br />
Benim cevabım “Hayır!” şeklinde. Sebebi ise şu, istersem o an için geçerli tarih ve zaman bilgisi elde etmek amacıyla “time” fonksiyonu ile istersem de herhangi bir zaman için “mktime” fonksiyonu ile “Epoch” olarak geçen zamandan itibaren geçen süreyi saniye olarak alabilirim. Bundan sonra da ne kadar ötelemek veya geriye çekmek istiyorsam yaparım. Tabi tüm bu ekleme çıkarma işlemlerini saniye olarak yaparım ve gerekli yerlerde elimdeki saniye bilgisini “localtime” (veya “gmtime”) ile tarih ve zaman bilgisine çeviririm. Bu durumu ve daha fazlasını açıklayan örnek C kodu aşağıdaki gibidir. <br />
<br />
<b>Koda Dair Küçük Notlar:</b><br />
Kodun yazımı için “man 2 time” ve “man ctime” şeklinde elde edilen kılavuz sayfalarından faydalanılmıştır. <br />
TM_BASE _YEAR sabiti “struct tm” yapısındaki yıl değişkeninin 1900'den sonrası için ayarlanması sebebi ile doğru yılı elde etmek amaçlı olarak kullanılmaktadır.<br />
<br />
TM_MONTH_SHIFT sabitinin kullanım amacı ise klasik olarak C'deki indekslemenin sıfırdan başlaması ile aynı durumdur : “struct tm” içindeki ay bölümünün indekslemesi sıfırdan başladığı için doğru ay gösterimi/hesabı yapabilmek için duruma göre bir eklemek ya da çıkarmak amacıyla kullanılmaktadır. <br />
<br />
<br />
<div class="komut-grikutu"><br />
#include <stdio.h><br />
#include <time.h><br />
#include <stdlib.h><br />
<br />
#define		TM_BASE_YEAR		1900<br />
#define		TM_MONTH_SHIFT		1<br />
<br />
#define		SECOND_PER_MINUTE	60<br />
#define		MINUTE_PER_HOUR	60<br />
#define		HOUR_PER_DAY		24	<br />
<br />
<br />
<br />
int main(int argc, char *argv[])<br />
{   <br />
        // Epoch'tan bu kodun çalıştığı ana kadar geçen süreyi saniye olarak al <br />
	time_t t = time(NULL);<br />
	<br />
	// Elde ettiğin saniyeyi tarih ve zaman bilgisine çevir.<br />
	struct tm* pTm = localtime(&t);<br />
	<br />
	// localtime ile elde edilen bilgiyi görüntüle<br />
	printf("%02d/%02d/%04d - %02d:%02d:%02d\n", pTm->tm_mday, <br />
		   					pTm->tm_mon + TM_MONTH_SHIFT, <br />
							pTm->tm_year + TM_BASE_YEAR, <br />
							pTm->tm_hour, <br />
							pTm->tm_min, <br />
							pTm->tm_sec<br />
		  );<br />
	<br />
	<br />
	// İçinde bulunulan zamanı 15 gün ileriye al<br />
	t += (SECOND_PER_MINUTE * MINUTE_PER_HOUR * HOUR_PER_DAY) * 15;<br />
	// Elde ettiğin saniyeyi tarih ve zaman bilgisine çevir.<br />
	pTm = localtime(&t);<br />
	// localtime ile elde edilen bilgiyi görüntüle<br />
	printf("%02d/%02d/%04d - %02d:%02d:%02d\n", pTm->tm_mday, <br />
							pTm->tm_mon + TM_MONTH_SHIFT, <br />
	 						pTm->tm_year + TM_BASE_YEAR, <br />
							pTm->tm_hour, <br />
							pTm->tm_min, <br />
							pTm->tm_sec<br />
		  );<br />
		<br />
	<br />
	// "29/11/2008 - 23:15:00" için uygun yapıyı hazırla<br />
	struct tm tms;<br />
	tms.tm_sec = 0; <br />
	tms.tm_min = 15; <br />
	tms.tm_hour = 23;<br />
	tms.tm_mday = 29;<br />
	tms.tm_mon = 11 - TM_MONTH_SHIFT; <br />
	tms.tm_year = 2008 - TM_BASE_YEAR ;<br />
	tms.tm_isdst = 0;<br />
	<br />
	// Epoch'tan "29/11/2008 - 23:15:00" tarihine kadar geçen saniyeyi al<br />
	t = mktime(&tms);<br />
	<br />
	// Elde ettiğin saniyeyi tarih ve zaman bilgisine çevir.<br />
	pTm = localtime(&t);<br />
	// localtime ile elde edilen bilgiyi görüntüle<br />
	printf("%02d/%02d/%04d - %02d:%02d:%02d\n", pTm->tm_mday, <br />
							pTm->tm_mon + TM_MONTH_SHIFT, <br />
							pTm->tm_year + TM_BASE_YEAR, <br />
							pTm->tm_hour, <br />
							pTm->tm_min, <br />
							pTm->tm_sec<br />
		  );<br />
	<br />
	<br />
	// "28/02/2008 - 23:15:00" için uygun yapıyı hazırla<br />
	tms.tm_sec = 0; <br />
	tms.tm_min = 15; <br />
	tms.tm_hour = 23;<br />
	tms.tm_mday = 28;<br />
	tms.tm_mon = 2 - TM_MONTH_SHIFT; <br />
	tms.tm_year = 2008 - TM_BASE_YEAR ;<br />
	tms.tm_isdst = 0;<br />
	<br />
	// Epoch'tan "28/02/2008 - 23:15:00" tarihine kadar geçen saniyeyi al<br />
	t = mktime(&tms);<br />
	<br />
	// Elde edilen zamanı 1 gün ileriye al<br />
	t += (SECOND_PER_MINUTE * MINUTE_PER_HOUR * HOUR_PER_DAY) * 1;<br />
	<br />
	// Elde ettiğin saniyeyi tarih ve zaman bilgisine çevir.<br />
	pTm = localtime(&t);<br />
	<br />
<br />
	// localtime ile elde edilen bilgiyi görüntüle<br />
	printf("%02d/%02d/%04d - %02d:%02d:%02d\n", pTm->tm_mday, <br />
							pTm->tm_mon + TM_MONTH_SHIFT, <br />
							pTm->tm_year + TM_BASE_YEAR, <br />
							pTm->tm_hour, <br />
							pTm->tm_min, <br />
							pTm->tm_sec<br />
		  );<br />
	<br />
	<br />
	// YANLIŞ bir tarih olan "29/02/2007 - 23:15:00" için uygun yapıyı hazırla<br />
	tms.tm_sec = 0; <br />
	tms.tm_min = 15; <br />
	tms.tm_hour = 23;<br />
	tms.tm_mday = 29;<br />
	tms.tm_mon = 2 - TM_MONTH_SHIFT; <br />
	tms.tm_year = 2007 - TM_BASE_YEAR ;<br />
	tms.tm_isdst = 0;<br />
	<br />
	// Epoch'tan YANLIŞ bir tarih olan "29/02/2007 - 23:15:00" tarihine kadar geçen saniyeyi al<br />
	t = mktime(&tms);<br />
	<br />
	// Elde ettiğin saniyeyi tarih ve zaman bilgisine çevir.<br />
	pTm = localtime(&t);<br />
	// localtime ile elde edilen bilgiyi görüntüle. Bakalım yanlış girilen için ne göreceğiz :)<br />
	printf("%02d/%02d/%04d - %02d:%02d:%02d\n", pTm->tm_mday, <br />
							pTm->tm_mon + TM_MONTH_SHIFT, <br />
							pTm->tm_year + TM_BASE_YEAR, <br />
							pTm->tm_hour, <br />
							pTm->tm_min, <br />
							pTm->tm_sec<br />
		  );<br />
	<br />
	<br />
	return EXIT_SUCCESS;<br />
}<br />
</div><br />
Programın çıktısı aşağıdaki gibidir:<br />
<div class="komut-grikutu">29/11/2008 - 23:46:12<br />
14/12/2008 - 23:46:12<br />
29/11/2008 - 23:15:00<br />
29/02/2008 - 23:15:00<br />
01/03/2007 - 23:15:00<br />
</div><br />
<br />
]]></description>
 <category>Programlama</category>
<comments>http://LINUX-NASIL.COM/ln/index.php?itemid=9</comments>
 <pubDate>Mon, 01 Dec 2008 09:00:00 -0800</pubDate>
</item><item>
 <title><![CDATA[Centos 5.2 üzerine phpMyAdmin kurulumu]]></title>
 <link>http://LINUX-NASIL.COM/ln/index.php?itemid=8</link>
<description><![CDATA[Bu belgede Centos dağıtımı 5.2 sürümüne Mysql veritabanı yönetimi için kullanan phpMyAdmin kurulumu anlatılmaktadır.<br><b>phpMyAdmin kurulumu</b><br />
phpMyAdmin ve bağımlılıkları kurulur.<br />
<div class="komut-grikutu"># yum install phpmyadmin php-mcrypt</div><br />
<b>phpMyAdmin yapılandırması</b><br />
/usr/share/phpmyadmin/config.inc.php dosyasında "blowfish_secret" satırı aşağıdakine uygun olarak düzenlenir.<br />
<div class="komut-grikutu"># nano -w /usr/share/phpmyadmin/config.inc.php</div><div class="komut-beyazkutu"><i>[kısaltıldı]</i><br />
$cfg['blowfish_secret']='cokgizlibirsatir';<br />
<i>[kısaltıldı]</i></div><br />
<b>phpMyAdmin başlatılması</b><br />
Apache sunucusu yeniden başlatılır.<br />
<div class="komut-grikutu"># service httpd restart<br />
</div><br />
<b>phpMyAdmin kullanımı</b><br />
Internet tarayıcına adres olarak http://localhost/phpmyadmin verilerek yazılım açılabilir.<br />
<br />
<b>Referanslar:</b><br />
[1] phpMyAdmin: http://www.phpmyadmin.net<br />
[2] Mysql: http://www.mysql.com <br />
[3] Centos: http://www.centos.org ]]></description>
 <category>Linux - CentOS</category>
<comments>http://LINUX-NASIL.COM/ln/index.php?itemid=8</comments>
 <pubDate>Thu, 27 Nov 2008 00:44:05 -0800</pubDate>
</item><item>
 <title><![CDATA[Centos 5.2 üzerine Snort kurulumu]]></title>
 <link>http://LINUX-NASIL.COM/ln/index.php?itemid=7</link>
<description><![CDATA[Bu belgede Centos dağıtımı 5.2 sürümüne Mysql veritabanı kullanan Snort 2.8.3.1 kurulumu anlatılmaktadır.<br><b>Snort kurulumu</b><br />
Snort web adresinden (http://www.snort.org) ilgili rpm paketleri indirilir.<br />
  * snort-2.8.3.1-1.RH5.i386.rpm<br />
  * snort-mysql-2.8.3.1-1.RH5.i386.rpm<br />
  * snort-postgresql-2.8.3.1-1.RH5.i386.rpm<br />
<br />
<div class="komut-grikutu"># rpm ivh snort-2.8.3.1-1.RH5.i386.rpm snort-mysql-2.8.3.1-1.RH5.i386.rpm</div><br />
<br />
<b>Snort kural dosyalarının eklenmesi</b><br />
Snort web adresinden kural paketi indirilir. En güncel kural paketini sadece Snort aboneleri  indirebilmektedir. Snort web sayfasına kayıtlı kullanıcılar ise yaklaşık 1 ay geriden gelen kural paketini indirebilirler. Bu konuda ayrıntılı bilgi için http://www.snort.org/vrt/ adresine bakabilirsiniz.<br />
<br />
Snort resmi web sitesinden kayıt yaptırdığınız snortrules-snapshot-2.8.tar.gz kural dosyasını indirmek için aşağıdaki adımları uygulayabilirsiniz.<br />
- Snort resmi sayfasını açınız.<br />
- Ana sayfadaki üst menüden "Sign In" düğmesine basıp açılan sayfaya kullanıcı bilgilerinizi girerek siteye giriş yapınız.<br />
- Ana sayfadaki "Get rules" düğmesine basınız.<br />
- "Sourcefire VRT Certified Rules - The Official Snort Ruleset (registered-user release)" kısmındaki "snortrules-snapshot-2.8.tar.gz" bağına basarak dosyayı indiriniz.<br />
<br />
İndirilen kural dosyası açılarak kurallar ilgili dizine kopyalanır.<br />
<div class="komut-grikutu"># tar xvf snortrules-snapshot-2.8.tar.gz<br />
# cp rules/ /etc/snort/rules</div><br />
<br />
<b>Snort yapılandırması</b><br />
- /etc/snort/snort.conf dosyası Mysql veritabanı kullanacak şekilde düzenlenir.<br />
<div class="komut-grikutu"> # nano -w /etc/snort/snort.conf</div><div class="komut-beyazkutu">output database: log, mysql, user=snort password=snortsifre dbname=snort_log host=localhost</div><br />
- /etc/sysconfig/snort dosyasında ALERTMODU satırı kapatılır<br />
<div class="komut-grikutu"># nano -w /etc/sysconfig/snort</div><div class="komut-beyazkutu"><i>[kısaltıldı]</i><br />
# ALERTMODE=fast<br />
<i>[kısaltıldı]</i></div><br />
<br />
<b>Snort için Mysql veritabanı kurulması</b><br />
- Mysql veritabanı kurulup başlatılır.<br />
<div class="komut-grikutu"># yum install mysql-server<br />
# service mysqld start</div><br />
- Mysql yöneticisi için şifresi verilir.<br />
<div class="komut-grikutu"># mysqladmin -u root password CokGizliSifre</div><br />
- Snort veritabanı şemalarının bulunduğu dizine geçilir ve Snort paketi ile  gelen şablondan (create_mysql) snort veritabanı ve tabloları oluşturulur.<br />
<div class="komut-grikutu"># cd /usr/share/snort-2.8.3.1/schemas<br />
# mysql -u root -p<br />
Enter password:<br />
Welcome to the MySQL monitor.  Commands end with ; or \g.<br />
mysql> create database snort_log;<br />
mysql> connect snort_log;<br />
mysql> source create_mysql<br />
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort_log.* to snort;<br />
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort_log.* to snort@localhost;<br />
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort_log.* to acid;<br />
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort_log.* to acid@localhost;<br />
mysql> create database snort_archive;<br />
mysql> connect snort_archive;<br />
mysql> source create_mysql<br />
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort_archive.* to acid;<br />
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort_archive.* to acid@localhost;<br />
mysql> set password for 'snort'@'localhost'=password('snortsifre');<br />
mysql> set password for 'snort'@'%'=password('snortsifre');<br />
mysql> set password for 'acid'@'localhost'=password('acidsifre');<br />
mysql> set password for 'acid'@'%'=password('acidsifre');<br />
mysql> exit<br />
</div><br />
<br />
<b>Snort servisinin başlatılması</b><br />
- Snort servisi başlatılır.<br />
<div class="komut-grikutu"># service snortd start<br />
</div><br />
<br />
<b>Snort web tabanlı arayüzü BASE yazılımın kurulumu</b><br />
- Apache web sunucu kurulur.<br />
<div class="komut-grikutu"># yum install httpd</div><br />
- Öncelikle php yazılımına mysql desteği verilir.<br />
<div class="komut-grikutu"># yum install php-mysql<br />
# service httpd restart</div><br />
- BASE (Basic Analysis and Security Engine) yazılımının resmi adresinden rpm paketi indirilir.<br />
<div class="komut-grikutu"># wget http://garr.dl.sourceforge.net/sourceforge/secureideas/base-1.4.1-1.noarch.rpm</div><br />
- BASE paketinin kurulumu için bağımlılığı olan paketler tespit edilir.<br />
<div class="komut-grikutu"># rpm -ivh base-1.4.1-1.noarch.rpm<br />
warning: base-1.4.1-1.noarch.rpm: Header V4 DSA signature: NOKEY, key ID e130bd96<br />
error: Failed dependencies:<br />
        php >= 4.0.4 is needed by base-1.4.1-1.noarch<br />
        php-pear >= 1.5.3 is needed by base-1.4.1-1.noarch<br />
        php-pear-Image-Canvas >= 0.3.1 is needed by base-1.4.1-1.noarch<br />
        php-pear-Image-Color >= 1.0.2 is needed by base-1.4.1-1.noarch<br />
        php-pear-Image-Graph >= 0.7.2 is needed by base-1.4.1-1.noarch<br />
        php-pear-Numbers-Roman >= 1.0.2 is needed by base-1.4.1-1.noarch</div><br />
Bağımlılıkların çözülmesi:<br />
<div class="komut-grikutu"># yum install php<br />
# yum install php-pear<br />
# rpm -ivh ftp://download.fedora.redhat.com/pub/epel/5/i386/php-pear-Image-Canvas-0.3.0-3.el5.noarch.rpm<br />
# yum install php-gd<br />
# wget ftp://download.fedora.redhat.com/pub/epel/5/i386/php-pear-Image-Color-1.0.2-3.el5.noarch.rpm<br />
# wget ftp://download.fedora.redhat.com/pub/epel/5/i386/php-pear-Image-Canvas-0.3.1-1.el5.noarch.rpm<br />
# wget ftp://download.fedora.redhat.com/pub/epel/5/i386/php-pear-Image-Graph-0.7.2-2.el5.noarch.rpm<br />
# wget ftp://download.fedora.redhat.com/pub/epel/5/i386/php-pear-Numbers-Roman-1.0.2-2.el5.noarch.rpm<br />
# rpm -ivh php-pear-Image-Color-1.0.2-3.el5.noarch.rpm<br />
# rpm -ivh php-pear-Image-Canvas-0.3.1-1.el5.noarch.rpm<br />
# rpm -ivh php-pear-Image-Graph-0.7.2-2.el5.noarch.rpm<br />
# rpm -ivh php-pear-Numbers-Roman-1.0.2-2.el5.noarch.rpm</div><br />
ve base paketi yüklenir.<br />
<div class="komut-grikutu"># rpm -ivh base-1.4.1-1.noarch.rpm</div><br />
<br />
<b>ADODB kurulumu</b><br />
DAG paket deposundan php-adodb paketi yüklenir.<br />
<div class="komut-grikutu"># rpm -ivh http://rpmforge.sw.be/redhat/el5/en/i386/rpmforge/RPMS/php-adodb-4.81-1.el5.rf.noarch.rpm</div><br />
<br />
<b>BASE Yapılandırması</b><br />
- "http://localhost/base" adresine girilir. "http://localhost/base/setup/index.php" sayfasına otomatik yönlendirileceksiniz. Bu sayfada yazılım ihtiyaçları kontrol ediliyor.<br />
<br />
-Aşağıdaki uyarı alınıyorsa /etc/php.ini dosyasında "error_reporting = E_ALL" satırı "error_reporting = E_ALL & ~E_NOTICE" olarak düzenlenir. Apache yeniden başlatılır. "service httpd restart"<br />
<div class="komut-grikutu">"Your PHP Logging Level is too high to handle the running of BASE!<br />
Please set the 'error_reporting' variable to at least 'E_ALL & ~E_NOTICE' in your php.ini!"</div><br />
- Tüm ihtiyaçlar tamam gözüküyorsa "Continue" düğmesine basılır.<br />
<br />
- Dil seçimi yapılıp, Adodb yolu olarak "/var/www/adodb" verilir.<br />
<br />
- BASE veritabanı yapılandırma ekranında ilgili alanlar uygun şekilde doldurulur.<br />
<div class="komut-grikutu">  Pick a Database type: Mysql<br />
  Database Name: snort_log<br />
  Database Host: localhost<br />
  Database Port: [Boş bırakılır]<br />
  Database Username: acid<br />
  Database Password: acidsifre<br />
  <br />
  Use archive database yanındaki kutu işaretlenir.<br />
<br />
  Database Name: snort_archive<br />
  Database Host: localhost<br />
  Database Port: [Boş bırakılır]<br />
  Database Username: acid <br />
  Database Password: acidsifre<br />
</div><br />
"Submit Query" düğmesine basılır.<br />
<br />
- "Use Authentication System" yanıdaki kutu işaretlenir.<br />
<div class="komut-grikutu">Admin User Name: snortadmin<br />
Password: snortadmin<br />
Full Name: Snort Admin</div><br />
"Submit Query" düğmesine basılır.<br />
<br />
- "Create BASE AG" düğmesine basılarak ek tabloları yaratılır.<br />
<div class="komut-grikutu">Operation  	Description  	Status<br />
BASE tables 	Adds tables to extend the Snort DB to support the BASE functionality<br />
<br />
    * snort_log<br />
    * snort_archive<br />
</div><br />
- Mysql sunucusunda acid kullanıcısını hakları gerekiyorsa arttırılır.<br />
<div class="komut-grikutu">Additional DB permissions<br />
In order to support Alert purging (the selective ability to permanently delete alerts from the database) and DNS/whois lookup caching, the DB user "acid" must have the DELETE and UPDATE privilege on the database "snort_log@localhost"</div><br />
- BASE karşılama ekranında snortadmin kullanıcısı ile giriş yapılabilir.<br />
<br />
<br />
<b>Referanslar:</b><br />
[1] Snort: http://www.snort.org<br />
[2] BASE:  http://base.secureideas.net<br />
[3] Mysql: http://www.mysql.com]]></description>
 <category>Linux - CentOS</category>
<comments>http://LINUX-NASIL.COM/ln/index.php?itemid=7</comments>
 <pubDate>Thu, 27 Nov 2008 00:00:42 -0800</pubDate>
</item><item>
 <title><![CDATA[Centos 4.4 üzerinde DRBD (Distributed Replicated Block Device) Kullanımı]]></title>
 <link>http://LINUX-NASIL.COM/ln/index.php?itemid=6</link>
<description><![CDATA[Bu belgede Centos dağıtımı 4.4 sürümünde DRBD (Distributed Replicated Block Device)  kurulumu anlatılmaktadır.<br><b>Donanımlar:</b><br />
    * Ana sunucu (master): sunucu01.linux-nasil.com, 172.16.0.1, /dev/sda3 (boş disk bölümü)<br />
    * Yedek sunucu (slave): sunucu02.linux-nasil.com, 172.16.0.2, /dev/sda3 (boş disk bölümü) <br />
<br />
<b>DRBD paketlerinin kurulumu</b><br />
Her iki sistemdeki Centos üzerine drbd için aşağıdaki paketler sisteme kurulur.<br />
    * drbd<br />
    * (Kullandığınız kernel için derlenmiş drbd)<br />
<div class="komut-grikutu"># yum install drbd<br />
# yum install kernel-module-drbd-2.6.9-42.0.3.ELsmp</div><br />
<br />
<b>DRBD servisinin ayarlanması</b><br />
Yine her iki sistemde aşağıdaki dosyaya uygun olarak /etc/drbd.conf dosyası düzenlenir.<br />
<div class="komut-grikutu"># nano -w /etc/drbd.conf</div><div class="komut-beyazkutu">resource r0 {<br />
  protocol      C;<br />
  incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f";<br />
<br />
  startup {<br />
    degr-wfc-timeout  120;  ## 2 minutes.<br />
  }<br />
<br />
  disk {<br />
    on-io-error detach;<br />
  }<br />
<br />
  net {<br />
    on-disconnect reconnect;<br />
  }<br />
<br />
  syncer {<br />
    rate       30M;<br />
    group      1;<br />
    al-extents 257;<br />
  }<br />
<br />
  on sunucu01.linux-nasil.com {<br />
    device      /dev/drbd0;<br />
    disk        /dev/sda3;<br />
    address     172.16.0.1:7791;<br />
    meta-disk   internal;<br />
  }<br />
<br />
  on sunucu02.linux-nasil.com {<br />
    device      /dev/drbd0;<br />
    disk        /dev/sda3;<br />
    address     172.16.0.2:7791;<br />
    meta-disk   internal;<br />
  }<br />
<br />
}</div><br />
<br />
<b>DRBD servisinin başlatılması</b><br />
Her iki sistemde drbd servisi başlatılır.<br />
<div class="komut-grikutu"># /etc/init.d/drbd start</div><br />
<br />
<b>DRBD ana sunucusunun (master) belirlenmesi</b><br />
Kontrol için sunucularda cat /proc/drdb komutunu çalıştırabilirsiniz.<br />
<div class="komut-grikutu">cat /proc/drbd<br />
version: 0.7.21 (api:79/proto:74)<br />
SVN Revision: 2326 build by buildcentos@x8664-build.centos.org, 2006-10-07 05:47:44<br />
 0: cs:Connected st:Secondary/Secondary ld:Inconsistent<br />
    ns:0 nr:0 dw:0 dr:0 al:0 bm:10980 lo:0 pe:0 ua:0 ap:0<br />
</div><br />
<br />
Master olarak seçtiğimiz sunucuda aşağıdaki komut çalıştırılır.<br />
<div class="komut-grikutu"># drbdadm -- --do-what-I-say primary all</div><br />
<br />
Bu komuttan sonra Ana sunucuda (master) durum;<br />
<div class="komut-grikutu"># cat /proc/drbd<br />
version: 0.7.21 (api:79/proto:74)<br />
SVN Revision: 2326 build by buildcentos@x8664-build.centos.org, 2006-10-07 05:47:44<br />
 0: cs:Connected st:Primary/Secondary ld:Consistent<br />
    ns:2856 nr:36914744 dw:36917600 dr:94 al:2 bm:2255 lo:0 pe:0 ua:0 ap:0<br />
</div><br />
<br />
Bu komuttan sonra Yedek sunucuda (slave) durum;<br />
<div class="komut-grikutu"># cat /proc/drbd<br />
version: 0.7.21 (api:79/proto:74)<br />
SVN Revision: 2326 build by buildcentos@x8664-build.centos.org, 2006-10-07 05:47:44<br />
 0: cs:Connected st:Secondary/Primary ld:Consistent<br />
    ns:90168164 nr:2888 dw:169808 dr:90093911 al:49 bm:16666 lo:0 pe:0 ua:0 ap:0<br />
</div><br />
<br />
<b>Referanslar:</b><br />
[1] http://www.drbd.org<br />
[2] http://en.wikipedia.org/wiki/DRBD<br />
[3] http://www.linux-ha.org/DRBD]]></description>
 <category>Linux - CentOS</category>
<comments>http://LINUX-NASIL.COM/ln/index.php?itemid=6</comments>
 <pubDate>Wed, 20 Aug 2008 13:41:46 -0700</pubDate>
</item>
  </channel>
</rss>