linux işletim sistemi güvenliği

Upload: turktiger

Post on 10-Jan-2016

34 views

Category:

Documents


0 download

DESCRIPTION

Linux işletim Sistemi Güvenliği , Korunma Yöntemleri , Hack saldırılarına engel olma

TRANSCRIPT

  • Linux Sistem Ynetimi ve GvenliiGvenlii

    Huzeyfe NAL

    [email protected]

  • Linux iletim sistemini tanmak

    Backtrack Linux datm zerinden temel Linux sistem ynetimi ilerini gerekletirmek

    Linux sistemlerde gvenlik amal kullanlabilecek dosya ve komutlarn renilmesidosya ve komutlarn renilmesi

    Linux sistemlere ynelik hacking yntemlerini renme ve sistemleri gvenilir hale getirme

  • Linux letim Sistemine Giri

    Linux dosya ve dizin yaps

    Linux A Ayarlar

    Sistem gvenlii ile ilgili komutlar

    Iptables gvenlik duvar Iptables gvenlik duvar

    Kullanc hesaplar ve gvenlii

    Loglama altyaps

    Btnlk dorulama sistemleri

    Sysctl ile kernel seviyesi detay ayarlar

  • Linux=letim sisteminin ekirdei

    Datm=Linux+programlar

    Tek bana kernel bir ie yaramaz, sadece cihazlarn ynetimini salar

  • 450den fazla Linux datm vardr. Sk Kullanlan Linux Datmlar

    Red Hat Ticari

    Debian Slackware Suse Suse

    Ticari

    Fedora Ubuntu OpenSuse

    htiyaca ynelik datm seimi nemlidir! http://distrowatch.com/

  • Her ey dosyadr

    Ses aygt, socketler, text dosyalar vs

    Basit, ilevsel aralarla text dosylar zerinde ilem yaparak sistem ynetimi

    Keep it stupid simple! Kural (KISS)

  • Linuxda uzantya gerek yoktur(.exe, .msi gibi)

    Standartlama iin .rpm, .deb, .sh gibi uzantlar kullanlr

    Dosya/dizin isimleri case sensitive dir

    Text != text != texT

    . le balarsa gizli dosya olur

  • /home - Kullanclarn ev dizinleri

    /bin, /usr/bin sistem komutlar

    /sbin, /usr/sbin sistem yneticileri tarafndan kullanlacak komutlar

    /etc Yaplandrma dosyalar

    /var log dosyalar, havuz dosyalar(mail queue).

    /dev device(aygt) dosyalar

    /proc zel dosyalar, anlk sistem deerlerini almak vs iin.

  • Linux sistemlerin gc komut satrndadr

    Komut satrndan yaplamayacak i yok gibidir

    Komut satyr aralar kullanlarak ileri dzey programlama

    Bash, sh programlama

  • En basit kural. Komutu ve ardndan alaca parametreleri yaz. Sktn noktadan man komut ismi

    ls -l /etc

    Komut ismiseenekler

    argman

  • kt eitleri:Std-Input, Std-Output, Std-error

    ls -l >output

    > kt dosyasn belirtir.

  • Linux komut satr parametre olarak dardan deer alabilir

    wc

  • Bir komutun ktsn dier komuta girdi olarak vermek iin

    ps aux | grep netscape | wc -l

    Ps komutunun kts grepe gider

    Grep gelen kty alr ierisinde netscape aratr ve sonucu wce aktarr

    Wc gelen kty alr, hesaplar ve konsola basar

    | Admlar/komutlar ayrmak iin

  • Ls

    Mv, cp, rm

    Ps, top

    Kill, kill -9 Kill, kill -9

    Tail, head, more, less, cat

    Reboot,su , shutdown

    Pwd, history

  • File

    More/less

    Cp

    Mv

    Mkdir/rmdir Mkdir/rmdir

    Rm

    Tail

    Diff

    grep

  • Ps

    Top

    w/who/whoami

    Find Find

    Last

    Kill

    Useradd/groupadd

    passwd

  • Her dosyann

    Bir sahibi vardr

    Bir grubu vardr

    Sahibi , grubu ve dierleri olmak zere eriim izni vardrvardr

    Bir dosya oluturulurken default izinleri umask deeri ile belirtilir.

  • Her Kullancnn:

    UID (login ismi), gid (login grubu) ve dier gruplara yelii vardr

    UID kimliinizi gsterir(Kullanc ve ID numaras)

    GID (Grup ad ve numarasn gsterir) GID (Grup ad ve numarasn gsterir)

  • Linux eit dosya izni kavramna sahiptir

    Read Dosya/Dizinlerin okunabilmesi amal kullanlr. Dizinlerde listeleme zellii olarak kullanlr.

    Write Yeni bir dosya ya da dizin oluturmak iin kullanlrkullanlr

    Execute Dosya altrma ya da dizine giri hakk iin kullanlr.

  • Dosyz izinlerini detayl izleme: ls l komutu

    -rwxrwxr-x 1 rapsodi rapsodi 5224 Dec 30 03:22 hello-rwxrwxr-x 1 rapsodi rapsodi 5224 Dec 30 03:22 hello-rw-rw-r-- 1 rapsodi rapsodi 221 Dec 30 03:59 hello.c-rw-rw-r-- 1 rapsodi rapsodi 1514 Dec 30 03:59 hello.sdrwxrwxr-x 7 rapsodi rapsodi 1024 Dec 31 14:52 posixuft

    Permissions

    Owner

    Group

  • Dosya zinleri -V

    -rwxrwxrwx

    Other permissionsGroup permissionsOwner permissionsDirectory flag (d=directory; l=link)

  • Chmod komutu kullanlr

    Genelde saysal deerlerle yaplr

    4=okuma

    2=yazma

    1)altrma 1)altrma

    chmod 755 file # Owner=rwx Group=r-x Other=r-xchmod 500 file2 # Owner=r-x Group=--- Other=---chmod 644 file3 # Owner=rw- Group=r-- Other=r--chmod +x file # Add execute permission to file for allchmod o-r file # Remove read permission for otherschmod a+w file # Add write permission for everyone

  • WW=World Writable

    Sistemdeki en yetkisiz kullanc tarafndan okunabilir, yazlabilir dosyalardr

    zellikle paylaml hosting firmalarnda tehlike arzeder(baka firmann WW izinlerine sahip olan arzeder(baka firmann WW izinlerine sahip olan dosyas ierisine web shell ekleme)

    find / -perm 777 -print

    Komutu kullanlarak bulunabilir

  • Baz dosyalar(programlar) altran kim olursa olsun sahibinin haklaryla altrlr

    Passwd, ping

    Bu programlarda kacak bir aklk sistemi root olarak tehlikeye sokacaktr

  • /etc/shadow, /etc/sudoers, /etc/group

    /etc/profile,

  • IP adresi

    Ag Maskesi

    Varsaylan A geidi

    Isim zmleme iin DNS sunucu kayd Isim zmleme iin DNS sunucu kayd

    DHCP Ayarlar

  • Linux/UNIX sistemlerde a yaplandrmas ifconfig komutu ile yaplr

    #ifconfig arabirim_ismi IP_Adresi netmask maske

  • ifconfig a komutu.

    -a komutu verilmezse

    UP olmayan arabirimler gzkmez.

  • DHCP Neler Salar?

    IP Adresi

    Ag maskesi

    DNS Sunucu Adresi

    Gateway adresi Gateway adresi

    Dhclient eth0

    Dhcpcd eth0

  • Ag ortamnda Sorun giderme

    Netstat

    Traceroute

    Arp

    Nslookup vs Nslookup vs

    Log dosyalarnn kontrolu

    Sistem gvenlii ile ilgili dosyalar

  • Hedef sistemin ayakta olup olmad, gidi geli srelerinden aradak hattn performans, younluu gibi bilgileri almay salar.

  • Traceroute IP balndaki TTL(Time To Live) alann kullanr. Ama Hedef sisteme giden yollar renmektir ve bunun iin TTL deerini 1 den balatarak her seferinde bir arttrr.

    TTL deerini 1 olarak alan host paketi pe atarak TTL deerini 1 olarak alan host paketi pe atarak geriye TTL Expired cevab dner. Trace eken bilgisayarda bu ekilde nndeki yolun tarifini karr.

  • Sabit ARP tanm ile iletim sistemine o hedefe gidecek paketlerin sorgulanmadan belirtilen MAC adresine doru gnderilmesini salar.

  • 192.168.1.111 ip adresine gnerilen paketler artk 00:11:22:33:44:55 adresli makineye gnderilecektir.

  • letim sisteminin kendi bulunduu a haricindeki alara eriim iin ynlendirme tablosunu kullanr. Bunu ehirleraras yolculuklardaki tabelalara benzetebiliriz.

    Dz bir yolda giderken nnze Ankara, Istanbul, Dz bir yolda giderken nnze Ankara, Istanbul, Edirne gibi istikametleri belirten levhalar kar siz de hangi istikamete doru gitmek istiyorsanz ona gre aracnz ynlendirirsiniz.

  • /etc/sysctl.conf dosyasndaki

    # Disables packet forwarding net.ipv4.ip_forward=0 satr

    # Enables packet forwarding net.ipv4.ip_forward=1 olarak deitirilir.

    #sysctl p aktif olmasi icin.

  • Linux sistemlerde isim zme ile ilgili olarak kullanlan iki temel dosya vardr. /etc/resolv.conf ve /etc/hosts dosyalar.

    /etc/hosts dosyas herhangi bir dns kaydna gerek kalmadan isim ile ulamak istediimiz sistemlere kalmadan isim ile ulamak istediimiz sistemlere ait kaytlar tutar.

  • #cat /etc/hosts127.0.0.1 localhost

    127.0.0.1 bt.example.net bt

    192.168.1.1 egitim.lifeoverip.net

    # cat /etc/resolv.conf# Generated by dhcpcd for interface eth0

    nameserver 22.15.2.2

    nameserver 192.168.1.1

  • Nslookup / dig komutlar

    Cesitli internet sayfalar

    Clez.net

  • Emektar DNS sorgulama arac

    Linux sistemlerde yerini dig aracna brakmakta

  • Tcpdump: A zerinden aklan trafikte paket analizi yapmak iin kullanlr

    Tcpdump tcp port 80 X

    stenilen zellikle filtreler yazlabilir

    Sadece X ip adresinin Y portundan Z subnetine gelen Sadece X ip adresinin Y portundan Z subnetine gelen UDP paketleri ... Gibi.

  • Iptraf ile IP ve port baznda detay istatistikler alnabilir.

    Iptraf ile a arabirimi zerinden geen trafik miktar, paket kayb,

    checksum hatalar gibi bilgiler alnabilir.

  • A zerinden bal sistemleri grntleme

    Aa ak hizmet veren servisleri listeleme

    alan Sreler

    Sisteme bal kullanclar Sisteme bal kullanclar

    Log dosyalarn izleme

  • UNIX Sistemde herey dosyalardan oluur.

    Lsof komutu ile ak dosyalar izlenebilir

    Dosya, soket, pipe vs

  • Hurafe= Linux gvenlidir?

    Gvenlik = Bilgi+Uygulama

    Bir sistemin gvenlii onu yneten kadardr

    Linux datmlarnn gvenlii Linux kerneli ve Linux datmlarnn gvenlii Linux kerneli ve kurulu programlarn gvenliinden oluur.

    Linux kernelinde son yllarda ciddi aklklar kmaya balad

  • Linux=Kernel

    Linux datmlarnda bulunan yazlmlarn aklklar

    Linux ekirdeinde bulunan aklklar

    Remote aklklar

    Local aklklar

    Linux kernel srm numaras renme

    #uname -a

  • Nedir ne ie yarar?

    Kark bir yapya sahip

    Neler yapabilir?

    Ebtables, l7-filter Ebtables, l7-filter

  • Linux sistemler iin gvenlik duvar uygulamas

    Olduka esnek bir altyapya sahiptir

    zellikleri gnmz gvenlik duvarlarna edeerdir

    L2den L7e kadar tm katmanlarda paketlere mdahele edebilir

    MAC adresine gre filtreleme

    P2P, MSN vs protokollerine gre filtreleme

  • Linux sistemin kendisine gelen paketler iin

    INPUT, OUTPUT zincirleri

    Linux sistemin koruduu sistemlere gelen paketler iin

    FORWARD zinciri kullanlr FORWARD zinciri kullanlr

    NAT/Port Ynlendirme ilemleri iin

    POSTROUTING, PREROUTING tablolar kullanlr

  • Belirli bir portu herkese ama

    iptables -A INPUT -p tcp --dport 99 -j ACCEPT

    Belirli bir portu sadece belirli IPlere ama

    iptables -A INPUT -p tcp --dport 99 -s 192.168.1.1 -j ACCEPTACCEPT

    Port Yasaklama

    iptables -A INPUT -p tcp --dport 443 -j DROP

    iptables -A INPUT -p tcp --dport 443 -s 192.168.1.1 -j DROP

  • Iptables ile MAC adresine gre filtreleme yaplabilir(-mac mac-source )

    #iptables -A FORWARD -m state --state NEW \-m mac --mac-source 00:DE:AD:BE:33:12 -j DROP

    komutu ile 00:DE:AD:BE:33:12 mac adresine sahipkomutu ile 00:DE:AD:BE:33:12 mac adresine sahipbir kullancnn darya eriimini kstlam oluruz.

  • a iplerini tek bir gerek IP ile internete karma

    Dardan gelen istekleri i ada belirli sunuculara ynlendirme

    NAT

    iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to-source 192.168.1.103

    Port Ynlendirme

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.10.10.1

  • Iptables ile istenilen paketler bloklanabilir

    iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH Girisleri

  • Adduser, useradd, addgroup, groupadd

    Passwd, chgrp komutlar

    En ilkel kullanc ynetimine sahiptir!

  • PAM=Pluggable Authentication Modules

    Linux sistemlerdeki authentication ilemini esnek hale getirme amal kullanlan bileen

    /etc/pam.conf, /etc/pam.d

  • /etc/passwd /etc/shadow dosyalar

    Parolalar hash+salt bir halde tutulmaktadr

    Ayn porola deiik salt deeri ile farkl olur

    Parola gvenlii testleri iin John arac kullanlabilir

  • Kullanclarn haklarn snrlandrma, belirli yetkiler verme amal kullanlr

    Su=normal kullancdan root yetkisine geite kullanlr

    huzeyfe@bt:/$ su -huzeyfe@bt:/$ su -

    Password:

    root@bt:~#

    Visudo (/etc/sudoers)

  • root ALL=(ALL) ALL

    Root tm terminallerde tm kullanclar adna tm komutlar altrabilir

    operator ALL= /sbin/poweroff

    Operator kullancs tm terminallerde poweroff komutunu calistirabilir

    operator@bt$sudo poweroff

  • Ulimit a

    /etc/security/limits.conf

    Fork bomb

  • Linux ve UNIX sistemlerde loglama syslog araclyla yaplr

    Syslogd ve /etc/syslog.conf dosyas bilinmesi gereken iki bileendir.

    Birden fazla Linux tek bir sysloga log gnderebilir, Birden fazla Linux tek bir sysloga log gnderebilir, uzaktan log alabilir

    /var/log dizini log dosyalarnn tutulduu dizindir.

  • Kullanlan Linux datmna gre deise de tm Linux sistemlerdeki nemli loglar ayn addadr, yerleri syslog.confda belirtilir.

    /var/log/auth.log

    /var/log/lastlog /var/log/lastlog

    /var/log/wtmp

    /var/log/syslog

    ...

  • /var/log/auth.log dosyasnda saklanr

  • /var/log/auth.log dosyasnda saklanr(Linux datmna gre deiebilir)

    Hani kullanc yetkileriyle ne komutu altrld bilgisi.

  • Auditd kullanlarak kernel seviyesinde yaplr

    Linux audit altyaps SOX, PCI, HIPAA gibi standartlara uyumlu kt verir ve standartlarn isteklerini karlar

    Sistemde alan, yazlan, silinen tm dosyalar Sistemde alan, yazlan, silinen tm dosyalar loglanabilir

    Hangi kullancnn hangi tarihte ne komutunu altrd bilgisi alnabilir

    stenirse merkezi log sunucuya ynlendirilebilir

  • Log dosyalarnn fazlal nemli log paralarnn adminlerin gznden kamasna sebep olur

    Swatch ile loglar izleyip sadece belirli log tiplerinde uyar gelmesi salanabilir

    http://blog.lifeoverip.net/2007/06/06/log-dosyalarina-aktif-izleme/

  • Linux sistemlerde herey dosyadr

    Dosyalarn gvenlii en nemli konudur

    Basit bir arka kap

  • IC=Integrity Checking(Btnlk Kontrol)

    Adm 1:Belirtilen dosyalarn hash deerlerini al

    Alnan deerleri sadece okunabilir(read-only) bir ortamda sakla

    Adm 2:Belirli zaman sonra ayn dosyalarn tekrar Adm 2:Belirli zaman sonra ayn dosyalarn tekrar hash deerlerini al

    Adm 3: lk alnan hash deerleriyle son alnanlar karlatr

    Deiiklik varsa dosyalarda oynanm demektir.

  • Rootkit kavram

    Neler yapar?

    Linux iin rootkitler

  • RkHunter

    Chkrootkit

  • Linux datm gvenlik listesine yelik

    Gvenlik yamalarn zamannda geme

    Gereksiz servisleri kapatma

    Dosya/diziler zerinde gereksiz haklarn alnmas Dosya/diziler zerinde gereksiz haklarn alnmas

    WR, suid bit vs

    Loglama altyapsnn kurulmas

    A servislerine ACL uygulamas

    SSHa her yerden ulam vermeme gibi

  • Sysctl:iletim sisteminin almasn etkileyecek detay ayarlarn belirtildii komut(+dosya)

    Sysctl ile yaplan ilemler reboot edene kadar geerli olur #sysctl w degistirilecek_ayar=degisken_degeri #sysctl w degistirilecek_ayar=degisken_degeri

    /proc Sanal bir dizin olmakla birlikte iletim sistemi alrken

    sysctl ile yaplabilecek ayarlar dorudan /proc dizininde yaplabilir

    #echo 1 >/proc/sys/net/ipv4/ip_forward

  • #echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter

    ya da /etc/sysctl.conf dosyasina

    net.ipv4.conf.all.rp_filter=1

    Satr eklenerak aktif hale getirilir.

    Bu ayar "source address verification" ozelliginisaglar, yani herhangi bir arabirime gelenpaketlerdeki ip adreslerinin gercekten uygunarabirimden gelip gelmedii kontrol edilir.

  • sysctl -w net.ipv4.conf.all.accept_redirects=0

    sysctl -w net.ipv4.conf.all.send_redirects=0

  • #ysctl w net.ipv4.icmp_echo_ignore_broadcasts = 1

  • Sysctl w net.ipv4.tcp_syncookies = 1