Recent News

Perşembe, Haziran 28, 2012

Vsftpd 2.3.5 Ayarlar ve Chroot Çözümleri


 Vsftpd 2.3.4 sürümüyle birlikte aşağıda belirtildiği üzere chroot konusunda bazı sınırlamalar getirilmiş. Bu nedenle ayarlar birazcık değişmiş.
- Add stronger checks for the configuration error of running with a writeable
root directory inside a chroot(). This may bite people who carelessly turned
on chroot_local_user but such is life.

Daha önce vsftpd ayarlaması yapmıştım ve ftp sorunsuz çalışıyordu. Fakat yeni kurduğumuz sunucuda benzer ayarları yapmama rağmen sürüm farklılıkları sebebiyle maalesef bir takım zorluklarla karşılaştım. Bu nedenle bir blog yazayımda her şey derli toplu bir yerde bulunsun istedim.
Kurulum ve ayarlar
Kurulumu Ubuntu 12.04 üzerinde yaptığım için onun üzerinden anlatayım.
vsftpd paketini kuruyoruz
#apt-get install vsftpd
Ayar dosyasını düzenliyoruz. Ayarlar şu şekilde
listen=YES 
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
use_localtime=YES
connect_from_port_20=YES
xferlog_enable=YES
chown_uploads=YES
chown_username=www-data
chroot_local_user=YES
user_config_dir=/usr/local/etc/vsftpd_users 
secure_chroot_dir=/var/run/vsftpd/empty 
pam_service_name=vsftpd 
rsa_cert_file=/etc/ssl/private/vsftpd.pem
Ayarları bu şekilde yapma sebebimiz sistemde belirsiz bir kullanıcı girişini engellemek ve bir kullanıcı oluşturup bu kulanıcının kendi home dizini dışında başka yerlere erişimlerini kısıtlamaktır.
Sisteme yeni bir ftp kullanıcısı ekliyoruz.
#adduser ftpuser
Parola belirliyoruz
#passwd ftpuser
Kullanıcının home dizini olarak istediğiniz yeri ayarlayabilmek için /etc/passwd dosyasını düzenleyebilirsiniz.
ftp kullanıcını oluşturup gerekli düzenlemeleri yaptıktan sonra config_dir olarak ayarladığımız dizin altına aşağıdaki dosyayı oluşturuyoruz.
#touch /usr/local/etc/vsftpd_users/ftpuser
Dosyaya aşağıdakileri ekleyerek kullanıcıya gerekli izinleri vermiş oluyoruz.
local_root=/home/ftpuser
dirlist_enable=YES
download_enable=YES
write_enable=YES
Böylece ftpuser kullanıcısı kendi home dizinine erişebilecek , dizin listeleyebilecek , dosya indirip yazma hakkına sahip olacak. Bu ayarları kendi ihtiyaç ve güvenlik önlemlerinize yönelik düzenleyebilirsiniz.
Buraya kadar her şey güzel gittiyse bile iki sıkıntıyla karşılaşabilirsiniz.Dizini bütün kullanıcılar için yazılabilir hale getirdiyseniz eğer vsftpd güvenlik sebebiyle login olmaya izin vermeyecektir. Dizine sadece root kullanıcısı yazabilir derseniz de her ne kadar ayarlarda dizine yazabilsin deseniz bile ftp kullanıcısı dizin içerisinde bir değişiklik (dosya ekleme , çıkarma vb ) yapamayacaktır.
Bunun için biraz googleda araştırdıktan sonra dizin izinlerini ( çok kafiyeli oldu:) aşağıdaki gibi düzenlemem gerektiğini buldum.
#chmod a-w -R /home/ftpuser   --Bütün kullanıcıların yazma hakkını alıyoruz
#chmod g+w -R /home/ftpuser --Sadece gruba yazma hakkı veriyoruz
Fakat hala ftp kullanıcısı dizin içerisinde değişiklik yapma konusunda sıkıntı yaşıyordu. Bu nedenle kullanıcıya da yazma hakkı verdiğimde sorun çözüldü.
#chmod u+w -R /home/ftpuser    --Kullanıcıya yazma hakkı veriyoruz.
Bağlantı kurup kuramadığımızı
#ftp ftp.sunucu.ipsi
sisteme eklediğiniz kullanıcı adı ve parola bilgileri ile test edebilirsiniz.
Bir de bu yazının önemli kısmını öğrendiğim kaynağı belirtelim.
[1]http://rockstar.dyndns.tv/freebsd/vsftpd.html


0 yorum:

Yorum Gönder