我的ftp服务器为centos7
使用yum安装的vsftpd软件 (如果你需要离线yum库,而不会搭建可以查看)
Linux:rpm查询安装 && yum安装_鲍海超-GNUBHCkalitarro的博客-CSDN博客
其次是Linux的防火墙和selinux要关闭 如果你不会的话请查看↓
Linux:centos 关闭 防火墙 && 关闭SELinux && 配置临时ip_鲍海超-GNUBHCkalitarro的博客-CSDN博客
yum -y install vsftpd
# 安装ftp软件
rpm -qc vsftpd
查看软件的配置文件
其中的 /etc/vsftpd/vsftpd.conf 为主配置文件
默认的ftp服务文件在
cd /var/ftp/pub/
cat /etc/vsftpd/vsftpd.conf | grep -v "^#"
# 查看一下 默认配置文件
anonymous_enable=YES 开启匿名用户访问;
local_enable=YES 启用本地系统用户访问;
write_enable=YES 本地系统用户写入权限;
local_umask=022 本地用户创建文件及目录默认权限掩码;
dirmessage_enable=YES 打印目录显示信息,通常用于用户第一次访问目录时,信息提示;
xferlog_enable=YES 启用上传/下载日志记录;
connect_from_port_20=YES FTP使用20端口进行数据传输;
xferlog_std_format=YES 日志文件将根据xferlog的标准格式写入;
listen=NO Vsftpd不以独立的服务启动,通过Xinetd服务管理,建议改成YES;
listen_ipv6=YES 启用IPV6监听;
pam_service_name=vsftpd 登录FTP服务器,依据/etc/pam.d/vsftpd中内容进行认证;
userlist_enable=YES Vsftpd.user_list和ftpusers配置文件里用户禁止访问FTP;
tcp_wrappers=YES 设置vsftpd与tcp wrapper结合进行主机的访问控制,Vsftpd服务器检查/etc/hosts.allow 和/etc/hosts.deny中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。
我们配置匿名登录不用上面的默认文档 先把原配置文件备份一下
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
# 将vsftpd.conf 改名为 vsftpd.conf.bak 当作备份
cp /etc/vsftpd/vsftpd.conf.bak /etc/vsftpd/vsftpd.conf
# 再复制一份 vsftpd.conf
把上图所有的配置文件清除 清空
然后填入
# 全局配置
listen=YES
listen_address=192.168.1.1
listen_port=21
connect_from_port_20=YES
#pasv_min_port=2222
#pasv_max_port=2225
write_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
pam_service_name=vsftpd
#userlist_enable=YES
tcp_wrappers=YES
#max_clients=0
#max_per_ip=0
# 匿名用户配置
anonymous_enable=YES
anon_umask=022
anon_root=/var/ftp
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
#anon_max_rate=0
第三行一定要修改上你的ip 我的是192.168.1.1 所以写上的192.168.1.1
上面的是对匿名用户进行配置的 , 匿名用户拥有读写删除的权限
然后保存退出
由于放文件的位置是root所属人 权限是755
为了匿名 我们要把所属人改为ftp用户
systemctl start vsftpd
# 开启服务
Linux 如果要访问ftp要安装ftp这个软件
yum -y install ftp
# ftp + ip
# ftp 192.168.1.1
现在将我们上一步备份的源文件恢复一下
删除上一步对匿名用户的操作
rm -rf vsftpd.conf
和
cp /etc/vsftpd/vsftpd.conf.bak /etc/vsftpd/vsftpd.conf
# 如果你跟着我做了上一个匿名登录 那你就要用上面的这个删除一下 然后恢复一下备份
如果没有 做上一步 就 不要执行这个
systemctl start vsftpd
配置文件改成原配置文件后重启一下服务
vi /etc/vsftpd/vsftpd.conf
先创建3个用户 他们的默认目录创建到/var/ftp/下
我这里是 tarro1 tarro2 tarro3
useradd -d /var/ftp/tarro1 tarro1
useradd -d /var/ftp/tarro2 tarro2
useradd -d /var/ftp/tarro3 tarro3
touch /var/ftp/tarro1/t1
touch /var/ftp/tarro2/t2
touch /var/ftp/tarro3/t3在里面创建文件等会看效果
Windows访问ftp直接进去了是以 匿名用户进去了因为默认文档里有匿名用户设置
但是匿名用户只能读取
也进进不去tarro1 - 3
右键空白处点击登录 然后登录用户
ftp的黑名单
vi /etc/vsftpd/user_list
默认写在这里的都无法访问ftp
wq保存退出
systemctl restart vsftpd
重启下服务
现在tarro1 和 2 就在黑名单了
如果想把黑名单变成白名单
添加
userlist_deny=NO
现在黑名单就变成白名单了
现在仅这个配置文件里的用户可以登录
useradd -d /var/ftproot yingshe
#创建虚拟用户能够映射的本地用户。指定家目录,此用户不允许本地登录
chmod 755 /var/ftproot
vim /etc/vsftpd/vusers.list
# 编辑内容:奇数行为虚拟用户名,偶数行为用户密码
cd /etc/vsftpd/
db_load -T -t hash -f vusers.list vusers.db
# 将虚拟用户列表转换为ftp能够识别的数据库
chmod 600 vusers*
为了安全,更改权限,只允许属主使用
vim /etc/pam.d/vsftpd.vu
# 建立支持虚拟用户的 PAM 认证文件
写入
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
vim /etc/vsftpd/vsftpd.conf
编辑内容:
listen=YES
listen_ipv6=NO
listen_address=192.168.10.1
listen_port=21
connect_from_port_20=YES
xferlog_enable=YES
xferlog_std_format=YES
write_enable=YES
userlist_enable=YES
tcp_wrappers=YES
anonymous_enable=NO
anon_umask=022
local_enable=YES
local_umask=022
allow_writeable_chroot=YES
chroot_local_user=YES
pam_service_name=vsftpd.vu
guest_enable=YES
guest_username=yingshe
user_config_dir=/etc/vsftpd/yingshe_dir
要将ip改为你的ip
mkdir /etc/vsftpd/yingshe_dir
cd /etc/vsftpd/yingshe_dir/
touch tarro11
touch tarro22
# 创建他俩的权限文件
vim tarro11
写入
anon_upload_enable=YES
anon_mkdir_write_enable=YES
systemctl restart vsftpd
# 重启服务
或者
systemctl start vsftpd
访问成功