Linux下安装vsftpd

一.安装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
vim /etc/vsftpd/vsftpd.conf
#原有配置的修改
anonymous_enable=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
pam_service_name=vvsftpd
#新增配置
guest_enable=YES
guest_username=www
user_config_dir=/etc/vsftpd/ftplogin

完整配置如下(伸手党福音),直接覆盖即可,千万不要忘记备份原文件

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
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

4.给FTP虚拟用户赋权(增加权限配置文件)

配置文件存放路径,就是conf中的user_config_dir,本文就是/etc/vsftpd/ftplogin,文件名必须和用户名相同

文件配置详解,默认路径需要提前用mkdir建立好,目录拥有者设置为conf中的guest_username,本文为www

#有上传/下载/修改权限
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
local_root=/u01/ftpb/upload/ #只有上传/修改权限
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
local_root=/u01/ftpb/upload/ #只有下载权限
anon_world_readable_only=NO
local_root=/u01/ftpb/upload/

 5.设置seLinux

setsebool -P allow_ftpd_full_access on
setsebool -P ftp_home_dir on
#最新测试CentOS 7.6已经没有ftp_home_dir参数 , 改成tftp_home_dir
setsebool -P tftp_home_dir on

如果出现500无法显示列表的错误,主要是iptables设置的问题,请查看相关文章 http://www.cnblogs.com/kreo/p/4368811.html

被动模式设置特定端口

pasv_enable=yes
pasv_min_port=4500
pasv_max_port=5000
上一篇:new-Category-default category show


下一篇:java 学习第二篇关系运算符和布尔值