FTP 服务搭建与配置
1. FTP 介绍
FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。
FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。
小公司用的多,大企业不用FTP,因为不安全
2. 使用vsftpd搭建ftp服务( CentOS上自带vsftpd)
2.1 安装 vsftpd
yum install -y vsftpd
#### 创建用户
useradd -s /sbin/nologin virftp
2.2 配置 vsftpd 账户文件
vim /etc/vsftpd/vsftpd_login`
#### 内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行
……
testuser1
aminglinux
……
#### 设置权限
chmod 600 /etc/vsftpd/vsftpd_login
#### 转换账户配置文件为二进制文件
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
2.3 配置 vsftpd 账户配置文件
mkdir /etc/vsftpd/vsftpd_user_conf
#### 创建 ftp 账户配置文件存放目录
cd /etc/vsftpd/vsftpd_user_conf
#### 创建账户配置文件
vim testuser1
#### 添加以下内容
local_root=/home/virftp/testuser1
anonymous_enable=NO #匿名用户登录
write_enable=YES
local_umask=022
anon_upload_enable=NO #匿名用户上传
anon_mkdir_write_enable=NO #匿名用户创建目录
idle_session_timeout=600 #连接超时时间
data_connection_timeout=120 #数据传输超时时间
max_clients=10 #最大客户端数
2.4 配置相关文件、目录
#### 创建FTP用户访问的目录
mkdir /home/virftp/testuser1
touch /home/virftp/testuser1/aming.txt
#### 设置权限
chown -R virftp:virftp /home/virftp
vim /etc/pam.d/vsftpd
#### 在最前面加上以下内容
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
2.5 vsftpd 主配置文件
vim /etc/vsftpd/vsftpd.conf
将anonymous_enable=YES 改为 anonymous_enable=NO
将#anon_upload_enable=YES 改为 anon_upload_enable=NO
将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO
#### 再增加如下内容
chroot_local_user=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES
systemctl start vsftpd
//启动vsftpd服务
3. 测试FTP
3.1 Liunx下测试
yum install -y lftp
lftp ftpuser1@127.0.0.1
执行命令ls,看是否正常输出;若不正常查看日志/var/log/messages和/var/log/secure
3.2 windows下测试
安装Filezilla客户端软件,进行测试
4. 附录
使用pure-ftpd搭建ftp服务
yum install -y epel-release
yum install -y pure-ftpd
vim /etc/pure-ftpd/pure-ftpd.conf
#### 找到pureftpd.pdb这行,把行首的#删除
systemctl stop vsftpd
systemctl start pure-ftpd
mkdir /data/ftp
useradd -u 1010 pure-ftp
chown -R pure-ftp:pure-ftp /data/ftp
pure-pw useradd ftp_usera -u pure-ftp -d /data/ftp
pure-pw mkdb
pure-pw list/userdel/usermod/passwd