Pardus`a ProFtp kurulumu

Linux Yazıları19/08/2008


Partdus kurulu olan makinenizi tam anlamıyla bir server olabilmesi için en önemlis servislerden biri olan ftp`nin kurulu olası kesin gerekmektedir. Fakat pardus üzerinde çalışan ve şuan paketi depolarda mevcut bir yazılım henüz ben bulamadım... Kernel.org ve SourceForce`nin bu yazılımı kullandığını öğrenince zaten gerek de kalmadı.

Yaptığım araştırmalardan sonra ProFtpd yazılımını kaynağından kurup denemeye karar verdim. ProFtpd sayfasından tar.gz uzantılı mevcut bir versiyonun kaynak kodlarını sistemimize indiriyoruz. Ben bu işlemleri ssh ile bağlanıp konsole üzerinden yaptığım için sizlere kodları yazacağım.

Ln Desktop #  wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.2rc1.tar.gz

İndirdiğimiz dosyayı unzip yapıp oluşturulan klasör içine girip klasik kurulumu gerçekleştiriyoruz.

Ln Desktop #  tar zxvf proftpd-1.3.2rc1.tar.gz
Ln Desktop # cd proftpd-1.3.2rc1
Ln Desktop # ./configure --prefix=/usr/local/proftpd
Ln Desktop # make
Ln Desktop # make all

Bu işlemlerden sonra eğer hata oluşmadıysa ftp serverımız kullanıma hazır. ProFtp`yi çalıştırmak için ise aşağıdaki komutu kullanabilirsiniz.

Ln Desktop # /usr/local/proftpd/sbin/proftpd

Programdaki hayati önem taşıyan dosya ise /usr/local/proftpd/etc/proftpd.conf adresindeki ayar dosyası. Serverımız ile alakalı her türlü ayar bu dosya üzerinden yapılmaktadır. Eğer ayar dosyasını sisteminizde nerede olduğunu bilmiyorsanız aratmak için.

Ln Desktop # find / -name proftpd.conf`

proftpd.conf dosyasındaki birkaç örnek uygulama......

Kullanıcıların dosya işlemlerine kaldıkları yerden devam etmeleri için
AllowStoreRestart on
AllowRetrieveRestart on

ProFTPD standart kurulumda anonymous erişime izin vermez. Programın configrasyon dosyasına girip en alt satıra aşağıdaki kodları yapıştırın. Bu İşlemden sonra herkes anonymous olarak /home/FreeFtp klasörünün içini görebilecektir.
<Anonymous /home/FreeFtp>
              User ftp
              UserAlias anonymous ftp
              Group ftp
              <Limit DELE RMD>
                      DenyAll
               </Limit>
</Anonymous>

Proftpd`ye, ilk baglanirken cok zaman geciyorsa asagidaki satırlar proftpd.conf dosyasina eklenerek Proftpd nin Reverse DNS in kullanması kapatılabilir.
UseReverseDNS off
IdentLookups off

Serverımız bir firewall arkasından internete çıkıyorsa Pasif Mode `da kullanacağı portları bizim belirlememiz en güzeli olacaktır.
PassivePorts                    10010 10020

Dosya boyutunu sınırlamak için;
MaxStoreFileSize 300 Kb

Bağlantı sınırlama;
MaxClientsPerHost 2 "üzgünüz. Bir Hosttan en fazla (%m) bağlantı kurulabilir."
MaxClientsPerUser 2 "üzgünüz. Bir Kullanıcı adı ile en fazla (%m) bağlantı kurulabilir."
MaxClients 50 "üzgünüz, Suan Max.Bağlantı olan %m kisi sisteme bagli."

Kullanıcıların üst dizinlere çıkmasını engellemek için;
DefaultRoot ~

Herhangi bir sebepten dolayı yazılımı kaldırmak isterseniz.

Ln Desktop # killall -9 proftpd; rm -rf /usr/local/proftpd

Ftp yetkilendirmesi için yeni bir group veya kişi oluşturmanız gerekebilir.
Ln ~ # groupadd MyFtpServer
Ln ~ # useradd -GMyFtpServer -pdeneme -m deneme

Basit bir konfigurasyon dosyası. /var/ftp klasörünün içine herkes ulaşabilsin, dosya gönderebilsin ama upload alt dizininin içinden kim kimse birşey silemesin...
ServerName "Pardus Ftp Server"
ServerType standalone
DefaultServer on
Port 21
Umask 0122 0022
MaxInstances 30
MaxClientsPerUser 5
UseReverseDNS off
IdentLookups off
TimeoutLogin 60
TimeoutIdle 60
AllowOverwrite on
User ftp
Group ftp

# Burada tüm anonim bağlantıların mod değiştirme yetkileri kısıtlanıyor.
<Limit SITE_CHMOD>
DenyAll
</Limit>

###[ anonymous connections ]################################################

<Anonymous /var/ftp>
User ftp
Group ftp
AnonRequirePassword on

# Burada tüm klasörlerin mod değiştirme yetkileri açılıyor.
<Limit SITE_CHMOD>
AllowAll
</Limit>

# Burada upload klasörü için tanımlamalar yapılıyor.
<Directory upload>
# upload klasöründe dosya silme yetkileri kıstlanılıyor.
<Limit DELE>
DenyAll
</Limit>

# upload klasöründe klasör silme yetkileri kıstlanılıyor.
<Limit RMD>
DenyAll
</Limit>
</Directory>
</Anonymous>

Kendi kullandığım konfigurasyon dosyam. tüm kullanıcılar kendi ana dizinindeki sanal webroot olan public_html klasörüne ulaşıp istediğini yapabiliyor. Ayrıca anonymous baglantılar için /home klasörünün altında FreeFtp klasörü mevcut. Herkes istediğin dosyayı atabiliyor ama silme yapamıyor.
ServerName "Pardus Ftp Server"
ServerType standalone
DefaultServer on
Port 21
MaxInstances 30
User nobody
Group nogroup
AllowOverwrite on
RootLogin off
PassivePorts 10010 10020
Umask 022
RequireValidShell off

# Tüm kullanıcıları public_html klasorunde kitleyelim, *** COK ONEMLI ***
# Eger bu islem yapilmazsa kullanıcılar ust dizinlere cikip baskasina ait
# klasor uzerinde islem yapabilirler
DefaultRoot                     ~/public_html

# It`s better for debug to create log files ;-)
ExtendedLog             /var/log/ftp.log
TransferLog             /var/log/xferlog
SystemLog            /var/log/syslog.log

# Basarili login isleminden sonra gösterilecek mesaj
AccessGrantMsg  "ESinTi BiLiSim Ftp Server`a HOSGELDINIZ..."

<Limit SITE_CHMOD>
DenyAll
</Limit>

<Anonymous ~>
  User ftp
  Group ftp
  UserAlias anonymous ftp
  MaxClients 10
  DisplayLogin welcome.msg
  DisplayChdir .message

 # Izin Verilen Kullanicilar
 <Limit LOGIN>
    #AllowUser ESinTi
    DenyALL !ESinTi
 </Limit>

  <Limit WRITE>
    DenyAll
  </Limit>

</Anonymous>

# Burasa Ftp server`ımızın bazi network kontrollerini kapatip hızlı
# calismasini sagliyoruz...

<Global>
   IdentLookups off
</Global>
UseReverseDNS off

<Anonymous /home/FreeFtp>
User ftp
UserAlias anonymous ftp
Group ftp
<Limit DELE RMD>
DenyAll
</Limit>
</Anonymous>
Etiketler: