Halka Acik (anonymous) FTP Dosya Sunucusu Kurulumu

Halka Acik (anonymous) FTP Dosya Sunucusu Kurulumu

Halka acik (anonymous) FTP dosya sunucusu kurmak


Red-Hat Linux gibi bir cok bilgisayar yazilimi internet uzerinden ucretsiz indirilebilir.Bunun basarilmasini saglayan yapi "halka acik ftp sunucularinin" uzerine kurulmustur.


Her dosya alis-verisi yapmak isteyen kisiye bir FTP hesabi acmak pratikte mumkun degildir.Ancak bu sekilde yapilandirilmis bir FTP sunucusu ile tum dunyaya acik bir dagitim merkezi kurulunabilir…


"Halka Acik FTP Sunuculari" bilgisayar korsanlari icin en buyuk nimettir.Bir sunucuya yanlizca gerekli oldugunda boyle bir ozellik eklenmelidir.Ihtiyacimiz oldugu varsayilarak asagidaki kurulum yazisi harilanmistir :


Red Hat Linux isletim sistemi ile hic zorlanilmadan ve ucretsiz olarak boyle bir FTP sunucusu kurmak icin anonftp RPM paketi kullanilir.


Hemen bu isimde bir paketin sistemde yuklu olup olmadigina bakalim :



rpm -qa | grep anonftp



Eger sunucunuzda bu paket yuklu ise surum numarasi ile beraber ekrana gelecektir.


herhangi bir cikti ekrana yazilmaz ise program sisteminizde yok demektir. Red Hat Cd-Rom'undan bu paketi asagidaki gibi yukleyebilirsiniz :



rpm -ivh anonftp-3.0-6.i386.rpm



Sisteminizin mimarisi ve CD-Rom'daki paketin surum numarasina gore yukaridaki komutu kendinize gore duzenlemeniz gereklidir.(Ornegin i386 pentium mimarisine sahip sistemler icindir.)


Bu paket bir kez kurulduktan sonra "Halka acik FTP sunucusu" calismaya hazirdir.


Onemli Not : Sisteminizde "ftp" isimli kullanici hesabi herhangi bir sifre verilmemis olarak hazir olmalidir. /etc/passwd dosyasi icinde "ftp" kullanci adina sahip hesap icin :



ftp:*:14:50:FTP User:/home/ftp:/bin/true


sekinde bir kayit olup olmadigini kontrol ediniz…



Kurulumun nasil yapildigini gormek istiyorsaniz sagidaki gibi bir komutu calistirabilirsiniz :



rpm -qlp anonftp-3.0-6.i386.rpm



Su anda kurulumla ilgili dosyalari goruyor olmalisiniz.Butun dosyalar ~ftp klasorune yerlestirilir.(Bu klasor 'ftp' kullanicisi icin ev klasorudur.Bunun ne oldugunu gormek icin /etc/passwd dosyasina bakilmalidir.)


Bulundugunuz klasoru ~ftp olacak sekilde degistirin ve "ls -l" komutunu calistirin.




[serkan@ns1 ~ftp]# ls -l
total 4
d-x-x-x 2 root root 1024 Nov 5 15:29 bin
d-x-x-x 2 root root 1024 Nov 5 15:29 etc
drwxr--xr--x 2 root root 1024 Nov 5 15:29 lib
dr--xr--sr--x 2 root ftp 1024 Sep 10 17:21 pub



seklinde bir ekran ciktisi goreceksiniz.simdi bin klasorune gecerek ls -l komutunu bu klasorde calsitriniz :




[serkan@ns1 ~ftp/bin]# ls -l
total 313
---x-x-x 1 root root 15236 Nov 5 15:29 compress
---x-x-x 1 root root 46356 Nov 5 15:29 cpio
---x-x-x 1 root root 45436 Nov 5 15:29 gzip
---x-x-x 1 root root 29980 Nov 5 15:29 ls
---x-x-x 1 root root 62660 Nov 5 15:29 sh
---x-x-x 1 root root 110668 Nov 5 15:29 tar




Bu hizmet yazilimlari FTP sunucusunda olmasi gereken yazilimlardir. Ornegin ls programi klasorlerin icerigini goruntulemek icin kullanilir.Peki bu yazilimlar neden burada duruyorlar?


Cevap cok basit : Biz "halka acik sunucu kurarken" ~ftp klasorunu (/home/ftp) "chroot" programiyla sunucu icin kok klasor haline getiriyoruz.Bu durumda sunucunun diger klasorlerine erisim mumkun olmamaktadir.


Kullanicinin halka acik bu sunucuya baglanmasi halinde bazi hizmet yazilimlarini (ornegin ls gibi) kulanmasi sarttir.Bunlari /bin klasorune yerlestirip problemi cozmus oluyoruz…


Sizde istediginiz uygulamalari /etc , /bin, ve /lib klasrlerinden alip buraya yerlestirebilirsiniz.Sunucu guvenligi icin bu klasorlerde mumkun oldugunca az yazilim bulundurulmalidir.


~ftp/lib klasoru ~ftp/bin klasorundeki programlarin ihtiyac duydugu kitaplik dosyalarini barindirir.


~ftp/pub klasoru sizin halka acik olarak dagitacaginiz yazilimlari veya dosyalari koyabileceginiz klasordur.


Eger bu "isimsiz" kullanicilara (halka acik FTP sunucusuna baglanan ve kimlikleri belli olmayan kisiler) sunucuya "dosya yukleme" yetkisi vermek isterseniz asagidaki adimlari izlemeniz gereklidir :




1.Yeni bir klasoru ~ftp dizini altinda "yuklenen dosyalarin saklanmasi" icin yaratin.Bu klasor genellikle "incoming" olarak isimlendirilir.Burada da "incoming" isminde bir klasor yarattiginizi kabul edecegiz.


2.Asagidaki satiri /etc/ftpaccess dosyaniza ekleyin :


upload /home/ftp /incoming yes root ftp 0600 nodirs



3.Yukaridaki satirda gecen /home/ftp klasoru'nun sizin sisteminizdeki dogru yolu gosterdigine emin olunuz.Ornegin sizin ~ftp klasorunuz ('ftp' kullanicisi icin ev dizini) /data/ftp ise lutfen yukaridaki ayarda /home/ftp yerine /data/ftp yaziniz.Eger kullanicilarin alt dizinleri olusturmasina izin vermek istiyorsaniz "nodirs" yazan yeri siliniz.


4.Asagidaki komutlari uygulayin.



chown -R root.ftp ~ftp/incoming
chmod -R 1733 ~ftp/incoming



chown komutu ile "incoming" klasoru root kullanicisina ve ftp grubuna dahil ediliyor.


chmod komutu ile "incoming" klasoru icin izinler belirleniyor."root" icin "okuma yazma ve calistirma" haklari, grup ve digerleri(tum dunya) icin ise "yazma ve calistirma" izinleri verilmis oluyor. Ayni zamanda bu komut ile "sticky bit" dedigimiz (1733 te yer alan 1 rakami bunu gosteriyor.) dosyalari silinmekten koruyan parca da dosya izinlerine ekleniyor.Normalde yazma hakki ile gelen dosya silme izni bununla yanlizca dosyanin sahibine veriliyor…Yani sadece root kullanicisi sunucuya yuklenen dosyalari silme hakkina kavusuyor.(Sunucuya baglanan kisilere herhangi bir okuma hakki vermedigimiz icin ~ftp/incoming klasorundeki dosya adlari "ls -l" ile goruntulenmezler.Eger kisi dosyanin adini biliyorsa halen dosyayi download edebilir.)


5."isimsiz" kullanici icin /etc/ftpaccess dosyasinda "anonymous" taniminin yazili olmasi gereklidir.Bu dosya ongorulen olarak bu kayida sahiptir ve sizin herhangi bir degisiklik yapmaniza gerek yoktur..Eger bu dosyada "all" ile tanimli sinif icin "real,guest,anonymous" yazan yeri degistirdiyseniz bu dosyaya bu tanimlari tekrar eklemeniz gereklidir.



Guvenlik


"Halka acik bir FTP sunucusu kurmak" basli basina bir guvenlik riskidir.Bu sunucuya dosya yukleme izni vermek bu riski daha da arttirir.Dunya uzerinde bu isi yapan sayisiz kurulus vardir ve yillaraca herhangi bir problem olmadan sunucularini ayakta tutabilmeyi basarmislardir.


Asagidaki maddelere goz atmaniz sizinde sorunsuz bir FTP sunucusu yonetmeniz icin gereklidir :



# /etc/passwd icinde yer alan 'ftp' kullanicisina ait sifre mutlaka "gecersiz bir yapida" olmalidir.Ornek vermek istersek :



ftp:*:14:50:FTP User:/home/ftp:/bin/true



# ~ftp/bin klasoru mutlaka root kullanicisina ait olmalidir.Bu klasor icindeki hizmet yazilimlarida (ls,tar, compress vb.) mutlaka root kullanicisina ait olmalidir.Bu klsor icindeki dosyalar yanlizca "uygulanabilir" dosya izinine sahip olmalidir (executable)


Tum bunlar icin asagidaki komutu uygulayin :



chown -R root.root ~ftp/bin; chmod -R 111 ~ftp/bin



# ~ftp/etc klasoru yanlizca root kullanicisina ait ve yanlizca "uygulanabilir" dosya izinlerine sahip olmalidir.


Tum bunlar icin asagidaki komutu uygulayin :



chown -R root.root ~ftp/etc; cd ~ftp/etc; chmod 444 *



# Hic bir zaman /etc/passwd ve /etc/group dosyalarini ~ftp/etc klasorune kopyalamayiniz.Burada yer alacak /etc/passwd ve /etc/group dosyalari bazi programlari kandirmak icin oradadir.Normalde "chroot" kullanarak ayarlanan klasorden sunucu kok dizinine cikmak imkansizdir.Bu nedenle bazi programlar bu dosyaya gerek duyduklarinda orada olmalari gerektigi icin oradadirlar.


# ~ftp klasorundeki hic bir dosya 'ftp' kullanicisina ait olamamalidir.



Makale ile ilgili her turlu yorumunuzu serkan@turk-php.com adresine gonderebilirsiniz…


Serkan Hadi Ceylani
serkan@turk-php.com


Kaynak :0-7645-4786-0

 

0 yorum: