1.ftp工做原理linux
FTP是一个客户机/服务系统。用户经过一个支持FTP协议的客户机程序,链接到在远程主机上的FTP服务器程序。用户经过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。vim
2.安装ftp服务bash
yum install vsftpd -y ##安装服务服务器
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完成配置
查看火墙是否配置成功
改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,记住,三个都要写,不然他们进去都会在第三个里面