ftp(文件传输协议)服务

1.ftp的定义
ftp://  ##文件传输协议

2.ftp协议提供的软件
在rhel7中:vsftpd

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

1)实验前先关闭内核级的加强形火墙

vim /etc/sysconfig/selinux  ##disabled
getenforce ##查看状态并未改变
reboot

ftp(文件传输协议)服务_第1张图片

2)安装ftp服务并开启服务,安装lftp

yum install vsftpd -y ##需要本地yum源,如没有详情见《linux中yum源搭建及软件管理》
systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd

ftp(文件传输协议)服务_第2张图片

yum install lftp -y

ftp(文件传输协议)服务_第3张图片

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

方法一:命令设置

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

方法二:图形设置

firewall-config

ftp(文件传输协议)服务_第4张图片

ftp(文件传输协议)服务_第5张图片

ftp(文件传输协议)服务_第6张图片

4)测试服务:在真机里打开一个shell

[kiosk@foundation60 ~]$ lftp 172.25.254.218
lftp 172.25.254.218:~> ls 


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

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

5.

 vim /etc/vsftpd/vsftpd.conf 

ftp(文件传输协议)服务_第7张图片

匿名用户:
anonymous_enable=YES/NO  ##匿名用户是否可以登录

本地用户:
local_enable=YES/NO  ##本地用户是否可以登录
write_enable=YES/NO  ##ftp是否对登录用户可写

ftp(文件传输协议)服务_第8张图片

1)匿名用户上传:

没开启权限之前:

ftp(文件传输协议)服务_第9张图片

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(文件传输协议)服务_第10张图片
ftp(文件传输协议)服务_第11张图片
匿名用户加目录修改:
anon_root=/westos

ftp(文件传输协议)服务_第12张图片

ftp(文件传输协议)服务_第13张图片

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

ftp(文件传输协议)服务_第14张图片
匿名用户建立文件:
anon_mkdir_write_enable=YES|NO

ftp(文件传输协议)服务_第15张图片

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

ftp(文件传输协议)服务_第16张图片

ftp(文件传输协议)服务_第17张图片

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

ftp(文件传输协议)服务_第18张图片

ftp(文件传输协议)服务_第19张图片

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

ftp(文件传输协议)服务_第20张图片ftp(文件传输协议)服务_第21张图片

ftp(文件传输协议)服务_第22张图片

最大上传速率:

anon_max_rate=102400

ftp(文件传输协议)服务_第23张图片

ftp(文件传输协议)服务_第24张图片

能够最大连接的客户端:

max_clients=1

ftp(文件传输协议)服务_第25张图片

 

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

ftp(文件传输协议)服务_第26张图片

 

ftp(文件传输协议)服务_第27张图片

 

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

ftp(文件传输协议)服务_第28张图片

 

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

ftp(文件传输协议)服务_第29张图片

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

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

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

ftp(文件传输协议)服务_第30张图片

ftp(文件传输协议)服务_第31张图片

 

 chmod ugo-w /home/*

ftp(文件传输协议)服务_第32张图片

用户黑名单建立:
 chroot_local_user=NO   ##黑名单
 chroot_list_enable=YES
 chroot_list_file=/etc/vsftpd/chroot_list

ftp(文件传输协议)服务_第33张图片ftp(文件传输协议)服务_第34张图片

 

 

ftp(文件传输协议)服务_第35张图片

用户白名单建立:
 chroot_local_user=YES  ##白名单
 chroot_list_enable=YES
 chroot_list_file=/etc/vsftpd/chroot_list

ftp(文件传输协议)服务_第36张图片

ftp(文件传输协议)服务_第37张图片

ftp(文件传输协议)服务_第38张图片

限制本地用户登录:

vim /etc/vsftpd/ftpusers  ##用户黑名单

ftp(文件传输协议)服务_第39张图片

ftp(文件传输协议)服务_第40张图片

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

ftp(文件传输协议)服务_第41张图片

ftp(文件传输协议)服务_第42张图片

用户白名单设定:

vim /etc/vsftpd/vsftpd.conf  

userlist_deny=NO

ftp(文件传输协议)服务_第43张图片

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

ftp(文件传输协议)服务_第44张图片

ftp(文件传输协议)服务_第45张图片

6.ftp虚拟用户的设定:
1)创建虚拟帐号身份:

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

ftp(文件传输协议)服务_第46张图片

2)文件加密

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

ftp(文件传输协议)服务_第47张图片

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(用程序来看一个这个文件里存在不存在)

4)

vim /etc/vsftpd/vsftpd.conf

写入:

pam_service_name=ftpuser   ##默认系统用户不能登录
guest_enable=YES     ##开启虚拟用户的功能

guest_username=ftp   ##虚拟用户的身份指定

重启服务:systemctl restart vsftpd

ftp(文件传输协议)服务_第48张图片
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

ftp(文件传输协议)服务_第49张图片

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

6)测试:

ftp(文件传输协议)服务_第50张图片

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

ftp(文件传输协议)服务_第51张图片

7.虚拟帐号配置独立

1)

chmod 775 /var/ftpuserdir/westos*/pub
chgrp ftp /var/ftpuserdir/westos*/pub

 ftp(文件传输协议)服务_第52张图片

2)

mkdir -p /etc/vsftpd/user_config
vim /etc/vsftpd/user_config/westos1 

写入:anon_upload_enable=YES

此文件中设定配置文件中的所有参数,此文件的优先级高

3)

vim /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/user_config

ftp(文件传输协议)服务_第53张图片

4)测试:lftp 172.25.254.218

只有westos1可以上传文件

ftp(文件传输协议)服务_第54张图片

ftp(文件传输协议)服务_第55张图片

 

你可能感兴趣的:(Linux运维)