Kurulum
Önce root oluyoruz. Tüm komutları root olarak yazacağız. Delikanlı sistem yöneticisi sudo mudo uğraşamaz. Hata yapınca da büyük hatalar yapmak ister.
sudo su
Sonra pure-ftpd yi basitçe kuruyoruz.
apt-get install pure-ftpd
Ayarlar
Servisin bir conf dosyası yok. /etc/pure-ftpd/conf altındaki dosyalara yes, no, değer, vs. gibi kısa ayarlar yazarak yapıyoruz tüm ayarları.
cd /etc/pure-ftpd/conf
Servisin daemon olarak çalışmasını sağlıyoruz.
echo "yes" > /etc/pure-ftpd/conf/Daemonize
Kimliksiz girişi iptal ediyoruz.
echo "yes" > /etc/pure-ftpd/conf/NoAnonymous
Herkesi kendi home dizinine hapsediyoruz.
echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone
Yetkilendirmeyi Unix sistem kullanıcıları ile yaptırıyoruz. (Çok çeşitli yetkilendirme yaptırmamız mümkün. Bir veritabanı kullanabiliriz, PAM, LDAP, Active Directory kullanıcıları ile yetkilendirme yapabiliriz.)
echo "yes" > /etc/pure-ftpd/conf/UnixAuthentication
Güvenli dedik. Kullanıcılarımızı SSL kullanmaya zorluyoruz. Burada;
0: TLS yok. 1: TLS opsiyonel, kullanıcı TLS kullanırsa bağlantı güvenli olur. 2: TLS mecburi. İstemci program TLS kullanmıyorsa, bağlantı iptal edilir.
echo "2" > /etc/pure-ftpd/conf/TLS
SSL için bir sertifika oluşturmamız gerekiyor bunun için tabii ki.
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Ve servisi yeniden başlatıyoruz.
service pure-ftpd restart
Kullanıcı Oluşturma
FTP sunucumuz şu anda istediğimiz gibi çalışır durumda. Ama henüz bir kullanıcımız yok. Varsa kullanabiliriz. Yoksa kullanıcı ekliyoruz.
SSH bağlantısı yapabilecek bir kullanıcı eklemek için:
adduser mahmut
Yalnızca FTP kullanıcısı eklemek istiyorsak,
adduser mahmut --home /home/web/mahmut --shell /usr/sbin/nologin
Bu kullanıcıya dikkat ettiğiniz üzere shell olarak nologin verdik. SSH ile bağlanmayı deneyebilirsiniz. Sisteminize göre bir red mesajı alacaksınız.
Kullanıcının ev dizini de dikkatinizi çektiği gibi /home altında değil, /home/web altında. Bunun için önce mkdir /home/web komutuyla bu dizini oluşturuyoruz.
Kullanıcı eklemeden önce Ubuntu sistemi için bir hatırlatma daha, sistem genelinde kullanıcılar birbirlerinin ev dizinlerinin içeriğini görebiliyorlar. Güvenli ve gizliliğe önem veren sistemimizde bunu engellemek için dpkg-reconfigure adduser komutunu verip (no cevabı ile) iptal etmemiz gerekiyor.
Kullanıcımızı oluşturduk ama hala giriş yapamıyoruz. Kullanıcı geçersiz diyor değil mi? Çünkü nologinshell i geçerli bir shell değil.
/etc/shells dosyasının sonuna /usr/sbin/nologin satırını eklememiz gerekiyor. Kısaca
echo "/usr/sbin/nologin" >> /etc/shells