Vsftpd pasif mod ile çalışacak şekilde nasıl yapılandırılır


49

Ben kurmak istediğinizde vsftpdüzerinde centos, kullanıcılar ve geri kalanı için sadece kurulum hapis ortamı varsayılan yapılandırması vsftpd. Kullanıcı oluşturup filezilaftp istemcisiyle bağlantı kurmayı deniyorum , ancak pasif mod ile bağlantı kuramadım. Hep değiştirmek transfer settingsbaşarıyla bağlanmak için etkin moda ftp serveraksi takdirde olsun

 Error: Failed to retrieve directory listing

Yani vsftp.confdosyadaki herhangi bir yönergeyi değiştirmenin bir yolu var mı ve pasif mod ile sunucuya bağlanabilir miyiz?

Yanıtlar:


86

Vsftpd için pasif modu yapılandırmak için, vsftpd.conf'da bazı parametreleri ayarlamanız gerekir.

pasv_enable=Yes
pasv_max_port=10100
pasv_min_port=10090

Bu, pasif modu etkinleştirir ve veri bağlantıları için on bir bağlantı noktasını kullanmasını kısıtlar. Bu bağlantı noktalarını güvenlik duvarınızda açmanız gerektiğinden bu kullanışlıdır.

iptables -I INPUT -p tcp --destination-port 10090:10100 -j ACCEPT

Bunu test ettikten sonra hepsi çalışırsa, güvenlik duvarınızın durumunu

service iptables save

hangi /etc/sysconfig/iptablesdosyayı güncelleyecektir .

Bunu yapmak için CentOS 7 ise, yeni firewalld'i kullanmalısınız, iptables değil:

Bölgenizi bulun:

# firewall-cmd --get-active-zones
public
  interfaces: eth0

Bölgem 'genel', bu yüzden bölgemi genel olarak belirledim, bağlantı noktası aralığını ekledim ve bundan sonra yeniden yüklüyoruz:

# firewall-cmd --permanent --zone=public --add-port=10090-10100/tcp
# firewall-cmd --reload

Bağlantı kurduğunuzda ne olur?

  • İstemciniz 21 numaralı bağlantı noktasındaki vsftpd sunucusuyla bağlantı kurar.

  • Sunucu, istemciye, yukarıda belirtilen aralıktan hangi bağlantı noktasına bağlanacağını söyleyerek yanıt verir.

  • İstemci belirtilen portta bir veri bağlantısı kurar ve oturum devam eder.

Burada farklı ftp modlarının harika bir açıklaması var.


Neden maxlimanı neden koyduğunu merak ediyorum min... ama daha da önemlisi, 10090 ila 10100 arasındaki limanları açarsan, söylediğin gibi 10 değil, 11 liman.
Alexis Wilke

Alfabetik olduğuna inanıyorum, ayrı yönergeler oldukları için farketmez.
user9517

3
Bu benim için çalışmıyor pasv_address.
fbmd

bana bunu bulmak için yaş aldı, hiçbiri vsftpd kılavuzları bu liste ... brilliant
Pete

Wonderful - Bu vsftp yapılandırması tüm FTP-firewall problemlerimi çözdü :)
BurninLeo

24

Pasif modu etkinleştirmek için vsftp.conf dosyanızda aşağıdaki yapılandırma seçeneklerini ayarlayın:

pasv_enable=YES
pasv_min_port=41361
pasv_max_port=65534
pasv_address=xxx.xxx.xxx.xxx

Elbette başlangıç ​​ve bitiş portunu değiştirebilir ve xxx'leri sunucunuzun genel IP'siyle değiştirmelisiniz.

Ayrıca, güvenlik duvarınızda pasif mod port aralığını da açmalısınız. Centolarda, ip_conntrack_ftpgüvenlik duvarınızdaki ftp bağlantılarını ele almak için modülü yükleyebilirsiniz . Düzen /etc/sysconfig/iptables-configve IPTABLES_MODULES seçeneğine ip_conntrack_ftp ekleyin. Daha sonra iptables'ı yeniden başlatın:

/sbin/service iptables restart

3
pasv_addressher şey ayarlandığı ve hala işe yaramadığı zaman püf noktası nedir.
fbmd

1
pasb_adresi denemeden önce, hem pasv_max hem de min_port'un doğru sırada olup olmadığını kontrol etmelisiniz. Pasv_min_port içinde ayarlanmış maksimum değere sahip oldum ve vsftpd bunu görmezden geldi. Pasv portlarının doğru bir şekilde yapılandırıldığını düşünmenizi sağlayan görsel bir hata / hata olduğu bilinen bir hata. Bu benim başıma geldi ve sorunumu çözdü.
Pedro Sousa

İçinde bir DNS adresi belirtmek pasv_addressistiyorsanız, eklemelisiniz pasv_addr_resolve=YES(varsayılan olarak NO)
Pierre-Damien

6

Yanında, pasv_enable=YESVSFTP'nin PASV modunu çalıştıracağı bir bağlantı noktası aralığı belirtin:

pasv_min_port=50000
pasv_max_port=50999
port_enable=YES

İptables'ı yapılandırmayı unutmayın, bu portlarda paket aktarımı sağlar:

iptables -I INPUT -p tcp --dport 50000:50999 -j ACCEPT

Standart bir CentOS sisteminde, eklenen kuralların iptables -A INPUT ... göz ardı edilmesine neden olan bir DROP var
GoFundMonica'yı

pasv_addressVsftpd.conf dosyasına dahil ettiğinizden emin olun .
Pedro Madrid

3

Genellikle, ftp sunucusu vsftpd değil, pasif modun kullanılmasını önleyen iptable gibi güvenlik duvarıdır (veri aktarımı için gerekli tcp bağlantısını engelleme).


Aslında, vsftpd, güvenlik duvarında bir port açacak kadar akıllı olabilir ... ama burada gördüğüm cevaplardan, bu kadar yetenekli gibi gözükmüyor.
Alexis Wilke

3
@Alexsis. Uygulamalar sadece kuralları görmezden gelir ve yine de portları açarsanız güvenlik duvarının bir anlamı yoktur.
ekerner
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.