Linux İşletim Sistemlerinde HTTP ve FTP Server Yapılandırması

LinuxAllBu makalemizde Linux İşletim Sistemlerinde HTTP ve FTP server kurulumlarının nasıl yapılacağını inceleyeceğiz. Öncelikle bu terimlerin neler olduğunu inceleyelim.

HTTP Server (Hyper Text Transfer Protocol) diğer adıyla Web sunucusu, İnternet üzerinde bir web sitesinin yayınından sorumlu olan sunucudur. Web servisi internet üzerinde en yaygın olarak kullanılan servisdir. Temel olarak HTTP (Hyper Text Transfer Protocol) protokolü kullanılarak verilen bir servistir.

FTP  Server (File Transfer Protocol) internete bağlı bir bir bilgisayardan diğerine (her iki yönde de) dosya aktarımı yapmak için geliştirilen bir internet protokolü ve bu işi yapan uygulama programlarına verilen genel isimdir.

FTP ilk geliştirilen internet protokollerinden biridir.

FTP protokolü ile ;

  1. Bir başka bilgisayardan bir başka bilgisayara dosya aktarımı yapılırken, o bilgisayar ile etkileşimi aynı anda bağlantı kurulur.
  2. Protokol ile sağlanan bir dizi komutlar yardımıyla iki bilgisayar arasında dosya alma/gönderme işlemleri yapılır.

FTP Yapmak İçin Nelere İhtiyaç Var?

  • Bağlanacağımız bilgisayarın ismi veya IP adresi,
  • Bağlanacağımız bilgisayarda dosyalara ulaşmak istediğimiz hesapla ilgili kullanıcı numarası, varsa şifresi,
  • İnternet erişimi olan,üzerinde FTP yazılımı bulunan bilgisayar
  • Bağlanacağımız bilgisayarda, FTP protokol komutlarını yorumlayacak çalışır durumda bir FTP servis programı yani FTP sitesi gereklidir.

FTP’nin Kullanımı
Genel kullanımı; FTP < FTP yapılacak makinenin adresi> şeklindedir. Bu işlemden sonra sıra ile ilgili bilgisayara bağlanıldığında, kullanıcı adı ve parola sorulur. Bunları girdikten sonra kullanıcının makinesine bağlanılmış olunur. Bazı FTP komutları kullanılarak iki makine arasında dosya işlemleri, ayrıca bağlanılan makinede bazı temel dosya/disk işlemleri (dosya açma/silme v.b ) işlemler yapılır.

Bunları Yapabilmek İçin Gerekli Olan FTP Komutları:

cd        : Dizin değiştirme. Kullanımı; cd< dizin adı > bir önceki dizine geçmek için cd.. yapılır.

pwd    : Bu komut yazıldığında bulunulan dizininin ismini görürüz. İçinde bulunulan dizindeki dosyaları listeler.

ls         : Dizin içindeki çok fazla sayıda dosya varsa sayfa sayfa listeleme ve dosyaları kısa olarak göstermeye yarayan komuttur.

get      : Dosya almakomutudur. Kullanımı; get <dosya – adı>(<alındıktan sonraki adı>) alındıktan sonraki adı aynıda kalabilir.

mget   : Birden fazla dosya alma komutudur. Örn: mget *.zip mget a*.*

put      : Dosya gönderme komutudur. Kullanımı; put<dosya- adı> <göndereceğimiz-yerdeki- adı>

mput   : Birden çok dosyayı gönderme komutudur.

ascii    : Dosya aktarımlarında aktarım modu olarak ASCII kullanılacağını belirtir.

binary: Dosya aktarımlarında Binary modun kullanılacağını belirtmek için kullanılır.

Yani;
-arşiv dosyaları (zip, tar vb. gibi),
-çalıştırılabilir programlar(. exe gibi),
-resim formatlı programlar, (gif,jpeg, vb. gibi)
 

rm        : FTP yapılan bir yerde istenilen dosyayı silme komutudur. Kullanımı; delete<dosya – adı > şeklindedir.

mkdir  : FTP yapılan yerde yeni bir dizin oluşturma komutu mkdir’dir.Kullanımı; mkdir < dizin -adı> şeklindedir.

rmdir   : FTP yapılan yerde bos bir dizini silme komutudur. Kullanımı; rmdir <dizin- adı> şeklindedir.

lcd       : FTP ortamından çıkmadan, kendi makinenizde dizin değiştirmenizi sağlar.

close  : FTP ortamından çıkmadan sadece ilgili bağlantıyı kapatır.

quit     : FTP ortamından çıkmak ve bağlantıyı kapatmak için kullanılan komuttur.

Anonymous FTP Nedir?
FTP işlemleri sırasında güvenlik açısından bağlanacağımız makinede kullanıcı numarasını (user name) ve password (parola) bilgilerini bilmemiz gerekir.(Program bunları bize sorar.Bağlanılan makine,kişiye özel ve parolasını sadece bizim bildiğimiz bir makine olabileceği gibi,herkese açık bir arşivde olabilir. Böylece herkesin kolayca erişip dosya almasını sağlayan tek tip bir kullanıcı numarası tanımlanmıştır. O da; ANONYMOUS yada FTP. Bu merkezlere FTP yapıldığında kullanıcı ismi olarak anonymous ( ya da FTP ) girildiğinde bizden parola olarak kendi: e-posta adresimizi girmemiz istenir. ( Parola yazılırken görülmez ) Şifre olarak kesinlikle kendi bilgisayarımızın şifresini girmeyiniz .

Web Üzerinden FTP
Son zamanlarda genel eğilim tüm internet servislerine daha becerikli ve etkilesimli ortamlardan erişilmesi ve farklı servislerin etkileşimli olarak kullanılması seklinde kendini göstermiştir. Bunlardan en önemli olanlarından bir taneside WEB’dir. FTP’de dahil olmak üzere pek çok internet servisi ve ilave pek çok özellik bu ortamlar üzerinden kurulabilir. Dolayısıyla FTP yapmanın bir diğer yoluda WEB üzerinden FTP yapmaktır. Bu yöntem kullanım açısından daha kolaydır.

Binary bir dosyayı, yanlışlıkla, standart FTP programları ile kolayca ASCII modda almanız mümkün, bu sakıncalar WEB üzerinden yapılan FTP’ lerde ortadan kalkmaktadır. Sözgelimi standart resim formatlarında olan bir resim dosyasını aldığınız anda görüntüyü ekrana da gönderebilirsiniz. FTP yapmanın bu “farklı,kolay ve güzel” yolunu WEB kısmında bulabilirsiniz.

Grafik Arabirimli FTP
Klasik anlamda FTP yaparken, bir takım komutlar veririz. Son yıllarda geliştirilen bazı programlar kullanıcının bu komutları vermesine gerek kalmadan grafik bir ara birim ile kullanıcının daha kolay ve komutları girmeden FTP yapmasına olanak tanırlar. FTP komutları ya pull-down/pop-up menülerden alınır; ya da tek bir fare tıklatması ile değişik FTP komutları icra edilir. Bu tip programlara bir örnek, Windows işletim sistemlerinde çalışan ve PuTTY tarafından geliştirilen ve ücretsiz olan PsFTP yazılımıdır.

 FTP Yaparken Dikkat Edilmesi Gereken Hususlar

  • EXE, .ZIP vb gibi dosyaları BINARY modda transfer edin. FTP’de (genellikle) varsayılan aktarım biçimi ASCII dir.
  • AnonymousFTP’de, bir directory içine girdiğinizde, genellikle, oradaki dosyaların isim,byte olarak büyüklük, tarih ve içeriğini belirten kısa açıklama satırlarının olduğu ‘readme’ dosyaları (bazen de INDEX dosyaları) vardır. Öncelikle bu ASCII dosyaları alıp okumak size çok yardımcı olacaktır.
  • Anonymous FTP’de, şifre olarak lütfen e-mail adresinizi doğru olarak girin. Bazı FTP merkezleri, e-mail adresinin uygunsuz girilmesi (ya da girilmeyip boş geçilmesi) durumunda FTP yapmanıza izin vermemektedir.
  • Unix’te küçük/büyük harf ayrımı olduğunu her zaman akılda bulundurun.Özellikle, aktaracağınız dosyaların isimlerini tam yazın ve küçük/büyük harf ayrımlarına dikkat edip aynısını yazın.
  • Kullandığınız bilgisayarın işletim sistemine özgü kısıt/özellikleri de bilmekte fayda var.

Bu kadar teorik bilgiden sonra kurulumlarımıza geçelim…

 HTTP Server Kurulumu

Linux işletim sistemimize “root” kullanıcısı ile oturum açıyoruz.

1.Gerekli olan “httpd” paketini sunucumuza kuruyoruz.

# yum install httpd

2. Sunucumuzun “host” isim çözümleme dosyasını editorümüz ile açarak sunucu IP adresini ve ismini giriyoruz. İsim önceden girilmiş ise kontrol edilmelidir.

# vim /etc/hosts

192.168.1.10 	koraykey.localdomain 	koraykey

3. HTTP Server servisini başlatıyor aynı zamanda sunucumuz yeniden başladığında otomatik başlaması için gerekli ayarları yapıyoruz.

# service httpd start
# chkconfig httpd on

4. HTTP sunucumuz yüklendi ve çalışıyor. HTTP Server yapılandırma dosyasını “/etc/httpd/conf/httpd.conf” yolunda bulabiliriz. Bu dosyayı metin editörü ile açtığımızda gerekli ayarları yapabiliriz. Herhangi bir güvenlik duvarı kullanmıyorsak veya aşağıdaki güvenlik duvarı ayarlarımızı yaptığımızda tarayıcı adres kutucuğuna sunucu adını veya IP adresini yazarak web server giriş sayfasını görüntüleyebiliriz. Şimdi güvenlik duvarı kullananlarımız için bu ayarların nasıl yapılacağını inceleyelim. Sunucumuzda bu servisin çalışabilmesi için 80 numaralı porta izin veriyoruz. Görev çubuğundaki “System > Administration > Firewall” adımlarını izleyerek açılan yapılandırma penceresinde “Trusted Services” sekmesindeki listeden “WWW (HTTP)” seçeneğini bulup işaretliyoruz ve uygula düğmesine basıyoruz. Eğer işlemimizi komut satırından yapacaksak aşağıdaki komutu kullanıyoruz.

# iptables -A INPUT -p tcp --dport 80 -j ACCEPT

HTTP Server ile ilgili yapacaklarımız bu kadar. Sunucumuzda Firewall Servisi kapalıysa bu ayarları yapmamıza gerek yoktur. Şimdi FTP Server kurulumuna geçelim.

  • FTP Server Kurulumu

1.Linux işletim sistemimize “root” kullanıcısı ile oturum açıyoruz ve gerekli olan “vsftpd” paketini sunucumuza kuruyoruz.

# yum install vsftpd

2. FTP Server servisini başlatıyor aynı zamanda sunucumuz yeniden başladığında otomatik başlaması için gerekli ayarları yapıyoruz.

# service vsftpd start
# chkconfig vsftpd on

3. FTP sunucumuz yüklendi ve çalışıyor. FTP Server yapılandırma dosyalarını “/etc/vsftpd” dizini altında bulabiliriz. Şimdi burada bulunan dosyalar üzerinde yapmamız gereken ayarları inceleyelim.

# vim /etc/vsftpd/vsftpd.conf

4. FTP sunucumuz yalnızca açılışta vsftpd.conf dosyasını okur. Bu dosyada yapılan değişikliklerde FTP Server servisi yeniden başlatılmalıdır. Şimdi bu dosyamızdaki satırları düzenleyelim.


Default kurulumda VSFTPD anonim FTP sunucusu olarak çalışır.
Anonim erişimleri kapatmak için bu değer “NO” olarak ayarlanmalıdır. Eğer anonim bağlantılara izin verilecekse bu değer “YES” olmalıdır.

# Allow anonymous FTP?
anonymous_enable=NO

Lokal kullanıcıların (root, oracle vb) şifreleri ile Login olmalarını sağlamak için bu değer “Yes” olarak ayarlanmalıdır.

# Uncomment this to allow local users to log in.
local_enable=YES

Default kurulumda FTP Server anonim bağlantılarda sadece download yapmaya izin verir. Upload da yapabilmelerinide istiyorsak “anon_upload_enable=YES” değerinin önündeki # işareti kaldırılmalıdır.

# Uncomment this to allow the anonymous FTP user to upload files.
# has an effect if the above global write enable is activated.
# obviously need to create a directory writable by the FTP user.
anon_upload_enable=YES

Ayrıca Anonim bağlantılarda klasör oluşturmaya da izin vermez. İzin vermesi için “anon_mkdir_write_enable =YES” değerinin önündeki # işareti kaldırılmalıdır.

# The anonymous FTP user to be able to create directories.
#anon_mkdir_write_enable=YES

FTP Sunucumuza kullanıcılar istek yaptığında onları bir hoşgeldin yazısı ile karşılayabiliriz. Bunun için ftpd_banner değerinin önündeki # işaretini kaldırarak mesajımızı yazıyoruz.

# You may fully customise the login banner string:
ftpd_banner= KorayKey FTP Sunucusuna Hosgeldiniz. 
Yapmış olduğunuz değişiklikler kayıt altına alınmaktadır.

5. Eğer anonim kullanıcıların sisteme upload yapmalarını istiyorsak onlara birde upload yapabilecekleri dizin ve izinleri ayarlamalıyız.

# mkdir /var/ftp/pub/upload
# chmod 733 /var/ftp/pub/upload

6. Sizlere vsftpd.conf dosyası altındaki ayarların bir çoğundan bahsettikten sonra şimdi izinli ve izinli olmayan kullanıcı ayarlarını yapmaktan bahsedeceğim.

FTP bağlantısı kurabilecek kullanıcıların belirlenmesi için dikkat edilmesi gereken

# vim /etc/vsftpd/vsftpd.conf
-- dosyasındaki "userlist_enable" değeri "YES" olarak ayarlanmışsa
izinli kullanıcılar listesini belirlememiz gerekmektedir.

 

# vim /etc/vsftpd/userlist
-- dosyası içerisinde FTP yapabilecek kullanıcı isimlerinin yazılı
olduğundan emin olmalıyız.

 

# vim /etc/vsftpd/ftpusers
-- dosyası içerisinde FTP yapamayacak kullanıcı isimlerinin yazılı
olduğundan emin olmalıyız. Eğer FTP yapmasını istediğimiz bir kullanıcı
burada mevcutsa önüne # işareti koymalıyız.

# Users that are not allowed to login via ftp
#root

7. Sonrasında eğer bu dosyalarda değişiklik yaptıysak FTP Server yalnızca servis açılışında bu ayarları okuduğu için servisi yeniden başlatmalı ve ayarların uygulanmasını sağlamalıyız.

# service vsftpd restart

8. Şimdi güvenlik duvarı kullananlarımız için bu ayarların nasıl yapılacağını inceleyelim. Sunucumuzda bu servisin çalışabilmesi için 21 numaralı porta izin veriyoruz.Görev çubuğundaki “System > Administration > Firewall” adımlarını izleyerek açılan yapılandırma penceresinde “Trusted Services” sekmesindeki listeden “FTP” seçeneğini bulup işaretliyoruz ve uygula düğmesine basıyoruz. Eğer iptables servisi aracılığı işe bu işlemi yapacaksak aşağıdaki komutu uygulamalıyız.

# iptables -A INPUT -p tcp --dport 21 -j ACCEPT

FTP Server ile ilgili yapacaklarımız bu kadar. Sunucumuzda Firewall servisi kapalıysa bu ayarları yapmamıza gerek yoktur.

Artık sunucumuzda HTTP ve FTP Server hizmetlerimiz hazır ve çalışır durumdadır.

Makalede her iki konuyuda inceledik ihtiyacımıza göre yalnızca FTP servisini kuracaksak HTTP Server adımlarını geçerek FTP Server kurabiliriz.

Oracle Enterprise Linux 6 Update 4 için test edilmiştir. Tüm Linux versiyonlarında özellikle Red Hat türevlerinde aynı ayarlar geçerlidir.

Başka bir makalede görüşmek üzere…

Bu yazı Unix / Linux kategorisine gönderilmiş ve , , , , , , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.