ftp服务

1.ftp工做原理linux

       FTP是一个客户机/服务系统。用户经过一个支持FTP协议的客户机程序,链接到在远程主机上的FTP服务器程序。用户经过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机vim

2.安装ftp服务bash

yum install vsftpd  -y              ##安装服务服务器

wKiom1mEg7iQgrolAABOV3tqpms760.png

systemctl start vsftpd              ##启动服务ide

systemctl enable vsftpd             ##开机自动启动ui

setenforce 0                        ##关闭selinux或者设置selinux否则会对试验形成影响加密

lftp ip                             ##能登录而且显示,表示安装成功spa

vsftpd文件信息3d

/var/ftp                            ##默认发布目录code

/etc/vsftpd                         ##配置目录

配置火墙策略

farewall-config                      ##使用图形界面配置

 @@配置的步骤为:先选中permannent,勾上ftp,点击options,选择reload完成配置

 

wKioL1mGl4uApfGcAAAr0YKCWRE888.png

wKioL1mFsj-RkGYDAADsvCLTRyY878.png

查看火墙是否配置成功

wKioL1mGmN6AbCXlAABT-Qljy6s611.png

改selinux的状态为disabled,由于selinux是内核级的增强型防火墙,若是他处于强制状态,系统不少功能将不被容许。

wKiom1mGiF2TEN55AAAe9jhtV_s792.png

@@更改完之后必定要记得重启,由于它是内核级的,必须重启才能从新加载

 vsftpd服务的配置参数

1)匿名用户设定

anonymous_enable=YES|NO                ##匿名用户登录限制,设置为NO时匿名不能登陆

 wKioL1mGm0bj8ILkAAAnDRiDwlQ698.png

2)匿名用户上传

vim /etc/vsftpd/vsftpd.conf

write_enable=YES                       ##设为YES匿名用户能够上传wKioL1mGm4iB5L0qAAA6WXFcU80175.pnganon_upload_enable=YES

chgrp ftp /var/ftp/pub

chmod 775 /var/ftp/pub                 ##修改权限

 

3)匿名用户家目录修改

anon_root=/direcotry                   ##修改之后,登录进入之后都在修改的家目录下

 wKioL1mGnBiDRMDjAAALyfUgdGE634.png

wKioL1mGnQzBA4ugAABAH45O5Rw513.png

在westos下创建三个目录

wKiom1mGnbWQgNVTAAA1S5UhSsw977.png

lftp链接之后,使用ls命令会看到刚刚建立的三个目录

 

4)匿名用户上传文件默认权限修改

anon_umask=xxx

 wKioL1mGnxvQAeaeAAAMJtj9LHg747.png

@@设置完之后,lftp 172.25.254.150链接上主机,进入pub/目录下,使用put命令上传/etc/passwd,就会显示出上传结果

5)匿名用户创建目录

anon_mkdir_write_enable=YES|NO          ##设置为YES表示能够创建

wKioL1mGoFKDWBsTAAAVa-we6W8507.png

@@lftp 172.25.254.150链接上主机,进入pub/目录下,mkdir westos,结果显示mkdir ok

 

6)匿名用户下载

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

 wKiom1mFj7aiuh5tAAAP-xFLpT8141.png

@@lftp 172.25.254.150链接上主机,进入pub/目录下,使用get命令,get passwd会立马显示下载状况

7)匿名用户删除

anon_other_write_enable=YES|NO            ##设置为YES表示能够删除

wKiom1mGogSAb4yaAAAXvQglQz0481.png

@@lftp 172.25.254.150链接上主机,进入pub/目录下,rm passwd,会出现rm ok,passwd就被删除了

 

8)匿名用户使用的用户身份修改

chown_uploads=YES

chown_username=student

wKioL1mGox2Q3dFhAAAnvyt61tM558.png

 

 @@lftp 172.25.254.150链接上主机,进入pub/目录下,put /etc/passwd,而后执行ll /var/ftp/pub/,会看到passwd用户变成了student

9)最大上传速率

anon_max_rate=102400                     ##单位为kb,102400表示100M

 

10)最大连接数

max_clients=2                             ##最多容许两台主机接入

 

11)本地用户设定

local_enable=YES|NO                        ##本地用户登录限制

write_enable=YES|NO                        ##本地用户写权限限制

 wKiom1mGpF6gWJb2AAA0Tx4w0gw245.png

@@本地用户lftp 172.25.254.150链接上主机,使用ls命令,会出现x秒后从新链接,也就是本地用户也没法登陆主机了

 

12)本地用户上传文件权限

local_umask=xxx

@@系统默认umask=022,修改umask=002,本地用户的权限将变为664

 

13)限制本地用户浏览/目录

全部用户被锁定到本身的家目录中

chroot_local_user=YES                       ##设置为YES将被锁在家目录下

chmod u-w /home/*

 @@lftp 172.25.254.150链接上主机,执行ls,看到的是本身的家目录,cd /,再次执行ls,依然本身能看到本身的家目录

 

14)用户黑名单创建

chroot_local_user=NO                        ##没法浏览

chroot_list_enable=YES                      ##启用名单

chroot_list_file=/etc/vsftpd/chroot_list    ##写入名单的用户没法浏览

 

15)用户白名单创建

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list    ##用户白名单创建后,只有在名单中出现的用户才能登陆ftp

wKioL1mGqGeB2wpHAAALUl9LPiQ052.png

##注意:白名单的权限更大,会覆盖黑名单,一旦设置,只有出如今白名单的用户才可以登陆ftp,即便一个用户它不只在白名单,也在黑名单,他依然能登陆

 

 

限制本地用户登录

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

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

添加westos用户到/etc/vsftpd/ftpusers 

wKioL1mGqbTwOjCCAAAa4OP2Aic476.png

@@lftp 172.25.254.150 -u westos,会出现login failed,登陆失败

 

用户白名单设定

userlist_deny=NO

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

添加westos用户到白名单中

 wKiom1mGqpyxORB1AAAzTqwuTXQ374.png

@@westos用户同时在两个名单中,可是westos用户能够登陆,这就说明了白名单权限大于黑名单,不在白名单的用户都登录不了

ftp虚拟用户的设定

(建立虚拟账号身份)

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

ftpuser1                                      ##用户名

123                                           ##密码

ftpuser2

123

ftpuser3

123

 

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

                                               ##hash加密

wKiom1mGq2zStHnwAAAuqGhV2qw779.png

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

wKioL1mGq9TSPBDDAAA9qEBJ7xw425.png

@@第一行是检测是否有这个用户,第二行检测密码是否匹配

accountrequiredpam_userdb.sodb=/etc/vsftpd/loginusers

authrequiredpam_userdb.sodb=/etc/vsftpd/loginusers

 

vim /etc/vsftpd/vsftpd.conf

pam_service_name=ckvsftpd

guest_enable=YES

 

虚拟账号身份指定)

guest_username=ftpuser

chmod u-w /home/ftpuser

 wKiom1mGrw7TQtycAAAuSCTp754546.png

##必须指定为已经存在能够登陆的用户

虚拟账号家目录独立设定

vim /etc/vsftpd/vsftpd.conf

local_root=/ftpuserhome/$USER

user_sub_token=$USER

 

mkdir /ftpuserhome

chgrp ftpuser /ftpuserhome

chmod g+s /ftpuserhome

mkdir /ftpuserhome/ftpuser{1..3}

wKioL1mGrOHAHA3bAADd4xvkjRU832.png

 

 

虚拟账号配置独立)

vim /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/userconf

mkdir -p /etc/vsftpd/userconf

vim /etc/vsftpd/userconf/ftpuser1

wKiom1mGrWOCafeCAAAtA5ebXQQ861.png

@@这里设置的用户是ftpuser{1..3},所以可使用¥USER,我第一次实验时设置的为nice,good,clever三个用户,那么他们独立配置就和这个不一样了,只需将$USER改成你的用户就能够了,格式为local_root=/vuserdir/nice\user_sub_token=nice,记住,三个都要写,不然他们进去都会在第三个里面

本站公众号
   欢迎关注本站公众号,获取更多信息