Linux的ftp

简单文件传输协议

在服务端

yum install vsftpd -y
systemctl start vsftpd
systemctl enable vsftpd
systemctl stop firewalld.service
systemctl disable firewalld.service

#关闭selinux

vim /etc/selinux/config
SELINUX=disabled   #文件关闭,reboot后生效
#命令行关闭selinux 临时
setenforce 0

在客户端

yum install lftp -y
lftp 172.25.254.87  ##匿名用户登陆ftp服务器  --->/var/ftp
lftp 172.25.254.87 -u student  #用户登陆  --->/home/student

控制用户的登陆

12 anonymous_enable=NO|YES   #匿名用户是否可以登陆
16 local_enable=NO   #本地(指的是服务端)用户是否可以登陆
[root@client ~]# lftp 172.25.254.87 -u student
Password: 
lftp student@172.25.254.87:~> ls      
ls: Login failed: 530 This FTP server is anonymous only.

ftp的安全部署

500报错:权限过大
530报错:认证失败
550报错:服务本身不允许
553报错:文件系统权限过小

对匿名用户的操作

cd /var/ftp/pub
ll -d pub
pub这个目录只对超级用户可写

在客户端测试,直接上传,会报错(550:服务本身的错误)

chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
vim /etc/vsftpd/vsftpd.conf
29 anon_upload_enable=YES  #匿名用户是否可以上传文件
systemctl restart vsftpd.service
 ##匿名用户下载文件
 anon_world_readable_only=NO
 ##匿名用户建立目录
 anon_mkdir_write_enable=YES
 ##匿名用户是否可以删除和重命名
 anon_other_write_enable=YES
 ##匿名用户默认登陆目录的更改
 anon_root=/westos
# #匿名用户上传文件默认权限修改
anon_umask=xxx	改成022
##匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student
##最大上传速率
anon_max_rate=102400 单位:字节 100k
dd if=/dev/zero of=/mnt/bigfile bs=1M count=1500
##最大链接个数
max_clients=2
##本地用户家目录修改
local_root=/westos
##本地用户上传文件权限
local_umask=xxx
##限制本地用户浏览根目录
所有用户被锁定到自己的加目录中(修改之前不仅可以在自己家目录,还可以看其他)
chroot_local_user=YES	##此参数要求去掉自己对加目录的写权限,man看以下这个参数
chmod u-w /home/*
上传测试

用户黑名单建立

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

用户白名单建立

chroot_local_user=YES
chroot_list_enable=YES
chroot_lis
t_file=/etc/vsftpd/chroot_list

#限制本地用户登录

_list	##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登录ftp

ftp虚拟用户的设定
(创建虚拟帐号身份)

vim /etc/vsftpd/westosfile		##文件名称任意
ftpuser1
123
ftpuser2
123
ftpuser3
123

#上面的密码是明文的,不安全,要进行加密,T表示transfer,t表示转换方式为hash

db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db

查看vsftpd.conf,认证的时候是使用pam认证

yum search pam ---> pam.x86_64
rpm -qc pam.x86_64
cd /etc/pam.d,目录里有个vsftpd文件

认证的时候就是在这个文件里做用户名和密码的比对
系统里有pam这个进程的,ps aux | grep pam

vim /etc/pam.d/westos			##文件名称任意
account		required	pam_userdb.so	db=/etc/vsftpd/westosfile
auth		required	pam_us
#account表示帐号名称,auth表示密码,先后顺序不分erdb.so	db=/etc/vsftpd/westosfile

#required是通过了用户名认证才能进入下一步认证,然后使用pam_userdb.so这个插件来验证
#db=/etc/vsftpd/westosfile文件后不要写.db,系统会自动加

vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos
guest_enable=YES

虚拟帐号身份指定

guest_username=westos

##默认使用虚拟用户时,登录后在pub目录,要想改变,修改此参数,修改后登录到westos家目录

chmod u-w /home/ftpuser

虚拟帐号家目录独立设定

vim /etc/vsftpd/vsftpd.conf
local_root=/ftphome/$USER
user_sub_token=$USER	##$USER是shell里的用法,要让配置文件里支持,必须加这个参数

mkdir /ftphome/user1/user1dir -p
mkdir /ftphome/user2/user2dir -p

虚拟帐号配置独立

    chgrp ftp /ftphome -R
    ll /ftphome/user*
    chmod 775 /ftphome/user1/user1dir
    chmod 775 /ftphome/user2/user2dir
    vim /etc/vsftpd/vsftpd.conf
    user_config_dir=/etc/vsftpd/userconf
    mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/user1

在此文件中设定配置文件中的所有参数,此文件的优先级高
例如:anon_upload_enable=YES
这样user1可以上传,user2不行vim /etc/vsftpd/ftpusers ##永久用户黑名单

  • 虽然服务器FTP和WWW服务器都可以提供文件下载功能,但是若论文件传输的稳定性当属FTP服务器,两者配置方法差不多,但是略有不同,FTP服务器不支持基于名称的虚拟服务器,这需要在配置FTP服务器时,为主机分配另一个IP。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值