第九单元 FTP服务的配置及应用

vsftpd服务

一、FTP介绍

vsftpd服务提供了三种ftp登录形式

1.anonymous:匿名用户登录。如果用户在FTP服务器上没有帐号,那么可以使用匿名用户登录,其登录的目录默认为匿名FTP服务器的根目录/var/ftp。

2.local/real:本地帐号,即以真实的用户名和密码进行登录,登录的目录为用户自己的目录,该目录在系统建立帐号时系统自动创建,如在RedHat linux 7.2中建立一个westos用户,那么它的默认目录就是/home/westos,真实用户可以访问整个目录结构。

3.guest:虚拟用户,该帐号只能用于文件传输服务。

二、安装与启动vsftpd

(1)配置selinux

  vim/etc/sysconfig/selinux

第7行修改为SELINUX=disabled

:wq

reboot  #重启,使修改内容生效

  重启后使用getenforce 进行查看

   [root@localhost~]# getenforce

   Disabled

第九单元 FTP服务的配置及应用_第1张图片

(2)配置网络

[root@localhost ~]# vim/etc/sysconfig/network-scripts/eth0

DEVICE=eth0

BOOTPROTO=no

ONBOOT=yes

IPADDR=172.25.254.109

PREFIX=24

TYPE=Ethernet

USERCTL=yes

PEERDNS=yes

IPV6INIT=no

PERSISTENT_DHCLIENT=1

[root@localhost ~]# systemctl restartnetwork  #重启网络

(3)配置yum源

[root@localhost ~]# vim/etc/yum.repos.d/rhel_dvd.repo

第九单元 FTP服务的配置及应用_第2张图片

[root@localhost ~]# yum clean all  #清空yum源缓存,使可以识别新的yum源

Loaded plugins: langpacks

Cleaning repos: rhel_dvd

Cleaning up everything

(4)安装vsftpd服务器

1.yum search vsftp

2.yum install vsftpd .x86_64 -y

2.systemctl start vsftpd

(5)设置火墙

1.systemctl start firewalld  #开启火墙

  systemctlenable firewalld

[root@localhost ~]# firewall-cmd --list-all  #显示火墙允许的服务

public (default, active)

 interfaces: eth0

 sources:

 services: dhcpv6-client ssh  #火墙允许访问的服务

 ports:

 masquerade: no

 forward-ports:

 icmp-blocks:

 rich rules:

[root@localhost ~]# firewall-cmd--permanent --add-service=ftp  #允许访问ftp服务

success

[root@localhost ~]# firewall-cmd --reload  #重新加载火墙服务

success

三、vsftpd.conf文件详述

vsftpd服务的主配置文件/etc/vsftpd/vsftpd.conf

 14anonymous_enable=YES #是否允许匿名用户登录FTP服务器,默认是允许

 16local_enable=YES #是否允许本地用户登录FTP服务器,默认是允许

 19write_enable=YES #是否允许用户在FTP服务器文件中执行写的权限,默认是允许

 23local_umask=022 #设置本地用户的文件生成的掩码是022,默认是077

 29#anon_upload_enable=YES #匿名用户是否允许上传文件

 33#anon_mkdir_write_enable=YES #是否允许账户在FTP服务器中创建目录

 37dirmessage_enable=YES #激活目录信息,当远程用户更改目录时,将出现提示信息

40 xferlog_enable=YES #用户上传和下载日志功能

43 connect_from_port_20=YES #启用FTP数据端口的连接请求

114 listen=NO

123 listen_ipv6=YES

124

125 pam_service_name=vsftpd #设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d下

126 userlist_enable=YES  #用户列表中的用户是否允许登录FTP服务器,默认是不允许

127 tcp_wrappers=YES

四、登录FTP服务器

(一)匿名帐号FTP服务器配置

1.vim /etc/vsftpd/vsftpd.conf

 anonymoous_enable=YES #设置允许匿名用户登录

 local_enable=YES #允许本地用户登录

 write_enable=YES #允许本地用户有写全权限

第九单元 FTP服务的配置及应用_第3张图片

2.匿名用户家目录默认是:/var/ftp

第九单元 FTP服务的配置及应用_第4张图片

3.anon_root=/direcotry #匿名用户家目录修改

第九单元 FTP服务的配置及应用_第5张图片

4. [root@localhost~]# vim /etc/vsftpd/vsftpd.conf

anon_upload_enable=YES  #匿名帐号具有上传功能

第九单元 FTP服务的配置及应用_第6张图片

  [root@localhost~]# chgrp ftp /var/ftp/pub

  [root@localhost~]# chmod 775 /var/ftp/pub/  #为上传目录指定写权限

  [root@localhost~]# systemctl restart vsftpd.service

第九单元 FTP服务的配置及应用_第7张图片

5. 匿名用户的文件下载权限

修改主配置文件

anon_world_readable_only=YES|NO ##设定参数值为NO表示匿名用户可以下载

第九单元 FTP服务的配置及应用_第8张图片

6.anon_mkdir_write_enable=YES  #匿名用户可以创建目录

第九单元 FTP服务的配置及应用_第9张图片

7.anon_other_write_enable=YES匿名用户删除目录的功能

第九单元 FTP服务的配置及应用_第10张图片

8.anon_max_rate=xxx#用户上传最大速率设定

第九单元 FTP服务的配置及应用_第11张图片

9.max_per_ip=xxx  #设置用户同一时段并发下载的线程数,即同时可以下载的文件数

10.anon_umask=xxx   #匿名用户上传文件默认权限修改

   chown_upload=YES 

   chown_username=XXX   #匿名用户登录后所使用的身份

第九单元 FTP服务的配置及应用_第12张图片

第九单元 FTP服务的配置及应用_第13张图片

(二)真实帐号登录配置

  local_enable=YES  #允许本地用户登录

 write_enable=YES  #本地用户有写权限

第九单元 FTP服务的配置及应用_第14张图片

(1)本地用户家目录修改

本地用户登录FTP服务器后所在家目录默认为/home/用户名

第九单元 FTP服务的配置及应用_第15张图片

修改主配置文件:local_root=/directory  如下图中,将家目录改为/mnt

第九单元 FTP服务的配置及应用_第16张图片

第九单元 FTP服务的配置及应用_第17张图片

(2)本地用户上传文件权限,默认是644

 第九单元 FTP服务的配置及应用_第18张图片

(3)(临时)限制用户列表中的用户登录

A.用户列表内的用户不能访问,列表外的可以访问

  修改配置文件使下面语句生效:

 userlist_enable=YES

  同时将不允许登录的用户帐号加入到vsftpd.user_list文件中

第九单元 FTP服务的配置及应用_第19张图片

第九单元 FTP服务的配置及应用_第20张图片


第九单元 FTP服务的配置及应用_第21张图片

B.用户列表内的可以访问,不在列表中的不允许访问

 修改配置文件,使下面语句生效

  userlist_enable=YES

 userlist_deny=NO

 userlist_file=/etc/vsftpd/user_list #原本的黑名单将变成白名单

重启vsftpd服务

第九单元 FTP服务的配置及应用_第22张图片

第九单元 FTP服务的配置及应用_第23张图片

(4)限制用户访问特定的目录

默认情况下,本地用户登录到FTP服务器后可以访问服务器中自己目录外的文件。为增加安全性,需对此进行限制,方法是在主配置文件/etc/vsftpd/vsftpd.conf中添加如下语句:

 chroot_local_user=YES  #启用家目录限制,其默认情况下是NO

 chmod u-w /home/*  #避免权限过大

如下图是未限制前,westos用户可以切换至其他目录

第九单元 FTP服务的配置及应用_第24张图片

修改主配置文件后:

第九单元 FTP服务的配置及应用_第25张图片

第九单元 FTP服务的配置及应用_第26张图片

A.用户黑名单建立

chroot_local_user=NO  #名单中的用户会被限制在家目录中,不能切换,其它用户均可切换。

chroot_list_enable=YES 

chroot_list_file=/etc/vsftpd/chroot_list

vim /etc/vsftpd/chroot_list  #写入该文件中的用户将被限制,如下:student将被限制

第九单元 FTP服务的配置及应用_第27张图片

B.用户白名单建立,名单中的用户可以切换,其余用户均不可

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

vim /etc/vsftpd/chroot_list 

如下:student 在白名单中则可以切换目录,其余用户如westos将不能完成切换

第九单元 FTP服务的配置及应用_第28张图片

(5)限制本地用户登陆

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

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

第九单元 FTP服务的配置及应用_第29张图片

B.临时用户白名单设定

userlist_deny=NO

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

重启vsftpd服务

注:当用户同时出现在ftpusers和user_list中时,ftpusers优先起作用,即为用户黑名单。

第九单元 FTP服务的配置及应用_第30张图片

第九单元 FTP服务的配置及应用_第31张图片

第九单元 FTP服务的配置及应用_第32张图片

(三)ftp虚拟用户

(1)虚拟用户创建以登陆

1.vim /etc/vsftpd/文件名

如: vim/etc/vsftpd/userfile

  用户1

  密码

用户2

  密码

  ...

第九单元 FTP服务的配置及应用_第33张图片

2.db_load -T -t hash -f userfileuserfile.db   ##生成一个加密文件,可以cat查看

  -T:转换

  -thash:以哈希方式进行转换

3.虚拟用户的配置文件:/etc/pam.d/文件名,如:

  vim/etc/pam.d/ftpuser

account    required    pam_userdb.so         db=/etc/vsftpd/userfile 

##表示:用户必须通过pam认证才能使用

##pam_userdb.so是一种插件,专门认证/ecc/vsftpd/userfile中是否存在该虚拟用户名

auth   required    pam_userdb.so   db=/etc/vsftpd/userfile

##密码必须通过pam认证才可以使用

##pam_userdb.so认证/etc/vsftpd/userfile中是否存在此密码

4.修改ftp主配置文件

  vim/etc/vsftpd/vsftpd.conf

输入:  pam_service_name=ftpuser   ##表示本地用户不能登陆,ftpuser中的虚拟用户名可以登陆

     guest_enable=YES   ##开启虚拟用户登陆功能

     guest_username=名称  ##设置虚拟用户登陆后显示的登陆身份

如:   guest_username=linux  #虚拟用户身份为linux

第九单元 FTP服务的配置及应用_第34张图片

 

5.重启ftp服务

 systemctl restart vsftpd.service

(2)虚拟用户家目录分配

cd /etc/vsftpd

1.为用户建立家目录

 mkdir /ftpdir/user{1..3} -p

 mkdir /ftpdir/user{1..3}/upload

 touch /ftpdir/user1/userfile1 #user1可以登陆对应的家目录userfile1

 touch /ftpdir/user2/userfile2

 touch /ftpdir/user3/userfile3

2.虚拟帐号家目录独立设定

vim /etc/vsftpd/vsftpd.conf

local_root=/ftpuserhome/$USER

user_sub_token=$USER

第九单元 FTP服务的配置及应用_第35张图片

(3)虚拟账户独立权限的配置

 Vsftpd可以为每个虚拟用户设置单独的配置文件,其文件名和用户名相同,这些配置文件需要统一放在一个目录下,目录位置由user_config_dir选项指定,这样,虚拟用户就可以在自己的配置文件中设置不同的内容,实现不同用户拥有不同权限的功能。

1.首先,在主配置文件vsftpd.conf中添加user_config_dir选项,指定配置文件的存放位置。

 第九单元 FTP服务的配置及应用_第36张图片

2.mkdir/etc/vsftpd/userconfig -p

3.在子配置文件中开放自身的某些权限

 vim/etc/vsftpd/userconfig/user*  #编写某虚拟用户的主配置文件

如:vim/etc/vsftpd/userconfig/user1  #为user1分配权限

 第九单元 FTP服务的配置及应用_第37张图片

4.重启服务


你可能感兴趣的:(Linux学习<二>,Linux,学习,虚拟机,终端,ftp)