Yazar Hakk�nda

1 A�ustos 2000

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.

www.linuxsecurity.com : Ad�nda da belli san�r�m.Bu site �ok �ey s�yliyemiyece�im. Ama g�nl�k verilen tip leri her zaman ajandama yazar�m 

www.securityportal.com : �ok yararl� bir site daha.Her t�rl� bilgileye burdan ula�abilirsiniz.Cisco yada piyasada bulunan appliance larla alakal� yaz�lar var.Ayrica sisteminizde deneyebilece�iniz exploitler var :)

www.linuxtoday.com :Kesinlikle herg�n ziyaret edilmesi gereken bir site.Haber haber haber..

www.apachetoday.com , www.apacheweek.com : Apache hakk�nda g�venlik yaz�lar�n� burda bulabilirsiniz.

www.cert.org

www.iss.org : Internet Security System.org

www.cert.org

www.ciac.org

www.rootshell.com : Expoitler tart��ma listesi ve uyar�lar i�in

www.whitehats.com : IDS hakk�nda �ok ho� bir site.Online IDS tarama sistemi var.

www.opensec.org :Ba�kalar�n�n opsec'i varda bizim opensec imiz olmazm�

www.trinux.org :Komple bir sistemi kuracak tek bir yaz�l�mlar� var.Denemedim birsey diyemem.

www.intrusion.com : Ticari appliance �reten bir �irket.

www.checkpoint.com : En �nl� firewall yazan firma.( Firewall-1) VPN ��z�mleri de var.Aylar �ncesinden Linux versiyonlar�n� ��kartacaklar�n� s�ylemi�lerdi.San�r�m ��km�� ve Solaris versiyonundan kat kat performansl� ��kt���n� okumu�tum.CheckPoint 2000 cdsi i�inde geliyormu�.Ama tam bir bilgim yok.

www.watchguard.com: Appliance �reten bir firma.Opsec �yesi san�r�m

www.stonebeat.com : High-Availabilty hususunda son derece geli�mi� �r�nleri var.WebCluster , Cache cluster yada Firewallar i�in HA ��z�mleri mevcut.Linux versiyonuda var.

www.axent.com

www.clicknet.com

www.surfcontrol.com

www.esecuriytinc.com

www.hiverworld.com

www.netsecuresoftware.com

www.network-1.com

www.pgp.com

EnderUnIX Software Developer Team