<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>EAK Just Debian Guru Page :)</title>
	<atom:link href="http://eakcorp.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://eakcorp.com</link>
	<description>Just another Linux weblog</description>
	<lastBuildDate>Wed, 24 Mar 2010 08:31:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>iptables -4- States &amp; Connection Tracking</title>
		<link>http://eakcorp.com/2010/03/iptables-4-states-connection-tracking/</link>
		<comments>http://eakcorp.com/2010/03/iptables-4-states-connection-tracking/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 08:29:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[iptables]]></category>

		<guid isPermaLink="false">http://eakcorp.com/?p=242</guid>
		<description><![CDATA[http://alper.web.tr/2009/04/28/iptables-4-states-connection-tracking/
Statefull firewall ne demek daha önce değinmiştik. şimdi iptables’ile bunun nasıl gerçekleştirildiğine daha yakından bakalım.
Statefull firewaling için linux State machine dediğimiz olaydan daha çok tracking machine olarak çalışır ( iz sürme makinası ), Sıksık ikisinin manası birbiri ile karıştırılsada aslında farklıdır. Yazıyı okuyup nasıl çalıştığı hakkında daha iyi bilgi edindiğinizde bunun önemini daha iyi anlayacağınızı [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://alper.web.tr/2009/04/28/iptables-4-states-connection-tracking/">http://alper.web.tr/2009/04/28/iptables-4-states-connection-tracking/</a></p>
<p>Statefull firewall ne demek daha önce değinmiştik. şimdi iptables’ile bunun nasıl gerçekleştirildiğine daha yakından bakalım.</p>
<p>Statefull firewaling için linux State machine dediğimiz olaydan daha çok tracking machine olarak çalışır ( iz sürme makinası ), Sıksık ikisinin manası birbiri ile karıştırılsada aslında farklıdır. Yazıyı okuyup nasıl çalıştığı hakkında daha iyi bilgi edindiğinizde bunun önemini daha iyi anlayacağınızı ümit ediyorum.</p>
<p><span id="more-242"></span></p>
<p><strong>Connection Tracking :</strong></p>
<p><strong><br />
</strong></p>
<p>Linuxda connection tracking bazı özel uygulamalar haric ( irc, ftp vb ), ip_conntrack modülü ile sağlanır. hemen modüle yakından göz atalım.</p>
<p>bash-3.2#<strong> modprobe ip_conntrack</strong><br />
bash-3.2#<br />
cat /proc/net/ip_conntrack dediğimizde şu şekilde bir çıktı alırız.</p>
<p>bash-3.2#<strong> cat /proc/net/ip_conntrack</strong><br />
tcp      6 98 TIME_WAIT src=10.70.20.3 dst=78.129.231.111 sport=60842 dport=80 packets=9 bytes=3980 src=78.129.231.111 dst=10.70.20.3 sport=80 dport=60842 packets=8 bytes=1154 [ASSURED] mark=0 secmark=0 use=1<br />
tcp      6 38 TIME_WAIT src=10.70.20.3 dst=78.129.231.111 sport=60841 dport=80 packets=9 bytes=3804 src=78.129.231.111 dst=10.70.20.3 sport=80 dport=60841 packets=8 bytes=1154 [ASSURED] mark=0 secmark=0 use=1<br />
tcp      6 431756 ESTABLISHED src=10.70.20.3 dst=93.94.250.210 sport=46845 dport=80 packets=10 bytes=1258 src=93.94.250.210 dst=10.70.20.3 sport=80 dport=46845 packets=8 bytes=10356 [ASSURED] mark=0 secmark=0 use=1<br />
tcp      6 291 ESTABLISHED src=213.219.249.66 dst=10.70.20.3 sport=6667 dport=38699 packets=419 bytes=153150 src=10.70.20.3 dst=213.219.249.66 sport=38699 dport=6667 packets=459 bytes=29964 [ASSURED] mark=0 secmark=0 use=1<br />
bash-3.2#</p>
<p>Biraz karışık gibi görünsede aslında oldukça basit, en alttaki freenode bağlantımızı alıp yakından inceleyelim.</p>
<p>tcp      6 291 ESTABLISHED src=213.219.249.66 dst=10.70.20.3 sport=6667 dport=38699 packets=419 bytes=153150 src=10.70.20.3 dst=213.219.249.66 sport=38699 dport=6667 packets=459 bytes=29964 [ASSURED] mark=0 secmark=0 use=1</p>
<p>Girdimiz bize ne diyor ?</p>
<ul>
<li>Bir protokolümüz var ve bu TCP dir.</li>
<li>6 yine TCP protokolüne  işaret edip tcp yerine decimal code olarak işaret edilmiş.</li>
<li>Bu conntrack girdisi ne kadar süreyle kalmalı ( yaşamalı ) 291 sn eğer linux üzerinden söz konusu bağlantı ile ilgili hiç bir trafik geçmezse azalarak 0 a ulaştığında bu girdi silinir. (CLOSED )</li>
<li>ESTABLISHED TCP bağlantının gerçekleştirildiğini ve iki nokta arasında data akışı olduğunu gösteriyor ( daha sonra ayrıntılarına gireceğiz. )</li>
<li>src : paketi gönderen kaynak adresi, dikkat edilmesi gereken konu freenode server’a irc için bağlantı isteğini ilk ben göndermeme rağmen, kaynak freenode hedef benim local ip adresim görünüyor</li>
<li>dst : paketin gideceği hedef adres benim local ip adresim.</li>
<li>sport : bağlantı yapan kaynak adresdeki kaynak port numarası yani freenode üzerinde irc server’inden istek geliyor.</li>
<li>dport : hedef tcp portu</li>
<li>packets : 459 bytes 1 tcp paketinin boyutu</li>
<li>bytes : bu bağlantı için gelen byte miktarı</li>
<li>Buradan sonrası yukarıdakilerle aynı farkı ise tcp connection iki taraflı olduğu için busefer bizden freenode a giden bağlantının bilgilerini gösteriyor.</li>
<li>mark=0 secmark=0 use=1 şu an için bizi ilgilendirmiyor.</li>
<li>ASSURED bağlantının iki taraftanda yapılıp gerçekleştiğini belirtiyor. İstek yapılıp cevap dönmemiş olsaydı UNREPLIED olarak işaretlenecekti.</li>
</ul>
<p>iptables ile statefull firewalling sanıldığından daha kompleks bir konudur. Eğer webde biraz araştırma yapacak olursanız forumların bunun la ilgili yaşanan problemlerle dolup taştığını gözlemlersiniz. Sorun linux da herhangi bir eksiklik olmasından değl, konunun tam olarak anlaşılmamasından dolayı çıkmaktadır. bu yüzden öncelikle ip_conntrack modülünün yapılandırılmasına daha yakından göz atalım.</p>
<p><strong>/proc/sys/net/ipv4/netfilter/ip_conntrack_max</strong></p>
<p>Aynı anda kaç adet connection tracking yapabileceğimizi belirtir. ” <strong>cat /proc/net/ip_conntrack | wc -l </strong>” diyerek anlık kaç bağlantı olduğunu görebilirsiniz.</p>
<p>” <strong>cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max</strong> ” izin verilen maximum girdiyi gösterir. Aynı çıktıya sysctl ile bakmak için ” <strong>sysctl -n net.ipv4.netfilter.ip_conntrack_max </strong>” komutunu kullanabilirsiniz. Ne kadara izin verilmesi gerektiğinin gerçekten bir ölçüsü yok, resferans olmamak kayıdı ile normal bir web kullanıcısını 50 yi geçmediğini, torrent kullanıcısının 250 ye erişebildiğini söyleyebilirim. Eğer bir web server imiz varsa her bir kullanıcının 1 adet girdi işgal edeceğini belirtmeye gerek yok sanırım. söz konusu limit dolduğunda “ip_conntrack: table full, dropping packet.” hatası alınır.</p>
<p>Connection tracking RAM ve CPU harcamasında hiç te iktisatlı değildir. Düşük limit vermek paketlerimizin drop olmasına yol açarken yüksek limit vermekte sistem kaynaklarımızın bitmesine sebebiyet verebilir. 1 gb ram için bu değer “net.ipv4.netfilter.ip_conntrack_max = 65536″ olarak görülebilir. Peki 1 gb ram’imiz yoksa ? connection tracking kernel’de çalıştığı için swap kullanamaz. Bu değeri’de elimizde bulunan boş ram miktarına göre optimize etmeliyiz. Table dolduğunda yeni paketler droplanmakla beraber daha önceden yapılmış bağlantılar işlerine devam edeceklerdir. Söz konusu sorun özellikle şirketlerde firma tarafından tavsiye edilen, makimum client adedinden daha fazlasının bağlanmış olduğu linux tabanlı ADSL modem/router larda yada networkde kaynakları tüketen bir virus olduğunda aktif bağlantıların ( irc download rdp vb. ) işlerine devam edebildiği halde yeni bir bağlantıya izin vermemesi şeklinde görülür. örneğin yeni bir websayfası açıldığında internet bağlantınız yokmuş gibi sayfa görüntülenemiyor hatası alırsınız ama hali hazırda devam eden işlemleriniz kesintiye uğramaz.</p>
<p>ip_conntrack_max değerinin ram’e göre hesaplama formülü :</p>
<p>CONNTRACK_MAX = RAMSIZE (in bytes) / 16384 / (x / 32)</p>
<p>Buradaki X değeri CPU architecture gösterir. 32bit veya 64 bit gibi<br />
örneğin 1gb ram için CONTRACK değeri 65536 32 bit sistemler için 64 bit sistemler için ise 131072 dir.( firewall sistemleri 64 bit üzerine kurmak için jiffie hariç ikinci bir sebep )</p>
<p><strong>echo “yenideğer” &gt; /proc/sys/net/ipv4/netfilter/ip_conntrack_max </strong>diyerek yeni değeri girebilirsiniz. yada sysctl kullanarak : <strong>sysctl net.ipv4.netfilter.ip_conntrack_max=65536 </strong>gibi. Bu değeri /etc/sysctl.conf içerisine girerek her açılışta aktif olmasını sağlayabilirsiniz.</p>
<p>.</p>
<p><strong>Kullanıcı Tarafındaki State’ler :</strong></p>
<p><strong><br />
</strong></p>
<p>Connection tracking tablolarındaki state’ler ; kullanılan protokole bağlı olarak bir çok değer içerebilir. bunun yanında –state parametresi ile iptables’kullanabileceğimiz ana state ( durum)’lar mevcuttur. bunlar.</p>
<p><strong>NEW :</strong></p>
<p>Örneğin tcp bağlantıda SYN isteği gönderilip herhangi bir data geri dönmemişse NEW şeklinde bir state alırız. Ne yazıkki durum her zaman bu şekilde değildir. Bazı durumlarda, SYN olmasada state table a yeni girmiş paketler NEW olarak adlandırılabilirler. Diğer firewallarla yapılan bağlantılar kaybolduğunda, Bağlantı timeout olduğu halde oturumun kapatılmadığı gibi durumları tesbit etmek için kullanılabilir.</p>
<p><strong>ESTABLISHED :</strong></p>
<p>En basit anlatımıyla Bir host diğer bir host a bir paket gönderip diğer taraf ona cevap verdiğinde paketin State table’da durumu NEW olmaktan çıkarak ESTABLISHED durumuna geçer. protokole göre değişik şartlar gerekebilir. örneğin : ICMP reply mesajları yeterlidir.</p>
<p><strong>RELATED :</strong></p>
<p>Hali hazırda State table içerisinde ESTABLISHED olarak bilinen bir bağlantı varsa, Server tarafından ikinci bir bağlantı yapılmaya çalışılıp kernel tarafından bunun söz konusu ESTABLISHED bağlantı ile alakalı olduğu anlaşılırsa RELATED state durumu söz konusu olur. basitleştirmek için örnek verecek olursak : dcc için irc modülü yüklendiğinde kernel DCC isteği geldiğinde bunun irc bağlantısı için olduğunu çözümleyerek RELATED olarak işaretlemektedir. ( bu konuya daha sonra ayrıntılı değineceğiz <em>Kompleks bağlantılar</em> )</p>
<p><strong>INVALID :</strong></p>
<p>Bu Bilinen diğer State kavramlarına giren paketleri belirtmek için kullanılır. genellikle sistem ram i tükendiğinde veya, bilinmeyen bir ICMP error mesajı dönüldüğü gibi sebeplerden oluşur. genel olarak bu durumdaki paketlerin droplanması iyi bir yöntemdir.</p>
<p><strong>UNTRACKED :</strong></p>
<p>iptables tarafından -j NOTRACK olarak işaretlenmiş paketlerdir. bu durumda paketlerin Statelerinin izlenemeyeceğini göz ardı etmeyiniz. ( Statefull firewaling ve nat helpers kullanılamaz bu pakette )</p>
<p>.</p>
<p><strong>TCP Bağlantılar :</strong></p>
<p><strong><br />
</strong></p>
<p>Bir TCP bağlantısı her zaman için 3 way handshaking  ( 3 yollu el sıkışması ) ile oluşur. Önce bir host diğerine SYN isteği gönderir. İstek gönderilen host SYN/ACK ile geri döner, son olarakta ilk isteği yapan host ACK göndererek bağlantı kurulmuş olur. Linux connection tracking ile buna biraz daha yakından bakalım.</p>
<p>Kullanıcı tarafındaki stateler’de de gördüğümüz gibi linux connection tracking kullanıcı bakış açısıyla gerçekten TCP bağlantıları bu şekilde takip etmez. Host SYN isteği gönderdiğinde kullanıcı için bu NEW karşı taraf SYN/ACK gönderdiğinde ise ESTABLISHED bağlantı olarak adlandırılır ( işaretlenir )</p>
<p><img src="http://alper.web.tr/wp-content/uploads/iptables/tcpcontrack1.png" alt="tcp1" width="720" height="316" /></p>
<p>Bu resim gerçektende TCP connection tracking’in nasıl çalıştığını basit ve hoş bir şekilde anlatıyor. Şimdi ” <strong>cat /proc/net/ip_conntrack</strong> ” çıktısında görülecek olan çıktılara göz atalım. Host un SYN paketi gönderip henüz cevap almadığı durumda aşağıdaki gibi bir çıktı alırız.</p>
<p>tcp     6 117 SYN_SENT src=192.168.1.5 dst=192.168.1.35 sport=1031 \<br />
dport=23 [UNREPLIED] src=192.168.1.35 dst=192.168.1.5 sport=23 \<br />
dport=1031 use=1</p>
<p>Gördüğünüz üzere, SYN_SENT flag’i atanmış durumda, henüz bir cevap gelmediği içinde UNREPLIED olarak görünüyor. Şimdi SYN gönderilen Host dan SYN/ACK geldiği duruma göz atalım.</p>
<p>tcp     6 57 SYN_RECV src=192.168.1.5 dst=192.168.1.35 sport=1031 \<br />
dport=23 src=192.168.1.35 dst=192.168.1.5 sport=23 dport=1031 \<br />
use=1</p>
<p>SYN_RECV , bize SYN paketimizin karşıya doğru olarak ulaştırılıp,SYN/ACK doğru olarak yeniden döndüğünü gösteriyor, yalnız 3 way handshaking hala tamamlanmadığı için ESTABLISHED duruma geçmedi,</p>
<p>tcp     6 431999 ESTABLISHED src=192.168.1.5 dst=192.168.1.35 \<br />
sport=1031 dport=23 src=192.168.1.35 dst=192.168.1.5 \<br />
sport=23 dport=1031 [ASSURED] use=1</p>
<p>Ve sonunda, ACK paketi döndürülerek, bağlantının gerçekleştiğini ve 3 way handshake’in tamamlandığını ESTABLISHED flag’indan anlıyoruz. Bağlantının gerçekleştiği ASSURED flag i alarak temin edilmiş oluyor.</p>
<p>Peki TCP bağlantımız sonlanırken ne olur ? yine 1 resim kullanımı anlamamız için  en kısa yol olacaktır.</p>
<p><img src="http://alper.web.tr/wp-content/uploads/iptables/tcpcontrack2.png" alt="tcp2" /></p>
<p>Resimde gayet net olarak görüldüğü gibi normal şartlar altında sadece son ACK paketi gidene kadar bağlantı hala ESTABLISHED kalıyor. Normal şartlar harici bir bağlantının bitirildiği durumlarda mevcuttur. örneğin TCP/RST gönderildiğinde bağlantı anında sonlanacak yani CLOSED durumuna geçecektir. CLOSED’ dan sonra contrack içerisinde bağlantı TIME_WAIT flag’i alır. TIME_WAIT  sisteme pakette olan herhangi bir gecikmeye karşı, işini tamamlaması için bir buffer amacı ile konulmuştur. default olarak genel linux sürümlerinde süresi 2 dakikadır.</p>
<p>TCP RST paketi geldiğinde bağlantı 10 saniye içerisinde kapatılır. bununla ilgili değerlere bakmak ve değiştirebilmek için Sistemimizde bulunan timeout değerlerine bakalım :</p>
<p><strong>contrack timeouts :</strong></p>
<p><strong>ESTABLISHED</strong></p>
<p>bash-3.2#<strong> cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established</strong><br />
432000<br />
bash-3.2#<br />
432000 saniye = 5 gün</p>
<p><strong>SYN_SENT</strong></p>
<p>bash-3.2#<strong> cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_syn_sent</strong><br />
120<br />
bash-3.2#</p>
<p><strong>SYN_RECV</strong></p>
<p>bash-3.2# <strong>cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_syn_recv</strong><br />
60<br />
bash-3.2#</p>
<p><strong>FIN_WAIT</strong></p>
<p>bash-3.2# <strong>cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_fin_wait</strong><br />
120<br />
bash-3.2#</p>
<p><strong>TIME_WAIT</strong></p>
<p>bash-3.2# <strong>cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_time_wait</strong><br />
120<br />
bash-3.2#</p>
<p><strong>CLOSE</strong></p>
<p>bash-3.2# <strong>cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close</strong><br />
10<br />
bash-3.2#</p>
<p><strong>CLOSE_WAIT</strong></p>
<p>bash-3.2# <strong>cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close_wait</strong><br />
60<br />
bash-3.2#</p>
<p><strong>LAST_ACK</strong></p>
<p>bash-3.2# <strong>cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_last_ack</strong><br />
30<br />
bash-3.2#</p>
<p>yukardaki değerleri /proc içerisinden değiştirmeniz mümkün olduğu gibi sysctl ile de ulaşmak mümkündür ( Kişisel tercihim sysctl kullanılması yönünde  )</p>
<p><strong>sysctl -a | grep tcp_time</strong></p>
<p>conntrack’in tcp flaglarına userland statelerde bakmaması genel bir dez avatajdır. örneğin iptables ile NEW flag’ina izin verdiğinizde ilk gelen bağlantı bir syn paketi olmasa bile NEW olarak algılanacaktır. bununla ilgili iptables kuralları ile durumu kontrol atlına alabileceğiniz gibi, firewall harici bir çözüm daha vardır ;</p>
<p>bash-3.2# <strong>cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_loose</strong><br />
1<br />
bash-3.2#</p>
<p>söz konusu değeri proc içerisinden veya sysctl ile 0 değerine aldığınızda, SYN flag’i almamış tüm tcp paketleri kernel tarafından düşürülecektir. tcp_window_tracking extension paketi daha önce patch-o-matic ile beraber eklenmesi gereksede güncel bir çok linux sürümlerinde default gelmektedir.</p>
<p>.</p>
<p><strong>UDP Bağlantılar :</strong></p>
<p><strong><br />
</strong></p>
<p>UDP bağlantılar yapıları itibari ile statefull bağlantılar değillerdir. Yinede buna rağmen elde edilen verilere dayanarak linux kerneli bunu gerçekleştirmeye çalışır. Her nekadar basit bir yöntem olsada bir dereceye kadar firewall ların güvenliklerini arttırmakta yeterlidir.</p>
<p><img src="http://alper.web.tr/wp-content/uploads/iptables/udpcontrack1.png" alt="udp" width="720" height="316" /></p>
<p>Yukarıda da göreceğiniz gibi yenibir UDP bağlantı yapılmaya çalışıldığında NEW durumuna, karşı taraftan cevap geldiği anlaşıldığında ise basitçe ESTABLISHED durumuna geçer. paket header’larında bununla ilgili bir girdi olmadığı için mantıksal olarak yapılır. UDP paket ilk gönderildiğinde ( istek yapıldığında ) conntrack içerisinde aşağıdaki gibi bir veri elde ederiz.</p>
<p>udp     17 20 src=192.168.1.2 dst=192.168.1.5 sport=137 dport=1025 \<br />
[UNREPLIED] src=192.168.1.5 dst=192.168.1.2 sport=1025 \<br />
dport=137 use=1<br />
görüldüğü üzere UNREPLIED olarak işaretlenmiş. karşı taraftan ilk cevap geldiğinde ise :</p>
<p>udp     17 170 src=192.168.1.2 dst=192.168.1.5 sport=137 \<br />
dport=1025 src=192.168.1.5 dst=192.168.1.2 sport=1025 \<br />
dport=137 [ASSURED] use=1<br />
Conntrack paketi ASURED olarak işaretliyor. ikisi arasındaki temel farklar, UNREPLIED durumundaki paket için timeout süresi 20 ms, ASURED durumundaki ise 180 ms ( default )’dir. ESTABLISHED yazısı gelmesede UNREPLIED in silinmesi established bağlantı kurulduğuna işaret eder.</p>
<p>UDP paketlerde oturum kapatmak için TCP de bulunan FIN ve RST gibi kavramlar olmadığı için, ESTABLISHED ve UNREPLIED paketler için timeout süreleri atanmıştır ve başka bir parametre içermezler. Bu süreçler zarfında herhangi bir paket iletişimi olmazsa conntrack sonlandırılır.</p>
<p><strong>UDP Time out süreleri için sysctl değişkenleri :</strong></p>
<p>net.netfilter.nf_conntrack_udp_timeout = 30<br />
net.netfilter.nf_conntrack_udp_timeout_stream = 180</p>
<p>stream ESTABLISHED için, diğeri ise UNREPLIED içindir. aynı şekilde /proc altındanda veya sysctl ile bu değişkenler tanımlanabilir.</p>
<p>bash-3.2# <strong>cat /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_timeout</strong><br />
30<br />
bash-3.2# <strong>cat /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_timeout_stream</strong><br />
180<br />
bash-3.2#</p>
<p>.</p>
<p><strong>ICMP bağlantılar :</strong></p>
<p><strong><br />
</strong></p>
<p>ICMP protokolü kontrol amaçlı bir protokol olduğu için asla ESTABLISHED bir bağlantıya ihtiyaç duymaz. Bu yüzden statefull bir paket değildir. Yine UDP’de olduğu gibi netfilter mantık yoluyla ICMP paketlerini track eder.</p>
<p><img src="http://alper.web.tr/wp-content/uploads/iptables/icmpcontrack1.png" alt="icmp1" width="720" height="335" /></p>
<p>Resimde de görüldüğü üzere, Server üzerinden ICMP echo isteği ( ping ) istemciye gönderiliyor. Bu durumda conntrack paketi UNREPLIED olarak işaretler. echo reply geri döndüğünde ise bağlantı ESTABLISHED duruma geçer.  şimdi UNREPLIED için girdimize bakalım.</p>
<p>icmp     1 25 src=192.168.1.6 dst=192.168.1.10 type=8 code=0 \<br />
id=33029 [UNREPLIED] src=192.168.1.10 dst=192.168.1.6 \<br />
type=0 code=0 id=33029 use=1</p>
<p>Değişkenler şimdiye kadar gördüklerimizle aynı sanırım kolaylıkla çözümleyebilirsiniz. Burada fazladan eklenmiş olan iki adet alan mevcut. code ve id code standart ICMP kodlarına tekamül eder. type=8 echo isteğini gösteriyor.</p>
<p><strong>ICMP kodları.</strong></p>
<p>Type Name Reference<br />
—- ————————- ———<br />
0 Echo Reply [RFC792]<br />
1 Unassigned [JBP]<br />
2 Unassigned [JBP]<br />
3 Destination Unreachable [RFC792]<br />
4 Source Quench [RFC792]<br />
5 Redirect [RFC792]<br />
6 Alternate Host Address [JBP]<br />
7 Unassigned [JBP]<br />
8 Echo [RFC792]<br />
9 Router Advertisement [RFC1256]<br />
10 Router Solicitation [RFC1256]<br />
11 Time Exceeded [RFC792]<br />
12 Parameter Problem [RFC792]<br />
13 Timestamp [RFC792]<br />
14 Timestamp Reply [RFC792]<br />
15 Information Request [RFC792]<br />
16 Information Reply [RFC792]<br />
17 Address Mask Request [RFC950]<br />
18 Address Mask Reply [RFC950]<br />
19 Reserved (for Security) [Solo]<br />
20-29 Reserved (for Robustness Experiment) [ZSu]<br />
30 Traceroute [RFC1393]<br />
31 Datagram Conversion Error [RFC1475]<br />
32 Mobile Host Redirect [David Johnson]<br />
33 IPv6 Where-Are-You [Bill Simpson]<br />
34 IPv6 I-Am-Here [Bill Simpson]<br />
35 Mobile Registration Request [Bill Simpson]<br />
36 Mobile Registration Reply [Bill Simpson]<br />
37 Domain Name Request [RFC1788]<br />
38 Domain Name Reply [RFC1788]<br />
39 SKIP [Markson]<br />
40 Photuris [RFC2521]<br />
41 ICMP messages utilized by experimental [RFC4065]<br />
mobility protocols such as Seamoby<br />
42-255 Reserved [JBP]</p>
<p>ICMP kodlarının ayrıntılarına burada daha fazla girmek istemiyorum. Sanırım yukarıdaki tablo yeterli referans olur. ICMP ID alanı ise, tüm ICMP paketlerinin içerisinde, ne zaman gönderildiği,alıcının nezaman aldığı parametrelerine bağlı olarak doldurulur. Bu şekilde alıcının doğru icmp paketine cevap verdiği doğrulanmış olur. a bilgisayarından b bilgisayarına aynı anda 2 adet icmp echo isteği gönderdiğimizde TCP gibi port kavramı olmadığı için ID field olmadan bu paketlerin birbirinden ayrılması imkansız olurdu. Pakete ICMP REPLIED mesajı geldiğinde ise ESTABLISHED duruma geçer.</p>
<p>ICMP nin temel kullanımı oldukça basit olsada diğer bir kullanım yeri daha vardır.TCP veya UDP bağlantı kurmaya çalıştığımızda karşı tarafta herhangi bir şekilde paketin ulaşamaması durumunda HOST veya router paketin akibeti hakkında ICMP cevabı döner örneğin host-unrechable ( host ulaşılamaz ).</p>
<p><img src="http://alper.web.tr/wp-content/uploads/iptables/icmpcontrack2.png" alt="icmp2" width="720" height="316" /></p>
<p>Resimden de anlaşılacağı üzere. istemcimiz bir SYN isteği göndererek server üzerinde bir TCP hizmeti almak istiyor. söz konusu network ulaşılamadığı için server ICMP NET Unreach mesajı geri gönderiyor. Söz konusu mesajı alan istemci Abort ederek oturumu sonlandırıyor. bu durumda söz konusu ICMP paketi için conntrack girdisi RELATED olarak işaretlenir.</p>
<p><img src="http://alper.web.tr/wp-content/uploads/iptables/icmpcontrack3.png" alt="icmp3" width="720" height="316" /></p>
<p>Benzer bir durum yukardaki resimde görüldüğü üzere UDP içinde geçerlidir. UDP kendisi Statefull bir protokol olmasada Server üzerinde firewall veya farklı bir yönetimsel engel ile karşılaşılıp server ICMP Net Prohibited ( yasaklanmış) mesajı dönebilir. bu durumdada ICMP paketi RELATED olarak işaretlenerek client üzerinde UDP oturumu sonlandırılır.</p>
<p><strong>ICMP için timeout parametresi /proc altında :</strong></p>
<p>bash-3.2# <strong>cat /proc/sys/net/ipv4/netfilter/ip_conntrack_icmp_timeout</strong><br />
30<br />
bash-3.2#</p>
<p>yani 30 saniye sysctl ile ise :</p>
<p>bash-3.2# <strong>sysctl -n net.ipv4.netfilter.ip_conntrack_icmp_timeout</strong><br />
30<br />
bash-3.2#</p>
<p>Şeklindedir.</p>
<p>.</p>
<p><strong>Varsayılan bağlantılar :</strong></p>
<p><strong><br />
</strong></p>
<p>Bazen bir paketin herhangi bir sınıfa conntrack tarafından sınıflandırılamadığı durumlarda default connections ( var sayılan bağlantılar ) için geçerli ayarlar dikkate alınır. kullanılan protokole ( örneğin ETBLT, MUX and EGP. ) ve link e göre ayarlama gerektiği durumlar olabilir.</p>
<p>proc değeri :</p>
<p>bash-3.2# <strong>cat /proc/sys/net/ipv4/netfilter/ip_conntrack_generic_timeout</strong><br />
600<br />
bash-3.2#<br />
<em>yeni kernellerde ( 2.6.29 örneğin ) daha eskilerde ise “/proc/sys/net/ipv4/netfilter/ip_ct_generic_timeout” olarak rastlanabilir.</em></p>
<p>sysctl ile ise :</p>
<p>bash-3.2# <strong>sysctl -n net.ipv4.netfilter.ip_conntrack_generic_timeout</strong><br />
600<br />
bash-3.2#</p>
<p>Yani 10 dakika</p>
<p>.</p>
<p><strong>Kompleks bağlantılar :</strong></p>
<p><strong><br />
</strong></p>
<p>Bazı bağlantıların takibi oldukça kompleksdir. Örneğin ftp bağlantıları, ftp client’i ilk önce ftp control session olarak bilinen bir bağlantı kurar (TCP Port 21 ), buraya kadar yukarıda gördüğümüz standart TCP bağlantı ile aynıdır. Daha sonra ftp iki türlü yapılıyor olabilir aktif veya pasif ftp. Aktif ftp bağlantısı yapıldığında client bağlandıktan sonra server’a yeni bir port ve ip adresi bildirir. ftp client söz konusu portu açar ve server in bu portdan yeni bir bağlantı kurması için beklemeye başlar. söz konusu açılan port 1024-65535 arasında  rasgele seçilir. FTP client in istemiş olduğu data bu port üzerinden server in sağladığı bağlantı üzerinden gönderilir. Bu durumda firewall’in yeni oluşturulacak bağlantı portları hakkında bilgisi yoktur. Söz konusu bilgiler paket header içerisinde değil payload data ( server e gönderilen bilgi ) içerisinde bulunur. Normal şartlar altında server’in yeni oluşturmak istediği TCP bağlantı firewall tarafından engellenecektir. FTP connection tracking modülü söz konusu port ve ip bilgilerini data içerisinden alarak Server üzerinden gelen paketleri RELATED olarak işaretleyerek bu durumun önüne geçer.</p>
<p><img src="http://alper.web.tr/wp-content/uploads/iptables/ftpcontrack1.png" alt="ftp1" width="720" height="335" /></p>
<p>Resimde görüldüğü gibi FTP için server in gönderdiği SYN isteği RELATED olarak işaretlendi. takibinde SYN/ACK oluşması ile ESTABLISHED durumuna geçti.</p>
<p>Pasif FTP bağlantılarda ise tersi bir durum söz konusudur. Client FTP bağlantısını sağlayıp pasive mode’a geçtikten sonra Data aktarımları 20 nolu port ( FTP-DATA port ) üzerinden gerçekleştirilir.Data aktarımları için 20 nolu port üzerinden yapılan bağlantılar yine RELATED olarak işaretlenir.</p>
<p><img src="http://alper.web.tr/wp-content/uploads/iptables/ftpcontrack2.png" alt="ftp2" width="720" height="316" /></p>
<p>Linux altında şekilde olduğu gibi bir yapı oluşturabilmek için ftp connection tracking modulü olan ftp conntrack modülünü yüklememiz gerekir.</p>
<p>bash-3.2# <strong>modprobe ip_conntrack_ftp</strong><br />
bash-3.2#</p>
<p>Elbette Bu şekilde kompleks bağlantı sadece FTP için geçerli değildir. söz konusu conntrack modullerinden sisteminizde hangilerine sahip olduğuna şu şekilde bakabilirsiniz.</p>
<p>bash-3.2# <strong>cat /proc/config.gz | gunzip | grep CONNTRACK</strong><br />
CONFIG_NF_CONNTRACK=m<br />
CONFIG_NF_CONNTRACK_MARK=y<br />
CONFIG_NF_CONNTRACK_SECMARK=y<br />
CONFIG_NF_CONNTRACK_EVENTS=y<br />
CONFIG_NF_CONNTRACK_AMANDA=m<br />
CONFIG_NF_CONNTRACK_FTP=m<br />
CONFIG_NF_CONNTRACK_H323=m<br />
CONFIG_NF_CONNTRACK_IRC=m<br />
CONFIG_NF_CONNTRACK_NETBIOS_NS=m<br />
CONFIG_NF_CONNTRACK_PPTP=m<br />
CONFIG_NF_CONNTRACK_SANE=m<br />
CONFIG_NF_CONNTRACK_SIP=m<br />
CONFIG_NF_CONNTRACK_TFTP=m<br />
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m<br />
CONFIG_NF_CONNTRACK_IPV4=m<br />
CONFIG_NF_CONNTRACK_PROC_COMPAT=y<br />
CONFIG_NF_CONNTRACK_IPV6=m<br />
bash-3.2#</p>
<p>Kompleks bağlantılar sadece statefull firewalling için değil aynı zamanda NATD arkasında çalışan clientler için de geçerlidir. söz konusu istemcilerin sağlıklı çalışmaları için NETFILTER natd modulleride içerir.</p>
<p>bash-3.2# <strong>cat /proc/config.gz | gunzip | grep CONFIG_NF_NAT_</strong><br />
CONFIG_NF_NAT_NEEDED=y<br />
CONFIG_NF_NAT_SNMP_BASIC=m<br />
CONFIG_NF_NAT_PROTO_DCCP=m<br />
CONFIG_NF_NAT_PROTO_GRE=m<br />
CONFIG_NF_NAT_PROTO_UDPLITE=m<br />
CONFIG_NF_NAT_PROTO_SCTP=m<br />
CONFIG_NF_NAT_FTP=m<br />
CONFIG_NF_NAT_IRC=m<br />
CONFIG_NF_NAT_TFTP=m<br />
CONFIG_NF_NAT_AMANDA=m<br />
CONFIG_NF_NAT_PPTP=m<br />
CONFIG_NF_NAT_H323=m<br />
CONFIG_NF_NAT_SIP=m<br />
bash-3.2#</p>
<p>Linux dağıtımınızda ihtiyacç duyduğunuz bir conntrack modülü mevcut değilse patch-o-matic ile kurabilirsiniz.</p>
<p><strong>Optimizasyon :</strong></p>
<p>Yazımızın başındada belirttiğimiz gibi conntrack gerçekten cpu ve ram canavarı haline dönüşebilir. İyi bir firewall planlamasında, Bağlantı izleme ve Statefull firewalling özelliklerine ihtiyaç duymadığımız, yada elimizdeki hardware’in kaldıramayacağı ölçüde yük getiren hizmetleri NOTRACK olarak işaretlemeliyiz. NOTRACK kullanımına daha sonraki yazılarımda ayrıntılı olarak değineceğim</p>
]]></content:encoded>
			<wfw:commentRss>http://eakcorp.com/2010/03/iptables-4-states-connection-tracking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Move Apache domlogs to second disk drive or any where</title>
		<link>http://eakcorp.com/2010/02/move-apache-domlogs-to-second-disk-drive-or-any-where/</link>
		<comments>http://eakcorp.com/2010/02/move-apache-domlogs-to-second-disk-drive-or-any-where/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 19:34:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sunucu]]></category>

		<guid isPermaLink="false">http://eakcorp.com/?p=240</guid>
		<description><![CDATA[Its a simple job and recommended appraoch is to stop Apache before moving domlogs so it will bring downtime. Here is how you can do it:

Quote:
service httpd stop
ps ax &#124; grep httpd  (Verify that no httpd process still running)
cd /usr/local/apache
mkdir /home2/apache ( Considering /home2 as your new drive)
mv domlogs /home2/apache/
ln -s /home2/apache/domlogs /usr/local/apache/domlogs
ls -la [...]]]></description>
			<content:encoded><![CDATA[<p>Its a simple job and recommended appraoch is to stop Apache before moving domlogs so it will bring downtime. Here is how you can do it:<br />
<!-- BEGIN TEMPLATE: bbcode_quote --></p>
<div>Quote:</div>
<p><strong>service httpd stop<br />
ps ax | grep httpd  (Verify that no httpd process still running)<br />
cd /usr/local/apache<br />
mkdir /home2/apache ( Considering /home2 as your new drive)<br />
mv domlogs /home2/apache/<br />
ln -s /home2/apache/domlogs /usr/local/apache/domlogs<br />
ls -la /usr/local/apache/ (Verify the link)<br />
service httpd start</strong></p>
<p>http://forums.cpanel.net/f5/move-apache-domlogs-second-disk-drive-98821.html</p>
]]></content:encoded>
			<wfw:commentRss>http://eakcorp.com/2010/02/move-apache-domlogs-to-second-disk-drive-or-any-where/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install Pidgin 2.6.2 on Lenny</title>
		<link>http://eakcorp.com/2010/02/install-pidgin-2-6-2-on-lenny/</link>
		<comments>http://eakcorp.com/2010/02/install-pidgin-2-6-2-on-lenny/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 08:22:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Pidgin]]></category>

		<guid isPermaLink="false">http://eakcorp.com/?p=235</guid>
		<description><![CDATA[The version of Pidgin that is in the Lenny repositories has some problems. It’s an older version and does not work with Yahoo messenger, usually you can’t get the proper certifcate from Yahoo in Pidgin. I attempted to install it myself using the version of Pidgin for Sid by downloading the files from Debian. I [...]]]></description>
			<content:encoded><![CDATA[<p>The version of Pidgin that is in the Lenny repositories has some problems. It’s an older version and does not work with Yahoo messenger, usually you can’t get the proper certifcate from Yahoo in Pidgin. I attempted to install it myself using the version of Pidgin for Sid by downloading the files from Debian. I ran into dependency issue after issue and finally decided just to go with backports.  This is the easiest way to install Pidgin 2.6 on Debian Lenny.</p>
<p>Using <strong>Lenny-Backports</strong> you can<strong> install Pidgin 2.6.2 on Debian Lenny</strong>.<br />
<span id="more-235"></span></p>
<blockquote><p>Backports are recompiled packages from testing (mostly) and unstable (in a few cases only, e.g. security updates), so they will run without new libraries (wherever it is possible) on a stable Debian distribution. I recommend you to pick out single backports which fits your needs, and not to use all backports available here.</p>
<p><a href="http://www.backports.org/dokuwiki/doku.php">-from backports.org</a></p></blockquote>
<p>To add backports to your apt sources do the following steps.</p>
<p>open up <strong>/etc/apt/sources.list</strong> in your editor of choice (as root)</p>
<blockquote><p>add the line:  <strong>deb http://www.backports.org/debian lenny-backports main contrib non-free</strong></p></blockquote>
<p>save the sources.list</p>
<blockquote><p><strong>apt-get update</strong></p></blockquote>
<p>Now you need to add key from backports.</p>
<blockquote><p><strong>apt-get install debian-backports-keyring<br />
</strong></p>
<p>or</p>
<p><strong>gpg –keyserver hkp://subkeys.pgp.net –recv-keys 16BA136C<br />
gpg –export 16BA136C | apt-key add -<br />
</strong></p>
<p>or</p>
<p><strong>wget -O – http://backports.org/debian/archive.key | apt-key add -</strong></p></blockquote>
<p>Now I would suggest removing the current pidgin install.</p>
<blockquote><p><strong>apt-get remove pidgin</strong></p></blockquote>
<p>Once it is removed use the -t lenny-backports flag to install pidgin.</p>
<blockquote><p><strong>apt-get install -t lenny-backports pidgin</strong></p></blockquote>
<p>http://www.debiantoday.com/install-pidgin-2-6-2-on-lenny/</p>
<p><!-- end #sidebar --></p>
]]></content:encoded>
			<wfw:commentRss>http://eakcorp.com/2010/02/install-pidgin-2-6-2-on-lenny/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>`perl: warning: Please check that your locale settings` error on debian</title>
		<link>http://eakcorp.com/2010/02/perl-warning-please-check-that-your-locale-settings-error-on-debian/</link>
		<comments>http://eakcorp.com/2010/02/perl-warning-please-check-that-your-locale-settings-error-on-debian/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 14:46:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://eakcorp.com/?p=233</guid>
		<description><![CDATA[
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en_DE:en_US:en_GB:en",
        LC_ALL = (unset),
        LANG = "en_US"
    are supported and installed on your system.
perl: warning: Falling back [...]]]></description>
			<content:encoded><![CDATA[<blockquote>
<pre dir="ltr">perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en_DE:en_US:en_GB:en",
        LC_ALL = (unset),
        LANG = "en_US"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
</pre>
</blockquote>
<p>dpkg-reconfigure locales</p>
<p>good luck ...</p>
]]></content:encoded>
			<wfw:commentRss>http://eakcorp.com/2010/02/perl-warning-please-check-that-your-locale-settings-error-on-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>if you are having problems with RPM&#8217;s, you can just get the CLI version of WinRar</title>
		<link>http://eakcorp.com/2010/01/if-you-are-having-problems-with-rpms-you-can-just-get-the-cli-version-of-winrar/</link>
		<comments>http://eakcorp.com/2010/01/if-you-are-having-problems-with-rpms-you-can-just-get-the-cli-version-of-winrar/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 22:06:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sunucu]]></category>

		<guid isPermaLink="false">http://eakcorp.com/?p=231</guid>
		<description><![CDATA[Alternativley if you are having problems with RPM's, you can just get the CLI version of WinRar directly from www.rarlab.com. Make sure you have Glibc 2.4 though.
# wget http://rarlab.com/rar/rarlinux-3.7.1.tar.gz
# tar xvzf rarlinux*
# cd rar
# make
# make install
Hope this helps.
]]></description>
			<content:encoded><![CDATA[<p>Alternativley if you are having problems with RPM's, you can just get the CLI version of WinRar directly from <a href="http://www.rarlab.com/" target="_blank">www.rarlab.com</a>. Make sure you have Glibc 2.4 though.</p>
<p># wget <a href="http://rarlab.com/rar/rarlinux-3.7.1.tar.gz" target="_blank">http://rarlab.com/rar/rarlinux-3.7.1.tar.gz</a><br />
# tar xvzf rarlinux*<br />
# cd rar<br />
# make<br />
# make install</p>
<p>Hope this helps.</p>
]]></content:encoded>
			<wfw:commentRss>http://eakcorp.com/2010/01/if-you-are-having-problems-with-rpms-you-can-just-get-the-cli-version-of-winrar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Centos Pure-ftp Problem {Lxadmin pure-ftp problemi}</title>
		<link>http://eakcorp.com/2010/01/centos-pure-ftp-problem-lxadmin-pure-ftp-problemi/</link>
		<comments>http://eakcorp.com/2010/01/centos-pure-ftp-problem-lxadmin-pure-ftp-problemi/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 09:02:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sunucu]]></category>

		<guid isPermaLink="false">http://eakcorp.com/?p=227</guid>
		<description><![CDATA[Merhabalar, bu problem pure-ftpd nin son surumlerinde ortaya cikiyor, tabi boyle olunca celiskiye dusmemek elde degil, guncel sistem herzaman daha guvenlik acisinda daha iidir fakat butur problemlerin cikacagini dusunmek biraz kafa aritiyor:) gordugum kadariyla bu sorun lxadmin yuklu centos sunucularda meydana geliyor, cozumu basit yapmamiz gereken pure-ftp yi xinet 'in kontrolunden cikartmamiz,
rm /etc/xinet.d/pure-ftpd
Bu islem yeterli [...]]]></description>
			<content:encoded><![CDATA[<p>Merhabalar, bu problem pure-ftpd nin son surumlerinde ortaya cikiyor, tabi boyle olunca celiskiye dusmemek elde degil, guncel sistem herzaman daha guvenlik acisinda daha iidir fakat butur problemlerin cikacagini dusunmek biraz kafa aritiyor:) gordugum kadariyla bu sorun lxadmin yuklu centos sunucularda meydana geliyor, cozumu basit yapmamiz gereken pure-ftp yi xinet 'in kontrolunden cikartmamiz,</p>
<blockquote><p>rm /etc/xinet.d/pure-ftpd</p></blockquote>
<p>Bu islem yeterli gelir , sorun duzelmezse eger , pure-ftpd yi  kaldirip tekrar kurmamiz gerekir.</p>
<blockquote><p>yum remove pure-ftpd<br />
yum install pure-ftpd</p></blockquote>
<p>Daha sonra yapmamiz gereken daha onceki kayitli olan `lxadmin tarafindan olusturulan fptuser larimizi tanitmamiz lazim` pureftpd.pdb  pure-ftp.conf dosyamizda etkinlestiriyoruz.</p>
<blockquote><p>nano /etc/pure-ftpd/pure-ftpd.conf<br />
dosyayi actiktan sonra<br />
#PureDB                        /etc/pure-ftpd/pureftpd.pdb<br />
yukardaki satiri asagidaki sekilde degistiriyoruz<br />
PureDB                        /etc/pure-ftpd/pureftpd.pdb</p></blockquote>
<p>Kayit edip cikiyoruz.`ctrl-x` pure-ftpd yi durdurup tekrar baslatiyoruz. hepsi bukkadar.</p>
<blockquote><p>/etc/init.d/pure-ftpd stop<br />
/etc/init.d/pure-ftpd start</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://eakcorp.com/2010/01/centos-pure-ftp-problem-lxadmin-pure-ftp-problemi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian Lenny Timezone Problems</title>
		<link>http://eakcorp.com/2010/01/debian-lenny-timezone-problems/</link>
		<comments>http://eakcorp.com/2010/01/debian-lenny-timezone-problems/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 21:29:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sunucu]]></category>

		<guid isPermaLink="false">http://eakcorp.com/?p=221</guid>
		<description><![CDATA[Hoi hoi , Debian lenny de surekli karsilastigim ve karsilasiligini dusundugum timezone sorununun cozumunu kisaca ve basitce anlatacam,
cat timezone --&#62;America/New_York -&#62;Europe/Istanbul
olarak   biz bu degeri  degisitiriyoruz ve bu sorundan kurtuluyoruz.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://eakcorp.com/wp-content/uploads/openlogo-100.jpg"><img class="size-full wp-image-220 alignleft" title="openlogo-100" src="http://eakcorp.com/wp-content/uploads/openlogo-100.jpg" alt="" width="100" height="123" /></a>Hoi hoi , Debian lenny de surekli karsilastigim ve karsilasiligini dusundugum timezone sorununun cozumunu kisaca ve basitce anlatacam,</p>
<blockquote><p>cat timezone --&gt;America/New_York -&gt;Europe/Istanbul</p>
<p>olarak   biz bu degeri  degisitiriyoruz ve bu sorundan kurtuluyoruz.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://eakcorp.com/2010/01/debian-lenny-timezone-problems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nice Ubuntu themes for karmic Users</title>
		<link>http://eakcorp.com/2010/01/nice-ubuntu-themes-for-karmic-users/</link>
		<comments>http://eakcorp.com/2010/01/nice-ubuntu-themes-for-karmic-users/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 07:38:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Temalar]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://eakcorp.com/?p=207</guid>
		<description><![CDATA[

This tutorial will explain how to install zgegblog-themes in ubuntu jaunty and intrepid
Thanks to Zgegblog for this fantastic themes
 
First edit /etc/apt/sources.list file
sudo gedit /etc/apt/sources.list
add the following lines
deb http://ppa.launchpad.net/bisigi/ppa/ubuntu karmic main
deb-src http://ppa.launchpad.net/bisigi/ppa/ubuntu karmic main
Save and exit the file
add the GPG key using the following command
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 1781bd45c4c3275a34bb6aec6e871c4a881574de
Update the source list using [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://eakcorp.com/2010/01/nice-ubuntu-themes-for-karmic-users/"><img class="alignnone size-full wp-image-213" title="wild-pres" src="http://eakcorp.com/wp-content/uploads/wild-pres.jpg" alt="" width="720" height="263" /></a><br />
<span id="more-207"></span></p>
<p>This tutorial will explain how to install zgegblog-themes in ubuntu jaunty and intrepid<br />
Thanks to <a onclick="javascript:pageTracker._trackPageview('/outbound/article/francois.vogelweith.com');" href="http://francois.vogelweith.com/" target="_blank">Zgegblog</a> for this fantastic themes<br />
<strong> </strong></p>
<p>First edit /etc/apt/sources.list file</p>
<blockquote><p>sudo gedit /etc/apt/sources.list</p></blockquote>
<p>add the following lines</p>
<blockquote><p>deb http://ppa.launchpad.net/bisigi/ppa/ubuntu karmic main<br />
deb-src http://ppa.launchpad.net/bisigi/ppa/ubuntu karmic main</p></blockquote>
<p>Save and exit the file</p>
<p>add the GPG key using the following command</p>
<blockquote><p>sudo apt-key adv <code>--</code>recv-keys <code>--</code>keyserver keyserver.ubuntu.com 1781bd45c4c3275a34bb6aec6e871c4a881574de</p></blockquote>
<p>Update the source list using the following command</p>
<blockquote><p>sudo aptitude update</p></blockquote>
<p>Install all the themes using the following command</p>
<blockquote><p>sudo aptitude install zgegblog-themes</p></blockquote>
<p>http://www.ubuntugeek.com/nice-ubuntu-themes-for-jaunty-and-intrepid-users.html</p>
]]></content:encoded>
			<wfw:commentRss>http://eakcorp.com/2010/01/nice-ubuntu-themes-for-karmic-users/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ModSecurity SecResponseBodyLimit</title>
		<link>http://eakcorp.com/2010/01/modsecurity-secresponsebodylimit/</link>
		<comments>http://eakcorp.com/2010/01/modsecurity-secresponsebodylimit/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 18:11:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Guvenlik]]></category>
		<category><![CDATA[Sunucu]]></category>

		<guid isPermaLink="false">http://eakcorp.com/?p=204</guid>
		<description><![CDATA[Merhabalar,
Karsilastigim bir sorunun cozumunu paylasmak istedim, Apache sunucumda , sitemaplari gosterirken belli bir kayittan sonra sitemap.php dosyasi hata veriyordu, 404 yada 500  hatasi veriyordu , bu sorunu  ModSecurity SecResponseBodyLimit  degerini arttirarak cozebilirsiniz.
]]></description>
			<content:encoded><![CDATA[<p>Merhabalar,</p>
<p>Karsilastigim bir sorunun cozumunu paylasmak istedim, Apache sunucumda , sitemaplari gosterirken belli bir kayittan sonra sitemap.php dosyasi hata veriyordu, 404 yada 500  hatasi veriyordu , bu sorunu  <strong>ModSecurity SecResponseBodyLimit  </strong>degerini arttirarak cozebilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://eakcorp.com/2010/01/modsecurity-secresponsebodylimit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Administration-Remote Control (RCON)</title>
		<link>http://eakcorp.com/2010/01/administration-remote-control-rcon/</link>
		<comments>http://eakcorp.com/2010/01/administration-remote-control-rcon/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 09:04:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux Games]]></category>
		<category><![CDATA[Urban Terror]]></category>

		<guid isPermaLink="false">http://eakcorp.com/?p=199</guid>
		<description><![CDATA[ "RCON" is short for remote control; it allows you to make changes to the server and gives you access to administrative commands when you're connected to a remote server. To use the RCON, you first need to enter the password by typing:
/rconpassword [yourpassword]
After you have enter the RCON password you can access all the [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://garret.netsons.org/wp-includes/images/blog/urbanterror_logo.png" alt="" width="128" height="128" /> "RCON" is short for remote control; it allows you to make changes to the server and gives you access to administrative commands when you're connected to a remote server. To use the RCON, you first need to enter the password by typing:<br />
/rconpassword [yourpassword]</p>
<p>After you have enter the RCON password you can access all the RCON capabilities, by typing:<br />
/rcon [command]<br />
RCON Commands</p>
<p>These commands allow individuals to remotely administer a server. Their use is based on having the RCON password. These commands are to be used in the console.<br />
Kicking<br />
<span id="more-199"></span><br />
There are two ways to do this. The first is to kick them using their player name:<br />
/rcon kick [playername]</p>
<p>The second is to use their user number on the server:<br />
/rcon status (this is to get a list of players and their user numbers)<br />
/rcon clientkick [usernumber]<br />
Restart Server</p>
<p>While you can't actually restart the server, you can reload the server.cfg, which amounts to about the same thing.<br />
/rcon exec server.cfg<br />
Ban an IP</p>
<p>The first thing that you have to do before banning anyone is to add this line to the server.cfg file:<br />
set filterBan 1</p>
<p>Now you can add an IP to the ban list by typing at the console:<br />
/rcon addIP [ip_address] (you can also use IP masks)</p>
<p>To remove an IP from the list:<br />
/rcon removeIP [ip_address]</p>
<p>To list the IPs currently banned use the banlist.txt file.<br />
Referees</p>
<p>Referees are a feature that has been added to help server admins manage their servers. The referee is like a less powerful version of RCON: you can set a password and give it out to trusted players. Unlike RCON, the referee has limited control over how they can affect the server. It gives them the ability to do things like mute annoying players, kick them and even ban them from the server for up to 3 hours. All referee commands start with the ref command. The basic referee command looks something like this:<br />
ref {refcommand} [{parameters} ...]</p>
<p>Referee commands can only be used by a client who has logged on as a referee using the reflogin command with a valid password. If a password has not been set, or if the server has disabled the referee function, no one will be able to login as a referee.<br />
Enabling Referees</p>
<p>To enable a referee, a server admin first needs to set the referee password:<br />
/g_refpass "password"</p>
<p>Then set whether the referee can ban people:<br />
/g_refNoBan 0 (to give them ban power)<br />
/g_refNoBan 1 (to stop them from banning players)</p>
<p>Finally enable referees:<br />
/g_referee 1</p>
<p>Be very careful with allowing referees to ban players on your server, unless you can trust them to use the power responsibly. Otherwise, you might find angry players boycotting your server!<br />
Log on as Referee</p>
<p>To login as a referee you need to ask the server administrator for the referee password. Once you have it, you can login by pulling down the Quake III console and typing:<br />
/reflogin "password"</p>
<p>If you enter the password correctly and the server is set up to allow referees, then you will receive a message telling you that you have successfully logged in. Once logged in you can use all the referee commands. These commands and their effects are listed below.</p>
]]></content:encoded>
			<wfw:commentRss>http://eakcorp.com/2010/01/administration-remote-control-rcon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
