步骤一.安装vsftpd及相关依赖包
#vsftpd安装程序和依赖表
yum install -y vsftpd pam* db4*
安装完之后,vsftpd默认在/etc/vsftpd目录下
步骤二.修改vsftpd.conf (/etc/vsftpd/vsftpd.conf)
#建立相关文件和文件夹
touch /etc/vsftpd/chroot_list
mkdir /etc/vsftpd/ftplogin
#修改vsftpd.conf
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
vi /etc/vsftpd/vsftpd.conf
完整配置如下(伸手党福音),直接覆盖即可,千万不要忘记备份原文件
anonymous_enable=NO #匿名用户开启关闭
local_enable=YES
write_enable=YES
local_umask=022 #新建的目录 权限是755,文件的权限是 644
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
listen=YES
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=www
user_config_dir=/etc/vsftpd/ftplogin
pam_service_name=vvsftpd
步骤三.建立FTP虚拟登陆账户
1.创建密码明文文件
touch /etc/vsftpd/vuser
vi /etc/vsftpd/vuser
格式为:
用户名1
用户名1密码
用户名2
用户名2密码
………..
2.生成pam校验数据库文件
db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/login.db
为了安全期间,建议在生成校验数据库之后,删除vuser文件
或者修改vuser权限,不让别的用户读(root大神如果被攻陷,那就没什么好说的了)
chmod 600 /etc/vsftpd/vuser
3.添加新的pam service
touch /etc/pam.d/vvsftpd
vim /etc/pam.d/vvsftpd
内容如下(注意如果是32位系统,那就用32位的校验,本例是64位的):
#%PAM-1.0
#auth required /lib/security/pam_userdb.so db=/etc/vsftpd/login
#account required /lib/security/pam_userdb.so db=/etc/vsftpd/login
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/login
步骤四.给FTP用户赋权(增加权限配置文件)
配置文件存放路径,就是conf中的user_config_dir,本文就是/etc/vsftpd/ftplogin,文件名必须和用户名相同
文件配置详解,默认路径需要提前用mkdir建立好,
#有上传/下载/修改权限
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
local_root=/home/vsftpd/test
#只有上传/修改权限
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
local_root=/home/vsftpd/test2
#只有上传修改权限,不能下载
[root@rhsvr1 conf]# vi yihan
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
download_enable=NO
local_root=/home/ftp/yihan
#只有下载权限
anon_world_readable_only=NO
local_root=/home/vsftpd/test3
步骤5.设置seLinux
setsebool -P allow_ftpd_full_access on
setsebool -P ftp_home_dir on
被动模式设置特定端口conf内增加
pasv_enable=yes
pasv_min_port=4500
pasv_max_port=5000
pasv_address=8.136.219.130
问题:FTP连接时出现“227 Entering Passive Mode”的解决方法
ftp> dir
227 Entering Passive Mode (10,100,11,130,6,93).
ftp: connect: 没有到主机的路由
原因:ftp服务端连接成功后,会告诉客户端一个连接地址和随机端口,但是这个端口一般是局域网内地址
解决方案:
1、切换回主动模式;
ftp> passive
Passive mode off.
2、pasv_address=8.136.219.130,让vsftpd以这个地址去欺骗客户
问题:IE浏览器不能访问FTP
原因:同上
解决方案:
1.关闭ftp被动模式;
2.ftp服务器配置被动模式,pasv_address=8.136.219.130