1.ftp工作原理
FTP是一个客户机/服务系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。
2.安装ftp服务
yum install vsftpd -y ##安装服务
systemctl start vsftpd ##启动服务
systemctl enable vsftpd ##开机自动启动
setenforce 0 ##关闭selinux或者设置selinux不然会对试验造成影响
lftp ip ##能登陆并且显示,表示安装成功
vsftpd文件信息
/var/ftp ##默认发布目录
/etc/vsftpd ##配置目录
配置火墙策略
farewall-config ##使用图形界面配置
@@配置的步骤为:先选中permannent,勾上ftp,点击options,选择reload完成配置
查看火墙是否配置成功
改selinux的状态为disabled,因为selinux是内核级的加强型防火墙,如果他处于强制状态,系统很多功能将不被允许。
@@更改完以后一定要记得重启,因为它是内核级的,必须重启才能重新加载
1)匿名用户设定
anonymous_enable=YES|NO ##匿名用户登陆限制,设置为NO时匿名不能登录
2)匿名用户上传
vim /etc/vsftpd/vsftpd.conf
write_enable=YES ##设为YES匿名用户可以上传anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub ##修改权限
3)匿名用户家目录修改
anon_root=/direcotry ##修改以后,登陆进入以后都在修改的家目录下
在westos下建立三个目录
lftp连接以后,使用ls命令会看到刚刚创建的三个目录
4)匿名用户上传文件默认权限修改
anon_umask=xxx
@@设置完以后,lftp 172.25.254.150连接上主机,进入pub/目录下,使用put命令上传/etc/passwd,就会显示出上传结果
5)匿名用户建立目录
anon_mkdir_write_enable=YES|NO ##设置为YES表示可以建立
@@lftp 172.25.254.150连接上主机,进入pub/目录下,mkdir westos,结果显示mkdir ok
6)匿名用户下载
anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载
@@lftp 172.25.254.150连接上主机,进入pub/目录下,使用get命令,get passwd会立马显示下载情况
7)匿名用户删除
anon_other_write_enable=YES|NO ##设置为YES表示可以删除
@@lftp 172.25.254.150连接上主机,进入pub/目录下,rm passwd,会出现rm ok,passwd就被删除了
8)匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student
@@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 ##本地用户写权限限制
@@本地用户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
##注意:白名单的权限更大,会覆盖黑名单,一旦设置,只有出现在白名单的用户才能够登录ftp,即使一个用户它不仅在白名单,也在黑名单,他依然能登录
限制本地用户登陆
vim /etc/vsftpd/ftpusers ##用户黑名单
vim /etc/vsftpd/user_list ##用户临时黑名单
添加westos用户到/etc/vsftpd/ftpusers
@@lftp 172.25.254.150 -u westos,会出现login failed,登录失败
用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list ##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp
添加westos用户到白名单中
@@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加密
vim /etc/pam.d/xxx ##文件名称任意
@@第一行是检测是否有这个用户,第二行检测密码是否匹配
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
##必须指定为已经存在可以登录的用户
虚拟帐号家目录独立设定
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}
虚拟帐号配置独立)
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/ftpuser1
@@这里设置的用户是ftpuser{1..3},因此可以使用¥USER,我第一次实验时设置的为nice,good,clever三个用户,那么他们独立配置就和这个不同了,只需将$USER改为你的用户就可以了,格式为local_root=/vuserdir/nice\user_sub_token=nice,记住,三个都要写,否则他们进去都会在第三个里面
转载于:https://blog.51cto.com/12971521/1953984