Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Erstellen Sie einen FTP-Server unter CentOS

Erstellen Sie einen FTP-Server unter CentOS

巴扎黑
巴扎黑Original
2017-09-04 14:26:302193Durchsuche

vsftpd ist ein bekannter FTP-Server unter Linux. Natürlich ist dies die erste Wahl beim Aufbau eines FTP-Servers.

In diesem Artikel wird der Prozess der Installation von vsftpd und der Konfiguration virtueller Benutzer für die Anmeldung bei FTP unter CentOS 6.4 vorgestellt.

Text:

Eins: vsftpd installieren

Überprüfen Sie, ob vsftpd installiert wurde

rpm -qa | grep vsftpd
#如果没有,就安装,并设置开机启动
yum -y install vsftpd
chkconfig vsftpd on

Zweiten: Virtuelle benutzerbasierte Konfiguration

Der sogenannte virtuelle Benutzer nutzt kein reales Konto, sondern nur zum Zwecke der Zuordnung zu einem realen Konto und der Festlegung von Berechtigungen. Virtuelle Benutzer können sich nicht beim CentOS-System anmelden.

Ändern Sie die Konfigurationsdatei

Öffnen Sie /etc/vsftpd/vsftpd.conf und nehmen Sie die folgende Konfiguration vor

anonymous_enable=NO #设定不允许匿名访问
local_enable=YES #设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
chroot_list_enable=YES #使用户不能离开主目录
ascii_upload_enable=YES
ascii_download_enable=YES #设定支持ASCII模式的上传和下载功能
pam_service_name=vsftpd #PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
以下这些是关于vsftpd虚拟用户支持的重要配置项,默认vsftpd.conf中不包含这些设定项目,需要自己手动添加
guest_enable=YES #设定启用虚拟用户功能
guest_username=ftp #指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了
user_config_dir=/etc/vsftpd/vuser_conf #设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名
进行认证
chroot_list_file=/etc/vsftpd/vuser_passwd.txt

Installieren Sie zunächst das Berkeley DB-Tool. Viele Leute können das nicht find db_load Das Problem ist, dass dieses Paket nicht installiert ist.

yum install db4 db4-utils

Erstellen Sie dann den Benutzerpassworttext /etc/vsftpd/vuser_passwd.txt. Beachten Sie, dass die ungeraden Zeilen der Benutzername und die geraden Zeilen das Passwort sind >Generieren Sie dann die Datenbankdatei für die virtuelle Benutzerauthentifizierung

test
123456

Bearbeiten Sie dann die Authentifizierungsdatei /etc/pam.d/vsftpd, kommentieren Sie alle ursprünglichen Anweisungen aus und fügen Sie die folgenden zwei Sätze hinzu:

db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

Schließlich erstellen Sie die virtuelle Benutzerkonfigurationsdatei

auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd

Setzen Sie Selinux ein (wenn Ihr Selinux aktiviert ist)

mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/test  #文件名等于vuser_passwd.txt里面的账户名,否则下面设置无效
内容如下
local_root=/ftp/www  #虚拟用户根目录,根据实际情况修改
write_enable=YES
anon_umask=022 #掩码
anon_world_readable_only=NO 
anon_upload_enable=YES 
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

Legen Sie die FTP-Root-Verzeichnisberechtigungen fest

setsebool -P ftp_home_dir=1   #设置ftp可以使用home目录
sersebool -P allow_ftpd_full_access=1   #设置ftp用户可以有所有权限

Das neueste vsftpd erfordert keine Schreibberechtigungen für das Hauptverzeichnis, also ist FTP 755, und legen Sie dann 777 Berechtigungen für die Unterverzeichnisse unter dem Hauptverzeichnis fest
mkdir /ftp/www   #创建目录
chmod R 755 /ftp
chmod R 777 /ftp/www

Richten Sie die Firewall ein

Öffnen Sie /etc/sysconfig/iptables

Fügen Sie unter „-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT“ hinzu:

Dann speichern und schließen Sie die Datei, führen Sie den folgenden Befehl im Terminal aus, um die Firewall-Konfiguration zu aktualisieren:

-A INPUT m state --state NEW m tcp p dport 21 j ACCEPT

OK, führen Sie „service vsftpd start“ aus und Sie können auf Ihren FTP-Server zugreifen.

service iptables restart
PASV-Modus konfigurieren

vsftpd aktiviert den PASV-Modus standardmäßig nicht. Um PASV standardmäßig zu aktivieren, müssen Sie /etc/ wie folgt öffnen Konfiguration

vsftpd/vsftpd.conf, am Ende

hinzufügen und in der Firewall-Konfiguration die Ports 40000 bis 40080 öffnen

pasv_enable=YES   #开启PASV模式
pasv_min_port=40000   #最小端口号
pasv_max_port=40080   #最大端口号
pasv_promiscuous=YES

iptabls und vsftpd neu starten

-A INPUT m state --state NEW m tcp p dport 40000:40080 j ACCEPT

Jetzt können Sie den PASV-Modus verwenden, um eine Verbindung zu Ihrem FTP-Server herzustellen~

service iptables restart
service vsftpd restart
Häufige Fehler:

Frage 1:

Aber nachdem ich dem gefolgt bin Bei den Konfigurationsschritten stellte ich fest, dass jedes Mal

530 Anmeldung falsch war

Nachdem ich mich umgesehen hatte, stellte ich fest, dass ich vsftpd.vu zur Überprüfung im Stammverzeichnis von etc anstelle von /etc erstellt hatte /pam.d/vsftpd.vu

Frage 2:

Nachdem ich das obige Problem behoben habe, kann ich mich immer noch nicht anmelden und erhalte folgende Meldung:

500 OOPS: fehlerhafter Bool-Wert in der Konfigurationsdatei für:anon_world_readable_only

Ich habe gegoogelt und festgestellt, dass einige Leute sagten, dass am Ende der Konfigurationsdatei keine Leerzeichen stehen dürfen. Als ich meine eigene Konfigurationsdatei öffnete, stellte ich fest, dass nicht nur das Ende der anon_world_readable_only Zeile, aber auch am Ende der gesamten Datei gab es mehrere Leerzeichen. Seien Sie jedoch vorsichtig, wenn Sie Konfigurationen von Webseiten kopieren und einfügen.

Frage 3:

500 OOPS: vsftpd: Der in „guest_username“ angegebene Benutzer kann nicht gefunden werden: aaA

Am Ende wurde festgestellt, dass Es war ein Problem mit dem letzten Fall. Es sollte „aaa“ lauten.

Achten Sie also auf die Details, es ist sehr einfach, die oben genannten Schritte zu installieren

Das obige ist der detaillierte Inhalt vonErstellen Sie einen FTP-Server unter CentOS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn