Centos7 下安装 vsftpd

一、安装软件
1. yum install vsftpd –y yum install ftp –y //安装 vsftp 软件及 ftp 客户端
二 、 添加宿主用户并指定根目录并使其不能登陆并 赋予权限
1. useradd virtual –d /var/ftp/share –s /bin/false //添加用户 virtual 并指定家目录为
share 并设置用户不能登陆
2. mkdir /var/ftp/share //创建目录
3. chown virtual:vritual /var/ftp/share –R //修改目录所有者及组
4. chmod –R 755 /var/ftp/share //修改目录权限为 755
三、创建虚拟用户帐号登陆文件及数据库文件
1 . vi /etc/vsftpd/login.txt
2. db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db
辑 四、编辑  pam  验证文件
vi /etc/pam.d/vsftpd
在文件开头添加下列字段:
(其中的间隔为 TAB 不是空格,login 后面不能带.db 不然提示找不到文件)
#%PAM-1.0
auth sufficient pam_userdb.so  db=/etc/vsftpd/login
account sufficient pam_userdb.so  db=/etc/vsftpd/login
五、创建虚拟用户配置文件
1 、创建配置文件所在目录
mkdir /etc/vsftpd/vuser_conf
2、建立帐号的配置文件及对应的帐号登陆目录(家目录)
cd /etc/vsftp/vuser_conf //切换到目录 vuser_conf
touch test1 test2 test3 ftpadmin //创建对应的几个帐号配置文件(与 login 中的帐号对应)
cd /var/ftp/share
mkdir test1 test2 test3 //创建三个帐号的家目录(因准备将 ftpadmin 设为管理所以没有建
立 ftpadmin 目录,到时指定它的目录为 share)
*记得使用 chown –R 命令修改目录的所有者及群组
辑 六、编辑 d vsftpd  配置文件 及虚拟用户配置文件
1、编辑 vsftpd 配置文件
Vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_root=/var/ftp/share
local_enable=YES
local_root=/var/ftp/share //设定 FTP 帐号的登入的根目录
write_enable=YES
local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
log_ftp_protocol=YES
#idle_session_timeout=600 //设置多长时间不对 FTP 服务器进行任何操作,则断开该 FTP
连接,单位为秒。
#data_connection_timeout=120 //数据连接的超时时间,单位为秒
nopriv_user=virtual
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
ftpd_banner=Welcome to blah FTP service. //ftp 使用文本登陆时的欢迎提示
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails
chroot_local_user=YES //限制用户不能切换出自己的根目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES //从 2.3.5 之后,vsftpd 增强了安全检查,如果用户被限
定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就
会报该错误。
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
421 Service not available, remote server has closed connection
要修复这个错误,可以用命令 chmod a-w /home/user 去除用户主目录的写权限,注意把目
录 替 换 成 你 自 己 的 。 或 者 你 可 以 在 vsftpd 的 配 置 文 件 中 增 加 下 面 这 一 项 :
allow_writeable_chroot=YES
#ls_recurse_enable=YES
listen=NO
listen_ipv6=YES
guest_enable=YES //启用户虚拟用户
guest_username=virtual //设置虚拟用户的宿主用户名称
pam_service_name=vsftpd //设置 PAM 验证文件
user_config_dir=/etc/vsftpd/vuser_conf //指定虚拟用户的配置文件目录
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=YES
tcp_wrappers=YES
virtual_use_local_privs=YES //设置虚拟用户的权限等于本地帐号
local_max_rate=0
pasv_enable=YES //启用被动模式
pasv_min_port=61001
pasv_max_port=62000
max_clients = 100 //最大联机数限制
2 、编辑虚拟用户配置文件
local_root=/var/ftp/share/test1 //该地址为该虚拟用户的家目录
write_enable=YES
download_enable=YES
local_umask=022
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
依次写入各配置文件
3、 创建 chroot_list 文件并将允许切换目录的用户加入进去
Vi /etc/vsftpd/chroot_list
改 七、修改 x selinux  文件
Vi /etc/selinux/config
将里边的 selinux 选项改为=disable
动 八、重新启动 d vsftpd  服务并设置开机启动
Systemctl restart vsftpd.service
Systemctl enable vsftpd.service
*最后请一定要在防火墙里将 FTP 选项打开
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值