FTP服务搭建

部署FTP服务器

作用:FTP(文件传输协议)是internet 上仍常使用的最老的网络协议之一,它为系统提供了通过网络与远程服务器进行传输的简单方法在redhat entreprise linux 6 中。FTP 服务器包括的名称为 vsftp , 它代表 very secure file trandferprotocol damon 服务器名称也叫做 vsftpd
默认配置文件让 anonymous 用户只能下载位于chroot 目录中的内容。 /var/ftp/ 这意味着远程ftp客户能以用户anonymous 或者ftp 身份连接到服务器 (无需密码),并从ftp服务器上的/var/ftp/ 目录中下载文件(其本地 ftp 用户可以读取这些文件)

环境配置

1】切换到配置文件并编辑 FTP服务搭建_第1张图片
FTP服务搭建_第2张图片

 [rhel7]
name=rhel7
baseurl=http://172.25.254.250/rhel7.0/x86_64/dvd    yum 源
gpgcheck=0  ##不检测
enabled=1  ##可以使yum链接生效

FTP服务搭建_第3张图片
vim /etc/sysconfig/selinux
SELINUX=disabled ##改成disabled,FTP服务搭建_第4张图片
FTP服务搭建_第5张图片
FTP服务搭建_第6张图片
安装步骤

 yum search ftp      ##查看是否有ftp软件包
yum install vsftpd.x86_64 -y    ##yum安装ftp
systemctl start vsftpd     ##打开vsftpd
 systemctl enable vsftpd    ##设置开机能自动使用
 firewall-cmd --list-all  ##列出防火墙使用
 firewall-config  ##出现防火墙设置图界面
 systemctl status firewalld   ##防火墙状态必须打开

FTP服务搭建_第7张图片
开启vsftpd服务
设置开机自动启动
FTP服务搭建_第8张图片

FTP服务搭建_第9张图片

FTP服务搭建_第10张图片

FTP服务搭建_第11张图片
安装 lftp
FTP服务搭建_第12张图片
查看安装结果
FTP服务搭建_第13张图片
###4用户登陆
vim /etc/vsftpd/vsftpd.conf

匿名用户

anonymous_enable=YES | NO    #匿名用户是否可以登陆
local_enable=YES | NO        #本地用户是否可以登陆  
write_enable=YES | NO         #ftp   是否对登陆用户可写

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO  ##匿名用户不能登陆

FTP服务搭建_第14张图片

   vim /etc/vsftpd/vsftpd.conf
 local_enable=YES | NO  

FTP服务搭建_第15张图片

write_enable=YES | NO #ftp 是否对登陆用户可写

FTP服务搭建_第16张图片

[root@zhang ~]# vim /etc/vsftpd/vsftpd.conf 
[root@zhang ~]# systemctl restart vsftpd.service 
[root@zhang ~]# lftp 172.25.254.200 -u student
Password: 
lftp [email protected]:~> ls      
lftp [email protected]:~> put /etc/group     上传
991 bytes transferred
lftp [email protected]:~> ls            查看上传成功
-rw-r--r--    1 1000     1000          991 May 02 12:16 group
lftp [email protected]:~> rm group 

FTP服务搭建_第17张图片
FTP服务搭建_第18张图片

[root@zhang ~]# vim /etc/vsftpd/vsftpd.conf      配置文件编写
[root@zhang ~]# systemctl restart vsftpd.service    重启服务
[root@zhang ~]# lftp 172.25.254.200 -u student     用户登陆
Password: 
lftp [email protected]:~> ls
lftp [email protected]:~> put /etc/group    
put: Access failed: 550 Permission denied. (group)        #上传失败
lftp [email protected]:~>

ftp 服务的基本的信息
软件包: vsftp
默认发布目录: /var/ftp/
协议接口 : 21 / tcp
服务配置文件: /etc/vsftpd/vsftpd.cof
报错id解析 :
500 #文件系统权限过大
530 #用户认证失败
550 #服务本身功能未开放
553 #本地文件系统权限过小

匿名用户上传

write_enabl=YES
anon_upload_enable=YES
chgrp ftp /var/ftp/pub  ##更改目录所属组
chmod 775 /var/ftp/pub  ##更改目录权限
put ##上传

anon_root=/目录地址 #匿名用户家目录修改
若是进行该项设置,匿名用户家目录默认在/var/ftp

[root@zhang ~]# ls /mnt
[root@zhang ~]# vim /etc/vsftpd/vsftpd.conf 
[root@zhang ~]# systemctl restart vsftpd.service 
[root@zhang ~]# touch /mnt/file
[root@zhang ~]# ls /mnt/
file
[root@zhang ~]# lftp 172.25.524.200
lftp: 172.25.524.200: Name or service not known
[root@zhang ~]# lftp 172.25.254.200
lftp 172.25.254.200:~> ls                 ## 匿名用登陆后的位置为修改过的/mnt
-rw-r--r--    1 0        0               0 May 02 12:44 file
lftp 172.25.254.200:/> 

匿名用户上传文件的umask值修改:(文件减111)

anon_umask=xxx

匿名用户建立目录:
首先需要本地用户可写查看后ftp本身就属于本地用户
write_enable=YES

anon_mkdir_write_enable=YES

ystemctl restart vsftpd
[root@zhang ~]# lftp 172.25.254.200
lftp 172.25.254.200:~> cd pub/
lftp 172.25.254.200:/pub> mkdir temp
mkdir ok, `temp' created
lftp 172.25.254.200:/pub> ls        #创建目录成功
drwx------    2 14       50              6 May 02 13:15 temp
lftp 172.25.254.200:/pub> exit
[root@zhang ~]# cat /etc/passwd|grep ftp
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

FTP服务搭建_第19张图片

匿名用户下载

anon_world_readable_only=YES|NO ##no表示匿名用户下载

匿名用户删除目录:
anon_other_write_enable=YES|NO # yes

 [root@zhang ~]# lftp 172.25.254.200
lftp 172.25.254.200:~> cd pub/
lftp 172.25.254.200:/pub> ls
drwx------    2 14       50              6 May 02 13:15 temp
lftp 172.25.254.200:/pub> rm -fr temp/     #删除成功
lftp 172.25.254.200:/pub> 

FTP服务搭建_第20张图片
限制lftp最大连接数:

anon_other_write_enable=YES|NO

FTP服务搭建_第21张图片
FTP服务搭建_第22张图片
限制匿名用户传输速率:

anon_max_rate=102400(速率为102kb/s,单位为B)

FTP服务搭建_第23张图片
匿名用户使用的用户身份修改:

anon_other_write_enable=YES|NO

chown_uploads=YES
Chown_username=student
chown_upload_mode=0644     #匿名用户上传权限

本地用户登录模式设定

本地用户设定
local_enable=YES|NO  ##本地用户是否可以登陆
write_enable=YES|NO  ##本地用户写权限限制

本地用户家目录修改
local_root=/var/ftp/user
本地用户上传文件的umask值修改
local_umask=xxx
修改本地用户家目录后文件的上传:
chown -Rf user /var/ftp/user
chgrp ftp /car/ftp/user
chmod 775 /var/ftp/user

限制本地用户浏览目录

chroot_local_user=YES ##所有用户被锁定到自己的家目录中
chmod u-w /home/*
但是如果需要上传文件,则可能会出现553报错,建议减去用户权限后做完实验即可恢复。)

本地用户访问根目录黑白单建立:

chroot_local_user=NO ##此时所有用户都可以访问/目录,名单内的只能访问自己的家目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_list_enable=YES #开启限制访问/ 目录用户列表
chroot_list_file=/etc/vsftpd/chroot_list #指定用户列表
在/etc/vsftpd/chroot_list名单的用户可以访问/ 目录

从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列两项中的一项:
FTP服务搭建_第24张图片
FTP服务搭建_第25张图片
FTP服务搭建_第26张图片

[root@zhang ~]# lftp 172.25.254.200 -u westos       你名用户不列表内无法到 /  目录
Password: 
lftp [email protected]:~> ls       
lftp [email protected]:/> cd /
lftp [email protected]:/>

本地访问根目录黑名单建立:

chroot_local_user=no ##此时所有用户都只能访问自己的家目录,名单内的可以访问/目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

FTP服务搭建_第27张图片
FTP服务搭建_第28张图片

限制本地用户登陆黑名单:

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

userlist_enable=YES #开启用户登陆名单功能
userlist_deny=NO #取消名单默认为黑名单
/etc/vsftpd/user_list ##设定可以登陆ftp的用户
只有在该名单中的用户才可以登陆。

虚拟用户登录模式设定

创建虚拟帐号身份
vim /etc/vsftpd/westosfile ##文件名称任意
编写内容如下:(注意不能有空格)
FTP服务搭建_第29张图片
db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db ##生成
将新建的用户账户密码文件加密

在这里插入图片描述
vim /etc/pam.d/westos ##文件名称任意 (#编写验证核对的文件 ,验证账户密码若验证不通过拒绝。
文件内容:)
编写如下:
account required pam_userdb.so db=/etc/vsftpd/westosfile
auth required pam_userdb.so db=/etc/vsftpd/westosfile

FTP服务搭建_第30张图片
vim /etc/vsftpd/vsftpd.conf #修改配置文件
pam_service_name=totokey ##指定被验证的文件
#当虚拟用户的功能开启时,本地用户无法进行登陆
guest_enable=YES ##设定虚拟用户登陆
guest_username=ftp #给定虚拟用户的登陆身份,如果不指定,默认为ftp,也可以指定为其他本地用户,但是其他本地用户虽然可
FTP服务搭建_第31张图片
FTP服务搭建_第32张图片

5、虚拟用户家目录独立设定

1】先创建目录作为虚拟用户的家目录,并在家家目录中创建特定文件以便于进行区分。
FTP服务搭建_第33张图片
vim /etc/vsftpd/vsftpd.conf # 对配置文件进行修改
local_root=/var/westos/$USER #设定虚拟用户家目录与用户名称一致

 user_sub_token=$USER   # 但是由于$USER是脚本用法,所以该指令用来告诉ftp,$USER的用法与脚本中的$USER一样
systemctl restart vsftpd.service #重启服务即可

FTP服务搭建_第34张图片
3个虚拟用户分别进入不同的家目录
FTP服务搭建_第35张图片
6、设置虚拟用户的独立配置文件

vim /etc/vsftpd/vsftpd.conf #修改配置文件
user_config_dir=/etc/vsftpd/userconf #在其中写入,创建一个虚拟用户的配置目录,在该目录中创建出与用户名称一致的文件,该文件就是用户的专属的配置文件。

[root@zhang westoshome]# vim /etc/vsftpd/vsftpd.conf      #创建用户配置目录
[root@zhang westoshome]# systemctl restart vsftpd
[root@zhang westoshome]# mkdir /etc/vsftpd/westosconf
[root@zhang westoshome]# touch westos1         #在目录中创建用户westos1 的配置文件
[root@zhang westoshome]# 

FTP服务搭建_第36张图片

应注意要把主配置文件关于匿名用户的设置全部注释,否则默认读取原来的配置文件。在用户的独立配置文件toto1中添加关于匿名用户配置语句,重启服务,以toto1的身份登陆可以使用独立配置文件中设置的权限,但是其他暂未设置独立权限的用户无法使用,说明独立配置文件设置成功。

你可能感兴趣的:(FTP服务搭建)