搭建FTP服务器

时间:2022-06-24 19:28:38

yum install vsftpd -y
yum install pam* db4* --skip-broken –y

创建并生成vsftpd 数据库文件vi /etc/vsftpd/ftpusers.txt,内容如下:
第一行为FTP 虚拟用户,登录用户名,第二行为密码,第三行为用户名,依次类推。
wugk
1
wugk1
1

生成数据库文件命令:
db_load -T -t hash -f /etc/vsftpd/ftpuser.txt /etc/vsftpd/vsftpd_login.db
chmod 700 /etc/vsftpd/vsftpd_login.db

配置PAM 验证文件:
在配置文件vi /etc/pam.d/vsftpd 行首加入如下两行认证语句,注释其他所有行:(如果是32 位,lib64需改成lib,如果RedHat,加入的语句不一样,需注意)
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

创建vsftpd 映射本地用户:
所有的FTP 虚拟用户需要使用一个系统用户,这个系统用户不需要密码,也不需要登录。主要用来做虚拟用户映射使用。
useradd -d /home/ftpuser -s /sbin/nologin ftpuser

vsftpd.conf完整版配置文件内容如下:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
#port_enable=YES (如果是主动模式请去掉“#”,注释这两行pasv_min_port=30001,pasv_max_port=30010)
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
listen=YES
guest_enable=YES
guest_username=ftpuser
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/vsftpd_user_conf
virtual_use_local_privs=YES
#pasv_enable=NO
pasv_min_port=30001
pasv_max_port=30010
chroot_local_user=YES

保存重启,/etc/init.d/vsftpd restart 即可使用虚拟用户登录,这时候所有的虚拟用户
共同使用/home/ftpuser 目录上传下载, 如果想使用自己独立的目录, 可以在
/etc/vsftpd/vsftpd_user_conf 目录创建各自的配置文件,如给wugk 创建独立的配置文件:

vi /etc/vsftpd/vsftpd_user_conf/wugk ,内容如下,建立自己的FTP 目录。

local_root=/home/ftpsite/wugk #数据存放的目录,可更改(如/data/ftp)
write_enable=YES #写入权限
anon_world_readable_only=YES
anon_upload_enable=YES #上传权限
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

修改权限:
chown -R ftpuser.ftpuser /data/ftp

重启,使用客户端登录FTP,测试即可。

===================================================

如果要对ftp的用户名和密码使用加密方式,请按照此方法:

生成ftps:
mkdir /etc/vsftpd/ssl
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/ssl/vsftpd.pem -out /etc/vsftpd/ssl/vsftpd.pem #365是证书的有效时间
cp vsftpd.conf vsftpsd.conf
在vsftpsd.conf配置文件,最后添加如下内容即可:
ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
rsa_cert_file=/etc/vsftpd/ssl/vsftpd.pem
listen_port=101
重启,使用客户端登录FTP,测试即可看到证书信息。