如何安装vsftpd服务器

实验环境

一台vstpd服务器,一台windows客户机

安装软件

1、首先挂载光盘

[root@localhost ~]# mount /dev/sr0 /mnt   
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        17G  4.0G   14G   24% /
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   13M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  179M  836M   18% /boot
tmpfs                   tmpfs     378M  4.0K  378M    1% /run/user/42
tmpfs                   tmpfs     378M   24K  378M    1% /run/user/0
/dev/sr0                iso9660   4.3G  4.3G     0  100% /mnt
[root@localhost ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-25.el7.x86_64.rpm 警告:/mnt/Packages/vsftpd-3.0.2-25.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:vsftpd-3.0.2-25.el7              ################################# [100%]
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
[root@localhost vsftpd]# grep -v "#" vsftpd.conf 
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
[root@localhost vsftpd]# service vsftpd start
Redirecting to /bin/systemctl start vsftpd.service
[root@localhost vsftpd]# systemctl stop firewalld.service 
[root@localhost vsftpd]# setenforce 0

装完就可以在win 7上直接使用了
匿名用户登录,密码为空(很少用匿名)
在这里插入图片描述

[root@localhost vsftpd]# ls /var/ftp  '登录的站点根目录'
pub

在vsftpd服务器上创建一个test.txt文件

[root@localhost vsftpd]# echo "this is test" > /var/ftp/test.txt
[root@localhost vsftpd]# ls /var/ftp
pub  test.txt

可以在win7上下载
在这里插入图片描述
在这里插入图片描述
提高本地用户使用时的安全系数

[root@localhost var]# vim /etc/vsftpd/vsftpd.conf	    '修改配置文件'
......
anon_upload_enable=YES      	'开头的"#"去掉,上传权限'
......
anon_mkdir_write_enable=YES	'开头的"#"去掉'
anon_other_write_enable=YES	'需要自己手动写入, 把匿名用户的权限放到最大化'
......
[root@localhost var]# systemctl restart vsftpd	'重启服务'

[root@localhost var]# cd /var/ftp/	'进入到该目录查看ftp目录的权限'
drwxr-xr-x 2 root root 6 4月   1 12:55 pub

[root@localhost var]# chmod 777 ftp/	'将ftp目录放到777权限'

Linux会有保护不能让根目录权限放到777,可以改底下的子目录
在这里插入图片描述

[root@localhost var]# cd /var/ftp/	'进入ftp目录'

[root@localhost ftp]# ll
总用量 0
drwxr-xr-x 2 root root 6 4月   1 12:55 pub

[root@localhost ftp]# chmod 777 pub/	'将子目录pub权限改成777'

在Win10里面就可以进行上传等操作了—注意权限的问题
在这里插入图片描述

[root@localhost ftp]# useradd zhangsan	'创建用户并设置密码'

[root@localhost ftp]#passwd zhangsan

[root@localhost ftp]# useradd lisi	'创建用户并设置密码'

[root@localhost ftp]# passwd lisi

设置好之后就可以使用设置的zhangsan或者lisi用户去进行登录
普通用户可以自由的去任何目录,需要让其只能在自己的家目录进行操作

[root@localhost ftp]# vi /etc/vsftpd/vsftpd.conf 	'修改配置文件进行设置'
....
chroot_local_user=YES	'将"#"去掉'
allow_writeable_chroot=YES	'加上这句话给权限'
......
[root@localhost ftp]# systemctl restart vsftpd	'重启服务就切换不了其他目录了'

在user_list文件下用户名默认是不能进行登录的

[root@localhost ftp]# cd /etc/vsftpd/

[root@localhost vsftpd]# cat user_list 
#vsftpd userlist
#If userlist_deny=NO, only allow users in this file
#If userlist_deny=YES (default), never allow users in this file, and
#do not even prompt for a password.
#Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
#for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

[root@localhost vsftpd]# echo "zhangsan" >> user_list 	'把"zhangsan"追加到user_list里面'

[root@localhost vsftpd]# cat user_list 	'查看user_list'
#vsftpd userlist
#If userlist_deny=NO, only allow users in this file
#If userlist_deny=YES (default), never allow users in this file, and
#do not even prompt for a password.
#Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
#for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
zhangsan
[root@localhost vsftpd]# systemctl restart vsftpd	'重启服务'

在这里插入图片描述

[root@localhost vsftpd]# vi vsftpd.conf	'修改配置文件'
......
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=NO	'允许该列表中的用户登录'
  • zhangsan在列表里面所以可以进行登录

  • lisi不再列表里面所以不能登录

建立虚拟用户使用ftp

[root@localhost vsftpd]# vim /etc/vsftpd/vuser	'创建虚拟用户列表------将该文件转换成数据库文件'
tom '用户名'
123123 '密码'
jerry '用户名'
123123 '密码'

[root@localhost vsftpd]# db_load -T -t	hash -f vuser vuser.db	'T,转换,t,配置类型,f,指定文件'

[root@localhost vsftpd]# ll

总用量 36
-rw------- 1 root root   125 4月   1 12:55 ftpusers
-rw------- 1 root root   370 7月  19 09:20 user_list
-rw------- 1 root root  5168 7月  19 09:27 vsftpd.conf
-rwxr--r-- 1 root root   338 4月   1 12:55 vsftpd_conf_migrate.sh
-rw-r--r-- 1 root root    24 7月  19 09:30 vuser
-rw-r--r-- 1 root root 12288 7月  19 09:32 vuser.db

[root@localhost vsftpd]# chmod 600 vuser.db vuser	'为了安全修改权限其他用户无法访问'

[root@localhost vsftpd]# useradd -d /opt/vuser -s /sbin/nologin vuser	'创建一个用户为vuser指定家目录不能使用shell登录'

编辑pam认证模块支持虚拟用户的登录

[root@localhost opt]# cat /etc/pam.d/vsftpd 	'查看固定模板'
#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required	pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required	pam_shells.so
auth       include	password-auth
account    include	password-auth
session    required     pam_loginuid.so
session    include	password-auth

[root@localhost opt]# vi /etc/pam.d/vsftpd.vu	'pam认证模块的文件'
auth required pam_userdb.so db=/etc/vsftpd/vuser	'是vuser.db的文件'
account required pam_userdb.so db=/etc/vsftpd/vuser

[root@localhost opt]# vi /etc/vsftpd/vsftpd.conf 	'修改配置文件'
......
#pam_service_name=vsftpd	'注释掉,不然会冲突'
userlist_enable=YES
tcp_wrappers=YES

guest_enable=YES
guest_username=vuser
pam_service_name=vsftpd.vu	'开启虚拟用户,使用pam认证登录   手动插入'
[root@localhost opt]# systemctl restart vsftpd	'重启服务'

Win系统里面就可以使用虚拟用户进行登录操作了
ftp 14.0.0.14
tom
ftp 14.0.0.14
jerry

[root@localhost pub]# cd /opt/vuser	'切换到该目录'

[root@localhost vuser]# ll
总用量 0
-rw------- 1 vuser vuser 0 7月  19 09:49 bb.txt	'上传的文件都是vuser用户'

虚拟用户指定上传文件的权限

[root@localhost vuser]# cd /etc/vsftpd/	'进入该目录'
[root@localhost vsftpd]# vi vsftpd.conf 	'修改配置文件'
user_config_dir=/etc/vsftpd/vu_dir	'指定文件夹路径'
[root@localhost vsftpd]# mkdir vu_dir	'创建文件夹'
[root@localhost vsftpd]# cd vu_dir/	'进入目录'
[root@localhost vu_dir]# vim tom	'创建文件'
anon_umask=022	'设置权限'
[root@localhost vuser]# systemctl restart vsftpd	'重启服务'

Win10 上传操作一下
ftp 14.0.0.14
tom
put bb.txt

[root@localhost vu_dir]# cd /opt/vuser/	'进入家目录'
-rw-r--r-- 1 vuser vuser 0 7月  19 10:00 cc.txt	===>可以看到权限变了
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装和配置vsftpd服务器并设置虚拟用户的步骤如下: 1. 安装vsftpd服务器: 在Ubuntu终端中运行以下命令安装vsftpd服务器: ``` sudo apt-get update sudo apt-get install vsftpd ``` 2. 配置vsftpd服务器: 打开vsftpd的配置文件: ``` sudo nano /etc/vsftpd.conf ``` 3. 修改以下配置项: - 启用虚拟用户功能,将以下行取消注释并修改为: ``` virtual_use_local_privs=YES guest_enable=YES guest_username=ftp user_sub_token=$USER local_root=/home/ftp/$USER chroot_local_user=YES hide_ids=YES ``` - 禁用匿名访问,将以下行取消注释并修改为: ``` anonymous_enable=NO ``` - 允许写入权限,将以下行取消注释并修改为: ``` write_enable=YES local_umask=022 file_open_mode=0777 ``` 4. 保存并关闭文件。 5. 创建虚拟用户: 创建一个系统用户用于管理虚拟用户: ``` sudo adduser ftp ``` 6. 创建虚拟用户配置文件: 创建一个文件来存储虚拟用户的用户名和密码: ``` sudo nano /etc/vsftpd/virtual_users.txt ``` 7. 在文件中添加虚拟用户的用户名和密码,每行一个用户,格式为`用户名:密码`,例如: ``` user1:password1 user2:password2 ``` 8. 保存并关闭文件。 9. 生成虚拟用户数据库文件: 运行以下命令生成虚拟用户数据库文件: ``` sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db ``` 10. 设置权限: 运行以下命令设置虚拟用户数据库文件的权限: ``` sudo chmod 600 /etc/vsftpd/virtual_users.db ``` 11. 重启vsftpd服务: 运行以下命令重启vsftpd服务以使配置生效: ``` sudo service vsftpd restart ``` 现在,您已经成功安装和配置了vsftpd服务器,并设置了虚拟用户。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值