需要知道
ftp(文件传输协议):属于TCP/IP协议组的之一,包括两个组成部分:FTP服务器与FTP客户端,FTP服务器用来存储文件,用户通过使用FTP客户端通过FTP协议访问位于FTP服务器上的资源,默认情况下FTP协议使用TCP的20和21端口。20传输数据,21用于传输控制,是否采用20端口为数据传输端口与FTP的传输模式有关,采用主动模式,为20,被动模式,使用哪个端口要服务器和客户端协商决定
ftp服务的基本信息
软件安装包 | vsftpd |
---|---|
/var/ftp | 默认发布目录 |
默认发布的子目录 | /var/ftp/pub |
默认协议接口 | 21/tcp |
服务配置文件 | /etc/vsftpd/vsftpd.conf |
有关报错参数
500 | 文件权限过大(权力过大) |
---|---|
530 | 用户认证登陆失败 |
553 | 本地文件系统权限过小(权力过小) |
550 | 服务本身功能未开放 |
有关用户分类
匿名用户 | 没有设置名字的用户 |
---|---|
本地用户 | 设置名字及密码 |
虚拟用户 | 虚拟创出来的用户,在配置文件里设置用户和密码 |
步骤:
一、搭建新的环境
1.选择一个虚拟机重置配置网络:
cd /etc/sysconfig/network-scripts
加入IPADDR NETMASK BOOTPROTO=none重启网络 看是否配置成功
2.修改主机名字
hostnamectl set-hostname ftp server
3.看yum 源:
cd /etc/yum,repos.d
ls
yum clean all
yum repolist
4.配置yum源
使用的是老师的网络源
5.查看selinux状态:
getenforce
(保证为Disable状态)
配置文件 vim /etc/sysconfig/selinux
(每次修改要重启虚拟机reboot)
二、配置安装ftp过程:
1.利用yum源下载安装vsftpd:
yum install vsftpd
2.开启服务:systemctl start vsftpd
systemctl enable vsftpd
(设置开机自启)
3.在防火墙里添加ftp服务:
命令:
firewall-cmd --permanent --add-service=ftp
加载 firewall-cmd --reload
图形:firewall-config
4.测试是否配置成功:lftp 172.25.254.xx
ftp相关配置
1.vim /etc/vsftpd/vsftpd.conf
每次设置后都要重启
2.创建两个账户: useradd xxx
passwd xxx
三、有关匿名用户的相关配置
vim /etc/vsftpd/vsftpd.conf
每次设置后都要重启
1.匿名用户登陆限制anonymous_enable=YES
(匿名用户是否可以登陆)表示匿名用户可以访问,no的话说明不能访问
2.匿名用户上传write_enable=YES anon_upload_enable=YES
更改组别:chgrp ftp /var/ftp/pub
给定权限chmod 775 /var/ftp/pub
进入到pub
上传 put /etc/passwd/
3. 匿名用户家目录的修改
/1、首先保证有目标目录 mkdir /haha
/2.修改配置文件
anon_root=/haha
验证:
4.匿名用户上传文件默认权限修改anon_umask=xxx
未修改之前;
5.匿名用户建立目录:anon_mkdir_write_enable=YES
修改之后:
6.匿名用户是否可以删除和重命名anon_other_write_enable=YES
7.匿名用户下载anon_world_readable_only=YES|NO
(设定为no 时可以下载)
修改后:
8.匿名用户家目录的修改
anon_root=/westos
9.匿名用户上传文件默认权限修改anon_umask=022
10.匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student
11.最大上传速率anon_max_rate=102400
dd if=/dev/zero of=/mnt/bigfile bs=1M count=1500
12.最大链接个数max_clients=2
(用三个去连接尝试)
四、本地用户的相关配置
1.本地用户是否可以登陆local_enable=YES|NO
(本地用户是否可以登陆)
2.write_enable=YES|NO
(ftp是否对登陆用户可写)
3.
本地用户家目录修改local_root=/student
4.本地用户上传文件权限local_umask=xxx
5.限制本地用户浏览根目录chroot_local_user=YES
chmod u-w /home/*
6.本地用户白名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
7.本地用户黑名单建立chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
修改后:
8.限制本地用户登陆
用户黑名单vim /etc/vsftpd/ftpusers
用户临时黑名单vim /etc/vsftpd/user_list
用户白名单设定userlist_deny=NO
vim /etc/vsftpd/user_list
用户黑名单设定userlist_deny=YES
vim /etc/vsftpd/user_list
五、ftp虚拟用户的设定
-
vim /etc/vsftpd/xxxx
2.设密db_load -T -t hash -f /etc/vsftpd/xxxxx
2. vim /etc/pam.d/westos
4.编辑配置文件:vim /etc/vsftpd/vsftpd.conf
必须注释掉userlist_deny
5.验证
虚拟用户帐号身份制定guest_username=westos
加权限: chmod u-w /home/westos
1.进入配置文件 vim /etc/vsftpd/vsftpd.conf
编辑 local_root=/ftphome/$USER
user_sub_token=$USER
mkdir /ftphome/user1/user1dir -p
mkdir /ftphome/user2/user2dir -p
另一种方式:
虚拟帐号配置独立
1.chgrp ftp /ftphome -R
ll /ftphome/ftpuser*
chmod 775 /ftphome/ftpuser1/user1dir
chmod 775 /ftphome/ftpuser2/user2dir
vim/etc/vsftpd/vsftpd.confuser_config_dir=/etc/vsftpd/userconf
4. mkdir -p /etc/vsftpd/userconf
5.vim /etc/vsftpd/userconf/user1
试着加入参数,此文件的优先级高anon_upload_enable=YES