Dikkat: Bu yazıda geçen komutlar hem Linux tabanlı Centos hem de Linux tabanlı Red Hat (RHEL) işletim sisteminde geçerlidir.
CentOS FTP KOMUTU
FTP ile ilgili temel bilgilere daha önce FTP NEDİR? NE İŞE YARAR? makalemizde bahsetmiştik. Burada da giriş olarak tekrar edeceğiz.
FTP’nin Açılımı Nedir?
FTP’nin açılımı “The File Transfer Protocol”dür yani “Dosya Aktarım Protokolü”dür.
FTP Varsayılan Olarak Hangi Portu Kullanır?
FTP protokolü default olarak yani varsayılan olarak 21 numaralı portu kullanır. Yani istenildiğinde değiştirilebilir.
FTP Nedir Ne İşe Yarar?
FTP protokolü uzakta bulunan bir sunucu ile ağ aracılığıyla dosya transferi yapmak için kullanılmaktadır.
FTP Komutu Nerelerde Kullanılmaktadır?
FTP birçok sistemde kullanılmaktadır fakat biz konumuz gereği Linux tabanlı CentOS ve red hat (rhel) işletim sistemlerinde inceleme yapacağız.
FTP Komutu Nasıl Kullanılmaktadır?
FTP komutu aşağıdaki şekliyle kullanılmaktadır.
- ftp ftp_sunucusu
Bağlantı sonrası kullanıcı adı ve şifresi sorulmaktadır. Bu bilgiler girildikten sonra bilgi isteme durumunda bekleyecektir. Bu durumda aşağıdaki komutlar kullanılabilmektedir;
- ls : Uzak sunucuda bulunulan dizin içeriğini görüntüler.
- dir : ls ile aynıdır. 2 komutun çıktısı ftp sunucusuna göre değişebilir.
- cd : Uzakta sunucuda bulunulan dizini değiştirir.
- get : Uzakta sunucudan bir adet dosya çekmek için kullanılır.
- mget : Uzakta sunucudan birden fazla dosya almak için kullanılır. Burada .ekilecek dosya isminin tam olarak yazılmasına gerek yoktur. İsmi tamamlamak için *,? gibi özel karakterler kullanılabilir.
- put : Uzakta sunucuya bir adet dosya koymak için kullanılır.
- mput : Uzaktaki sunucuya birden fazla doysa göndermek için kullanılır.
- prompt : mget ve mput komutları kullanıldığı durumlarda her işlem yapılmadan önce kullanıcıdan onay beklenir. Onay beklenmeden işlemi yapmak isteniyor ise prompt komutu off parametresi ile çalıştırılmalıdır. Onay verme işlemini tekrar aktif yapmak için “prompt on” komutu kullanılmalıdır.
- bye : Ftp bağlantısını sonlandırmak için kullanılır.
FTP Nasıl Yüklenir?
Not: Eğer sisteminizde Proxy kullanıyor iseniz “yum” komutu ile internete bağlanıp yükleme işlemini yapamazsınız. Sisteminize Proxy ayarlarını girmeniz gerekmektedir. Çözüm için CentOS PROXY İLE YUM KOMUTU KULLANIMI makalemizde anlatılan işlemleri yapınız.
Aşağıdaki komutlar kullanılmaldır.
- yum install ftp
Not: Yükleme işlemi yapılırken “yes/No?” sorularına otomatik olarak “yes” cevabını vermek istiyorsanız “yum install ftp –y” şeklinde “-y” parametresiyle kullanabilirsiniz.
- yum install vsftpd
Not: Yükleme işlemi yapılırken “yes/No?” sorularına otomatik olarak “yes” cevabını vermek istiyorsanız “yum install vsftpd –y” şeklinde “-y” parametresiyle kullanabilirsiniz.
“vsftpd.conf” Dosyasının Yapılandırılması
Yükleme işlemi bittiğine göre ince ayarlamaları yapmalıyız. İlk olarak “vsftpd.conf” dosyasında bazı değişiklikler yapmalıyız. Aşağıdaki gibi dosyayı “vi” editörü ile açalım. Tabi başka bir yazı editörünüz varsa onu da kullanabilirsiniz. Biz burada sistemle beraber default olarak gelen “vi” editörünü kullanacağız. “vi” editörü için CentOS DOSYA İÇERİĞİNİN DEĞİŞTİRİLMESİ: vi EDİTÖRÜ isimli makalemizi inceleyebilirsiniz.
Kullanacağımız komut aşağıdaki gibidir.
- vi /etc/vsftpd/vsftpd.conf“
- Bir kullanıcı adı ile girilsin, her önüne gelen ftp ile bağlanamasın;
anonymous_enable=NO
- Port numarası 20 olmasın;
connect_from_port_20=NO
- chroot değişiklikleri;
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
- touch /etc/vsftpd/chroot_list
FTP Servisini Kontrol Etmek
- Bunun için “chkconfig –list” komutunu kullanacağız. Gördüğünüz gibi tüm level’lerde de “off” durumunda yani kapalıdır. Servisi açmamız gerekir.
FTP Servisini Başlatmak
- Bunun için “chkconfig vsftpd on” komutunu kullanacağız.
Şimdi servisi yine kontrol edelim.
Görüldüğü üzere “chkconfig vsftpd on” komutu ile “vsftpd” hizmeti 2,3,4 ve 5. Level’lerde “on” konumuna geçmiş yani açılmıştır. Diğer seviyeleri de açmak için “chkconfig –levels 16 vsftpd on” şeklinde komut kullanılabilir.
FTP Servisini Baştan Başlatmak:
- Şimdi hizmeti de açtığımıza göre FTP servisini baştan başlatabiliriz. Bunun için “service vsftpd restart” komutunu kullanmalıyız.
500 OOPS: cannot change directory Sorunu Çözümü
Yukarıda görüldüğü üzere bağlantı yapılmaya çalışılırken “Yanıt: 500 OOPS: cannot change directory:/home/nizam” şeklinde bir hata alabiliriz. Böyle bir durumla karşılaşmamak için veya bunu düzeltmek için “setenforce 0” komutunu kullanmalıyız. Son durumu “getenforce” komutu ile görebiliriz.
Görüldüğü üzere “Enforcing” durumundan “Permissive” durumuna geçmiş olduk.
- Şimdi tekrar FileZilla programı ile sanal makinamıza FTP ile bağlanmaya çalışalım.
Görüldüğü üzere “Yanıt: 500 OOPS: cannot change directory:/home/nizam” hatası giderilmiş oldu ve 192.168.93.142 IP adresli makinamıza nizam kullanıcı adı ve şifresi ile bağlanabilmiş olduk.
FTP’nin Loopback İle Kontrolü
Sanal makinemizde FTP çalışıyor mu? diye kontrol etmek isterseniz deneme amaçlı bir FTP bağlantısı yapmalısınız. Bunu başka bir bilgisayara ihtiyaç duymadan kendi Loopback adresine FTP ile bağlanarak deneyebilirsiniz.
- Sanal makinamız içerisinden de FTP testi yapabiliriz. Bunun için de önce “ifconfig” komutu ile “loopback IP adresi“ne bakalım.
Görüldüğü üzere sistemimize ait loopback IP adresi 127.0.0.1’dir. Şimdi bu IP adresine FTP ile bağlanalım.
- Bunun için aşağıdaki gibi “ftp 127.0.0.1” komutunu kullanacağız.
Görüldüğü üzere nizam kullanıcısı ve şifresiyle FTP ile sanal centos makinamıza bağlanabildik. FTP komutlarını burada uygulayabiliriz. Örneğin biz “dir” komutu ile dosya ve klasörleri listeledik ve “bye” komutu ile de çıktık.