1.ftp工做原理linux
FTP是一个客户机/服务系统。用户经过一个支持FTP协议的客户机程序,链接到在远程主机上的FTP服务器程序。用户经过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。vim
2.安装ftp服务bash
yum install vsftpd -y ##安装服务服务器
systemctl start vsftpd ##启动服务ide
systemctl stop firewalld ##关闭火墙ui
systemctl enable vsftpd ##开机自动启动加密
setenforce 0 ##关闭selinux或者设置selinux否则会对试验形成影响
spa
lftp ip ##能登录而且显示,表示安装成功3d
vsftpd文件信息code
/var/ftp ##默认发布目录
/etc/vsftpd ##配置目录
配置火墙策略
farewall-config ##使用图形界面配置
@@配置的步骤为:先选中permannent,勾上ftp,点击options,选择reload完成配置
改selinux的状态为disabled,由于selinux是内核级的增强型防火墙,若是他处于强制状态,系统不少功能将不被容许。
@@更改完之后必定要记得重启,由于它是内核级的,必须重启才能从新加载
匿名用户设定
anonymous_enable=YES|NO ##匿名用户登录限制,设置为NO时匿名不能登陆
匿名用户上传
vim /etc/vsftpd/vsftpd.conf
write_enable=YES ##设为YES匿名用户能够上传
anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub ##修改权限
匿名用户家目录修改
anon_root=/direcotry ##修改之后,登录进入之后都在修改的家目录下
匿名用户上传文件默认权限修改
anon_umask=xxx
匿名用户创建目录
anon_mkdir_write_enable=YES|NO ##设置为NO表示能够创建
匿名用户下载
anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户能够下载
匿名用户删除
anon_other_write_enable=YES|NO
匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student
最大上传速率
anon_max_rate=102400 ##单位为kb,102400表示100M
最大连接数
max_clients=2 ##最多容许两台主机接入
本地用户设定
local_enable=YES|NO ##本地用户登录限制
write_enable=YES|NO ##本地用户写权限限制
本地用户家目录修改
local_root=/directory
本地用户上传文件权限
local_umask=xxx
限制本地用户浏览/目录
全部用户被锁定到本身的家目录中
chroot_local_user=YES
chmod u-w /home/*
用户黑名单创建
chroot_local_user=NO ##没法浏览
chroot_list_enable=YES ##启用名单
chroot_list_file=/etc/vsftpd/chroot_list ##写入名单的用户没法浏览
用户白名单创建
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list ##用户白名单创建后,只有在名单中出现的用户才能登陆ftp
#<限制本地用户登录>
vim /etc/vsftpd/ftpusers ##用户黑名单
vim /etc/vsftpd/user_list ##用户临时黑名单
用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list ##参数设定,此文件变成用户白名单,只在名单中出现的用户能够登录ftp
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