internet pencereler Android

Linux'ta bir FTP sunucusu kurma ve yapılandırma. Bir Linux FTP sunucusunun kurulması ve yapılandırılması Linux'ta bir FTP bağlantısı nasıl kurulur

Zaman zaman, her sistem yöneticisinin bir FTP sunucusuna ihtiyacı vardır, çoğu zaman bu, örneğin dağıtılmış bir 1C bilgi tabanını otomatik olarak değiştirirken veya dosyalara erişmek için uygulamalar arasında otomatik modda bilgi alışverişini sağlama ihtiyacından kaynaklanır. bir web sunucusu. Bugün sizlere Ubuntu platformunda böyle bir sunucuyu yarım saatten az bir sürede nasıl oluşturacağınızı anlatacağız.

Ama önce, biraz teori. FTP protokolü (Dosya Aktarım Protokolü), adından da anlaşılacağı gibi, dosya aktarımı için tasarlanmıştır ve 1971'de ortaya çıkmıştır, ancak ilerleyen yaşına rağmen, bu güne kadar yaygın olarak kullanılmaya devam etmektedir. Günümüzde kullanımı doğası gereği daha teknik olsa da, son kullanıcılar verilere erişmek için genellikle bir tarayıcı ve HTTP protokolü kullanır. FTP'nin avantajları arasında, bağlantı koptuğunda dosyayı devam ettirme yeteneği ve dosyaları eşit derecede kolayca okuyup yazabilme yeteneği yer alır. Ancak dezavantajları da var, en ciddi olanı düşük güvenliktir, bu nedenle bu konuya en yakın ilgi gösterilmelidir.

FTP, PPTP gibi, komutları aktarmak ve verileri aktarmak için farklı bağlantılar kullanır. Bir bağlantı başlatıldığında, istemci sunucunun 21 numaralı bağlantı noktasına kontrol komutları gönderir, bu da 20 numaralı bağlantı noktasında bir giden veri bağlantısı kurar, müzakere sonucunda istemci tarafındaki bağlantı noktası belirlenir. Ancak istemci NAT arkasındayken bağlantı bu şekilde kurulamaz, bu nedenle veri bağlantısı sunucu tarafından değil istemci tarafından kurulduğunda ek bir FTP pasif modu (pasif mod) geliştirildi, ancak, sunucu tarafından belirtilen parametrelerle. FTP iletirken ve bir ağ filtresi kurarken bu noktalar dikkate alınmalıdır.

Sunucumuz için kullanacağımız vsftpd- basit, hızlı ve güvenli FTP sunucusu. Hem dış hem de iç ağlara hizmet edeceği için bu rolü . Sunucu kurulumu son derece basittir:

apt-get install vsftpd

Sunucu, yapılandırma dosyası aracılığıyla yapılandırılır /etc/vsftpd.conf basit bir yapıya sahiptir, iyi yorumlanmıştır ve minimum bilgi ile herhangi bir talimat olmadan sunucuyu kurmanıza izin verir. Ana parametrelerini düşünün.

Sunucu, hizmet olarak sürekli başlatılabilir veya gerektiğinde başlatılabilir, ilk seçenek bizim için daha uygundur:

Dinle=EVET

Bu seçenek, şu şekilde değiştirilmesi gereken, birbirini dışlayan bir girişe sahiptir:

Listen_ipv6=HAYIR

Yalnızca yerel kullanıcıların oturum açmasına izin ver:

Anonymous_enable=HAYIR
local_enable=EVET

Kullanıcıların dosya yazmasına ve sunucuya gerekli izinleri otomatik olarak ayarlamasını söylemesine izin verin (klasörler için 755 ve dosyalar için 644):

Write_enable=EVET
local_umask=022

Farklı bir hak seti ayarlamak istiyorsanız: 775 ve 664, o zaman umask 002'ye eşit olmalıdır.

Varsayılan olarak sunucu GMT saatini kullanır, böylece dosyalar sizin saat diliminizdeki saate ayarlanır, şu seçeneği kullanın:

Use_localtime=EVET

Yüklenen ve indirilen dosyaların günlüğünü etkinleştirin:

Xferlog_enable=EVET

Sunucunun 20 numaralı bağlantı noktasında (etkin mod) veri bağlantıları kurmasına izin verin:

Connect_from_port_20=EVET

Aşağıdaki seçenekler, günlükleri depolamak için konumu ve biçimi ayarlar:

xferlog_file=/var/log/vsftpd.log
xferlog_std_format=EVET

Oturum zaman aşımlarını ayarlayın:

boşta_session_timeout=600
data_connection_timeout=120

Ayrıca, güvenlik nedenleriyle, kullanıcıyı ana dizininde yalıtıyoruz ve hemen kök dizinine yazılmasına izin veriyoruz:

chroot_local_user=EVET
allow_writeable_chroot=EVET

Metin verileriyle doğru çalışma için ASCII desteğini etkinleştirebilirsiniz, bu, içeriği doğru bir şekilde görüntülemek için bir metin dosyasını bir Windows sisteminden UNIX'e (Linux) aktarırken satır sonu karakterlerini CR + LF'den LF'ye doğru şekilde değiştirmenize izin verir ve geri aktarırken ters dönüştürme gerçekleştirin.

Ascii_upload_enable=EVET
ascii_download_enable=EVET

Yükleme veya indirme için yalnızca bir seçeneği etkinleştirebilirsiniz. ASCII modunda bir ikili dosya aktarırken, ikincisinin bozulabileceğini lütfen unutmayın.

Oldukça ilginç bir seçenek:

ls_recurse_enable=EVET

Dizinlerin özyinelemeli olarak taranmasına izin verir, bir yandan kullanışlıdır, diğer yandan örneğin çok sayıda dosya ve dizin içeren bir dizinin bir listesini alırsanız sunucuda büyük bir yüke neden olabilir.

Diğer tüm seçenekleri varsayılan olarak bırakıyoruz, ancak orada istediğinizi yazarak sunucu karşılamasını düzenleyebilirsiniz:

Ftpd_banner=Roga i Kopyta LLC FTP'ye Hoş Geldiniz

Yapılandırma dosyasının sonunda, pasif mod için ayarları belirleyeceğiz, sunucu NAT arkasındaysa veya güvenlik duvarı kurallarındaysa yönlendirme sırasında bunları belirleyebilmeniz için bağlantı noktalarını açıkça ayarlamanız önerilir:

pasv_enable=EVET
pasv_min_port=62000
pasv_max_port=62999

Sunucuyu yeniden başlatın (bu, yapılandırmada değişiklik yaptıktan sonra her seferinde yapılmalıdır):

Hizmet vsftpd yeniden başlatma

ve mevcut bir kullanıcının kimlik bilgilerini kullanarak herhangi bir FTP istemcisine bağlanmayı deneyin. Ev dizinine girmeli ve içinde izole olmalıyız.

vsftpd ve seccomp güvenlik sisteminin hatalı çalışması ile ilgili bir hata olması durumunda:

500 OOPS: prctl PR_SET_SECCOMP başarısız oldu

dosyaya belgelenmemiş bir seçenek ekleyin:

seccomp_sandbox=HAYIR

Ancak, FTP'nin güvensiz bir protokol olduğunu unutmayın, bu nedenle şu anda yapıldığı gibi sunucuda herhangi bir yerel kullanıcıya izin vermek en iyi seçenek değildir. Bu durumdan kaçınmak için vsftpd, yerleşik bir kullanıcı kontrol mekanizmasına sahiptir. Yapılandırma dosyasına bir seçenek ekleyelim:

userlist_enable=EVET

ve bir kullanıcı listesi dosyası oluşturun:

/etc/vsftpd.user_list'e dokunun

Varsayılan vsftpd yasaklar Bu listede belirtilen kullanıcıların sunucuya erişimi, şifreyi girmeden önce, yani. yasak olmayan herkese izin verilen ilkesini uygular. Ancak farklı bir yaklaşım uygulamak çok daha iyi olurdu: izin verilmeyen herkese yasak. Onlar. izin vermek yalnızca belirli kullanıcılara erişim. Bunu yapmak için seçeneği ekleyin:

userlist_deny=HAYIR

Artık yalnızca açıkça belirtilen kullanıcılar FTP sunucusuna erişebilecek, bunlar aşağıda belirtilmelidir. vsftpd.user_list satır başına bir tane, örneğin:

İvanov
petrov

Aksi belirtilmedikçe, FTP üzerinden bağlanırken kullanıcılar ana dizinlerine alınır. Bu her zaman uygun değildir, çoğu zaman onları farklı bir dizine yönlendirmeniz gerekir. Bu paylaşılan bir klasörse, /var/ftp deyin, o zaman seçeneği ayarlayabilirsiniz:

Local_root=/var/ftp

Bu, tüm kullanıcıları belirtilen dizine yönlendirecek ve onları orada izole edecektir.

Bu en basit durum, gerçek görevler genellikle daha karmaşıktır, diyelim ki Ivanov kullanıcısını kök dizin olarak ayarlamamız gerekiyor. /var/www/example1.com ve Petrov /var/www/example2.com böylece her biri kendi klasörüyle çalışır. Bu amaçlar için, ana yapılandırma dosyasının ayarlarını geçersiz kılan kullanıcı ayarları olan vsftpd'nin başka bir özelliğini kullanabilirsiniz.

Bunu yapmak için seçeneği ekleyin:

User_config_dir=/etc/vsftpd_user_conf

Sonra dizinin kendisini oluşturacağız

Mkdir /etc/vsftpd_user_conf

Bu dizinde kullanıcının kendi ayarlarını yapmak için kullanıcı adıyla bir dosya oluşturun ve buna gerekli seçenekleri ekleyin. Değişiklikler, istemcinin bir sonraki bağlanmasında FTP sunucusunu yeniden başlatmadan uygulanır.

Ivanov için ayarları içeren bir dosya oluşturalım:

Tocuh /etc/vsftpd_user_conf/ivanov

ve ona bir seçenek ekleyin:

local_root=/var/www/example1.com

Bir sonraki bağlanışınızda, kullanıcının kök dizini belirtilen dizine dönüşecektir. Ayrıca bu dosyada herhangi bir kişisel seçeneği ayarlayabiliriz, örneğin başka bir umask veya dosya izinleri. Ancak burada genel ayarları kullanamayız: bağlantı, günlük kaydı, kimlik doğrulama seçenekleri, bunlar göz ardı edileceklerdir.

Dosya ve klasörlerin gerçek sahiplerini gizlemeniz gerekiyorsa, şu seçeneği kullanabilirsiniz:

Hide_ids=EVET

Bu durumda, gerçek sahipler ve gruplar yerine ftp:ftp belirtilecektir, bu, genel bir sunucu olması durumunda veya kullanıcı listesinde gerçek kullanıcı adlarını ifşa etmek istemediğiniz yetkisiz kişiler varsa faydalı olabilir. Sisteminiz.

Gördüğünüz gibi, gerçekten çalışan bir FTP sunucusunu yarım saatten daha kısa bir sürede oluşturduk.

F TP (Dosya Aktarım Protokolü), dosyaları uzak bir ağa ve bu ağdan aktarmak için kullanılan standart bir ağ protokolüdür. Daha güvenli ve daha hızlı veri aktarımı için SCP'yi kullanın.

Linux için kullanılabilen birçok açık kaynaklı FTP sunucusu vardır. En popüler ve yaygın olarak kullanılanlar PureFTPd, ProFTPD ve vsftpd'dir. Bu yazımızda vsftpd kurulumu yapacağız. Kararlı, güvenli ve hızlı bir FTP sunucusudur. Ayrıca, kullanıcıların ana dizinlerine erişimini kısıtlamak ve SSL/TLS kullanarak tüm iletimleri şifrelemek için vsftpd'yi nasıl yapılandıracağınızı da göstereceğiz.

Bu makale Ubuntu 18.04 için yazılmış olsa da, aynı talimatlar Ubuntu 16.04 ve Debian, Linux Mint ve Elementary OS dahil tüm Debian tabanlı dağıtımlar için de geçerlidir.

Önkoşullar

Ubuntu 18.04'te vsftpd'yi yükleme

vsftpd paketi . Yüklemek için aşağıdaki komutları çalıştırmanız yeterlidir:

sudo apt güncellemesi sudo apt kurulumu vsftpd

Yükleme işlemi tamamlandıktan sonra vsftpd hizmeti otomatik olarak başlayacaktır. Hizmetin durumunu yazdırarak kontrol edin:

sudo systemctl durumu vsftpd

Sonuç, vsftpd hizmetinin çalışır durumda olduğunu gösteren şuna benzer:

* vsftpd.service - vsftpd FTP sunucusu Yüklendi: yüklendi (/lib/systemd/system/vsftpd.service; etkin; satıcı ön ayarı: etkin) Aktif: 2018-10-15 Mon'dan beri aktif (çalışıyor) 03:38:52 PDT; 10 dakika önce Ana PID: 2616 (vsftpd) Görevler: 1 (sınır: 2319) CGroup: /system.slice/vsftpd.service `-2616 /usr/sbin/vsftpd /etc/vsftpd.conf

vsftpd'yi ayarlama

vsftpd sunucusu /etc/vsftpd.conf dosyası düzenlenerek yapılandırılabilir. Ayarların çoğu, yapılandırma dosyasının içinde belgelenmiştir. Mevcut tüm seçenekler için resmi vsftpd sayfasını ziyaret edin.

Aşağıdaki bölümlerde, güvenli bir vsftpd kurulumu kurmak için gereken bazı önemli ayarlara bakacağız.

vsftpd yapılandırma dosyasını açarak başlayın:

sudo nano /etc/vsftpd.conf

1. FTP Erişimi

FTP sunucusuna yalnızca yerel kullanıcıların erişmesine, anonim_enable ve local_enable yönergelerini bulmasına ve yapılandırmanızın aşağıdaki satırlarla eşleşip eşleşmediğini kontrol etmesine izin veriyoruz:

/etc/vsftpd.conf

Anonymous_enable=HAYIR local_enable=EVET

2. İndirmeyi etkinleştir

Dosya sisteminde dosya yükleme ve silme gibi değişikliklere izin vermek için write_enable ayarını kaldırın.

/etc/vsftpd.conf

Write_enable=EVET

3. Kök

FTP kullanıcılarının ev dizinleri dışındaki herhangi bir dosyaya erişmesini önlemek için chroot ayarını kaldırın.

/etc/vsftpd.conf

chroot_local_user=EVET

Varsayılan olarak, bir güvenlik açığını önlemek için, chroot etkinleştirildiğinde vsftp, kullanıcıların kilitlendiği dizine yazılabilirse dosya yüklemeyi reddeder.

  • Yöntem 1– İndirmelere izin vermenin önerilen yolu, chroot'u etkinleştirmek ve FTP dizinlerini ayarlamaktır. Bu yazımızda, kullanıcının evinde chroot görevi görecek bir ftp dizini oluşturacağız ve dosya yüklemek için uploads dizinini yazacağız.

    /etc/vsftpd.conf

    User_sub_token=$USER local_root=/home/$USER/ftp

  • Yöntem 2 Diğer bir seçenek ise aşağıdaki yönergeyi vsftpd yapılandırma dosyasına eklemektir. Kullanıcınıza ana dizininize yazma erişimi vermeniz gerekiyorsa bu seçeneği kullanın.

    /etc/vsftpd.conf

    allow_writeable_chroot=EVET

4. Pasif FTP bağlantıları

vsftpd, pasif FTP bağlantıları için herhangi bir bağlantı noktasını kullanabilir. Minimum ve maksimum port aralığını belirleyeceğiz ve ardından aralığı güvenlik duvarımızda açacağız.

Yapılandırma dosyasına aşağıdaki satırları ekleyin:

/etc/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

5. Kullanıcı Giriş Kısıtlaması

FTP sunucusunda yalnızca belirli kullanıcıların oturum açmasına izin vermek için dosyanın sonuna aşağıdaki satırları ekleyin:

/etc/vsftpd.conf

userlist_enable=EVET userlist_file=/etc/vsftpd.user_list userlist_deny=HAYIR

Bu seçenek etkinleştirildiğinde, /etc/vsftpd.user_list dosyasına kullanıcı adları ekleyerek (her satıra bir kullanıcı) hangi kullanıcıların oturum açabileceğini açıkça belirtmelisiniz.

6. SSL/TLS kullanarak güvenli aktarım

FTP aktarımlarını SSL/TLS ile şifrelemek için bir SSL sertifikasına sahip olmanız ve FTP sunucunuzu bunu kullanacak şekilde yapılandırmanız gerekir.

Güvenilir bir CA tarafından imzalanmış bir , kullanabilir veya kendinden imzalı bir sertifika oluşturabilirsiniz.

FTP sunucusunun IP adresini gösteren bir etki alanınız veya alt etki alanınız varsa, şifreleme için kolayca ücretsiz bir SSL sertifikası oluşturabilirsiniz.

Bu yazımızda openssl komutunu kullanarak kendinden imzalı bir SSL sertifikası üreteceğiz.

Aşağıdaki komut, 2048 bitlik bir özel anahtar ve 10 yıl boyunca geçerli olan kendinden imzalı bir sertifika üretecektir. Hem özel anahtar hem de sertifika aynı dosyada saklanacaktır:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

SSL sertifikası oluşturulduğuna göre, vsftpd yapılandırma dosyasını açın:

sudo nano /etc/vsftpd.conf

rsa_cert_file ve rsa_private_key_file yönergelerini bulun, dosya yolundaki pam değerlerini değiştirin ve ssl_enable yönergesini YES olarak ayarlayın:

/etc/vsftpd.conf

rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=EVET

Aksi belirtilmedikçe, FTP sunucusu yalnızca güvenli bağlantılar için TLS kullanacaktır.

vsftpd hizmetini yeniden başlatın

Düzenlemeyi bitirdiğinizde, vsftpd yapılandırma dosyası (yorumlar hariç) şöyle görünmelidir:

/etc/vsftpd.conf

Listen=HAYIR listen_ipv6=EVET anonim_enable=HAYIR local_enable=EVET write_enable=EVET dirmessage_enable=EVET use_localtime=EVET xferlog_enable=EVET connect_from_port_20=EVET chroot_local_user=EVET secure_chroot_dir=/var/runetc_ysftsft_svfile/var/runetc_ysftsft_svfile/var/run/emptv_ftspd=r .pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=EVET user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=EVET/HAYIR userlist_vsfile=p

Değişikliklerin etkili olması için dosyayı kaydedin ve vsftpd hizmetini yeniden başlatın:

sudo systemctl vsftpd'yi yeniden başlat

Güvenlik duvarını açma

UFW güvenlik duvarı kullanıyorsanız, FTP trafiğine izin vermeniz gerekir.

Bağlantı noktası 21'i (FTP komut bağlantı noktası), bağlantı noktası 20'yi (FTP veri bağlantı noktası) ve 30000-31000'i (pasif bağlantı noktası aralığı) açmak için aşağıdaki komutları çalıştırın:

sudo ufw 20:21/tcp'ye izin ver sudo ufw 30000:31000/tcp'ye izin ver

Engellemeyi önlemek için 22 numaralı bağlantı noktasını açacağız:

Sudo ufw OpenSSH'ye izin veriyor

UFW'yi devre dışı bırakıp yeniden etkinleştirerek UFW kurallarını yeniden yükleyin:

sudo ufw devre dışı bıraksudo ufw etkinleştir

Değişikliklerin yapılıp yapılmadığını kontrol etmek için:

Sudo ufw durumu Durum: aktif Eyleme Geçmek için -- ------ ---- 20:21/tcp Her Yere İZİN VER 30000:31000/tcp Her Yere İZİN VER OpenSSH Her Yere İZİN VER 20:21/tcp (v6) Her Yere İZİN (v6) ) 30000:31000/tcp (v6) Her Yerde İZİN VER (v6) OpenSSH (v6) Her Yerde İZİN (v6)

FTP Kullanıcısı Oluşturma

FTP sunucumuzu test etmek için yeni bir kullanıcı oluşturacağız.

  • FTP erişimi vermek istediğiniz bir kullanıcınız varsa, 1. adımı atlayın.
  • Yapılandırma dosyanızda allow_writeable_chroot=YES öğesini ayarladıysanız, 3. adımı atlayın.
  1. newftpuser adında yeni bir kullanıcı oluşturun: sudo adduser newftpuser
  2. Kullanıcıyı izin verilen FTP kullanıcıları listesine ekleyin: echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list
  3. Bir FTP dizin ağacı oluşturun ve doğru izinleri ayarlayın: sudo mkdir -p /home/newftpuser/ftp/uploadsudo chmod 550 /home/newftpuser/ftpsudo chmod 750 /home/newftpuser/ftp/uploadsudo chown -R newftpuser: /home/newftpuser /ftp

    Önceki bölümde tartışıldığı gibi, kullanıcı dosyalarını ftp/upload dizinine yükleyebilecektir.

Bu noktada, FTP sunucunuz tamamen işlevseldir ve sunucunuza FileZilla gibi TLS şifrelemesini kullanacak şekilde yapılandırılabilen herhangi biriyle bağlanabilmeniz gerekir.

Kabuk erişimini devre dışı bırakma

Varsayılan olarak, bir kullanıcı oluşturulduğunda, açıkça belirtilmediği sürece, kullanıcının SSH sunucusuna erişimi olacaktır.

Kabuk erişimini devre dışı bırakmak için, kullanıcıya hesabının yalnızca FTP erişimiyle sınırlı olduğunu bildiren bir mesaj yazdıran yeni bir kabuk oluşturacağız.

Bir kabuk /bin/ftponly oluşturun ve onu çalıştırılabilir hale getirin:

Echo -e "#!/bin/sh\necho "Bu hesap hesabı yalnızca FTP erişimiyle sınırlıdır."" | sudo tee -a /bin/ftponlysudo chmod a+x /bin/ftponly

/etc/shells dosyasındaki izin verilen kabuklar listesine yeni kabuğu ekleyin

yankı "/bin/ftponly" | sudo tee -a /etc/kabuklar

Kullanıcı kabuğunu /bin/ftponly olarak değiştirin:

sudo usermod newftpuser -s /bin/ftponly

Çözüm

Bu yazıda Ubuntu 18.04 sisteminize güvenli ve hızlı bir FTP sunucusu kurmayı ve kurmayı öğrendiniz.

Dosya Aktarım Protokolü (FTP), bilgisayarlar arasında dosya aktarımı için bir TCP protokolüdür. Geçmişte, [İnternetteki dosyaları] yüklemek için de kullanılıyordu, ancak bu yöntem şifreleme kullanmadığından, kullanıcı verilerinin yanı sıra dosyaların içeriği de açık olarak aktarılır ve kolayca ele geçirilir. Bu nedenle, burada dosyaları güvenli bir şekilde karşıya yüklemenin ve indirmenin bir yolunu arıyorsanız, Uzaktan Yönetim bölümündeki OpenSSH makalesine bir göz atsanız iyi olur.

FTP, bir istemci/sunucu modelinde çalışır. Sunucu bileşenine FTP hizmeti denir. Uzak istemcilerden gelen FTP isteklerini sürekli olarak dinler. Bir istek alındığında giriş ve bağlantı kurulmasını yönetir. Oturum sırasında FTP istemcisi tarafından gönderilen tüm komutları yürütür.

vsftpd - FTP sunucusunu kurun

vsftpd Ubuntu'da bulunan bir FTP hizmetidir. Kurulumu, yapılandırması ve bakımı kolaydır. vsftpd'yi kurmak için aşağıdaki komutu çalıştırabilirsiniz:

sudo apt kurulum vsftpd

Hizmeti başlatmak için başlatmaya eklemeniz gerekir. Ubuntu 15.04'ten beri Systemd kullanıldığından, otomatik başlatmaya vsftpd eklemek için aşağıdaki komutları girin:

sudo systemctl vsftpd'yi başlat sudo systemctl vsftpd'yi etkinleştir

Ubuntu Sunucusu, ufw güvenlik duvarını kullanabilir. O zaman 20 ve 21 numaralı bağlantı noktalarına izin vermeniz gerekecek

sudo ufw 20/tcp'ye izin ver sudo ufw 21/tcp'ye izin ver

Yapılandırma dosyası birçok ayar içerir. Her parametreye ilişkin bilgiler aynı dosyada mevcuttur. Alternatif olarak, sistem komut kılavuzuna da bakabilirsiniz.

Adam 5 vsftpd.conf

Her parametreyle ilgili ayrıntılar için.

FTP sunucusuna erişim iki şekilde organize edilebilir:

İÇİNDE anonim mod uzak bir istemci FTP sunucusuna "anonim" veya "ftp" adlı varsayılan kullanıcı hesabını kullanarak ve bir e-posta adresini parola olarak ileterek erişebilir. İÇİNDE yetkili mod Kullanıcının bir hesap adı ve şifresi olmalıdır. Bu son seçenek oldukça güvensizdir ve özel durumlar dışında kullanılmamalıdır. Dosyaları güvenli bir şekilde aktarmak istiyorsanız, OpenSSH sunucusu bölümündeki SFTP'ye bakın. FTP sunucusu dizinlerine ve dosyalarına kullanıcı erişimi, oturum açma sırasında belirtilen kullanıcının erişim haklarına bağlıdır. Kural olarak, FTP hizmeti, FTP sunucusunun kök dizinini gizleyerek, FTP ana dizini ile değiştirir. Bu, kök dosya sistemini uzak oturumlardan gizler.

Anonim FTP Erişimini Yapılandırma

Varsayılan vsftpd yapılandırması, anonim indirmelere izin vermez. Anonim indirmeyi etkinleştirmek istiyorsanız, /etc/vsftpd.conf dosyasında aşağıdakileri değiştirin:

Anonymous_enable=EVET

Yükleme işlemi sırasında bir kullanıcı oluşturulur. ftp /srv/ftp ana dizini ile. Bu, FTP için varsayılan dizindir.

Konumunu örneğin /srv/files/ftp olarak değiştirmek isterseniz, yeni bir dizin oluşturmanız ve ftp kullanıcısının ana dizinini değiştirmeniz yeterlidir:

sudo mkdir /srv/files/ftp sudo usermod -d /srv/files/ftp ftp

Değişikliklerden sonra vsftpd'yi yeniden başlatın:

Son olarak, anonim FTP'yi /srv/files/ftp (veya varsayılan ayarlardan ayrılmak istiyorsanız /srv/ftp) için kullanılabilir hale getirmek istediğiniz tüm dosya ve dizinleri kopyalayın.

Varsayılan olarak, anonim bir kullanıcının FTP sunucusuna dosya yüklemesine izin verilmez. Bu ayarı değiştirmek için aşağıdaki satırın yorumunu kaldırın ve vsftpd'yi yeniden başlatın:

Anon_upload_enable=EVET

Anonim bir kullanıcının dosya yüklemesine izin vermek ciddi bir güvenlik riski olabilir. İnternetten doğrudan erişimi olan sunuculara anonim dosya yüklemelerine izin vermemek daha iyidir.

Yetkili FTP Erişimini Yapılandırma

Yapılandırma dosyasında herhangi bir değişiklik yapmadan önce, sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig paketini yeniden yüklemeden değişiklikleri geri alabilmeniz için örneği kopyalamanız önerilir.

Yerel kullanıcıların kimliğini doğrulamak için satırın yorumunu kaldırın

Local_enable=EVET

Varsayılan olarak vsftpd, sistem kullanıcılarının kimliklerini dosya alma becerisiyle doğrulamak üzere yapılandırılmıştır. Kullanıcıların dosya yüklemesine izin vermek istiyorsanız, /etc/vsftpd.conf öğesini şu şekilde değiştirin:

Write_enable=EVET

sonra vsftpd'yi yeniden yükleyin:

sudo hizmeti vsftpd yeniden başlatma

Artık sistem kullanıcıları FTP yoluyla oturum açtıklarında, indirebilecekleri, [dosyaları] yükleyebilecekleri, dizinler oluşturabilecekleri ev dizinlerine gidecekler.

FTP Güvenliği

Kullanıcı kısıtlaması

/etc/vsftpd.conf dosyasında vsftpd'yi daha güvenli hale getirmeye yardımcı olacak seçenekler vardır. Örneğin, bu seçenek, yerel bir kullanıcıyı chroot () "hapishanesine" koymanıza izin verir, bunun üzerine (dizin ağacı boyunca) tırmanamaz.

chroot_local_user=EVET

Ayrıca yalnızca ana dizine erişimi olan bir kullanıcı listesi de tanımlayabilirsiniz:

chroot_list_enable=EVET chroot_list_file=/etc/vsftpd.chroot_list

Bu seçeneklerin yorumunu kaldırdıktan sonra, her satırda bir kullanıcı listesi içeren /etc/vsftpd.chroot_list oluşturun. Ardından vsftpd'yi yeniden başlatın:

sudo hizmeti vsftpd yeniden başlatma

Üç satırı da yorumsuz bıraktıysanız, listedeki kullanıcılar, listede olmayan kullanıcıların aksine, ev dizinleriyle sınırlı olmayacaktır.

Benzer şekilde, /etc/ftpusers dosyası, FTP erişimi reddedilen kullanıcıların bir listesini içerir. Varsayılan olarak kök, arka plan programı, kimse vb. Ek kullanıcılar için FTP erişimini devre dışı bırakmak için onları bu listeye eklemeniz yeterlidir.

Bağlanmaya çalışırken bir hata görürseniz:

Yanıt: 500 OOPS: vsftpd: chroot() içinde yazılabilir kök ile çalıştırmayı reddediyor

bu, yerel kullanıcının ana dizine yazma erişimine sahip olduğu anlamına gelir, bu durum böyle olmamalıdır. Bu hatayı çözmenin birkaç yolu vardır:

    Yerel kullanıcı için ana dizine yazmayı reddet (herkes için uygun değildir ve her zaman değil)

sudo chmod a-w /home/user/ allow_writeable_chroot=EVET

    /home'u yerel kullanıcıların FTP sunucusuna giriş yaptıktan sonra gideceği dizin olarak ayarlayın. O zaman her biri sadece kendi ana dizinine yazabilecektir.

local_root=/ev

şifreleme

FTP kullanırken şifrelenebilir FTP'ler. farklı SFTP, FTP'ler SSL üzerinden FTP'dir. SFTPşifreli bir SSH bağlantısı üzerinden FTP benzeri bir oturumdur. Temel fark, SFTP kullanıcılarının nologin kabuğu yerine kendi ortamlarında (kabuk hesabı) bir hesaba sahip olmaları gerektiğidir. Tüm kullanıcılara kabuk erişimi vermek, paylaşılan bir web sunucusu gibi bazı sistemler için en iyi çözüm olmayabilir. Ancak, bu tür hesapları yalnızca SFTP ile sınırlamak ve kabuk etkileşimini önlemek mümkündür. Daha fazla bilgi için OpenSSH ile ilgili bölüme bakın.

FTPS'yi yapılandırmak için /etc/vsftpd.conf dosyasının sonuna aşağıdakini ekleyin:

SSL_enable=Evet

Ayrıca sertifika ve anahtar seçeneklerine de dikkat edin:

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Varsayılan olarak, bu seçenekler paketin sağladığı değerlere ayarlanmıştır. ssl sertifikası. Bir üretim ortamı için, belirli bir bilgisayar için oluşturulmuş bir sertifika ve anahtarla değiştirilmelidirler. Daha fazla bilgi için Sertifikalar bölümüne bakın.

Şimdi vsftpd'yi yeniden yükleyin ve anonim olmayan kullanıcılar FTPS kullanacak:

sudo hizmeti vsftpd'yi yeniden başlat

/usr/sbin/nologin kabuğuna sahip kullanıcıların FTP'ye erişmesine izin vermek, ancak kabuk erişimi vermemek için, kabuğa nologin eklemek için /etc/shells öğesini düzenleyin:

# /etc/shells: geçerli oturum açma kabukları /bin/csh /bin/sh /usr/bin/es /usr/bin/ksh /bin/ksh /usr/bin/rc /usr/bin/tcsh /bin/tcsh / usr/bin/esh /bin/dash /bin/bash /bin/rbash /usr/bin/screen /usr/sbin/nologin

Bu gereklidir çünkü vsftpd varsayılan olarak PAM yetkilendirmesini kullanır ve /etc/pam.d/vsftpd yapılandırma dosyası şunları içerir:

Yetkilendirme gerekli pam_shells.so

PAM modülü kabuklar/etc/shells içinde listelenen kabuklara erişimi kısıtlar.

En popüler FTP istemcileri, FTPS kullanacak şekilde yapılandırılabilir. lftp komut satırı FTP istemcisi de FTPS kullanma yeteneğine sahiptir.

Bu, dosya aktarım protokolünü kullanarak dosya aktarma yeteneğidir. Kablolu ve kablosuz LAN üzerinden uygun dosya paylaşımı için kullanılır. Bu yerel sunucu hem işte hem de evde faydalı olabilir. Kurulum ve kullanım için minimum çaba ve kaynak gerektirdiğinden, Ubuntu kullanarak FTP sunucusu daha da uygundur.

Ubuntu bazında bir ftp sunucusu kurabilirsiniz.


Dosya paylaşım protokolü özellikle günümüzde kişinin kendi kaynaklarını İnternet üzerindeki sunuculara ve ayrıca güvenilir bilgisayarlar arasında aktarmak için sıklıkla kullanılmaktadır. FileZilla gibi Windows için iyi bilinen FTP istemcileri, iki bilgisayarın bilgisayarlar arasında mümkün olduğunca basit ve yönetilebilir bir şekilde iletişim kurmasını sağlamayı amaçlar.

Protokol, istemci-sunucu mantığı temelinde oluşturulmuştur. Bu, iki teknik taraf olduğu anlamına gelir - müşteri (ihtiyaçları karşılanan) ve sunucu (ihtiyaçları karşılanan). Sunucuya bağlantı, açık kimlik doğrulama (oturum açma ve parola) kullanılarak veya anonim olarak (destekleniyorsa) gerçekleştirilebilir. Buna rağmen FTP protokolü güvenlik açısından özellikle günümüz standartlarına göre zayıftır. Ancak Ubuntu'da FTP kurulumu bazı ek güvenlik standartları içerebilir.

Hadi uygulamaya geçelim. Profpd arka plan programı

Ubuntu FTP sunucusunun kurulumunun başarılı olması için "arka plan programı" denilen şeyi kullanıyoruz. Bu, arka planda çalışırken rutin görevleri gerçekleştirmenizi sağlayan bir programdır. Ubuntu'da FTP için gereken arka plan programı Proftpd'dir. Kurulumu Terminalde basit bir komutla yapılır:

"sudo apt-get install proftpd".

Kurulum tamamlandığında, sunucu yapılandırmasını güncellemeniz ve temel ayarları değiştirmeniz gerekecektir. Bu, sunucu oturum açma işlemini yapılandırmaya yardımcı olacaktır. /etc/proftpd/proftpd.conf dosyasında gerekli tüm değişiklikler yapılmalıdır. Nano editör ile hemen açılabilir.

Böylece Ubuntu FTP sunucu kurulumu başlamıştır. Öncelikle gerekli 2 parametreyi değiştireceğiz.

Dosyanın en sonuna şu satırı ekleyin:

"AuthUserFile /etc/proftpd/ftpd.passwd"

Sizi daha sonra eklemeye davet edeceğimiz bu belgede, ana oturum açma parametreleri saklanacaktır. Yorum sembolünü "DefaultRoot" - "#" satırından kaldırıyoruz. Şimdi "/etc/shells" dosyasını düzenlemeye geçelim. Buna "/bin/false" satırını eklemeniz gerekir. Bu komutlarla mevcut bir gruba yeni kullanıcılar ekleyebilirsiniz:

"addgroup username group", "username" = "ftp" ve "group" = "www-data" eklerseniz, sunucunun "sahipliği"ndeki dosyalarla çalışmak mümkün olur.

Ayrıca, Ubuntu FTP sunucusu kurulumu bir "sahibi değiştir" komutu sağlar: "chown -R ftp:www-data". Onun yardımıyla, kullanıcıyı "ftp" dosyalarının sahibi yapabilirsiniz. "www-data" kullanıcı grubuna belgelere grup erişimi verilecektir. Tüm ayarlar tamamlandığında, sunucuyu yeniden başlatmanız yeterlidir:

"sudo /etc/init.d/proftpd yeniden başlat"

Şimdi sanal kullanıcı hesapları oluşturmamız gerekiyor. Bu, aşağıdaki şemaya göre yapılmalıdır:

"ftpasswd -passwd -file=/etc/proftpd/ftpd.passwd -name=(kullanıcı adı) -shell=/bin/false -home=/var/www/html -uid=(kullanıcı kimliği, komutla bulunabilir " id ftp") -gid=(Grup Kimliği, "www-data" grubu için geçerlidir - 33)

"sudo nano /etc/dhcp3/dhcpd.conf"

İçine şunları yazmanız gerekir:

“#Alan adı (dahili).
seçenek alan adı “alan_adı”;
Bağlı bilgisayardaki #DNS sunucusu.
seçenek etki alanı-adı-sunucuları IP_adresi;
# Bu satırdan "#" yorumunu kaldırın.
yetkili;
#Sunucu için istenen alt ağ verileri.
alt ağ 192.168.0.0 ağ maskesi 255.255.255.0 (
#Verilen adreslerin aralığı.
IP_adresi aralığı IP_adresi;
# İnternet erişimi olan yönlendirici. seçenek yönlendiricileri IP_adresi;
#Ağ önyüklemesine yüklenecek dosya.
dosyaadı="tftp/pxelinux.0";

Şimdi yalnızca DHCP sunucusunu yeniden başlatmak için kalır:

"sudo /etc/init.d/dhcp3-server yeniden başlatma".

Gördüğünüz gibi, bir Ubuntu FTP sunucusu kurmak herhangi bir özel teknik beceri gerektirmez. Linux ile çalışmış herkes için bunu yapmak oldukça kolaydır.

Sonuç olarak

Bu yazımızda Ubuntu üzerinde FTP server nasıl kurulur konusuna yakından ve detaylı bir şekilde baktık ve ayrıca TFTP server kurulumuna da dikkat ettik. Bu araçlar, Ubuntu'nun ne kadar esnek ve işlevsel olduğunun mükemmel bir örneğidir. Kullanımı ve yapılandırması hakkında hala sorularınız varsa - bu makalenin yorumlarında onlara sormaktan çekinmeyin. Ayrıca sitemizin sayfalarındaki diğer materyalleri de okuyun.

F ile T fidyeci P rotocol, yani FTP bir dosya aktarım protokolüdür ve tam adından da anlaşılacağı gibi, dosyaları bir ağ üzerinden uzak bilgisayarlar arasında aktarmak için tasarlanmıştır. FTP protokolünün kendisi, iletilen verilerin şifrelenmemiş olması nedeniyle bugün en mükemmel olmasa da, bu onu eski yapmaz. Ek olarak, FTP'ye SSL protokolüne dayalı kriptografik koruma uygulamak hala mümkündür, bu da FTP'yi dosya aktarımı için değerli bir araç haline getirir.

FTP, istemci-sunucu etkileşim şemasına göre çalıştığı için, protokolün (ve aslında genel olarak sistemin) ustaca ve güvenilir bir şekilde uygulanması, ona güvenilir koruma, yüksek hız ve sonuç olarak popülerlik sağlayabilir. ftp.gnu.org , ftp.suse.com , ftp.redhat.com , ftp.gnome.org , vb. büyük projelerin çoğu sunucularından yazılım dağıtmak için FTP kullandığından bugün gözlemlenmiştir. FTP'nin bu popülaritesinin büyük ölçüde birçok uygulamasından biri olan vsFTPd'den kaynaklandığına dikkat edilmelidir. Bu, en modern veri koruma teknolojilerini destekleyen bir FTP sunucusudur - SSL ve IPv6, uygulaması yüksek güvenilirlik, kararlılık, çalışma hızı ve veri aktarımının yanı sıra esnek sunucu yapılandırması ve geniş işlevselliği birleştirir. vsFTPd, profesyonel bir veri koruma ve bilgi güvenliği araştırmacısı olan Chris Evans tarafından geliştirilmiştir. vsFTPd, neredeyse tüm Linux sistemlerinde varsayılan FTP sunucusudur, çünkü daha önce de belirtildiği gibi, güvenilirlik ve yüksek hıza ek olarak, en önemlileri:

  1. Sanal kullanıcılarla çalışma.
  2. Sanal IP adresleriyle çalışma.
  3. Kullanıcı Yapılandırması.
  4. Destek
  5. İletilen verileri korumak için SSL şifrelemesi.
  6. Bant genişliği kontrolü.

Bu makale, bu arada, ücretsiz ve açık kaynaklı bir yazılım olan vsFTPd örneğini kullanarak bir FTP sunucusunun kurulumunu ve yapılandırmasını tartışır. Resmi proje sayfası: https://security.appspot.com/vsftpd.html .

vsFTPd'yi yükleyin

Vsftd'yi Debian tabanlı Linux dağıtımlarına şu komutla yükleyebilirsiniz:

$ sudo apt-get install vsftpd

Bağlantıyı test etmek ve dosyaları aktarmak için basit bir FTP istemcisi kurmak da faydalı olacaktır:

$ apt-get kurulum ftp

RPM paketlerine, CentOS, RedHat'a dayalı dağıtımlar için:

$ yum kurulum vsftpd $ yum kurulum ftp

Genellikle kurulumdan sonra vsFTPd arka plan programı otomatik olarak başlatılır, bunu aşağıdaki komutlarla doğrulayabilirsiniz:

$ systemctl durumu vsftpd

$ hizmet vsftpd durumu

Sunucuyu başlatma, yeniden başlatma ve durdurma:

$ systemctl vsftpd başlat $ systemctl yeniden başlat vsftpd $ systemctl stop vsftpd

vsftpd arka plan programının otomatik olarak yüklenmesini sağlamak için şu komutu kullanın:

$ systemctl vsftpd'yi etkinleştir

Aynısı servis komutu için de geçerlidir.

Genellikle ufw gibi bir güvenlik duvarı çalıştıran sunucu dağıtımlarında vsFTPd kullanılıyorsa, 20 ve 21 numaralı bağlantı noktalarının kullanımına da izin vermeniz gerekebilir:

$ ufw 20/tcp'ye izin ver $ ufw 21/tcp'ye izin ver

vsFTPd'yi yapılandırma

vsFTPd'yi yapılandırmak için yapılandırma dosyası, genellikle etc/ dizininde bulunan vsftpd.conf dosyasıdır. Kedi komutuyla takıntısını öğrenebilirsiniz:

$ kedi /etc/vsftpd/vsftpd.conf

Her ihtimale karşı, düzenlemeden önce orijinal ayarlar dosyasının bir yedek kopyasını almak yararlıdır:

$ sudo cp /etc/vsftpd.conf vsftpd.conf.backup

vsFTPd FTP sunucusu, anonim ve yetkili kullanıcılarla çalışmak için iki ana seçenek sunar. İlk seçenek "daha güvenli" olarak kabul edilir, ancak yalnızca güvenilir koruma sağlamak için neredeyse hiçbir şey yapılandırmaya gerek olmadığı için. Ancak, sistemin yerel FTP kullanıcılarıyla çalışmayı içeren yetkili erişimin uygun şekilde düzenlenmesiyle, anonim erişim kullanmaktan daha kötü bir güvenlik sağlayabilirsiniz.

Anonim Erişim Modunda Yapılandırma

Bu modda vsFTPd'nin çalışması, uzak sunucudaki dosyalara sahip eylemlerin, varsayılan olarak tanımlanan bir kullanıcı tarafından gerçekleştirilmesidir, örneğin, " adlı kullanıcı ftp" veya " anonim”, e-posta ise şifre olarak kullanılır.

FTP aracılığıyla anonim erişimi etkinleştirmek için vsftpd.conf dosyasında ilgili yönerge için "YES" değerini tanımlamanız gerekir:

Anonymous_enable=EVET

Dosya yönetimi artık belirli bir dizini (genellikle /srv/ftp) ve belirli bir kullanıcıyı - genellikle ftp'yi kullanacaktır.

Anonim FTP erişimi için başka bir dosya konumu tanımlayabilirsiniz, yani ftp kullanıcısının ana dizinini değiştirebilirsiniz:

$ sudo mkdir /srv/share/ftp $ sudo usermod -d /srv/share/ftp ftp

Anonim kullanıcıların da uzak bir sunucuya dosya yüklemesi gerekiyorsa, bu yönerge bunu yapmanıza izin verecektir:

Anon_upload_enable=EVET

Artık anonim erişim için gerekli dosyaları ftp kullanıcısının ana klasörüne kopyalayabilir ve vsftpd arka plan programını yeniden başlatabilirsiniz:

$ systemctl vsftpd'yi yeniden başlat

Genellikle bu ayar grubu, anonim FTP erişimini düzenlemek için yeterlidir. Bağlantıyı test etmek için ftp address_host komutunu çalıştırabilirsiniz:

$ ftp 127.0.0.1

$ ftp yerel ana bilgisayar

hangi, eğer başarılı olursa, şöyle bir şey üretecektir:

Yetkili erişim modunda ayar

Local_enable=EVET

Write_enable=EVET

Şimdi yapılan değişiklikleri etkinleştirmek için vsftpd'yi yeniden başlatmanız gerekiyor:

$ systemctl vsftpd'yi yeniden başlat

Kullanıcıları ev dizinlerinde kısıtlayın

Yalnızca ana dizinlerine erişmesine izin verilen kullanıcıları tanımlamak için yönergeler vardır:

chroot_list_enable=EVET chroot_list_file=/etc/vsftpd.chroot_list

İlki, bir kullanıcı listesi kullanmayı içerir, ikincisi, her satırdaki kullanıcıları yalnızca ev dizinlerine erişimi olan listeleyen bir dosyayı tanımlar. Yönergeyi de belirtirseniz:

chroot_local_user=EVET

hangi yerel kullanıcıları chroot() içinde "kilitler" ve ana dizinlerinin üzerine çıkamazlarsa, bu durumda vsftpd.chroot_list dosyasındaki kullanıcılar, bu listeye dahil olmayanların aksine ev dizinleriyle sınırlı olmayacaktır.

FTP erişimini kullanıcılar arasında dağıtırken, yerel kullanıcının giriş dizininin kökünde güvenlik nedeniyle izin verilmeyen yazma izinlerine sahip olması nedeniyle oluşan bir hata oluşabilir. Bu hata şöyle görünür:

500 OOPS: vsftpd: chroot() içinde yazılabilir kök ile çalıştırmayı reddetme

Bu hatayı düzeltmenin en iyi yolu, tüm kullanıcıların bağlanırken gidecekleri, yalnızca ev alt dizinlerine erişebilecekleri ortak bir kök dizin belirlemektir, örneğin:

local_root=/ev

Bu hatayı düzeltmek için ana dizine yazma kontrolünü de devre dışı bırakabilirsiniz:

allow_writeable_chroot=EVET

Ancak yine de, bu yalnızca belirli bir durum için bunun neden gerekli olduğuna dair net bir anlayış olduğunda yapılmalıdır.

SSL ile veri koruması

İletilen verileri şifreleyebilmek için, FTPS modunda vsFTPd'yi yapılandırmanız gerekir. Bu, FTP yoluyla aynı veri aktarımıdır, ancak SSL protokolü üzerinden düzenlenir. Sertifikaları ve anahtarları kullanarak verileri şifreleme ve doğrulama.

FTPS modunu etkinleştirmek için aşağıdaki yönergeyi kullanın:

SSL_enable=Evet

Varsayılan olarak vsftpd.conf yapılandırma dosyası ayrıca sertifikaları ve anahtarları tanımlayan seçenekler içerir, örneğin:

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Bu sertifika ve anahtar değiştirilmelidir. FTPS'yi kullanmak için bir sertifika ve bir anahtar kullanmanız gerekir. Belirli bir sunucu veya bilgisayar için oluşturulan (veya alınan).

Bir hata bulursanız, lütfen bir metin parçasını vurgulayın ve tıklayın. Ctrl+Enter.