linux FTP服务(文件传输协议)

linux FTP服务(文件传输协议)

FTP会话
用户接口UI 提供了一个用户接口并使用客户端协议解释器的服务
客户端协议解释器CPI 
服务端协议解释器SPI
客户端数据传输协议CDTP
服务端数据传输协议SDTP

1,检查系统是否已经安装了FTP 服务
rpm -qa | grep vsftpd
rpm -q vsftpd
vsftpd -v

2,ftp服务安装
yum -y install vsftpd

3.驱动ftpd服务
systemctl start vsftpd
service  vsftpd start
4,查看ftp服务状态
systemctl statu vsftpd

5,默认情况下匿名用户主目录位置cd /var/ftp/pub

创建匿名用户的主目录 mkdir /var/ftproot
创建本地用户的主目录 mkdir -p /data/local_ftp

打开配置 vim /etc/vsftpd/vsftpd.conf
在文件末尾添加:
anon_root=/var/ftproot/
local_root=/data/local_ftp


6.selinux设置
查询与FTP服务相关的配置
getsebool -a |grep ftp

重启后永久生效
setsebool -P ftpd_full_access on

授权用户访问FTP服务时允许vsftpd将该用户引导到家目录

setsebool -P tftp_home_dir on


配置匿名用户
1. 匿名用户访问FTP服务配置选项
ftp服务配置文件/etc/vsftpd/vsftpd.conf中关于匿名用户的配置内容如下:
anonymous_enable=YES|NO  是否允许匿名访问FTP服务
anon_umask=022   匿名用户上传文件的umask值
anon_upload_enable=YES|NO 是否允许匿名用户上传文件
anon_mkdir_write_enable=YES|NO是否允许匿名用户创建目录
anon_other_write_enable=YES|NO是否允许匿名用户修改或删除目录
2. 禁止匿名用户访问FTP服务配置
vsftpd默认允许只读方式(可以下载)方式登录。
将ftp服务配置文件/etc/vsftpd/vsftpd.conf中项
anonymous_enable=YES修改为anonymous_enable=NO,保存配置文件。
使用下面命令重新启动ftp服务
[root@localhost ~]#systemctl restart vsftpd
3. 测试禁用匿名用户访问FTP服务
[user2@localhost ~]$ ftp ftp.scitc.com Connected to ftp.scitc.com (192.168.1.10). 220 (vsFTPd 3.0.2) Name (ftp.scitc.com:user2): anonymous 331 Please specify the password. Password: 530 Login incorrect. Login failed.       #匿名用户无法登录FTP服务


7配置本地用户
chroot_local_user=(YES|NO)  #是否将本地用户锁定在家目录中
chroot_list_enable=(YES|NO) #是否锁定使用在家目录中
chroot_list_file #设置锁定用户的列表文件,一行一个用户名。
4.配置本地用户只能访问特定目录
创建本地访问FTP服务用户及家目录
[root@localhost ftp]# useradd -d /var/user2 -s /sbin/nologin user2
[root@localhost ftp]# useradd -d /var/user3 -s /sbin/nologin user3
修改/etc/vsftpd.conf
chroot_list_enable=YES  #去掉本行注释符号
chroot_list_file=/etc/vsftpd/chroot_list

4.配置本地用户只能访问特定目录(续)
在文件/etc/vsftpd/chroot_list中添加user2,user3每个占一行,并为user2,user3设置密码
[root@localhost ftp]# passwd user2
[root@localhost ftp]# passwd user3
配置SELinux
[root@localhost ftp]# setsebool -P tftp_home_dir on
配置文件中/etc/vsftpd/vsftpd.conf最后增加一条
allow_writeable_chroot=YES

5.重启vsftp服务使配置生效
重启vsftp服务 客户端测试ftp服务 [user2@localhost ~]$ ftp ftp.scitc.com

8 配置虚拟用户 
(1)创建虚拟用户/密码数据文件
 [root@localhost ~]#cd /etc/vsftpd 
[root@localhost vsftpd]#vi vuser.list 
#  单行为用户名,双行为密码
 user4 
user4_@1
 user5 
user5_!@

#使用db_load命令用hash算法生成FTP用户数据文件vuser.db
[root@localhost vsftpd]# db_load -T -t hash -f vuser.list vuser.db
[root@localhost vsftpd]# file vuser.db
vuser.db: Berkeley DB (Hash, version 9, native byte-order)
#为虚用户数据库文件赋权
[root@localhost vsftpd]# chmod 600 vuser.db


#删除原始用户名及密码
[root@localhost vsftpd]# rm vuser.list
(2)创建FTP根目录及虚拟用户映射的系统用户
#创建v_user用户,设置该用户为不许登录系统、设置该用户家目录
[root@localhost ftp]# mkdir vftp
[root@localhost ftp]# useradd -d /var/vftp -s /sbin/nologin v_user

#查看v_user家目录权限
[root@localhost ftp]# ls -ld /var/vftp/
drwx------. 3 v_user v_user 78 Apr 27 23:53 /var/vftp/
#为了使其他用户能够访问该目录,为文件夹赋权
[root@localhost ftp]# chmod -Rf 755 /var/vftp
(3)建立支持虚拟用户的PAM认证文件
#db指向vuser.db,去掉后缀。
[root@localhost ftp]# vim /etc/pam.d/vsftpd.vu
auth    required   pam_userdb.so db=/etc/vsftpd/vuser
account required   pam_userdb.so db=/etc/vsftpd/vuser
(4)配置/etc/vsftpd.conf支持虚拟用户访问
annonymous_enable=No
local_enable=YES
guest_enable=YES   #开启虚拟用户模式
guset_username=v_user #指定虚拟用户账户名
pam_service_name=vsftpd.vu #指定pam文件
allow_writeable_chroot=YES 

(5)为虚拟用户指定不同权限 
[root@localhost ftp]# vi /etc/vsftpd/vsftpd.conf user_config_dir=/etc/vsftpd/vusers_dir 
[root@localhost ftp]# mkdir /etc/vsftpd/vusers_dir [root@localhost ftp]# cd /etc/vsftpd/vusers_dir [root@localhost vusers_dir]# touch user4 [root@localhost vusers_dir]# touch user5 
[root@localhost vusers_dir]#vi user5


#指定user5能够完全管理FTP文件 anon_upload_enable=YES 
anon_mkdir_write_enable=YES anon_other_write_enable=YES

9安装客户端软件
yum install ftp
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值