Uptime süresini öğrenme ve engelleme
Eğer engellemediyseniz uzaktaki kişiler sunucunuzun uptime süresini öğrenebilirler.Uptime sürenizi öğrenmek isteyen kişi ,sisteme herhangi bir TCP paketi yollayarak sizin sisteminizden cevap bekler.Sistemimizde "timestamps" engellenmemişse bizim cevap göndereceğimiz TCP paketlerinin başlıklarında "timestamps"ler ( zaman imzamız ) bulunmakta.Buradaki "timestamps"leri okuyarak sistemimizin uptime süresini öğrenebilirler.
Uptime süresini öğrenmek için bir çok uygulama mevcut : nmap,hping gibi.Hping ile hedef sistem üzerinde istediğimiz porta istediğimiz paketi gönderebildiğimiz için onu kullanarak test yapacağım.Bilgisayarınızda "hping" yazılımı yüklü değilse ,ilk olarak kuralım.
# emerge -av hping ( Gentoo )
# apt-get install hping3 (Ubuntu )Centos'a yüklemek için "EPEL" deposunu eklemiş olmanız lazım.Eğer bu depoyu eklemediysen buradan yardım alabilirsiniz.
# yum install hping3Hping yazılımını yükledikten sonra herhangi bir sunucunun uptime süresini öğrenmek bize cevap verecek herhangi bir TCP portuna bir istek gönderip,cevap alalım.Şimdi herhangi bir sunucunun uptime süresini öğrenelim:
# hping --tcp-timestamp www.examples.com -p 80 -c 2 -S
HPING www.examples.com (eth0 00.00.00.00): S set, 40 headers + 0 data bytes len=56 ip=00.00.00.00 ttl=55 DF id=0 sport=80 flags=SA seq=0 win=5792 rtt=20.0 ms TCP timestamp: tcpts=966942747Yukardaki örnekte de görüldüğü gibi "www.examples.com" sunucusunun 111 gündür vs vs detaylı uptime süresini öğrenebiliyoruz.Uzaktaki sistemin "uptime" süresini öğrenmeye değindik,şimdi "kendi sunucumuzun uptime süresini vermesini istemiyorsak ne yapmalıyız?" ona biraz değinelim.len=56 ip=00.00.00.00 ttl=55 DF id=0 sport=80 flags=SA seq=1 win=5792 rtt=19.8 ms TCP timestamp: tcpts=966942997 HZ seems hz=100 System uptime seems: 111 days, 21 hours, 57 minutes, 9 seconds
--- www.examples.com hping statistic --- 2 packets tramitted, 2 packets received, 0% packet loss round-trip min/avg/max = 19.8/19.9/20.0 ms
Eğer sunucumuzun "timestamps" gönderip göndermediğini bilmiyorsak ona bakalım:
# /sbin/sysctl -a |grep tcp_timestamps
net.ipv4.tcp_timestamps = 1Yukardaki komutun çıktısına "net.ipv4.tcp_timestamps = 1" değeri alıyorsanız , uptime süre bilginiz öğrenebilinir demektir.Bu bilgiyi dışarıya vermemek için "1" değerini "0" yapalım.
I .Yöntem :
# echo 0 > /proc/sys/net/ipv4/tcp_timestampsII.Yöntem :
Bu yöntemde ise "sysctl.conf" dosyasına "net.ipv4.tcp_timestamps = 0" satırını ekleyelerek yapabiliriz.
# vi /etc/sysctl.confAşağıdaki satırı ekleyin:
net.ipv4.tcp_timestamps = 0Satırı ekledikten sonra dosyayı kaydedip,kapatın.Ayarların aktif olabilmesi için bilgisayarı yeniden başlatın ya da aşağıdaki komutu verin .
# sysctl -pYeni ayarlarımız aktif olduktan sonra uptime bilgimizin gönderilip,gönderilmediğini test edelim.
# hping --tcp-timestamp www.examples.com -p 80 -c 2 -S
HPING www.examples.com (eth0 00.00.00.00): S set, 40 headers + 0 data bytes len=44 ip=00.00.00.00 ttl=64 DF id=0 sport=80 flags=SA seq=0 win=32792 rtt=0.1 ms TCP timestamp: tcpts=0len=44 ip=00.00.00.00 ttl=64 DF id=0 sport=80 flags=SA seq=1 win=32792 rtt=0.1 ms TCP timestamp: tcpts=0
--- www.examples.com hping statistic ---
2 packets tramitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.1/0.1/0.1 msArtık sunucumuz dışarıya uptime bilgisi vermiyor.Birde şuna değinmek istiyorum.Eğer "icmp" isteklerini engellememişseniz bu yolla da "timestamps" bilginiz öğrenilebilinir."icmp" ile dışarıya "timestamps" göndermek istemiyorsanız özetle iptables ile bunu engelleyebilirsiniz.Örnek olarak :
ipchains -A input -p icmp --icmp-type timestamp-request -j DROP
ipchains -A output -p icmp --icmp-type timestamp-reply -j DROP
Comments
Comments powered by Disqus