![]() |
||
|
||
Yazan: �mer Faruk �en [email protected] Versiyon: 0.1a -- 01 A�ustos 2000 1.1 Kitap����n Ge�mi�i: Bu kitap����n daha pek ge�mi�i yok.Sadece HOWTO-HOWTO ya uygun olmas� i�in vede ilerisini de d���nerek bu tarz bir d�zenlemeye giri�tim.Ayr�ca bu kitap Redhat Linux baz al�narak yaz�lm��t�r.Gerekli scriptler vede konfig�rasyon dosyalar� RedHat Linux (GPL)'ye �zg�d�r. 1.2 Geri D�n���m: Bu kitap��k hakk�nda her t�rl� yorumlar�n�z� [email protected] adresine mail atarak iletebilirsiniz. 1.3 Neden : Bu d�k�man� yazmam�n nedeni �u ana kadar T�rk�e bu tarz bir d�k�man�n hi� yaz�lmam�� olmas�d�r.Oysaki her sistem y�neticisinin g�venlik hususunda kendine ait ajandas� yada notlar� vard�r.Bir amac�m da bu notlar�n ajandalardan ��karak internete ve dolay�s�yla Linux kullan�c�lar�na ula�mas�d�r. 1.4 Yazar : Yakla��k 2 seneden beri Linux'le u�ra�maktay�m.Kendi ilgi alan�m G�VENL�K olmas�ndan dolay� Linux'e ba�lad�m.Zaten bilgisayar kullanmaya ba�lamam ile Linux kullanmaya ba�lamam aras�nda yakla��k 3 ay fark var.Kendimi bu i�in uzman� saym�yorum.Ama hem benden daha az bilgisi olan ki�ilere bir rehber hem de g�venlik hususunda profesyonel olmu� �ah�slar� belli bir noktada birle�tirmek i�in bu dokuman� yazdim.Ger�e�i s�ylemek gerekirse bu tarz bir d�k�man�n neden daha �nce yaz�lmad���n� da anlayabilmi� de�ilim. Not: Bu d�kuman� hi�bir kar��l�k beklemeden yazm�� bulunmaktay�m.Olabilecek hehangi bir aksakl�ktan dolay� sorumlu tutulmam olas� de�ildir.Bu d�kuman� okuyan �ah�s bunu kabul etmi� say�l�r. |
||
Sistemin Kurulmasi | ||
2 Sistemin Kurulmas� : �u an itibar� ile Redhat 6.2 s�r�m� mevcuttur.Kurulumdan �nce sisteminizdeki donan�m� berlirlemelisiniz.Eger yeni bir sistem alacaksan�z www.suse.com dan sisteminiz i�in gerekli donan�m� se�ebilirsiniz.D���nun sunucunuzu kuraca��n�z yere elinizde bir s�r� donan�mla geldiniz.Sonra sistemi boot ettiniz vede donan�m�n�z linux taraf�ndan tan�nmad�.Paran�za yaz�k de�ilmi.Madde madde s�ralarasak a)Kac harddiskiniz var. b)Sisteminizdeki harddisk SCSI olacak yoksa IDE mi? c)RAID controller kullanacakmisiniz markas� modeli ne? d)Ram miktarn�z ne olacak? e)Kullanaca��n�z mouse PS2mi yoksa COM mu? f)Ekran kart�n�z�n chipseti ne? g)Monit�r�n�z�n modeli ne?Hangi ��z�n�rl�kleri destekliyor. h)Kullanaca��nz ethernet kart�n�n modeli ne �zerindeki chipset ne? i) 1) Kullanacag�n�z makina adi ne olacak 2)Makinan�z�n IPsi ne olacak 3)Subnet Maskiniz ne olacak 4)E�er varsa gatewayinizin IP'si ne? 5)DNS serverinizi IP si ne olacak? Butun bunlar� belirledikten sonra sisteminiz i�in boot disk yaratmak gerekiyor.Bunlarin derinine inmeyece�im ama yaratt���n�z boot disketi sisteminiz a�maz ise buyuk bir ihtimal boot disketteki �ekirdek donan�mlar�n�zdan birini desteklemiyordur.Bunun i�im www.redhat.com/errata ya gidip sisteminiz i�in gerekli boot disketinin imaj�n� indirebilirsiniz. 2.b Partitionlara Ay�rma : Bunun i�in serveri kurma amac�n�z� tam olarak belirleyin.E�er sisteminiz bir mail server olacaksa do�al olarak maillerinizin kullan�c�ya gitmeden duraca�� havuz olan /var/spool/mail dizinini kullanici say�s�na oranlaman�z mant�kl� olacakt�r.Yada sisteminiz bir ftp server olacaksa /incoming directorysini ayri bir dilim de yapmaniz yada ayri bir harddisk kullanman�z sisteminizin / partitionun dolmas�ndan kaynaklanan dos( denial of service) a maruz kalmas�n� �nlemi� olur.Genel olarak dilimlemenin (partition) �u yararlar� vard�r. X) Denial Of Service sald�r�lar�na kar�� korunmu� olursunuz. X) SUID programlar�na kar�� sisteminizi korursunuz. X) Belirli bir dizini readonly baglayarak sisteminize yapila olas� sald�r�lara kars� �nlem alm�� olursunuz.Boylece sistemize gizlice giren birinin sitemize rootkit(mesela login program� hackerin kendi hazirlam�� oldu�u ve sisteme belirli bir user name ile ba�lan�nca log dosyalar�na log atmas�n� �nledi�i bir sistemi �nlemi� olursunuz) yerle�tirmesi son derece zor olacakt�r X)Sisteminizin backup ve restore olaylar�n� son derece kolay yapars�n�z. X)Sisteminiz daha hizli boot eder. TAVSIYE: Sisteminizi kurarken swap partitionlar�n�z� mumkun oldu�unca sda1 (hda1) e kurmayi deneyin.�lk dilime eri�im her zaman daha h�zl� olacakt�r.Arzu edenler IDE sistemlerde hdparm komutunu �al��t�rarak fark� g�rebilir. Dilimlemede su dilimler kullan�labilir. / /boot /var /usr /tmp /home 2c) Sistem Paketleri : Kurulacak sistem server oldu�u i�in redhatin kendi SERVER konfigurasyonu kurulabilir.Fakat sistem kurulduktan sonra �u paketler MUTLAKA kald�r�lmal�d�r( Bu k�s�m Securing-Optimazing-Redhat-Linux-V_1.3 ten al�nm��t�r)�steyetnler bu adresten bu d�k�mana ula�abilir.Bu paketler Redhat 6.2 i�in ge�erlidir. pump mt-st eject mailcap apmd kernel-pcmcia-cs linuxconf getty_ps isapnptools setserial kudzu raidtools (Sisteminizde software raid silinmemelidir) gnupg redhat-logos redhat-release gd pciutils rmt |
||
Manuel Ayarlar | ||
3) Bundan sonra sisteminizde manuel yap�lacak g�venlik onlemleriden bahsedece�im.Bunlar benim uygulad���m �nlemler.Daha �nceden dedi�im gibi eksiklikler olabilir.Ama her t�rl� yoruma da a��k oldu�umu s�ylemeliyim.Asl�nda bundan sonras� daha �ok yeni bir �ey ��retmekten ziyade varolan �eyleri biraraya getirip sysadm lere yard�mc� olmay� amacl�yor. 1)Redhat.com adresinden en son packet updatelerini indir ve kur. 2)Sistemine en son kerneli indir. 3)Kernel kurarken secure_linux patchini indir ve kerneli patchle.(Secure_linux sisteminize bir �ok g�venlik �zellikleri katacakt�r) 4)Sisteme login olacak ba�ka bir user a� vede UID ve GID'ini 0,0 yap.Vede sisteme asla root olarak girme( E�er sisteme birisi girerse root kullanicisi olmaya �al��acaktir.Bu da sistem loglar�nda gozukecektir.Sistem loglar� taranarak root un login olup olmad��� belirlenebilir.) 5)/etc/login.defs ile oynayarak kullan�c� �ifrelerinin en az 8 karekterli olacak �ekilde ayarla. 6)Sistemdeki SUID programlar�n�n modunu de�i�tir.Bu tarz programlar sistemdeki kullan�c�lar�n root yetkisini kullanarak program �al��t�rmas�n� sa�lar. Daha fazla bilgi i�in t�klay�n�z. 7)Sendmail'de relay ayarlar� ile oynayarak spami �nle 8)Sadece wheel grubuna uye olanlarin su olmas�nu sa�la.Bunu sa�lamak i�in. auth required /lib/security/pam_pwdb.so shadow nullok auth required /lib/security/pam_wheel.so group=wheel account required /lib/security/pam_pwdb.so password required /lib/security/pam_cracklib.so password required /lib/security/pam_pwdb.so shadow use_authtok nullok session required /lib/security/pam_pwdb.so sat�rlar�n� /etc/pam.d/su ya ekle.Vede su olabilmesini istedi�in user� /etc/groups dosyas�nda wheel grubuna ekle ( wheel root,user ). 9)/etc/hosts {allow|deny} dosyalar�yla oynayarak sisteme girecek IP'leri vede hangi servisleri kullanabileceklerini ayarla, 10)Kernel patchi olarak Lids (linux intrusion detection system)'de kurabilirsin ama hala stable de�il). 11)Sisteme mutlaka LOGCHECK kur.Bu program saat ba�� sana sistem loglar�ndan senin secti�in k�s�mlar� mailleyerek sistemdeki hakimiyetini artt�r�r.(Bu mailin gunluk atilmas�n� da saglayabilirsin cron.hourly deki logcheck'i cron.daily' e ta��yarak). 12)Elinden geldi�ince BIND (name server )kurmamaya �al��.En b�y�k g�venlik riski budur.E�er illa kurulmas� gerekiyorsa chroot yaparak kur.Daha fazla bilgi i�in Chrooted-Bind-HOWTO yu oku. 13)/etc/passwd ile oynayarak nobody nin shellini / den /var/lib/tmp yada uygun bir yer yap.Baz� Linux versiyonlarinda http://server/~nobody/etc/passwd yap�larak passwd dosyas� elde edilebilir. 14)/etc/hosts.conf a nospoof sat�r�n� ekle 15)Kernel'a tcpsyncookies deste�ini vererek Spoofing'i �nle daha sonra su d�zeltmeyi yap (echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter ) 16) Apache manuel lindeki SECURITY kismindaki direktifleri uygula) 17)/etc/securetty ile oynayarak root un ancak belli tty lerden login olmasini sagla mesela tty6 d���ndak� her�eyin ba��na HASH i�areti getir. 18)Kernel i install ettikten sonra sistemindeki gcc rpm ini sildikten sonra gerekli software leri kurmak i�in www.immunix.org tan gcc nin de�i�tirilmi� versiyonunu install et( Bu buffer overflow u onlemek i�in kullan�l�r.) 19)Butun �nemli daemonlari immunix gcc sini kullanarak kur.(apache bind mysql php...... ) 20)/etc/skel ile oynayarak sistemdeki kullan�c�lari a�madan her kullan�c� i�in istedi�in de�i�ikli�i yapabilrsin.Mesela /etc/skel/public_html yarat�labilir. 755 modunda) 21)Mysql'i asla root olarak �al��t�rma bunun i�in mysql i�in shelli /dev/null olan bir kullanici a� sonra grubunuda mysql yap.Sonra chown mysql:mysql /usr/local/mysql yap.Sonra ./safe_mysqld --with-user=mysql diyerek mysqli �al��t�r. 22)/etc/fstab ta /home ve /tmp partitionuna default yerine nosuid yaz.B�ylece bu dilimlerde suid shelleri �al��t�r�lmaz ve sisteme gizlice giren ki�i suid programlar� kullanarak root olamaz.En az�ndan bir �nlem.... 23)Sisteme www.psionic.com da bulunan portsentry kur.Vede /etc/rc.d/rc.local'e gerekli sat�rlar� ekleyerek sistemize port scan yapan sahislari tespit et vede bu IP'lerin otamatik olarak /etc/hosts.deny yazdirilmas�n� sa�la.Bunun i�in ba�langi� betiklerine rc.locale portsentry ile gelen ignore.csh'� da ekle. 24)Sistemde TELNET portunu kapa vede SSH� kur.Ayr�nt�l� bilgi www.ssh.com yada www.openssh.org adresinde.Ssh her turlu g�nderilen bilginin �ifrelenmesini sa�layarak sistemizi sniff eden sah�slar�n sistemdeki kullan�c� �ifreleri elde etmesini onler.PKI infrastructure. 25)SADECE ihtiya� duyulan servisleri a�.Di�erlerin kapa /etc/inetd.conf ta onlerine hash getir vede killall -HUP inetd diyerek inetd yi yenidne ba�lat.Daha iyisi Xinetd (extended inetd kur www.xinetd.org ). 26)Sistemini internetten real time izleyebilmek icin netsaint yada bigbrother � kur. 27)Ipchains kullanarak 6000:60003 aras� portlar� yani X portlar�na route i d��ar�dan kapat. ipchains -A input -i eth0 -p tcp -y --destination-port 6000:6003 -j DENY 28) /etc/security/console.apps alt�ndaki herseyi sil.Bunlar herhangi bir kullan�c�n�n bu dizin alt�ndak� komutu �al��t�rmas�n� sa�lar. 29)/etc/rc.d/init.d deki herseyi mod 700 yap.(Asl�nda o kadar da gerekli de�il) 30)Ping requestlere cevabi kes. 31)Sisteme www.bastille-linux.org daki bastille-linux paketini kur.KESINLIKLE 32) www.psionic.com dan Hostsentry program�n� indir ve kur.Bu paket sisteme de�i�ik ko�ullarda login olan userlari yada sistemde bulunan de�i�ik dir lari sistem loglar�na bildirir.Mesela bir hacker kurbani ile alakali dosyalari ~/... dizininde tutabilir.Buraya bir sniffer koyarak sisteme login olan kullan�c�lar�n �ifresini sniff edebilir. 33)E�er /bin /lib /usr/bin /usr/sbin gibi dizinler farkl� bir partitiona kurulursa /etc/fstab dosyas�nda defaults de�erler yerine readonly mount edilebilir.Boylece sisteme giren ki�i bu partitionlardaki programlar� kendi yaratt��� rootkitlerle de�i�tiremez ( Mesela login komutu de�i�tirilerek sadece belli bir user ile sisteme giren kullan�c�y� hi� �ifre sormadan root yapabilecek bir komut konulabilir.) 34)Ger�ek bir serverda derleyiciye asla gerek yoktur. egcs ve egc++ paketleri sistem tam manas�yla kurulduktan sonra kald�r�lmal�d�r.�htiya� duyuldu�unda bu paket tekrar sisteme kurulabilir. 35)Sisteminizin tam manas�yla kurduktan sonra sisteminize TRIPWIRE kurulabilir.Bu yaz�l�m binary olarak gelir.2 versiyonu vard�r.Biri ASR( v 1.3) denilen kodu a��k olan Academic Software Releasedir .Di�eri ise v 2.1'dir.Kurulmas� cok kolayd�r.Bu yaz�l�m soyle �al���r.Sisteminizde bulunan tum dosyalar� imzalar�n� tespit eder.Sonra bunlar hakk�nda rapor �retir.Bu �retilen rapor El Gamos asimetrik �ifreleme(1024 bit imza) ile �ifrelenir.Normalde default olarak /usr/TSS dir.Fakat tavsiyem bu program�n /root dizini alt�na kurulmas�d�r.Sistemde herhangi bir de�i�iklil oldu�unu hd���n�rseniz kontrol program� �al��t�r�l�rak sistemde de�i�mi� dosylar�n hepsini size g�sterir.Olduk�a kullan��l� bir sistem.Sisteminize giren ki�ilerin tam olarak ne yapt�klar�n� size g�sterir. 36)Sisteminizin kurulumunu bitirdi�iniz inan�yorsan�z sisteminizi vulnerability assesment tool lar (hassasiyet �l�me ara�lar� ) ile test edebilirsiniz .�rnek olarak SATAN yada SAINT verilebilir.SAINT SATAN in uzerine bina edildi�i i�in ek �zelliklere sahiptir.�rnek vermek gerekirse kendi sistemimi �l�t���mde pop3 daemonumun �ifreleri �ifrelemeden ald���n� g�rd�m.E�er pop3 arac�l���yla mail almaya �al��an bir user'in sistemde shelli varsa k�t� niyetli ki�iler sistemime �ok rahat girebilir. 37)Sisteminizdeki gerekli dizinler mutlaka yedek al�nmal�d�r.Bu ikinci bir harddisk yada tape drive olabilir.Tavsiyem a� i�i yedekleme olana�� sunan AMANDA'd�r. 38)Sisteminize herhangi bir IDS ( Intrusion detection system ) kurmal�s�n�z.Size tavsiyem SNORT olacakt�r.Tek ba��na sniffer vazifesi de g�r�r.Sisteminiz yap�lan herhangi bir sald�r� kar��s�nda size mail atabilir , sistem loglar�n�za uyar�lar�n� yazabilir yada sisteminizde samba ve bir clientta winpopup kurularak �al��t���n�z windows makinas�na popup penceresi ��kartabilir.Snort daha �nceden tespit edilmi� loglar yard�m�yla �al���r.Bu loglar� kendiniz yaratabilece�iniz gibi www.whitehats.com da bulunan aracnidsin g�nl�k g�ncellemesi ��kan vision.conf'u da kullanabilirsiniz Not: Buradaki �nlem listeleri zamanla artt�r�lacakt�r. |
||
Sistem Y�neticilerinin yaptik�� en b�y�k hatalar | ||
1) Sistem �zerinde gerekli �nlemleri almadan ( kernel patchlerini uygulamak,gereksiz servisleri kapatmak.....) sistemi internete ba�lamak. 2) Sisteminizdeki kurulmu� olan programlar�n kolay kurulum i�in olu�turduklar� default �ifrelerle/user hesaplar� ile internete ba�lamak. �rnek olarak Webmin kuracaksan�z y�netici kullan�c� ad�n� webminin default olarak atad��� admin kullan�c� ad� ile kurmak. 3)Gerekli g�ncellemeler ve yamalar ��kt��� halde bunlar� sisteme kurmamak. �r: Yeni kernel patchleri ��kt��� halde eskisini kullanmak.Yada apachenin eski versiyonlar�n� kullanmak. 4)Sisteminizi y�netmek i�in sisteminize telnet yada ba�ka �ifreleme kullanmayan programlarla ba�lanmak. 5)Kullan�c� �ifrelerini kar��daki ki�inin kim oldu�una emin olmadan telefonla vermek.... 6)Sistemde gerekli backuplar� yapmamak. 7)Ftp telnetd , finger , rpc gibi sisteminizde gereksiz servisleri �al��t�rmak. 8)Firewall kurarken zararl� paketlerin a��n�za girmesine izin vermek.Firewall ne yapaca��n� bilmedi�i bir paketi mutlaka reddetmelidir. 9)A��n�za virus saptama yaz�l�mlar�n� kurmamak 10)Sisteminizde bulunan kullan�c�lar�n�z� tehlikeli bir�ey ile kar��la�t��� zaman ne yapmas� gerekti�i hususunda e�itmemek. 11)Sisteminizi e�itilmemi� elamanlara emanet etmek. NOT: Bu 11 madde www.sans.org 'tan al�nm��t�r. |
||
�NTERNETTEK� �LK ON G�VENL�K BO�LUKLARI | ||
1)Bind yaz�l�m�n�n zay�fl�klar� : NXT ,QINV , IN.NAMED sisteminizin ilk zay�fl���d�r.�nlem olarak BIND paketi belli bir dizine hapsedilmi� olarak (chroot )kurulaibir. 2)Web sunucunuzda kurulan zararl� cgi betikleri ya da uygulama uzant�lar� (�r :ColdFusion). Zararl� cgi scriptleri CGICHK program� ile tespit edilebilir.Ek olarak sadece belli dizinlerde cgi �al��ma izni verilmelidir. 3) RPC.TTDSERVERD (ToolTalk) ,RPC.CMSD (Calender Manager) ,RPC.STATD gibi RPC (remote procedure call)'ler sisteminizde tehlike yarat�r. 4)Microsoft IIS de bulunan RDS g�venlik bo�lu�u 5)Sendmail buffer overflow zay�fl��� , Pipe Attack ve MIMEBo zay�fl��� 6)Sadmind ve mountd 7)NetBios yada WinNT arac�l��� ile (port 135-139 windows 2000 de port 445) yada UNIX NFS de port 2049 veya Macintoshta (port 80 427 548) web payla��m� veya AppleShare/IP yap�lan Global Dosya payla��mlar� 8) �ifresiz yada zay�f �ifrelerle kurulan sistemler 9)IMAP yada POP3 buffer overflowlar� yada yanl�� konfigurasyon dosyalar� 10)Varsay�lan Publci ya da PRIVATE SNMP community stringleri. Not: Yukar�daki bilgi www.sans.org tan al�nm��t�r.E�er bunlara kar�� �nlem almak istiyorsaniz [email protected] 'a TopTenFixes ba��lkl� bir mail at�n.E�er bu gruba �ye de�ilseniz mailinize isminizi , g�revinizi , �al��t���n�z organizasyonu ve mektup adresinizi i�eren bir mail at�n. |
||
G�venlik Siteleri | ||
.www.securityfocus.com :�ok geni� bir i�eri�e sahip bir site kesinlikle her g�n ziyaret edilmeli.�lgilendi�iniz konularla alakal� mutlaka bir forum bulacaksiniz.Bu forumlara da �ye olmakta fayda var. |
||