ftp:文件传输协议服务

一、ftp的定义
ftp:// ##文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。

二、部署ftp服务
ftp(文件传输协议)是internet上常用的最老的网络协议之一,它的系统提供了通过网络协议之一,它的系统提供了通过网络与远程服务器进行传输的简单方法。ftp服务器包的名称为vsftpd,它代表Very Secure File Transfer Protocol Damon,服务器名称也叫做vsftpd。
默认配置文件让anonymous用户(匿名用户)只能下载位于chroot目录中的内容。
/var/ftp/这意味着远程ftp客户端能以anonymous用户或ftp身份链接到服务器(无需密码),并从ftp服务器上的//var/ftp/目录下载文件(其本地ftp用户可以读取这些文件)

服务端安装vsftpd
客户端安装lftp

1)内核配置
ftp:文件传输协议服务_第1张图片

vim /etc/sysconfig/selinux  ##disabled
getenforce ##查看状态,需要重启
reboot

2)安装ftp服务并开启服务,安装lftp
ftp:文件传输协议服务_第2张图片
在这里插入图片描述

yum installvsftpd -y ##需要本地yum源
systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd
yum install lftp -y

3)设置火墙永久允许ftp服务
命令

firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload

图形

firewall-config

4)ftp服务的基本信息
软件安装包:vsftpd
默认发布目录:/var/ftp
协议接口;21/tcp
服务配置文件:
/etc/vsftpd/vsftpd.conf
报错id解析:

500 文件系统权限过大
530 用户认证失败
550 服务本身功能未开放
553 本地文件系统权限过小

三、vim /etc/vsftpd/vsftpd.conf

vim /etc/vsftpd/vsftpd.conf

匿名用户:
anonymous_enable=YES/NO ##匿名是否可以登陆
write_enable=YES/NO ##ftp是否对用户可写
ftp:文件传输协议服务_第3张图片
1)匿名用户上传:
没开启权限之前:
在这里插入图片描述

vim /etc/vsftpd/vsftpd.conf
systemctl restar vsftpd ##重启服务
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub

write_enable=YES
anon_upload_enable=YES
ftp:文件传输协议服务_第4张图片
匿名用户家目录修改:
anon_root=/westos

匿名用户上传文件默认权限修改:
anon_umask=022

匿名用户建立文件:
anon_mkdir_write_enable=YES|NO

匿名用户下载:
\anon_world_readable_only=YESdd|NO ##no表示匿名用户可以下载

匿名用户删除:
anon_other_write_enable=YES|NO

匿名用户使用的用户身份修改:
chown_uploads=YES
chown_username=student
chown_upload_mode=0644

最大上传速率:
anon_max_rate=102400

能够最大链接的客户端:
max_clients=1

2)本地用户设定
local_enable=YES/NO ##本地用户登陆限制
write_enable=YES/NO ##本地用户写权限限制

本地用户家目录修改:
local_root=/directory

本地用户上传文件权限:
local_umask=077

限制本地用户浏览/目录:

所有用户被锁定到自己的家目录中
chroot_local_user=YES

限制之前:可以查看根目录

chmod ugo-w /home/*

用户黑名单建立:
chroot_local_user=NO ##黑名单,不限制本地用户
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list ##限制用户名单
ftp:文件传输协议服务_第5张图片
用户白名单建立:
chroot_local_user=YES ##白名单
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
在这里插入图片描述
限制本地用户登陆:

vim /etc/vsftpd/ftpusers
vim /etc/vsftpd/user_list  ##用户临时黑名单

用户白名单设定:

vim /etc/vsftpd/vsftpd.conf

userlist_deny=NO

vim /etc/vsftpd/user_list ##参数设定,从文件变成用户白名单,只在名单中出现的用户可以登陆ftp

四、ftp虚拟用户的设定:

vim /vim /etc/vsftpd/userfile  ##文件名称任意

ftp:文件传输协议服务_第6张图片
2)文件加密
以userfile内容建立数据库文件 并hash加密

db_load -T -t hash -f userfile.db  ##加密

3 )

vim /etc/pam.d/ftpuser  ##文件名称任意

auth(认证)required
pam_userdb.so
db=/etc/vsftpd/userfile(认证程序为pam)
account(账号)required
pam_userdb.so
db=/etc/vsftpd/userfile

vim /etc/vsftpd/vsftpd.conf

写入:
pam_service_name=ftpuser ##默认系统用户不能登陆
guest_enable=Yes ##开启虚拟用户的功能
guest_username=ftp ##虚拟用户的身份指定

重启服务:systemctl restart vsftpd

5)虚拟账号家目录独立设定:用户只能查看自己的目录

mkdir -p /var/ftpuserdir/westos{1..3}
vim /etc/vsftpd/vsftpd.conf

写入:
local_root=/var/ftpuserdir/$USER
user_sub_token= $USER
重启服务:systemctl restart vsftpd

mkdir /var/ftpuserdir/westos{1..3}/pub
mkdir /var/ftpuserdir/westos1/file1
mkdir /var/ftpuserdir/westos2/file2
mkdir /var/ftpuserdir/westos3/file3

6)测试:

lftp 172.25.254.218 -u westos1 ##能看到pub和file1
ftp 172.25.254.218 -u westos2 ##能看到pub和file2
ftp 172.25.254.218 -u westos3 ##能看到pub和file3

五、虚拟账号配置独立
1)

chmod 775 /var/ftpuserdir/westos*/pub
chgrp ftp /var/ftpuserdir/westos*/pub
mkdir -p /etc/vsftpd/user_config
vim /etc/vsftpd/user_config/westos1

写入:anon_upload_enable=YES
此文件中设定配置文件中的所有参数,此文件的优先级高

vim /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/user_config

4)测试:lftp 172.25.254.218
只有westos1可以上传文件

你可能感兴趣的:(ftp:文件传输协议服务)