Centos7.6-1810安装FTP服务

FTP扫盲

  1. FTP连接方式

    控制连接:标准端口为21,用于发送FTP命令信息
    数据连接:标准端口为20,用于上传、下载数据
    
  2. 数据连接的建立类型:

    主动模式:服务端从20端口主动向客户端发起连接
    被动模式:服务端再指定范围内的某个端口被动等待客户端发起连接
    
  3. FTP传输模式

    文本模式:ASCII模式,以文本序列传输数据
    二进制模式:Binary模式,以二进制序列传输数据
    
  4. FTP用户的类型

    匿名用户:anonymous或ftp
    本地用户:账号名称、密码等信息保存再passwd、shadow文件中
    虚拟用户:独立使用的账号/密码数据文件
    
  5. 常用的全局配置项

listen=YES    #是否以独立运行的方式监听服务
listen_address=192.222.0.10    #设置监听的IP地址
listen_port=21    #设置监听FTP服务的端口号
nopriv_user=ftp    #指定vsftpd服务的运行帐户,不指定时使用ftp
write_enable=YES    #是否启用写入权限
#进入每个目录是显示欢迎信息,在每个目录下建立.message文件在里面写欢迎信息
dirmessage_enable=YES
xferlog_enable=YES    #上传/下载文件时记录日志
xferlog_file=/var/log/vsftpd.log    #设置日志文件
xferlog_std_format=YES    #使用标准文件日志
idle_session_timeout=600    #会话超时,客户端连接到ftp但未操作的超时时间
data_connection_timeout=120    #数据传输超时(传输过程中卡顿会导致传输超时)
connect_from_port_20=YES    #是否使用20端口传输数据(是否使用主动模式)
#是否以ASCII方式传输数据。默认情况下,服务器会忽略ASCII方式的请求
async_abor_enable=YES
ascii_upload_enable=YES    #是否允许上传二进制文件
ascii_download_enable=YES    #是否允许下载二进制文件
chown_uploads=YES、chown_username=xxx    #修改匿名用户上传文件的拥有者
download_enable=YES    #是否允许下载文件
#此选项被激活后,vsftpd将读取userlist_file参数所指定的文件中的用户列表。当列表中的用户登录FTP服务器时,该用户在提示输入密码之前就被禁止了。即该用户名输入后,vsftpd查到该用户名在列表中,vsftpd就直接禁止掉该用户,不会再进行询问密码等后续步聚
userlist_enable=YES
#决定禁止还是只允许由userlist_file指定文件中的用户登录FTP服务器。此选项在userlist_enable 选项启动后才生效。YES,默认值,禁止文件中的用户登录,同时也不向这些用户发出输入密码的提示。NO,只允许在文件中的用户登录FTP服务器
userlist_deny=YES    
max_clients=0    #限制并发客户端连接数
max_per_ip=0    #限制同一IP地址的并发连接数
pam_service_name=vsftpd    #使用pam模块控制,vsftpd文件在/etc/pam.d目录下
guest_enable=YES    #启用用户映射功能
guest_username=virtual:指定映射的系统用户名称
virtual_use_local_privs=YES    #虚拟用户和本地用户有相同的权限
virtual_use_local_privs=NO    #虚拟用户和匿名用户有相同的权限,默认是NO
#2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。可以在vsftpd的配置文件中增加该命令
allow_writeable_chroot=YES
anon_other_write_enable=YES    #值为YES时,虚拟用户只能下载、删除和重命名文件,无其他权限。
  1. 常用的匿名FTP配置项
anonymous_enable=YES    #启用匿名访问
anon_umask=022    #匿名用户所上传文件的权限掩码
anon_root=/var/ftp    #匿名用户的FTP根目录
anon_upload_enable=YES    #允许匿名用户上传文件
anon_mkdir_write_enable=YES    #允许匿名用户创建目录
anon_other_write_enable=YES    #开放匿名用户其他写入权
anon_max_rate=0    #匿名用户的最大传输速度,单位是Byts/s
  1. 常用的本地用户FTP配置项
local_enable=YES    #是否启用本地系统用户
local_umask=022    #本地用户所上传文件的权限掩码
local_root=/var/ftp    #设置本地用户的FTP根目录
chroot_local_user=YES    #是否将本地用户禁锢在家目录
chroot_list_enable=YES、chroot_list_file=/etc/vsftpd/chroot_list    #指定不能离开家目录的用户,将用户名一个一行写在/etc/vsftpd/chroot_list文件里,使用此方法时必须chroot_local_user=NO
local_max_rate=0    #本地用户的最大传输速度,单位是Byts/s
local_root=/home/ftp    #所有用户的根目录,对匿名用户无效

调整上传目录的属主或权限
确保匿名用户ftp有权写入文件:chown ftp /var/ftp/pub

centos7.6环境下vsftp安装

  1. 安装好系统后,vi /etc/selinux/config,关闭selinux。
    在这里插入图片描述
  2. 随后systemctl disable firewalld,关闭防火墙,并重启系统
  3. 重新进入系统后,执行yum install -y vsftpd安装FTP服务
    在这里插入图片描述
  4. systemctl enable vsftpd设置开机启动,systemctl start vsftpd启动FTP服务。
    在这里插入图片描述
  5. 打开配置文件:vi /etc/vsftpd/vsftpd.conf,关闭匿名登录。
    在这里插入图片描述
  6. 允许虚拟用户上传等写入操作
    在这里插入图片描述
  7. 允许ascii方式上传和下载
    在这里插入图片描述
  8. 建立虚拟FTP用户的账号数据库文件(奇数行为账号,偶数行为密码),vi /etc/vsftpd/vusers.list
    在这里插入图片描述
  9. 通过db_load工具创建出Berkeley DB格式的数据库文件:db_load -T -t hash -f /etc/vsftpd/vusers.list /etc/vsftpd/vusers.db 并查看文件:file /etc/vsftpd/vusers.db
    在这里插入图片描述
  10. 把以vusers开头的文件的权限设置为600,以提高虚拟用户账号文件的安全性:chmod 600 /etc/vsftpd/vusers.*
    在这里插入图片描述
  11. 创建用户virtual并设置为不允许登陆系统并定义该用户的home目录:useradd -d /home/ftproot -s /sbin/nologin virtual 保证其他用户可以访问,给予rwxr-xr-x权限:chmod 755 /home/ftproot/
    在这里插入图片描述
  12. 建立支持虚拟用户的PAM认证文件:vi /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers

在这里插入图片描述
13. vi /etc/vsftpd/vsftpd.conf,在vsftpd.conf文件中添加支持配置

pam_service_name=vsftpd.vu
guest_enable=YES
guest_username=virtual
allow_writeable_chroot=YES
reverse_lookup_enable=NO
virtual_use_local_privs=YES

在这里插入图片描述
14. 为个别虚拟用户建立独立的配置文件 在vsftpd.conf文件中添加用户配置目录支持

user_config_dir=/etc/vsftpd/vusers_dir
mkdir /etc/vsftpd/vusers_dir
cd /etc/vsftpd/vusers_dir
touch cooper
vi langers
anon_upload_enable=YES
anon_mkdir_write_enable=YES
  1. 重新加载vsftpd配置
systemctl restart vsftpd
  1. 在服务器上用ftp命令登陆,会提示详细的错误信息,而在客户端则无错误日志。切记切记。
ftp>ftp 127.0.0.1

附录

  1. virtual_use_local_privs参数
virtual_use_local_privs=YES    #虚拟用户和本地用户有相同的权限;
当virtual_use_local_privs=NO    #虚拟用户和匿名用户有相同的权限,默认是NO。 
当virtual_use_local_privs=YES,write_enable=YES    #虚拟用户具有写权限(上传、下载、删除、重命名)。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YESanon_upload_enable=YES    #虚拟用户不能浏览目录,只能上传文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_upload_enable=NO    #虚拟用户只能下载文件,无其他权限。 
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_upload_enable=YES    #虚拟用户只能上传和下载文件,无其他权限。 
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_mkdir_write_enable=YES    #虚拟用户只能下载文件和创建文件夹,无其他权限。 
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_other_write_enable=YES    #虚拟用户只能下载、删除和重命名文件,无其他权限。
  1. 建立各个虚拟用户自身的配置文件
cd /etc/vsftpd/vuser_dir/
  1. 在/etc/vsftpd/user_conf目录中创建以用户名命名的配置文件admin、web、download、upload
  2. “admin”文件内容如下:
local_root=/home/ftp  #默认就是/var/ftproot,可不写
anon_world_readable_only=NO
write_enable=YES    #写权限
anon_mkdir_write_enable=YES    #新建目录权限
anon_upload_enable=YES    #上传权限
anon_other_write_enable=YES    #删除/重命名的权限
  1. “web”文件内容如下:
local_root=/var/www
anon_world_readable_only=NO
anon_umask=022     #由于web页面的特殊性,故单独设置上传文件权限为755,此掩码值可根据具体情况更改
write_enable=YES     #写权限
anon_mkdir_write_enable=YES     #新建目录权限
anon_upload_enable=YES    #上传权限
anon_other_write_enable=YES    #删除/重命名的权限
  1. “download”文件内容如下:
local_root=/home/ftp    #当然,你高兴也可以设置成其它,但要注意virtual用户对此目录的权限)
anon_world_readable_only=NO    #使download用户的能下载,也只能下载;写成YES,将不能列出文件和目录
#下面这句可以不写,不写时同样不能新建文件夹(若需要可以NO--> YES)
anon_mkdir_write_enable=NO
  1. “upload”文件内容如下:
local_root=/home/ftp    #当然,你高兴也可以设置成其它,但要注意virtual用户对此目录的权限
virtual_use_local_privs=NO    #虚拟用户和匿名用户有相同的权限,默认是NO;本地用户是YES
anon_world_readable_only=NO    #写成YES,将不能列出文件和目录
write_enable=YES
anon_upload_enable=YES
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值