Konuyu Oyla:
  • Toplam: 2 Oy - Ortalama: 5
  • 1
  • 2
  • 3
  • 4
  • 5
   
Konu: Linux Server Yönetimi
#H4CK4L
*
avatar
#R00T
Durum: Çevrimdışı
Seviye Puanı: 43
Yaşam Puanı: 1,054 / 1,054
Deneyim: 17 / 100
Rep Sayısı: 1057
Mesaj Sayısı: 3025
Üyelik Tarihi: 04.05.2013
      
Yorum: #1
Linux Server Yönetimi
23.08.2013 13:36
Her ne kadar hala ülkemizde kişisel site ihtiyaçlarını hosting firmaları karşılasa da bir zamandan sonra bu size yeterli gelmeyebilir.Bu gibi durumlar kendi serverınıza geçme ihtiyacı duyabilirsiniz.Bu yüzden az da olsa server yönetimi konusunda bilgi sahibi olmanız lazım.Server yönetimi diğer birçok dala göre zordur.Çünkü sorunun yanında birde getirdiği dar zamanda stres yönetimi vardır.Gerçekten büyük firmalarda,serverlarda yöneticilik yapanlar işleri çok zordur.Ben bugün sizlere kendi serverımda sürekli olarka kullandığım yararlı birkaç bash kodlarından bahsetmek istiyorum.Eminim sizinde işinize yarayacak kodlar olabilir.Kendi ihtiyaçlarınıza göre değiştirip kullanabilirsiniz.

İstediğiniz bir ip adresini aşağıdaki Banlanacak_Ip_Adresi yerine yazarsanız o ip adresini serverdan banlamış olursunuz.

Kod:
iptables -A INPUT -s Banlanacak_Ip_Adresi -j DROP


Serverdaki bağlantı ve türlerini öğrenebilirsiniz.

Kod:
netstat -ntu | grep :80 | awk '{print $6}' | cut -f1 -d ':' |sort| uniq -c | sort -n;


Serverda fazla bağlantı açap ip adresleri.Buradan aldığınız ip adreslerini isteğiniz doğrultusunda ilk verdiğim komut ile serverdan uzaklaştırabilirsiniz.

Kod:
netstat -ntu | grep :80 | awk '{print $5}' | cut -f1 -d ':' |sort| uniq -c | sort -n | awk '$1 > 10 {print $1,$2}'


Sunucudaki toplam bağlantı sayısını aşağıdaki komut ile öğrenebilirsiniz.

Kod:
echo `netstat -an|wc -l`


Serverınızın üzerindeki yükünü yani sistem load durumunu öğrenmek için aşağıdaki kodu kullanabilirsiniz.Bunu ara ara tekrarlayıp durumu kontrol etmekte fayda var.Önemli bir koddur.

Kod:
echo `uptime | awk -F "load average: " '{ print $2 }' | cut -d, -f1`
Kod:
sysctl -w net.ipv4.icmp_echo_ignore_all=0


Serverınızdaki SYN paketlerini listeler.DDos açısından önemlidir.Fazla ise dikkat etmeniz gerekebilir.

Kod:
netstat -ntu |grep SYN | awk '{print $5}' | awk '{sub("::ffff:","");print}' | cut -f1 -d ':' | sort | uniq -c | sort -n | grep -v -e server -e Address -e 127.0.0.1 -e 0.0.0.0


Aşağıdaki bash scripti bir forumda görmüştüm.Aynen paylaşıyorum.Fazla SYN Paketi gelen ip adreslerini banlar.Ufak çaplı saldırıları önleyebilirsiniz.

Kod:
#!/bin/sh

# Saldiri varmi ?
SYNCOUNT=`netstat -n | grep SYN | wc -l`

if [ $SYNCOUNT -gt 20 ] ; then

echo "$SYNCOUNT SYN Bulundu! Banlama basliyor lutfen bekleyin."

# Sunucu iplerini beyaz liste alalim.
ip addr show|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|cut -d: -f9|cut -d/ -f1|while read ipler; do touch /tmp/$ipler.tk; done

# Bloklanicak Paket Sayisi
#Default deger BPAKET=40
BPAKET=40
# Incelenecek Paket Sayisi
# Default deger SPAKET=5000
SPAKET=5000
# Inceleyelim.
tcpdump -n -q -c $SPAKET 'tcp[tcpflags] & tcp-syn != 0 and dst port 80'| awk '{print $3}'|awk -F. -v n=. '{print $1 n $2 n $3 n $4}'|sort|uniq -c|sort -nr|awk '$1 > $PAKET'|awk '{print $2}'|while read ipler;
do if [ ! -f /tmp/$ipler.tk ]; then
touch /tmp/$ipler.tk && iptables -A INPUT -s $ipler -j DROP && echo $ipler blokladim;
fi
done

# Cikalim.
else
echo "$SYNCOUNT SYN Bulundu! Saldiri tespit edilmedi..."
fi
exit 0


Aşağıdaki script sistem loadın yükseldiği durumlar istediğiniz servislere rest atmanızı ve bunu mail ile size bildirmeye yarar.Gayet faydalıdır.

Kod:
#/usr/bin/!
# Sistem Load Degeri load="" arasindaki degeri astiginda program calisip servislerinize reset atacak
load="60"


######### Resetlenecek servisler baslar #########
loadkomutu=`uptime | awk -F "load average: " '{ print $2 }' | cut -d, -f1 | cut -d. -f1`
mailload=`uptime | awk -F "load average: " '{ print $2 }' | cut -d, -f1`

if [ "$loadkomutu" -ge "$load" ]
then
######### Resetlenecek servisler baslar #########
pkill -9 httpd
######### Resetlenecek servisler biter #########

zaman=`date +"%d.%m.%Y - %T"`
echo "Servisler en son su tarihte yeniden baslatildi : $zaman" >> /var/log/kontrol.load

TMP_PREFIX='/tmp/gidenmail'
TMP_FILE="mktemp $TMP_PREFIX.XXXXXXXX"
mailicerigi=`$TMP_FILE`

echo "Tarih : $zaman" > $mailicerigi
echo "Sistem Load Yuksek: $mailload" >> $mailicerigi

cat "$mailicerigi" |  mail -s "$zaman UYARI: Yuksek Load $mailload" $1

else
echo "Sorun yok"
/etc/init.d/httpd start
fi


Hemen aşağıdaki scripti ben sürekli olan kullanırım.Arka planda çalışan programların ne kadar işlemci ve ram kullandığını öğrenmemizi sağlar.Dosya ismini islem.sh olarak kaydederseniz ./islem.sh mem veya ./islem.sh cpu komutlarını kullanarak çalıştırabilirsiniz.

Kod:
echo “Start Time” `date`
# By default, it display the list of processes based on the cpu and memory usage #
if [ $# -eq 0 ]
then

    echo “List of processes based on the %cpu Usage”
    ps -e -o pcpu,cpu,nice,state,cputime,args –sort pcpu  # sorted based on %cpu
    echo “List of processes based on the memory Usage”
    ps -e -orss=,args= | sort -b -k1,1n # sorted bases rss value

# If arguements are given (mem/cpu)
else
    case “$1¨ in
    mem)
     echo “List of processes based on the memory Usage”
      ps -e -orss=,args= | sort -b -k1,1n
     ;;
     cpu)
     echo “List of processes based on the %cpu Usage”
     ps -e -o pcpu,cpu,nice,state,cputime,args –sort pcpu
     ;;
     *)
        echo “Invalid Argument Given \n”
        echo “Usage : $0 mem/cpu”
        exit 1
     esac    

fi
echo “End Time” `date`
exit 0


Sisteme bağlı kullanıcıların ne kadar işlemci kullandıklarını görmek için aşağıdaki scripti çalıştırabilirsiniz.

Kod:
#! /bin/bash

w > /tmp/a

echo “Total number of unique users logged in currently”
cat /tmp/a|  sed ’1,2d’ | awk ‘{print $1}’ | uniq | wc -l
echo “”

echo “List of unique users logged in currently”
cat /tmp/a | sed ’1,2d’|  awk ‘{print $1}’ | uniq
echo “”

echo “The user who is using high %cpu”
cat /tmp/a | sed ’1,2d’ | awk   ‘$7 > maxuid { maxuid=$7; maxline=$0 }; END { print maxuid, maxline }’

echo “”
echo “List of users logged in and what they are doing”
cat /tmp/a


Aşağıdaki script kullanılan ve kullanılmayan ram miktarını gösteriyor.

Kod:
#! /bin/bash

# Total memory space details

echo “Memory Space Details”
free -t -m | grep “Total” | awk ‘{ print “Total Memory space : “$2 ” MB”;
print “Used Memory Space : “$3¨ MB”;
print “Free Memory : “$4¨ MB”;
}’

echo “Swap memory Details”
free -t -m | grep “Swap” | awk ‘{ print “Total Swap space : “$2 ” MB”;
print “Used Swap Space : “$3¨ MB”;
print “Free Swap : “$4¨ MB”;
}’
(Bu konu en son: 23.08.2013 Tarihinde, Saat: 13:38 düzenlenmiştir. Düzenleyen: H4CK4L.)

Çocukken her akşam yatmadan önce Tanrı'ya bana bir bisiklet vermesi için dua ederdim. Bir gün Tanrı'nın çalışma tarzının bu olmadığını anladım. Ertesi gün gittim kendime yeni bir bisiklet çaldım ve her akşam yatmadan önce Tanrı'ya günahlarımı affetmesi için dua ettim.
Alinti
[email protected]
avatar
Kondom Mağduru
Durum: Çevrimdışı
Seviye Puanı: 26
Yaşam Puanı: 266 / 633
Deneyim: 33 / 100
Rep Sayısı: 123
Mesaj Sayısı: 865
Üyelik Tarihi: 05.05.2013
     
Yorum: #2
Cvp: Linux Server Yönetimi
23.08.2013 16:07
Adam coder beyler dağılın... Ellerine sağlık reis her yerde bulunmuyor bu dökümanlar
Alinti
#H4CK4L
*
avatar
#R00T
Durum: Çevrimdışı
Seviye Puanı: 43
Yaşam Puanı: 1,054 / 1,054
Deneyim: 17 / 100
Rep Sayısı:
Mesaj Sayısı: 3025
Üyelik Tarihi: 04.05.2013
      
Yorum: #3
Cvp: Linux Server Yönetimi
23.08.2013 16:42
(23.08.2013 16:07)By_D3NG3 Nickli Kullanıcıdan Alıntı:  Adam coder beyler dağılın... Ellerine sağlık reis her yerde bulunmuyor bu dökümanlar

Smile)

Çocukken her akşam yatmadan önce Tanrı'ya bana bir bisiklet vermesi için dua ederdim. Bir gün Tanrı'nın çalışma tarzının bu olmadığını anladım. Ertesi gün gittim kendime yeni bir bisiklet çaldım ve her akşam yatmadan önce Tanrı'ya günahlarımı affetmesi için dua ettim.
Alinti
D4RKG1RL
*
avatar
Albay
Durum: Çevrimdışı
Seviye Puanı: 23
Yaşam Puanı: 191 / 563
Deneyim: 53 / 100
Rep Sayısı: 308
Mesaj Sayısı: 668
Üyelik Tarihi: 14.08.2013
     
Yorum: #4
Cvp: Linux Server Yönetimi
27.08.2013 22:44
eline saglık Smile

Alinti
R0B0T
*
avatar
Teğmen
Durum: Çevrimdışı
Seviye Puanı: 3
Yaşam Puanı: 0 / 73
Deneyim: 93 / 100
Rep Sayısı: 0
Mesaj Sayısı: 27
Üyelik Tarihi: 26.05.2013
     
Yorum: #5
Cvp: Linux Server Yönetimi
30.08.2013 22:06
eline sağlık
Alinti



1 Ziyaretçi